c语言期末复习_关于c语言的期末复习

2020-02-27 其他范文 下载本文

c语言期末复习由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“关于c语言的期末复习”。

谁能出线

电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。

1.#include 2.#include 3.int main()4.{ 5.int a[10],i,max=0;6.for(i=0;imax)10.{ 11.max=a[i];12.} 13.} 14.for(i=0;i=max)17.{ 18.printf(“%dn”,i);19.} 20.} 21.return 0;22.} 统计素数的个数

求出 2 到 m 之间(含 m,m

1.#include 2.int main()3.{ 4.int a[1000],m,i=0,j,n,cnt;5.scanf(“%d”,&m);6.for(n=2;n

9.i=i+1;10.}

11.cnt=0;

12.for(i=0;i

14.j=2;

15.while(a[i]%j!=0)16.{

17.j++;18.}

19.if(j==a[i])20.{

21.printf(“%4d”,j);22.cnt=cnt+1;23.} 24.25.}printf(“n”);26.printf(“%d”,cnt);27.printf(“n”);28.return 0;29.}

1.#include 2.int main()3.{

4.int a[10],i,j,n;5.for(i=0;i

7.scanf(“%d”,&a[i]);8.}

9.for(j=0;j

12.for(i=0;i

14.if(a[i+1]

16.n=a[i+1];17.a[i+1]=a[i];18.a[i]=n;19.} 20.} 21.} 22.23.for(i=0;i

25.printf(“ %d”,a[i]);

冒泡法排序26.} 27.printf(“n”);28.return 0;29.} 插入法排序

1.#include 2.int main()3.{ 4.int a[11],i,n,m,j;5.for(i=0;i

1.#include 2.#define N 10 3.int main()4.{ 5.int n,a[N],i=0,k=0,t,m=0,j;6.scanf(“%d”,&n);

7.do 8.{

9.a[i]=n%10;10.n=n/10;11.i++;12.k++;

13.}while(n!=0);

14.for(j=0;j

16.for(i=0;i

18.if(a[i+1]>a[i])19.{

20.m=a[i+1];21.a[i+1]=a[i];22.a[i]=m;23.} 24.} 25.}

26.for(i=0;i

28.printf(“%d”,a[i]);29.}

30.printf(“n”);31.return 0;32.}

数组逆序输出

1.#include 2.int main()3.{

4.int a[10],i,j,t;5.for(i=0;i

7.scanf(“%d”,&a[i]);8.} 9.i=0;10.j=9;

11.while(i

13.t=a[i];14.a[i]=a[j];15.a[j]=t;16.i++;17.j--;18.}

19.for(i=0;i

1.#include 2.int main()3.{ 4.int a[10],i,max;5.for(i=0;i

程序定义了 4× 4 的二维数组,请编写程序,给二维数组赋值,并使数组下半三角元素中的值乘以n。例如:

数组中的值为

假设n为10,则输出结果如下:(输出的数按照4位宽度来输出,即%4d)

1.#include 2.int main()3.{

4.int a[4][4],i,j,n;5.for(i=0;i

7.for(j=0;j

9.scanf(“%d”,&a[i][j]);10.} 11.}

12.scanf(“%d”,&n);13.for(i=0;i

15.for(j=0;j

17.a[i][j]=n*(a[i][j]);18.} 19.}

20.for(i=0;i

22.for(j=0;j

24.printf(“%4d”,a[i][j]);25.}

26.printf(“n”);27.}

28.return 0;29.}

在屏幕上显示杨辉三角形

1.#include 2.#define N 100 3.#define M 100 4.int main()5.{

6.int a[N][M],i,j,n;7.scanf(“%d”,&n);8.for(i=0;i

10.j=i;

11.a[i][0]=1;12.a[i][j]=1;13.} 14.for(i=2;i

1.#include 2.#define N 10 3.#define M 10 4.int main()5.{ 6.int a[N][M],n,i,j,m;7.scanf(“%d”,&n);8.for(i=0;i

28.printf(“ %d”,a[i][j]);

29.} printf(“n”);30.}

31.return 0;32.}

给数组中的元素按顺序编号

对数组 a[10] 中的十个整数从小到大进行连续编号,输出各个元素的编号。要求不能改变数组 a 中元素的顺序,且相同的整数要具有相同的编号。例如数组是: A=(5,3,4,7,3,5,6,8,9,10)则输出为:(4,1,3,7,1,4,6,8,9,10)

1.#include 2.int main()3.{

4.int a[10],b[10],i,j,t;5.for(i=0;i

7.scanf(“%d”,&a[i]);8.}

9.for(i=0;i

11.b[i]=a[i];12.}

13.for(i=0;i

15.for(j=i+1;j

17.if(a[i]>a[j])18.{

19.t=a[i];20.a[i]=a[j];21.a[j]=t;22.} 23.} 24.}

25.for(j=0;j

27.for(i=0;i

29.if(b[j]==a[i])30.{

31.printf(“%3d”,i+1);brea

k;

32.} 33.}

34.}printf(“n”);35.return 0;36.} 字符转换

描述

提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为一个整数输出。输入

一个以回车符为结束标志的字符串(少于80个字符)。输出

把字符串中的所有数字字符(‘0’...‘9’)转换为一个整数并输出。

1.#include 2.#define N 80 3.int main()4.{ 5.char a[N];6.int j;7.scanf(“%s”,a);8.for(j=0;a[j]!='';j++)9.{ 10.if((a[j]='0'))

11.{ 12.printf(“%c”,a[j]);13.} 14.} 15.printf(“n”);16.return 0;17.} 合并字符串

输入:

两个已经排好顺序(升序)的字符串

输出:

一个合并在一起的有序(升序)的字符串

要求:

设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。

如果采用先进行串连接,然后再进行排序的算法,则效率太低了。

1.#include 2.#include 3.#define N 20 4.#define M 10 5.int main()6.{

7.char a[N],b[M];8.int i,j,t,n;9.gets(a);10.gets(b);11.strcat(a,b);12.n=strlen(a);

13.for(i=0;i

15.for(j=i+1;j

17.if(a[i]>=a[j])18.{

19.t=a[i];20.a[i]=a[j];21.a[j]=t;22.} 23.} 24.}

25.puts(a);26.return 0;27.}

删除重复字符

1.#include 2.int main()3.{

4.char a[100],b[100];5.int i,j,n=0;6.gets(a);7.b[0]=a[0];

8.for(i=0;a[i]!='';i++)9.{ 10.j=0;11.for(j=0;j

1.#include 2.int main()3.{ 4.char a[15],b[4],c[10];5.int i,j,n=0;6.gets(a);7.gets(b);8.for(i=0;a[i]!='';i++)9.{ 10.j=0;11.for(j=0;j

在指定位置插入字符串

1.#include 2.#include 3.int main()4.{

5.char a[20],b[5],ch,c[10];6.int i,j,k,n;

7.gets(a);gets(b);8.scanf(“%c”,&ch);9.n=strlen(b);

10.for(i=0;a[i]!='';i++)11.{

12.if(ch==a[i])break;13.} 14.k=0;

15.for(j=i;a[j]!='';j++)16.{

17.c[k]=a[j];18.k++;19.}

20.c[k]='';

21.for(j=0;j

23.printf(“%c”,a[j]);24.}

25.printf(“%s”,b);26.printf(“%sn”,c);27.return 0;28.}

数的合并

1.int fun(int a,int b)2.{

3.int c;

4.c=a/10*10+a%10*1000+b/10+b%10*100

;

5.return c;6.}

7.int main()8.{

9.int a,b,c;

10.scanf(“%d%d”,&a,&b);11.c=fun(a,b);

12.printf(“c=%dn”,c);13.return 0;14.} 素数的判断

1.int fun(int a)2.{ 3.int i;4.for(i=2;i

请编写函数fun,它的功能是计算下列级数和,值由函数值返回。

例如,当n=10,x=0.3时,函数值为1.349859。请勿改动主函数main,仅在函数fun的花括号中填入所编写的若干语句。

1.#include 2.double fun(double a,int b)3.{ 4.int i,m=1;5.double z,S=1;6.for(i=1;i

10.S=S+z/m;11.}

12.return S;13.}

14.int main()15.{

16.double x;17.int n;

18.scanf(“%lf%d”,&x,&n);19.printf(“%lfn”,fun(x,n));20.return 0;21.}

求大于m且紧靠m的k个素数

1.int fun(int m,int n,int zz[1000])2.{

3.int i,j,cnt=0,k=0;4.for(i=m+1;i

6.for(j=2;j

8.if(i%j==0)9.break;10.}

11.if(j==m+1)12.{

13.cnt++;14.zz[k]=i;15.k++;

16.if(cnt==n)17.{

18.return zz[m];19.} 20.} 21.} 22.}

23.int main()24.{

25.int m,n,zz[1000];26.scanf(“%d%d”,&m,&n);27.fun(m,n,zz);

28.for(m=0;m

29.printf(“%6d”,zz[m]);30.printf(“n”);31.return 0;32.}

删除指定字符 请编写函数fun,其功能是:从字符串中删除指定的字符。同一字母的大、小写按照不同的字符处理。1.#include 2.char fun(char str[80],char ch)3.{ 4.int i,j=0;5.char a[80];6.for(i=0;str[i]!='';i++)7.{ 8.if(str[i]!=ch)9.{ 10.a[j]=str[i];11.j++;12.} 13.} 14.a[j]='';15.strcpy(str,a);16.return str[j];17.} 18.int main()19.{ 20.char str[80];21.char ch;22.23.gets(str);24.scanf(“%c”,&ch);25.fun(str,ch);26.printf(“%sn”,str);27.return 0;28.} 递归

求整数 n 到 m 区间的累加和,其中n

区间的起始点n 区间的终止点m 输出:

累加和

1.int fun(int a,int b)2.{ 3.int h;4.h=a;5.if(a==b)6.{ 7.h=a;8.} 9.else if(a

11.h=b+fun(a,b-1);12.} 13.14.return h;15.}

16.int main()17.{

18.int m,n,s;

19.scanf(“%d%d”,&n,&m);20.s=fun(n,m);

21.printf(“%dn”,s);22.return 0;23.}

求最大公约数——递归

请使用递归算法计算正整数n和m的最大公约数GCD(n,m)。

1.#include 2.int GCD(int n,int m)3.{

4.if((m

6.return m;7.}

8.else if(n

10.return GCD(m,n);11.} 12.else 13.{

14.return GCD(m,n%m);15.} 16.}

17.int main()18.{

19.int a,b;

20.scanf(“%d%d”,&a,&b);21.printf(“%dn”,GCD(a,b));22.return 0;23.}

求数列的第N项

已知整数数列第一项和第二项是1,该数列从第三项开始,如果该项是奇数项,则它是前两项之和,如果该项是偶数项,则它是前两项之差,即:  f(n)= 1 当 n = 1 或 2 时, f(n)= f(n-1)-f(n-2)当n是偶数时, f(n)= f(n-1)+ f(n-2)当n是奇数时,编写一个递归函数,求数列的第N项。

1.#include 2.int f(int n)3.{ 4.int m;5.if(n

14.} 15.else 16.{ 17.return m=f(n-1)+f(n-2);

18.} 19.} 20.} 21.int main()22.{ 23.int n;24.scanf(“%d”,&n);25.printf(“%dn”,f(n));26.return 0;27.} 偶数分解

编写程序,输入若干个大于2的正整数,如果是偶数,则将其分解为两个素数并输出;如果输入的奇

数,则输出“××× is odd number!” ;输入为0时程序结束。只有1和它本身这两个因数的自然数叫做素数,0和1既不是素数也不是和数。实现分解的过程用函数实现。输入:整数序列,0

输出:偶数1 = 素数A + 素数B(当输入是偶数时)奇数1 is odd number!(当输入是奇数时)1.#include 2.int s(int n)3.{

4.int i;

5.for(i=2;i

7.if(n%i==0)8.return 0;9.}

10.if(i==n)11.{

12.return 1;13.} 14.}

15.void fun(int n)16.{

17.int i;

18.for(i=2;i

20.if(s(n)==1)21.{

22.printf(“%d is odd number!

n”,n);23.}

24.else if((s(i)==1)&&(s(n-i)=

=1))

25.{

26.printf(“%d=%d+%dn”,n,i,n

-i);break;27.} 28.} 29.}

30.int main()31.{

32.int n;33.do 34.{

35.scanf(“%d”,&n);36.fun(n);37.}while(n!=0);38.return 0;39.} 浮点数四舍五入

1.#include 2.#include 3.double fun(double a)4.{ 5.return(floor)(a*100+0.5)/100.0;

6.} int main()7.{ double a;8.scanf(“%lf”, &a);9.printf(“%lfn”, fun(a));10.return 0;11.} 长整型截短

1.#include 2.int fun(int n)3.{ 4.int a,i=0,b=0;5.do 6.{ 7.a=n%10;8.n=n/10;9.if(a%2==0)10.{ 11.b=b+a*pow(10,i);12.i++;13.} 14.}while(n!=0);15.return b;16.} 17.int main()18.{ int n;19.scanf(“%ld”,&n);20.printf(“The result is: %ldn”,fun(n));

21.return 0;22.}

长整型截短

编写一个函数fun,其功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。

1.#include

2.int fun(int n)

3.{

4.int a,i=0,b=0;5.do 6.{

7.a=n%10;8.n=n/10;9.if(a%2==0)10.{

11.b=b+a*pow(10,i);12.i++;13.}

14.}while(n!=0);15.return b;16.}

17.int main()18.{ int n;

19.scanf(“%ld”,&n);

20.printf(“The result is: %ldn”,fun(n));

21.return 0;22.}

公式求解

1.double fun(int n)2.{

3.int i;

4.double a=1,s=1;5.for(i=1;i

7.a=a/i;8.s=s+a;9.} 10.return s;11.} 12.int main()13.{ int n;14.double s;15.16.scanf(“%d”,&n);17.s=fun(n);18.printf(“s=%fn”,s);19.return 0;20.} 数的合并

请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a的十位和个位依次存放在c数的十位和千位上,b的十位和个位依次存放在c数的个位和百位上。

1.int fun(int a,int b,int *p)2.{ 3.*p=a/10*10+a%10*1000+b%10*100+b/10;4.return p;5.} 6.int main()7.{ 8.int a,b,c;9.scanf(“%d%d”,&a,&b);10.fun(a,b,&c);11.printf(“%dn”,c);12.return 0;13}

数组中奇偶数

请编一个函数 fun,函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参 n 给了数组中数据的个数:利用指针 odd 返回奇数之和,利用指针 even 返回偶数之和。

例如:数组中的值依次为: 1,8,2,3,11,6 ;则利用指针 odd 返回奇数之和 15 ;利用指针 even 返回偶数之和 16。

 void fun(int x[],int y,int *odd,int *even)

 {

int i; *odd=0; *even=0;

for(i=0;i

if(x[i]%2!=0) {

 *odd=*odd+x[i]; } 

else

 {

 *even=*even+x[i]; }  }  }

 int main()

 { int a[N],i,n,odd,even; scanf(“%d”,&n);

for(i=0;i

 printf(“The sum of even numbers:%dn”,even);

return 0; }

 #include



#define N 20

浮点数四舍五入

请编一个函数 void fun(double a,double *h),函数的功能是对变量 h 中的值保留 2 位小数,并对第三位进行四舍五入(规定 h 中的值为正数)。

例如: h 值为 8.32433,则函数返回 8.32 ;

h 值为 8.32533,则函数返回 8.33。

 #include

 void fun(double a,double *h) {

 *h=(floor)(a*100+0.5)/100; } int main() {

 double a,h;

 scanf(“%lf”,&a); fun(a,&h);

 printf(“The result:%lfn”,h); return 0;

 }

字符移动

请编一个函数void fun(char *s),函数的功能是把字符串中所有的字符前移一个位置,串中的第一个字符移到最后。

例如:原有的字符串为: Mn.123xyZ,则调用该函数后,串中的内容为: n.123xyZM。

 void fun(char *s) {

int i=0,j,k;

char ch,a[N];

do

 {

 a[i++]=*(s++); }while(*s!=''); ch=a[0];



for(j=0;j

 a[j]=a[j+1]; }

 a[i-1]=ch; a[i]='';



for(k=i-1;k>=0;k--) {

 *(--s)=a[k]; }

 } int main() { char a[N]; gets(a); fun(a);

 printf(“%sn”,a); return 0; }

生成新数

给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。

例如,输入一个数:27638496,新的数:为739。

 #include  void fun(int *p) {

int a[10],b[10];

int i=0,j=0,k;

do

 {

 a[i++]=*p%10; *p=*p/10; }while(*p!=0);



for(k=0;k



if(a[k]%2!=0) {

 b[j++]=a[k]; }  }



for(k=0;k

 *p=*p+b[k]*pow(10,k); }  }

 int main() { int n=-1;

while(n>99999999||n

 printf(“%dn”,n);

return 0; }

字符串转换成整数

请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数。例如,若输入字符串“-1234”,则函数把它转换为整数值-123

4 #include

 int fun(char *p) {

char a[10];

int q=0,i=0,j=0;

do

 {

 a[j++]=*(p++); }while(*p!='');

if(a[0]=='-') {



for(i=1;i

q=q+(a[i]-'0')*pow(10,j-1-i); }

 q=-1*q; } 

else

 {



for(i=0;i

q=q+(a[i]-'0')*pow(10,j-1-i); }  }



return q; }

 int main()/* 主函数 */

 { char s[10];

int n; gets(s); n = fun(s);

 printf(“%dn”,n);

return 0; }

二维数组按列优先存放

请编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中。

例如, 二维数组中的数据为: W W W W S S S S H HHH 则字符串中的内容应是: WSHWSHWSHWSH。

 void fun(char w[M][N],char *q) {

int j,i;

for(j=0;j

for(i=0;i

 *(q++)=w[i][j]; }  }

 *q=''; }

 int main() { char

a[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H'}};

 fun(w,a); puts(a);

return 0;

 } #include

 #define M 3

 #define N 4

删除字符串中指定的星号

假定输入的字符串中只包含字母和 * 号。请编写函数 fun,它的功能是:除了尾部的 * 号之外 , 将字符串中其它 * 号全部删除。在编写函数时,不得使用 C 语言提供的字符串函数

 void fun(char *p,char *t) {

char a[30],b[30],ch;

int i=0,j,k=0;

do

 {

 a[i++]=*(p++); }while(*p!=''); a[i]='';

for(j=0;;j++) {



if(a[j]!='*') {

 b[k++]=a[j];

 if(a[j]==*t)break; }  }



for(j=k;j

 b[j]=*(++t); }



for(k=j;k>=0;k--) {

 *(p--)=b[k]; }  }

 int main()

 { char s[81],*t; gets(s); t=s;

while(*t)t++; t--;

while(*t=='*')t--; fun(s , t); puts(s);

return 0; }

统计数字字符

请编写函数 fun,它的功能是: 统计形参 s 所指字符串中数字字符出现的次数,并存放在形参 t

 void fun(char *p,int *q) {

int i=0;

for(;*p!='';p++) {

if((*p>='0')&&(*p

 i++; }  }

 *q=i; } int main() { char s[80];

int t; gets(s); fun(s,&t);

 printf(“%dn”,t);

return 0; }

将两个串按要求形成一个新串

给定程序的函数 fun 的功能是:逐个比较 p、q 所指两个字符串对应位置中的字符,把 ASCII 值大或相等的字符依次存放到 c 所指数组中,形成一个新的字符串。

 void fun(char *p,char *q,char *c) {

int i,j;

for(i=0;*(p+i)!=''&&*(q+i)!='';i++)

 {

if(*(p+i)>=*(q+i)) {

 *(c+i)=*(p+i); } 

else

 {

 *(c+i)=*(q+i); }  }  j=i;



if(*(p+j)!='') {



for(j=i;*(p+j)!='';j++) {

 *(c+j)=*(p+j); }  } 

else

 {

 for(j=i;*(q+j)!='';j++) {

 *(c+j)=*(q+j); }  }

 *(c+j)=''; }

 int main()

 { char a[10], b[10], c[80]; gets(a);gets(b); fun(a,b,c); puts(c); return 0;

 }

 #include

 #include

统计子串的个数

请编写函数 fun,它的功能是: 统计 substr 所指子字符串在 str 所指字符串中出现的次数。

 void fun(char *p,char *q,int *c) {

int i,j,cnt; *c=0;

for(;*p!='';p++) {

 cnt=1;

if(*p==*q) {

 for(j=0;*(q+j)!='';j++) {

 if(*(p+j)!=*(q+j)) {

 cnt=0; break; }  }  }



else cnt=0;

if(cnt) {

(*c)++; }  }  }

 int main() {

char str[80],substr[80];

int count; gets(str);

 gets(substr);

 fun(str,substr,&count); printf(“%dn”,count);

return 0; }

函数 fun 的功能是: 将 s 所指字符串中除了下标为奇数、同时 ASCII 值也为奇数的字符之外,其余的所有字符都删除 , 串中剩余字符所形成的一个新串放在 t 所指的数组中。

 void fun(char *p,char *q) {

int i;

for(i=0;*(p+i)!='';i++) {

if(i%2==1&&*(p+i)%2==1) {

 *(q++)=*(p+i); }  }

 *(q++)=''; } int main() {

char s[100], t[100]; scanf(“%s”, s); fun(s, t);

 printf(“%sn”, t);

return 0; }

求非偶数的除数

请编写函数 fun,它的功能是:求出能整除形参 x 且不是偶数的各整数 , 并按从小到大的顺序放在 pp 所指的数组中 , 这些除数的个数通过形参 n 返回。

 void fun(int x,int *p,int *q) {

int i; *q=0;

for(i=1;i

if(x%i==0) {

 *(p++)=i;(*q)++; }  }  }

 int main()

 { int x, aa[1000], n, i; scanf(“%d”, &x); fun(x, aa, &n);

for(i = 0;i

return 0; }

求最大值及其下标

请编写函数 fun,其功能是求出数组的最大元素在数组中的下标并存放在 k 所指的存储单元中

 void fun(int *p,int n,int *q) {

int i,max; max=0;

for(i=0;i

if(*(p+i)>max) {

 max=*(p+i); *q=i; }  }  }

 void main() {

int a[10], k ,i;

for(i=0;i

 scanf(“%d”,&a[i]); fun(a, 10, &k);

 printf(“%d,%dn”, k, a[k]); }

结构体填空

给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数modify的功能是将该学生的各科成绩都乘以一个系数a。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

 #include

 typedef struct

 {

int num;

char name[9];

float score[3]; } STU;

 void show(STU tt) {



int i;

 printf(“%d %s : ”,tt.num,tt.name);

for(i=0;i

 printf(“%5.1f”,tt.score[i]); printf(“n”); }

 void modify(STU *,float a) {



int i;



for(i=0;iscore[i]*=a; }

 int main() {

 STU std=

{ 1,“Zhanghua”,76.5,78.0,82.0 };



float a;

 scanf(“%f”,&a); modify(&std,a); show(std);

return 0; }

程序通过定义学生结构体变量,存储了学生的学号、姓名和 3 门课的成绩。函数 fun 的功能是对形参 b 所指结构体变量中的数据进行修改 , 最后在主函数中输出修改后的数据。

 #include

 #include

 struct student { 

long sno;

char name[10];

float score[3]; };

 void fun(struct student *b) {

 b->sno= 10004;

 strcpy(b->name, “LiJie”); }

 int main()

 { struct student t={10002,“ZhangQi”, {93, 85, 87}};



int i; fun(&t);

 printf(“No: %ld Name: %snScores:”,t.sno, t.name);

for(i=0;i

 printf(“n”);

return 0; }

程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和 3 门课的成绩。函数 fun 的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。

 #include

 #include

 struct student { 

long sno;

char name[10];

float score[3]; };

 void fun(struct student a[], int n) {



struct student t;

int i, j;



for(i=0;i



for(j=i+1;j



if(strcmp(a[i].name,a[j].name)> 0)

 { t = a[i];a[i] = a[j];a[j] = t;}

 }

 int main()

 { struct student

s[4]={{10001,“ZhangSan”, {95, 80, 88}},{10002,“LiSi”, {85, 70, 78}}, {10003,“CaoKai”, {75, 60, 88}},{10004,“FangFang”, {90, 82, 87}}};



int i, j; fun(s, 4);

 printf(“The data after sorting :n”);

for(j=0;j

 { printf(“nNo: %ld Name: %-8s Scores:”,s[j].sno, s[j].name);

for(i=0;i

 printf(“%6.2f”, s[j].score[i]); }

 printf(“n”);

return 0; }

《c语言期末复习.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
c语言期末复习
点击下载文档
相关专题 关于c语言的期末复习 期末 语言 关于c语言的期末复习 期末 语言
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文