2022年C语言编程题精选 .pdf
1、 给出一百分制成绩,要求输出成绩等级A 、 B 、 C 、 D 、 E 。90分以上为 A ,8089分为 B ,7079分为 C ,6069分为 D ,60分以下为 E 。用 swich语句编写程序。#include void main() int x; scanf(%d,&x); x=x/10; switch(x) case 10:printf(A);break; case 9:printf(A);break; case 8:printf(B);break; case 7:printf(C);break; case 6:printf(D);break; default :printf(E); 2、 输入 4个整数,要求按由大到小的顺序输出。#include void main() int a,b,c,d,e; scanf(%d %d %d %d,&a,&b,&c,&d); if(ab) e=a;a=b;b=e; if(ac) e=a;a=c;c=e; if(ad) e=a;a=d;d=e; if(bc) e=b;b=c;c=e; if(bd) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 25 页 - - - - - - - - - e=b;b=d;d=e; if(cd) e=c;c=d;d=e; printf(%d %d %d %dn,a,b,c,d); 3、 有 4个圆塔,圆心分别为(2,2) 、 (-2,2) 、 (-2,-2) 、 (2,-2) ,圆半径为1,这四个塔的高度为10米,塔外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零) 。#include #include void main() int a,b; scanf(%d %d,&a,&b); if(sqrt(a-2)*(a-2)+(b-2)*(b-2)=1)printf(10); if(sqrt(a+2)*(a+2)+(b-2)*(b-2)=1)printf(10); if(sqrt(a+2)*(a+2)+(b+2)*(b+2)=1)printf(10); if(sqrt(a-2)*(a-2)+(b+2)*(b+2)=1)printf(10); else printf(0); 4、 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,就只剩一个桃子了。求第一天共摘多少个桃子。#include void main() int m=1,i; for(i=10;i1;i-) m=(m+1)*2; printf(%d,m); 5、 一个球从 100米高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米?第十次反弹多高?#include void main() float h=100,sum=100; int n; for(n=1;n=10;n+) h=h/2;sum=sum+h; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 25 页 - - - - - - - - - printf(the total is %fn,sum); printf(the tenth is %fn,h); 6、企业发放的奖金根据利润提成。利润I 低于或等于100000 元的,奖金可提10%;利润高于 100000元低于 200000元(100000I=200000)时,低于 100000元的部分按 10%提成,高于 100000元的部分,可提成 7.5%; 200000I=400000时,低于 200000元的部分仍按上述办法提成(下同) 。高于 200000元的部分按5% 提 成; 400000 I=600000 元 时 ,高于400000 元的部分 按 3% 提 成 ;600000I1000000 时,超过 1000000元的部分按 1%提成。要求用两种语句分别编程: (1)用 if 语句编程序;(2)用 switch语句编程序。#include void main() float i,p; scanf(%f,&i); if(i100000&i200000&i400000&i600000&i1000000)p=p+0.01*i; printf(%fn,p); 7、 将一个数组中 20 个值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为 1,4, 5,6,8。#include void main() int a20,t,i; for(i=0;i=19;i+) scanf(%d,&ai); for(i=0;i=9;i+) t=ai; ai=a19-i; a19-i=t; for(i=0;i=19;i+) printf(%d,ai); 8、输出九九乘法表,格式如下:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 ,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 25 页 - - - - - - - - - 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 #include void main() int i,j,k; for(i=1;i=9;i+) for(k=0;k27-3*i;k+) printf( ); for(j=1;j=i;j+) printf( %d*%d=%d,i,j,i*j); printf(n); 9、用循环语句输出以下图案:* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #include void main() int i,t; for(i=1;i=5;i+) for(t=1;t=i;t+) printf( ); printf(* * * * *n); 10、有一行电文,已按下面规律译成密码:AZ a z BYby CX cx ,即第 1 个字母变成第26个字母,第 i个字母变成第 (26-i+1)个字母 .非字母字符不变. #include void main() char in,out; printf(in=); scanf(%c,&in); if(in64)&(in97)&(in122) out+219-(int)in; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 25 页 - - - - - - - - - printf(%c,out); 11、要求编程序将密码译会原文,并输入密码和原文4、 一个数如果恰好等于它的因子之和,这个数就称为“完数” 。例如, 6的因子为 1、2、3,而 6=1+2+3,因此,6是“完数” 。编写程序找出1000之内的所有完数,并按下面的格式输出其因子:6 its factors are 1, 2 3 #include void main() int m,i,s; for(m=2;m1000;m+) s=1; for(i=2;i=m/2;i+) if(m%i=0) s=s+i; if(s=m) printf(%d its factors are ,m); for(i=1;i=m;i+) if(m%i=0) printf(%d ,i); printf(n); 12、用选择法对 50 个整数排序。#include void main() int a51,i,j,k,x; printf(input 50 numbers:n); for(i=1;i51;i+) scanf(%d,&ai); printf(n); for (i=1;i50;i+) k=i; for (j=i+1;j=50;j+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 25 页 - - - - - - - - - if (ajak) k=j; if (i!=k) x=ai;ai=ak;ak=x; printf (the sorted numbers:n); for (i=1;i51;i+) printf(%d,ai); 13、已有一个已排好序的数组(15个数) ,要求输入 1个数后,按原来排序的规律将它插入数组中。#include void main() int i,j,x,a16=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,; scanf(%d,&x); for(i=0;j16;i+) if(x=i;j-) aj+1=j; ai=x; for(i=0;i16;i+) printf(%d,ai); 14、输入以下的杨辉三角形(要求输入10行)1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 . . . . . . . . . . . . . . . . . . #include void main() int i,j; int a1010; printf(n); for(i=0;i10;i+) ai0=1; aii=1; for(i=2;i10;i+) for(j=1;ji;j+) aij=ai-1j-1+ai-1j; for(i=0;i10;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 25 页 - - - - - - - - - for(j=0;j=i;j+) printf(%5d,aij); printf(n); 15、有 15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数“。#include #include void main() static int i,j,m,a15=1,4,9,13,24,28,31,39,48,56,67,79,82,97,101; scanf(%d,&m); for(j=0;j15;j+) printf(%4d,aj); printf(n); i=7; while(fabs(i-7)8) if(ma7) if(ai-m=0) printf(it is at(%d)n,i+1);break; i-; else if(ma7) if(ai-m=0) printf(it is at(%d)n,i+1);break; i+; else printf(8n); if(fabs(i-7)-8=0) printf(there is notn); 16、编写一个程序,将两个字符串连接起来,不要用strcat函数。#include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 25 页 - - - - - - - - - void main() int i,j; char str1100,str2100,str3201; gets(str1); gets(str2); for(i=0;str1i!=0;i+) str3i=str1i; for(j=0;str2j!=0;j+) str3j+i=str2j; printf(%sn%sn%sn,str1,str2,str3); 17、编写一个程序, 将字符数组 s2中的全部字符复制到字符数组s1中。不要用strcpy函数。复制时,0也要复制过去。0后面的字符不复制。#include void main() char s180,s240; int i=0,j=0; gets(s1); gets(s2); while(s1i+!=0); i-; while(s1i+=s2j+)!=0); printf(%s,s1); 18、编写一个程序,判别用户输入的字符串是否符合构成标识符的规定。如果符合,则形成一个标识符,并计算个数;否则,显示出错信息。#include void main() /*int a3,i,t; printf(nPLEASE!n); for(i=0;i3;i+) scanf(%d,&ai); t=ai;ai=ai+1;ai+1=ai+2;ai+2=t; printf(n); for(i=0;i3;i+) printf(%d,ai); */ int a,b,c,d; printf(nPLEASE!n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 25 页 - - - - - - - - - scanf(%d,%d,%D,&a,&b,&c); d=a;a=b;b=c;c=d; printf(%d %d %d,a,b,c); 19、求 mn之间所有的素数。 m和 n的值由用户键入。为使程序结构清晰,设置一个函数 prime(x) 用来判断 x是否为素数。#include #include void main() int x,i,k; scanf(%d,&x); k=sqrt(x); for (i=2;ik)printf(%d is a prime numbern,x); else printf(%d is not a prime numbern,x); 20、求在 10010000之间有多少个整数它们的各位数之和等于5。#include void main() int i,t=0,y,w,s,g,x; for(i=100;i=100&i=1000&i=9999) y=i/1000; x=i-y*1000; w=x/100; s=x%10/10; g=x%10%10; if(y+w+s+g=5) t+; printf(n%d,t); 附加: 1编写程序,读入三个整数给a、b、c,然后交换它们中的数,把 a 中原来的值给b,把 b 中原来的值给 c,把 c中原来的值给a,然后输出 a、b、c。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 25 页 - - - - - - - - - #include void main() int a,b,c,t; scanf(%d,%d,%d,&a,&b,&c); t=c;c=b;b=a;a=t; printf(%d,%d,%d,a,b,c); 2 编写程序,把560 分钟换算成用小时和分钟表示,然后进行输出。3 编写程序,输入一个整数,打印出它是奇数还是偶数。4 输入三个整数,分别放在变量a、b、c中,然后把输入的数据重新按由小到大的顺序放在变量a、b、c中,最后输出 a、b、c中的值。#include void main() int a,b,c,t; scanf(%d,%d,%d,&a,&b,&c); if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(%d,%d,%d,a,b,c); 5 编写程序,根据输入学生的学生成绩给出相应的等级,大于或等于 90 分以上的等级为A,60分以下的等级为E,其余每 10分为一个等级。6 编写程序,输出1-500之间能被 3 整除或被 5整除的所有数。7 用/4=1-1/3+1/5-1/7+1/9-.?公式求 的近似值,直到最后一项的绝对值小于10-6(-6 为上标, C 语言中可写为 1e-6)来作为循环的结束条件。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 25 页 - - - - - - - - - 8 对于函数当 -5x0 时 ,y=x; 当 x=0 时, y=x-1; 当 0 x10 时 ,y=x+1 编写程序,要求输入x的值,输出 y的值。#include void main() int x,y; scanf(%d,&x); if(x(-5)y=x; if(x=0)y=(x-1); if(x0)y=(x+1); printf(%dn,y); 9 计算 s=1+2+3+.+i,直到累加到 s大于 5000为止,并给出 s和 i 的值。(提示可用 break 语句)10 编写程序,找出2100以内的所有的素数。11 编写程序,输出26个大写字母和它们的ASCII 代码,每行输出两组数据。12 编写程序,输出九九乘法表,格式如下:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 ,1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 13 求一个 3 行 3列的整形矩阵主对角线元素之和。 (要求 3 行 3 列矩阵由键盘输入)(提示:主对角线指左上到右下的斜线)#include void main() int a33; int i,j,s=0; for(i=0;i3;i+) for(j =0; j 3; j +) scanf(%d,&aij); for(i=0;i3;i+) s=s+aii; printf (%d,s); 14 编写程序,定义一个含有30 个元素的 int类型数组。依次给数组元素赋奇数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 25 页 - - - - - - - - - 1、3、5、.,然后按每行10个数逆序输出。#include void main() int a30,i,n=1; for(i=0;i30;i+) ai=n; n=n+2; for(i=0;i=0;i-) printf(%4d,ai); if(i%10=0) printf(n); 15 编写程序,键盘输入一个4行 4列的整形矩阵,找出矩阵中最小元素及其所在的行号和列号。#include void main() int i,j, row=0,colum=0,min; int a44; for(i=0;i=3;i+) for(j=0;j=3;j+) scanf(%d,&aij); min=a00; for(i=0;i4;i+) for(j=0;j4;j+) if(aijmin) min=aij; row=i; colum=j; printf(min=%d,row=%d,colum=%dn,min,row,colum); 16 编写程序,把数组a中所有奇数放到另一个数组b中返回。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 25 页 - - - - - - - - - 17 编写程序,通过函数调用来判断某数是否为素数。(提示:素数指只能被1和其本身整除的数)#include void main() int a,t; int f(int a); scanf(%d,&a); t=f(a); if(t=1) printf(%d 是素数 ,a); else printf(%d 不是素数 ,a); int f(int a) int i,b; for(i=2;i=a-1;i+) if(a%i=0) b=0; break; else b=1; return(b); 18 有 5 个人坐在一起,问第五个人多少岁?他说比第4个人大 2 岁。问第 4 个人岁数,他说比第3个人大 2岁。问第三个人,又说比第2 人大两岁。问第 2 个人,说比第一个人大两岁。最后问第一个人,他说是10 岁。请问第五个人多大?#include int age(int m) int t; if(m=1) t=10; else t=age(m-1)+2; return(t); void main() int e,n; /int age(int m); scanf(%d,&n); e=age(n); printf(%d,e); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 25 页 - - - - - - - - - 19 输入两个整数 ,求他们相除的余数。用带参数的宏来实现,编程序。#define Q(a,b) a%b main() int c,d,t; scanf(%d %d,&c,&d); t=Q(c,d); printf(t=%dn,t); 20 编写程序实现如下功能:输入两个两位数的整数a、b,将 a、b 合并形成一个整数放在 c 中。合并的方式是: 将 a的十位和个位数依次放在c 数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如:当 a=45,b=12。合并后, c=4251 #include void main() int a,b,c; int m,n,z,t; scanf(%d %d,&a,&b); m=a/10; n=a%10; z=b/10; t=b%10; c=m*1000+t*100+n*10+z; printf(c=%d,c); 21 编写程序,利用循环语句求1-3+5-7+,-99+101的值#include void main() int s=0,t=1,m=1,i; for(i=1;i=101;i=i+2) t=m*i; s=s+t; m=-m; printf(%d,s); 22 编写程序实现如下功能:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 25 页 - - - - - - - - - 求出 1 到 1000之内能被 7 或 11整除、 但不能同时被 7 和 11整除的所有整数,输出这些数以及这些数的个数. 例如: 21是能够被 7 整除但不能被 11整除,满足条件22 是能够被 11整除但不能被 7 整除,满足条件77 是能够被 7 整除又能被 11整除,不满足条件#include void main() int i,num=0; for(i=1;i=1000;i+) if(i%7=0|i%11=0) if(i%7=0&i%11=0) continue; printf(%d ,i); num+; printf(num=%d,num); 23 编写程序,用指针方法处理该题:写一个函数,求一个字符串的长度。在 main函数中输入字符串,并输出其长度。#include int f(char *p) int num; for(num =0;(*p)!=0;p+) num +; return(num); void main() char a50; int c=0; gets(a); c=f(a); printf(%d,c); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 25 页 - - - - - - - - - 24把 a数组中的 n个数的平方值 ,与 b数组中逆序的 n个数的平方值一一对应相减, 结果存放在 c 数组中。输出 c数组的所有数据。例如 : 当 a数组中的值是 : 1、3、5、7、8, b 数组中的值是 : 2、3、4、5、8 c中存放的数据是 : -63、-16、9、40、60 #define n 5 #include void main() int an, bn,cn; int i,j; for(i=0;in;i+) scanf(%d,&ai); for(i=0;in;i+) scanf(%d,&bi); for(j=n-1,i=0;in;i+,j-) ci=ai*ai-bj*bj; for(i=0;in;i+) printf(%d ,ci); 21、分别编写求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由用户输入,而且要求3个函数不在同一个文件中。21max.c #include long max1(long x,long y) long t; if (x=0|y=0) return 0; if (xy) t = x; x = y; y = t; while(t = x%y)!=0) x = y; y = t; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 25 页 - - - - - - - - - return y; 21min.c #include long min1(long x,long y) extern long max1(long x,long y); long t; t=max1(x,y); return (x*y/t); 21 #include #includemax1.c #includemin1.c void main() extern long max1(long x,long y); extern long min1(long x,long y); int max,min,a,b; printf(Please input two numbers a and b :); scanf(%d,%d,&a,&b); max=max1(a,b); min=min1(a,b); printf(max=%d,min=%dn,max,min); 22、输入 10 个学生 5 门课的成绩,分别用函数实现下列功能:(1) 计算每个学生的平均分;(2) 计算每门课的平均分;(3) 找出所有 50个分数中最高的分数所对应的学生和课程。#include int A,B; float s(float a105) int j; float s; for(j=0;j5;j+) s=s+aAj; return(s/5); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 25 页 - - - - - - - - - float c(float a510) int j; float s; for(j=0;j10;j+) s=s+aBj; return(s/10); float max(float a105) int i,j,m,x,y; m=0; for(i=0;i10;i+) for(j=0;j5;j+) if(maij) m=aij;x=i+1;y=j+1; printf(di %d gexueshengdedi %d menkechengzuigaon,x,y); return(m); void main() int i,j; float m,n; float a105,b510; for(i=0;i10;i+) for(j=0;j5;j+) scanf(%f,&aij); for(i=0;i10;i+) for(j=0;j5;j+) bji=aij; for(i=0;(A=i)10;i+) m=s(a); printf(%fn,m);printf(nnnn); for(i=0;(B=i)5;i+) n=c(b); printf(%fn,n);printf(nnnn); printf(%fn,max(a);printf(nnnn); 23、写 3 个函数,分别实现下列功能,在主函数中调用这三个函数。(1) 输入 10个职工的姓名和职工号;(2) 按职工号有小到大顺序排序,姓名排序也随之调整;(3) 要求输入一个职工号, 用折半查找法找出该职工的姓名,从主函数输入要查名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 25 页 - - - - - - - - - 找的职工号,输出该职工的姓名。#include #include #define N 10 void work(int num,char na8,int n) int i,j; for(i=0;in;i+) printf(qingshuruzhigonghao:); scanf(%d,numi); fflush(stdin); printf(qingshurumingzi); gets(nai); void order(int num,char na8,int n) int i,j,m,min; char ch8; for(i=0;in-1;i+) min=i; for(j=i;jnumj) min=j; if(min!=i) m=numi; numi=nummin; nummin=m; strcpy(ch,nai); strcpy(nai,namin); strcpy(namin,ch); printf(nshuchupaixujieguo:n); for(i=0;i10;i+) printf(n%5d%10s,numi,nai); int number(int hao,int num,char na8,int n) int l=0,h=9,mid; while(l=h) mid=(l+h)/2; if(nummid=hao) return(mid); if(nummidhao) l=mid+1; else h=mid-1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 25 页 - - - - - - - - - return(-1); void main() int hao,numN,x; char naN8; work(num,na,N); order(num,na,N); printf(qingshuruchazhaodehao: ); scanf(%d,&hao); x=number(hao,num,na,N); if(x!=-1) printf(%d %sn,numx,nax); else printf(errorn); 24、用指针方法处理该题:写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。#include void main() int Len(char *p); char str80; printf(PLease input a string:); scanf(%s,str); printf(len=%d,Len(str); int Len(char *p) int n=0; while(*p!=0) n+; p+; return(n); 25、定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换的两个值。#include #define JH(x,y) t=y;y=x;x=t; void main() int a,b,t; printf(Please input a and b:); scanf(%d%d,&a,&b); JH(a,b); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 25 页 - - - - - - - - - printf(a=%d,b=%d,a,b); 26、输入两个整数,求他们相除的余数。用带参数的宏来实现,编程序。#include #define yushu(a,b) (a)%(b) void main() int a,b; printf(input two num a and b:); scanf( “%d,%d,&a,&b);printf(a%b=%dn,yushu(a,b); 27、用指针方法处理该题:输入一行文字,找出其中大写字母,小写字母,空格,数字以及其他字符各有多少个?#include void main() ststic int a5=0,0,0,0,0; int i; char *p,str80; printf(Please input zstring:); gets(str); p=str; while(*p!=0) if(*p=A)&(*p=a)&(*p=0)&(*p=9) +a3; else +a4; p+; printf(%-10d%-10d%-10d%-6d%-6d,a0,a1,a2,a3,a4); 28、用指针方法处理该题:有一个班4个学生, 5 门课程。(1) 求第一门课程的平均分;(2) 找出有 2门以上课程不及格的学生, 输出他们的学号和全部课程成绩及平均成绩;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 25 页 - - - - - - - - - (3) 找出平均成绩在90分以上或全部课程成绩在85分以上的学生;分别编写 3 个函数实现以上3个要求。#include struct student int num4; int score5; s4; void a(struct student s) int i; float sum=0; for(i=0;i4;i+) sum=sum+s0.score; printf(%f,sum/4.0); void f(struct student s) int i,j,k; float sum; for(i=0;i4;i+=) k=0;sum=0; for(j=0;j5;j+) if(si.scorej=3)printf(%d,si,numi); for(j=0;j5;j+) printf(%f,si.scorej); sum=sum+si.scorej; printf(%f,sum/5.0); void e(strut student s) int i,j,k,full; float sum; for(i=0;i4;i+) k=0;sum=0; for(j=0;j85)k+; if(k=5) printf(%d,si.numi); for(j=0;j90) if(full=0) printf(%d,si.numi); for(j=0;j5;j+) printf(%d,si.scorej); void main() struct student s4; int i,j; for(i=0;i4;i+) for(j