C语言期末考试题库试题及答案.pdf
1【程序填空】题目:下面函数为二分法查找key值。数组中元素已递增排序,若找到key则返回对应的下标,否则返回-1。*/#includefun(int a,int n,int key)int low,high,mid;ow=0;high=n-l;/*SPACE*/while(low=high )mid=(low+high)/2;/*SPACE*/if(keyafmid)low=mid+1 ;/*SPACE*/else return(mid);)return-1;)void main()int al0=123,4,5,6,7,8,9 0;int b,c;b=4;c=fun(a,10,b);if(c=-1 )printf(*not found(1);else printf(position%dnu,c);)/*-2【程序填空】*/#includevoid main()int n,i;float t;printf(nplease input n(n=0):n);/*SP/CE*/scanf(%d,&n );i=l;t=1.0;/*SPACE*/while(i=n)/*SpycE*/t*=ii+;)printfC%d!=%r,n,t);a/*-3【程序填空】题目:以下程序的功能是统计个字符串中的字母、数字、空格、和其它字符的个数。-*/#include ustdio.hmain()char sl80;int a4=0;int k;/*SPACE*/void fun(char s,int);gets(sl);/*SPACE*/fun(sl,a)J;puts(sl);for(k=0;k4;k+)printf(n%4d,akl);void fun(char s,int bf)int i;for(i=0;si!=0;i+)if(,a,=si&si=zllA,=si&si0,=si&si=,9,)blj+;/*SPACE*/else if(si=32)b2+;else b3+;/*-4【程序填空】*/#include#include math.hvoid main()int m,i,k;scanf(%dn,&m);/*SPACE*/for(i=2;i k)printf(uYesn);elseprintf(HNonM);/*-5【程序填空】题目:以下程序的功能:计算并输出500以内最大的10个能被13或17整除的自然数之和。*/#include/*SPACE*/int fun(int k )int m=0,mc=0;/*SPACE*/while(k =2&mc 1 0 1 )/*SP/C E*/if(k%1 3=OI I k%1 7=0 1 )m =m+k;mc+;k-;)/*SPACE*/return(m);void main()printf(%dn,fun(5 0 0);/*-6【程序填空】题目:输入N个数据存入数组中,将其倒置存放,并打印输1 1 1。|Qi(匚二::I-:,.:/川 二7【程序填空】题 目:输 出 Fibonacci数列的前15项,要求每行输出5 项。Fibonacci 数列*/#include void main()/*SPACE*/int fib 15,i;fibO=l;fibl=l;for(i=2;i15;i+)/*SPACE*/*-8【程序填空】题目:以下程序的功能是求100999之间的水仙花数(水仙花数是指一个三位数的各个位数字的立方和是这个数本身,如:153=1A3+5A3+3A3)*/#includeint fun(int n)int i,j,k,m;m=n;/*SPACE*/k=0for(i=l;i4;i+)/*SPACE*/j=m%10m=(m-j)/10;k=k+j*j*j;/*SP/CE*/if(k=n)return(l)else return(O);)void main()(int i;for(i=100;i1000;i+)/*SPACE*/if(fun(i)=l)printf(%d is ok!n,i);9【程序填空】题11:次次大奖赛.仃i o个评委打分,卜间的科十足对 名参赛者评分.输入i o个:-:*/#includevoid main()float mark,max,min,aver=0.0,sum=0.0;int i;fbr(i=1 ;i=10;i+)printf(输入第%d位评委的打分n*i);scanf(u%f&mark);max=mark,*SPA(、E*,min=mark else if(markmax)max=marksum+=mark;hver=(suin-max-min)/8printf(The Average score is%fn,aver);1 0【程序填空】题目:输出9*9 口诀。*/#includevoid main()int i,j,result;printf(,nH);/*SPACE*/for(i=1;i10;i+)/*SPACE*/for(j=l;j10;j+)result=i*j;/*SPACE*/printf(%d*%d=%-3d,ij,result);)printf(n);)/*-11【程序填空】甄11:用辗转相除法求两个整数的最大公约数、最小公倍数二*/#includevoid main()int n,m,nm,r,t;printf(Enter m,n=?n);scanf(M%d%dM,&m,&n);nm=n*m;if(mn)t=m;m=n;n=t;r=m%n;/*SPACE*次/while(r!=0)m=nprintf(The max Gyshu=%dn,n);printf(The min Gbshu=%dn,nm/n);12【程序填空】#define N 7#includevoid main()static int aN=12,9,16,5,7,2,1),k,s;printf(n the origanal array:n);for(k=0;kN;k+)printf(%4d,afk);/*SPACE*/printf(n the changed array:nH);for(k=0;kN;k+)/*SPACE*/printf(%4d,ak);1 3【程序填空】*/#includevoid main()int a,b,c,max;printf(input three numbers:);scanf(n%d%d%dn,&a,&b,&c);/*SP/CE*/if(a b)max=a;/*SPACE*/elsemax=b;if(maxc)/*SPACE*/L max=c Jprintf(,max=%dn,max);/*-1 4【程序填空】*/#includevoid main()int x,y,z,t;scanf(n%d%d%dM,&x,&y,&z);if(xy)/*SP/CE*/t=x;x=y;y=t;if(xz)/*SPACE*/t=z;z=x;x=t;if(yz)/*SPACE*/t=y;y=z;z=l;)printf(Msmall to big:%d%d%dn,x,y,z);)15【程序填空】题目:打印出如下图案(菱形)*-*/#includevoid main()int i,j,k;*木 SPACE*摩*,piiniiC JMIHMMM/*字*SPACE小*字*116【程序填空】也I I:以卜口匕 计 I high以内出()J之和,high由主函数传给fun函数,若 high的值为100,则函数的值为732。-*/#include#include int fun(ini high)int sum=0,n=0,j,yes;/*SP/CE*/while(high=2)&(n 10)yes=1;for(j=2;j/CE*/yes=0;break;)if(yes)sum+=high;n+;high-;/*SP/CE*/return(sum);)void main()(printf(,%dnn,fun(100);1 7【程序填空】题目:输入如下形式的二项式系数列标。要求表的行数运行时输入,若小于1或者大于10则重新输入。11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1-*/#includevoid main()(int a1 0 ri0=0 ,i,j,n;while(scanf(%d,&n),n 1 0);for(i=0;i 1 0;i+)ai0=l;/*SP/C E*/aii=l;for(i=0;i n;i+)for(j=0;j=i;j+)printf(%4d,ai|j);次*SP/C E*printf(n);1 8【程序改错】题目:函数f u n的功能是:求1到20的阶乘的和。请改正程序中的错误,使它能得出正确的结果。注意:不可以增加或删除程序行,也不可以更改程序的结构。.*/fun()int n,j;double s=0.0,t=1.0;for(n=1 ;n=2 0;n+)t=l;for(j=l;j=n;j+)/*FOUND*/t=t*j;/*FOUND*/s=s+t;/*FOUND*/printf(njiecheng=%fnM,s);)main()fun();I1 9【程序改错】题目:给定程序MODILC中函数fu n 的功能是:用选择法对数组中的n 个元素按从小到大的顺序进行排序。注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include#define N 20void fun(int a,int n)inti,j,t,p;for(j=0;j n-1;j+)/*FOUND*/p=j;for(i=j;i n;i+)/*FOUND*/if(ai ap)/*FOUND*/P=i;t=afp;ap=aj;aj=t;)void main()int aN=9,6,8,3,-l,i,m=5;printf(排序前的数据:);for(i=0;i m;i+)printf(%d n,ai);printf(nnn);fun(a,m);printf(排序后的数据:“);for(i=0;i m;i+)printf(%d,ai);printf(n);)2 0【程序改错】题目:编写函数fun,求两个整数的最小公倍数,然后用主函数main。调用这个函数并输出结果,两个整数由键盘输入。注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。.*/#include stdio.hvoid main()(unsigned int m,n,q;printf(nm,n=n);scanf(%d,%d,&m,&n);/*FOUND*/q=fun(m,n);printf(,p(%d,%d)=%d,m,n,q);int fun(int m,int n)int i;/*FOUND*/if(mn)i=m;m=n;n=i;for(i=m;i=m*n;i+=m)/*FOUND*/if(i%n=0)return(i);2 1【程序改错】题目:下列程序中,函数fun的功能是:找出一个大于给定整数m 且紧随m 的素数,并作为函数值返回。注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include#includeint fun(int m)/*FOUND*/int i,k;for(i=m+l;i+)for(k=2;ki;k+)/*FOUND*/if(i%k=O)break;/*FOUND*/if(k=i)return(i);)void main()(int n;printf(nPlease enter n:n);scanf(u%dH,&n);printf(H%dnn,fun(n);2 2【程序改错】题目:打印出如卜.杨辉三角形(要求打印出6 行).11 11 2 113 3 11 4 6 4 11 5 10 10 51注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#includestdio.hvoid main()int i,j;int a66;printf(nnn);/*FOUND*/for(i=0;i6;i+)ai0=l;aii=l;)/*FOUND*/for(i=2;i6;i+)for(j=l;ji;j+)/*FOUND*/aij=ai-lj-l+ai-lj;for(i=0;i6;i+)/*FOUND*/for(j=0;j=i;j+)printf(M%5dn,aij);printf(nH);)2 3【程序改错】题目:给定程序MODI1.C中 函 数 fu n 的功能是:计算正整数num的各位上的数字之积。例如,若输入:2 5 2,则输出应该是:20。若输入:2 0 2,则输出应该是:0。注意:不可以增加或删除程序行,也不可以更改程序的结构。*/#include long fun(long num)/*FOUND*/long k=l;do k*=num%10;/*FOUND*/num/=10;/*FOUND*/while(num);return(k);void main()long n;printf(Please enter a number:);scanf(%ld,&n);printf(n%ldn,fun(n);2 4【程序改错】题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到 第 10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#includestdio.hvoid main()(int day,x l,x2;day=9;/*FOUND*/x2=l;while(day0)/*FOUND*/x 1=(x2+1)*2;x2=x1;/*FOUND*/day;)printf(Hthe total is%dn,xl);/*-2 5【程序改错】题目:一个5 位数,判断它是不是回文数。即 12321是回文数,个位与万位相同,十位与千位相同。注意:不可以增加或删除程序行,也不可以更改程序的结构。*/#includeHstdio.hvoid main()/*FOUND*/long ge,shi,qian,wan,x;scanf(n%ldn,&x);/*FOUND*/wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;/*FOUND*/if(ge=wan&shi=qian)printf(this number is a huiwennu);elseprintf(Hthis number is not a huiwennn);)2 6【程序改错】题目:编写函数fun求 2 0 以内所有5 的倍数之积。注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#define N 20#include stdio.hvoid main()int sum;sum=fun(5);printf(M%d以内所有 1的倍数之积为:dn”,N,5,sum);int fun(int m)/*FOUND*/int s=l,i;for(i=l;iN;i+)/*FOUND*/if(i%m=0)/*FOUND*/s=s*i;return s;2 7【程序改错】题目:请编写一个函数fu n,函数的功能是:统计出若干个学生的平均成绩,最低分以及得最低分的人数。例如,输 入 10名学生的成绩分别为92,87,68,56,92,84,67,75,92,6 6,则输出平均成绩为77.9,最低分为5 6,得最低分的人数为1人。注意:不可以增加或删除程序行,也不可以更改程序的结构。.*/#include stdio.hfloat Min=0;int J=0;float fun(float arraylJ,int n)int i;float sum=0,ave;Min=arrayO;for(i=0;iarray i)Min=array i;/*FOUND*/sum=sum+arrayi;/*FOUND*/ave=sum/n;for(i=0;in;i+)/*FOUND*/if(arrayi=Min)J+;return(ave);void m a in()(float a101,ave;int i=0;printfCInput 10 scores:nn);for(i=0;i10;i+)scanf(H%f,&ai);ave=fun(a,10);printf(n a ve=%fn,ave);printf(min=%fn,Min);printf(Total:%dnH,J);2 8【程序改错】题目:有一数组内放10个整数,要求求出平均值,并打印.注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#includefloat average(float array10)inti;float aver,sum=an ay 10J;/*FOUND*/for(i=1 ;i 10;i+)sum=sum+aiTayi;aver二sum/10.0;return(aver);)void main()/*FOUND*/float score 10,a ver;int i;printf(ninput 10 scores:n);for(i=0;i10;i+)/*FOUND*/scanf(,%f,&scorei);printfC1);/*FOUND*/a ver=a verage(score);printfCaverage score is%5.2f,aver);/*-2 9【程序改错】题目:利用递归方法求5!。注意:不可以增加或删除程序行,也不可以更改程序的结构。.*/#include void main()int fact(int j);printf(M5!=%dn,fact(5);int fact(int j)int sum;/*FOUND*/i f)/*FOUND*/sum=l;elsesum=j*fact(j-l);/*FOUND*/return sum;/*.3 0【程序改错】题目:编写函数求2!+4!+6!+8!+10+12!+14!注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include stdio.hlong sum(int n)/*FOUND*/int i,j;long t,s=O;/*FOUND*/for(i=2;i=n;i+=2)t=l;for(j=l;j=i;j+)t=t*j;s=s+t;/*FOUND*/retum(s);void main()printf(this sum=%ldnn,sum(14);/*.3 1【程序改错】题目:下列给定程序中,函数fun的功能是:判断m 是否为素数,若是返回1,否则返回0。主函数的功能是:按每行5 个输出 1-100之间的全部素数。请改正程序中的4 个错误,使它能得出正确的结果。注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include/*FOUND*/void fun(int m)int i,k=l;if(m=l)k=0;/*FOUND*/for(i=2;im;i+)/*FOUND*/if(m%i=0)k=0;/*FOUND*/return k;void main()int m,k=0;for(m=l;m 100;m+)if(fun(m)=l)printf(n%4dn,m);k+;if(k%5=0)printf(n”);/*-3 2【程序改错】题目:求 100以 内(包 括 100)的偶数之和.注意:不可以增加或删除程序行,也不可以更改程序的结构。*/#include stdio.hvoid main()/*FOUND*/int i,sum=0;/*FOUND*/for(i=2;i=100;i+=2)sum4-=i;/*FOUND*/printf(Sum=%d nsum);)3 3【程序改错】题目:用起泡法对10个整数从小到大排序。程序中共有4 条错误语句,请改正错误。注意:不可以增加或删除程序行,也不可以更改程序的结构。-刃#include/*FOUND*/void sort(int x,int n)int i,j,k,t;for(i=0;in-l;i+4-)/*FOUND*/for(j=0;jx|j+l)t=xj;xj=xj+l;x|j+l=t;)void main()int i,n,a100;printf(nplease input the length of the array:nH);scanf(n%du,&n);for(i=0;in;i+)scanf(”d”,&ai);sort(a,n);printf(noutput the sorted array:nM);for(i=0;i=n-l;i+)printf(n%5dn,ai);printfCVn1);3 4【程序改错】题目:函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。例如,若给num l和 num2分别输入49和 2 1,则输出的最大公约数为7。请改正程序中的错误,使它能得出正确的结果。注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#includeint fun(int a,int b)(int r,t;if(ab)(t=a;/*FOUND*/a=b;/*FOUND*/b=t;r=a%b;while(r!=O)a=b;b=r;/*FOUND*/r=a%b;/*FOUND*/return b;)void main()(int numl,num2,a;printf(Input two numbers:nH);scanf(n%d%dM,&num 1 ,&num2);a=fun(numl,num2);printf(Hthe maximum common divisor is%dnn,a);3 5【程序改错】题目:请编写一个函数f u n,函数的功能是:求出NXM 整型数组的最小元素及其所在的行坐标及列坐标(如果最小元素不唯一,选择位置在最前面的一个)。例如:输入的数组为:9234156121910112求出的最小数为1,行坐标为2,列坐标为1。注意:不可以增加或删除程序行,也不可以更改程序的结构。.-.*/#define N 4#define M 3#include ini Row,Col;void main()(int aNM,i,j,min,row,col;printf(input a array:1);for(i=0;iN;i+)for(j=O;jM;j+)scanf(n%dn,&aij);for(i=0;iN;i+)(for(j=0;jM;j+)printf(”%d”,ai 皿);printf(nnu);)min=fun(a);printf(max=%d,row=%d,col=%d,min,Row,Col);)int fun(int arrayNM)(int min,i,j;min=array 00;Row=0;Col=0;for(i=0;iN;i+)/*FOUND*/for(j=0;jarray ij)min=array ij;Row=i;/*FOUND*/Col=j;)return(min);/*-3 6【程序改错】题目:求 n!,n 值由键盘输入。程序中共有4 条错误语句,请改正错误。注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#includevoid mainQint n,i;/*FOUND*/float t;printf(please input n(n=0):n);/*FOUND*/scanf(n%dn,&n);i=l;/*FOUND*/t=l;while(i=n)/*FOUND*/t*=i;i+;)printf(%d!=%f,n,t);/*-3 7【程序设计】题目:编写函数f u n,函数的功能是:求 1 到m 之间(包括m)的偶数之积。注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。.-.*/#include stdio.hdouble fun(int m)/*Pr0oram*/double y=linti;for(i=l;i=m;i+)if(i%2=0)y*=i;retum y;/*字*/)void main()printf(ji=%lfn,fun(20);yzj();yzj()FILE*IN,*OUT;int iIN,i;double dOUT;IN=fopen(in.dat,Hr);if(IN=NULL)printf(nPlease Verify The Currernt Dir.It May Be Changed);)OUT=fopen(,out.dat,wn);if(OUT=NULL)printfCTlease Verify The Current Dir.It May Be Changed);)for(i=0;i5;i+)fscanf(IN,H%dM,&iIN);dOUT=fun(iIN);fprintf(OUT/%lAnH,dOUT);)fclose(IN);fclose(OUT);3 8【程序设计】题目:编写函数fun其功能是:找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回。注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。.*/#include stdio.hint fun(int n)/*Progi*am*/int i,k;for(i=n+l;i+)(for(k=2;ki;k+)if(i%k=O)break;if(k=i)return(i);/*不 /void main()int m;printf(Enter m:*);scanf(n%d,&m);printf(nThe result is%dn,fun(m);yzj();yzj()FILE*IN,*OUT;int s;int t;int o;IN=fopen(in.dat,rn);if(IN=NULL)printf(HRead File Error);)OUT=fopen(out.dat,wn);if(OUT=NULL)printf(HWrite File Error);fbr(s=l;s=5;s+)fscanf(IN,%d,&t);o=fun(t);fprintf(OUTJ%dn”,o);)fclose(IN);fclose(OUT);3 9【程序设计】题目:编写函数fun将一个数组中的值按逆序存放,并在main。函数中输出。例如,原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。-*/#include ustdio.h#define N 5void main()void fun(int arr,inl n);int aN=8,6,5,4,l,i;for(i=0;iN;i+)printf(%4dH,ai);printf(nn);fun(a,N);for(i=0;iN;i+)printf(H%4d,ai);yzj();void fun(int arr,int n)/*字,*jrooram*/int i,t;for(i=0;in/2;i+)t=arri;arri=arrn-l-i;arrn-l-i=t;/*/yzj()FILE*IN,*OUT;int n;inti10;int o;IN=fopen(,in.datVru);if(IN=NULL)printf(HReadFile Error1);)OUT=fopen(nout.datn,wn);if(OUT=NULL)printf(nWrite File Error1);)for(n=0;nl 0;n+)(fscanf(IN,H%dn,&in);)fun(i,10);for(n=0;nl 0;n+)(fprintf(OUT,u%dn,in);)fclose(IN);fclose(OUT);4 0【程序设计】题目:请编写一个函数f u n,函数的功能是:统计出若干个学生的平均成绩,最高分以及得最高分的人数。例如,输 入 10名学生的成绩分别为92,87,68,56,92,84,67,75,92,6 6,则输出平均成绩为77.9,最高分为9 2,得最高分的人数为3 人。注意:部分源程序给HI如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。-*/#include stdio.hfloat Max=0;int J=0;float fun(float array,int n)/木 孝 字*Prooram*/int i;float sum=0,ave;Max=arrayO;for(i=0;in;i+)if(Maxarrayi Max=arrayi);sum=sum+arrayi;ave=sum/n;for(i=0;in;i+)if(arrayi=Max)J+;return(ave);/*字字*End*不void m a in()(float a10,ave;int i=0;printf(”请输入 10 个 数:nn);for(i=0;i10;i+)scanf(%f,&ai);ave=fun(a,10);printf(,ave=%fn,ave);printf(nmax=%fnH,Max);printf(Total:%dn,J);yzj();)yzj()(FILE*IN,*OUT;float iIN101,iOUT;int iCOUNT;IN=fopen(8.in,V);if(IN=NULL)printf(Please Verify The Currernt Dir.It May Be Changed1);OUT=fopen(H8.out,nwn);if(OUT=NULL)printf(nPlease Verify The CuiTent Dir.It May Be Changed,);)for(iCOUNT=0;iCOUNT10;iCOUNT+)fscanf(IN;%f,&iINiCOUNT);iOUT=fun(iIN,10);fprintf(OUT,H%f%fn,iOUT,Max);fclose(IN);fclose(OUT);4 1【程序设计】题目:编写函数f u n,函数的功能是:找出批正整数中的最大的偶数。注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。.*/#include stdio.hint fun(inl a,int n)/*字字*Prooram*/int i,amax=-l;for(i=0;iamax)amax=alij;return amax;/*字 *End*字/void main()(int a=1,2,9,24,35,18,k;k=fun(a,6);printf(nmax=%dnk);yzj();)yzj()(FILE*IN,*OUT;int iIN10,iOUT,ij;IN=fopen(”28.in”,T);if(IN=NULL)printf(nPlease Verify The CuiTernt Dir.It May Be Changed1 1);)OUT=fopen(”28.out,“w”);if(OUT=NULL)printf(nPlease Verify The Current Dir.It May Be Changed);)for(j=0;j10;j+)for(i=0;i10;i+)fscanf(IN,u%dn,&iINi);iOUT=fun(iIN,10);fprintf(OUT,n%dn,iOUT);)fclose(IN);fclose(OUT);4 2【程序设计】题目:编写函数判断一个整数m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0。调用该函数找出100200之间满足条件的所有数。注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。-*/#include stdio.hini sub(int m)/*Program*/int k,s=0;do(s=s+m%10;m=m/10;Iwhile(m!=0);if(s%7=0)k=l;else k=0;return(k);/木字字*/)void main()int i;for(i=100;i=200;i+)if(sub(i)=l)printf(,%4du,i);yzj();yzj()(FILE*IN,*OUT;int n;inti10;int o;IN=fopen(in.dat,T);if(IN=NULL)printf(nRead File Error11);OUT=fopen(,out.dat,Hwn);if(OUT=NULL)printf(Write File Error);for(n=0;nl 0;n+)fscanf(IN,H%d,&in);for(n=0;nl 0;n+)(o=sub(in);fprintf(OUT;%dnM,o);)fclose(IN);fclose(OUT);4 3【程序设计】题目:编写函数f u n,函数的功能是:计算n 门课程的平均值,计算结果作为函数值返回。例如,若有5 门课程的成绩是:92,76,69,58,8 8,则函数的值为76.600000o注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。.-.*/#include stdio.hfloat fun(int a,inl n)/*Pro。ram*/int i;float y=0;for(i=0;in;i+)y+=ai;y=y/n;return y;/*End*/)void main()(int a=92,76,69,58,88);printf(My=%fn,fun(a,5);yzj();)yzj()(FILE*IN,*OUT;int iIN10,i,j;float fOUT;IN=fopen(H18.inM,V);if(IN=NULL)printf(nPlease Verify The Currernt Dir.It May Be Changed1);)OUT=fopen(“18.out,W);if(OUT=NULL)printf(Please Verify The Current Dir.It May Be Changed);)for(j=0;j 10;j+)for(i=0;i=,a&stri=,z,)stri=stri-32;/*字字*End*不不*/)#include ustring.hu#include stdio.hvoid main()void change();char str40;gets(str);change(str);puts(str);yzj();yzj()FILE*IN,*OUT;int n;chari200;IN=fopen(in.dat,ru);if(IN=NULL)printf(nRead File Error1);)OUT=fopen(out.datH,nw);if(OUT=NULL)printf(nWrite File Error);)fscanf(IN,u%sM,i);change(i);fprintf(OUT,u%sn,i);fclose(IN);fclose(OUT);)4 5【程序设计】题目:请编写函数fu n,它的功能是:判断m 是否为素数。主函数的功能是:求 出 100到 200之间的素数的个数。注意:部分源