《《C语言》编程题库.docx》由会员分享,可在线阅读,更多相关《《C语言》编程题库.docx(21页珍藏版)》请在课桌文档上搜索。
1、3.编程题(18)236、编写程序,实现矩阵(3行3列)的转置(即行列互换)。例如,输入下面的矩阵:100200300400500600700800900程序输出:100400700200500800300600900注意:部分源程序存在考生文件夹下的文件proglc中。请勿改动主函数Inain和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/progl.c原始代码:includeincludeintfun(intarray)main()itij;intarray33=100,200z300,400,500z600,700z800,900);for(i=0;i3;i+)f
2、or(j=O;j3;j+)printf(,%7d,arrayij);printf(n);)fun(array);printf(Convertedarrayrn);for(i=0;i3;i+)for(j=0;j3;j+)printf(,%7dzarrayiU);printf(11);NONO();)NONO()*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/inti,j;FI1.E*wf;intarray33=100,200300z400,500,600z700,800,900;wf=fopen(all.out,w);fun(array);for(i=0;i3;i+
3、)for(j=0;j3;j+)fprintf(wf,%7dn,arrayij);)fclose(wf);/progl.c参考代码:intfun(intarray33)inti,jjintb33;for(i=0;i3;i+)for(j=0;j3;j+)bji=arrayij;for(i=O;i3;i+)for(j=0;j3;j+)arrayij=bi11j;)241、请编写函数FUn,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如:二维数组中的值为1 35792 99946 999813570则函数值为61。注意:部分源程序存在考生文件夹下的文件PrOg
4、8.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/prog8.c原始代码:#includeItinclude#includedefineM4ftdefineN5intfun(intaMN)main()(intaaMN=l,3,5,7,9),(2,9,9,9,4),6,9,9,9,8),(1,3,5,7,0);inti,j,y;SySten(cls);Printf(Theoriginaldatais:n);for(i=0;iM;i+)(for(j=0;jN;j+)printf(*%6d*,aaij);printfn*);y=fun(aa);p
5、rintf(z,nThesum:%dn”,y);printf;NONO();)NONO()*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/inti,j,y,k,aaMN;FI1.E*rf,*wf;rf=fopen(z,bc4.in,r);wf=fopcn(bc4.out,w);for(k=0;k10;k+)(for(i=0;iM;i+)for(j=0;jN;j+)fscanf(rf,%d”,aaij);y=fun(aa);fprintf(wf,%dn”,y);)fclose(rf);fclose(wf);)/prog8.c参考代码:(inti,j,sum=0;fo
6、r(i=0;iM;i+)for(j=0;jN;j)if(i=0)11(i=M-1)11(j0)11(j=N-1)sum+=aij;returnsum;)253、请编写函数fun,函数的功能是:实现B=A+A,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。例如,输入下面的矩阵:其转置矩阵为:Il23|H47|456|258|789|程序输出:|2610|61014|IlO1418I|369|注意:部分源程序存在考生文件夹下的文件Prog25.C中。请勿改动主函数Inain和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/prog25.c原始代码:in
7、cludeinclude#includevoidfun(inta33Jntb33)main()nta33=l,2,3,4,5,6,7,8,9,t33;intij;system(cls);fun(a,t);for(i=0;i3;i+)(for(j=0;j3;j+)printf(%7dztij);printf(n);)NONO();)NONO()*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/inta33=l,2,3,4z5,6,7,8z9,t33;intij;FI1.E*rfz*wf;wf=fopen(a21.out,w);fun(azt);for(i=0;i3;i
8、+)for(j=0;j3;j+)fprintf(wfz%7dztij);fprintf(wfzn);fclose(wf);J/prog25.c参考代码:voidfun(inta33,intb33)ntij;for(i=0;i3;i+)for(j=0;j3;j+)bij=aij+aji;)254、m个人的成绩存放在SCore数组中,请编写函数FUn,它的功能是:将低于平均分的人数作为函数值返回。例如,当SCOre数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为:10、20、30、40注意:部分源程序存在考生文件夹下的文件Pro
9、g27.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/prog27.c原始代码:#include#include#includeincludeintfun(intscoreJntm,intbelow)main()inti,nzbw9;intscore9=10,20,30,40,50,60,70,80,90);system(,cls);n=fun(scorez9zbow);printf(Belowtheaveragescoreare:);for(i=0;in;i+)printf(%dzbelowi);NONO();)NONO()*本函数用于打
10、开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/int,n,below10,score10;FI1.E*rf,*wf;rf=fopen(bc04.in,zr);wf=fopen(bc04.out,w);for(i=O;i10;i+)for(j=0;j10;j+)fscanf(rfz%d,&scorej);n=fun(score,10,below);for(j=0;jn;j+)fprintf(wf,%d,belowj);fprintf(wf,n);)fclose(rf);fclose(wf);)#defineN5intfun(intaNJntn)main()intaNNznzi,j
11、;system(cls);printf(*Thearray*n);for(i=0;iN;i+)for(j=O;j=3);printf(n=%4dn,zn);fun(a,n);printf(*THERESU1.T*);for(i=0;iN;i+)for(j=O;jN;j+)printf(,%4d,aij);printf(n);)NONO();NONO()*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。FI1.E*rf,*wf;inti,j,n,a55;rf=fopen(bw01.inzr);wf=fopen(bw01.out,zw);for(i=0;i5;i+)for(j=0;j5
12、;j+)fscanf(rf,%d,&aij);fscanf(rf,%dz&n);fun(a,n);for(i=0;i5;i+)for(j=0;j5;j+)fprintf(wf,%4dzaij);fprintf(wf,n);)fclose(rf);fclose(wf);/prog34.c参考代码:(i11ti,j;for(i=O;iN;i+)for(j=O;j=i;j+)aij*=n;265、编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。111S=I+1+21+2+3l+2+3+n例如:若n的值为II时,则函数值为:1.833333注意:部分源程序存在
13、考生文件夹下的文件PrOg42.c中。请勿改动主函数main和其他函数中的任何内容,仪在函数fun的花括号中填入你编写的若干语句。/prog42.c原始代码:include/include#include#includefloatfun(intn)()main()intn;floats;system(cls);printf(nPleaseenterN:);SCanf(%d,&n);s=fun(n);printf(theresultis:%fn,s);NONO();)NONO()*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/intn,j;floats;FI1.E*
14、rf,*wf;rf=fopen(b25.in,r);wf=fopen(a25.out,w);for(j=0;j4;j+)fscanf(rf/%d,&n);s=fun(n);fprintf(wf,theresultis:%fn,s);)fclose(rf);fclose(wf);J/prog42.c参考代码:nti;floats=1.0,h=l;for(i=2;in.m!P=n!(m-11)!例如:m=12,n=8时,运行结果为495.000000。注意:部分源程序存在考生文件夹下的文件PrOg46.c中。请勿改动主函数main和其他函数中的任何内容,仪在函数fun的花括号中填入你编写的若干语句
15、。/prog46.c原始代码:#includeinclude#includefloatfun(intmjntn)()main()system(cls);printf(P=%nzfun(12,8);NONO();)NONO()*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/FI1.E*wf;wf=fopen(a27.out,w);fprintf(wP=%11zfun(12,8);fclose(wf);J/prog46.c参考代码:inti;floats=lj=h=l;floatx;for(i=mji=lji-)s=s*i;for(i=n;i=l;i-)f=f*i;f
16、or(i=m-n;i=l;i-)h=h*i;x=s(f*h);return(x);)270、编写函数fun,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根$,并作为函数值返回。例如若n为100O时,函数值应为:s=153.909064。注意:部分源程序存在考生文件夹下的文件PrOg50.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/prog50.c原始代码:#include#includeinclude#includedoublefun(intn)()main()*主函数*/system(,clsd);print
17、f(s=%nzfun(1000);NONO();)NONO()*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/FI1.E*wf;wf=fopen(a28.out,w);fprintf(wf,s=%nfun(1000);fclose(wf);J/prog50.c参考代码:inti,s=0;for(i=l;in;i+)if(i%3=0&i%7=0)s=s+i;return(sqrt(三);272、编写函数fun,它的功能是:求FibonaCCi数列中大于t的最小的一个数,结果由函数返回。其中FibOnaCCi数列F(n)的定义为:F(0)=0,F(1)=1F(n)=F
18、(n-l)+F(n-2)例如:当t=I000时,函数值为:1597。注意:部分源程序存在考生文件夹下的文件Prog52.C中。请勿改动主函数Inain和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/prog52.c原始代码:include#include#include#includeintfun(ints)main()/*主函数*/intn;system(cls);n=1000;printf(n=%dj=%dnzn,fun(n);NONO();NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FI1.E*fpz*wf;inti,n,s;f
19、p=fopen(ba06.inr);if(fp=NU1.1.)Printf(数据文件ba06.in不存在I);return;)wf=fopen(ba06.out,w);for(i=0;im)m=xl+x2;xl=x2;x2=m;returnm;)274、编写函数FUn,它的功能是:计算并输出下列级数和:1111223n(n+l)例如,当n=10时,函数值为:0.9090910注意:部分源程序存在考生文件夹下的文件PrOg54.c中。请勿改动主函数main和其他函数中的任何内容,仪在函数fun的花括号中填入你编写的若干语句。/prog54.c原始代码:Mndude/include#include
20、doublefun(intn)()main()/*主函数*/system(cls);printf(%n,Jun(10);NONO();)NONO()/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/FI1.E*wf;wf=fopen(a29.out,zw);fprintf(wfz%nzfun(10);fclose(wf);/prog54.c参考代码:nti;doubles=0;for(i=l;i=n;i+)s=s+1.0(i*(i+l);return(三);276、编写函数fun,它的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回。例如:n=120
21、时,函数值为239。注意:部分源程序存在考生文件夹下的文件Prog56.C中。请勿改动主函数Inain和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/prog56.c原始代码:include#include#includeintfun(intn)main()/*主函数*/system(cls);printf(%dnJun(120);NONO();)NONO()/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/FI1.E*wf;wf=fopen(,a30.outzw);fprintf(wt%dn,zfun(120);fclose(wf);J/
22、prog56.c参考代码:intirs=0;for(i=2;in;i+)if(n%i=0)s=s+i;return(三);281、请编写一个函数fun,它的功能是:求出一个MXN二维数组每行元素的和数,并依次放入一个一维数组中传回主函数。例如,若有以下二维数组:6102101617151586418111912O12137则输出:44616423注意:部分源程序存在考生文件夹下的文件Prog61.c中。请勿改动主函数Inain和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/prog61.c原始代码:defineM4#defineN5#includefun(intaNJn
23、tb)main()intxMN,yMJJ;printf(,The%dx%dArray:r,M,N);for(i=0;iM;i+)for(j=O;jN;j+)xij=rand()%20jprintf(%4d,xi11);)printf(n);)fun(xzy);printf(Thesumofeachline:n);for(i=0;iM;i+)printf(%4d,yi);printf(n);N0N0();)NONO()*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/intxMN=32,43,23,54,23,54,5,4,23,9,43,23,33,44,22,23,11,23
24、,32,32,yM,i;FI1.E*wf;fun(x,y);wf=fopen(bsl0.out,w);for(i=0;iM;i+)fprintf(wf,%dnzyi);fclose(wf);)/prog61.c参考代码:(intij,sum=0,n=0;for(i=0;iM;i+)for(j=0;jN;j+)sum+=aij;bn+=sum;sum=O;285、请编写一个函数fun,它的功能是:求出一个2XM整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程序存在考生文件夹下的文件Prog65.C中。请勿改动主函数Inain和其他函数中的任何内容,仅在函数fun的花括号中填入你编
25、写的若干语句。/prog65.c原始代码:*defineM4Jtincludefun(intaM)main()intarr2M=5,8,3,90,76,M12,82);printf(*max=%dn*,fun(arr);NONO();)NONO()*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FI1.E*wf;intarrM=5,8,3,90,76,-4.12,82);Wf=fopen(*bs08.out*,*w*);fprintf(wf,max=%dn”,fun(arr);fclose(wf);)/prog65.c参考代码:(inti,j,base;base=a00;fo
26、r(i=0;i2;i+)for(j=0JMJ+)if(baseaij)base=aij;returnbase;328、程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun(intaN),函数的功能是:使数组右上半三角元素中的值全部置成0。例如:a数组中的值为I197I000a=I238I则返回主程序后a数组中的值应为|200|I456II450I注意:部分源程序存在考生文件夹下的文件PrOgI30.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/prog130.c原始代码:Jtincludesidio.h#includeconi
27、o.hinclude*stdlib.hz,JtdefineN5intfun(intaN)main()(intaNN,i,j:system(*cls*);printfC*Thearray*n*);for(i=0;iN;i+)for(j=0;jN;j+)aij=rand()%20;printf(*%4d*,aij);Printf(n);fun(八);printf(THERESU1.Tn);for(i=0;iN;i+)for(j=0;jN;j+)printf(*%4d*,aij);printf(*n*);NONO();)NONO()(*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
28、FI1.E*rf,*wf;inti,j,a55;rf=fopen(,bg03.in,r);Wf=fopen(*bg03.out*,w);for(i=0;i5;i+)for(j=0;j5;j+)fscanf(rf,*%d,aij);fun(八);for(i=0;i5;i+)for(j=0;j5;j+)fprintf(wf,飞4d”,aij);fprintf(wf,n);)fciose(rf);fclose(wf);/prog130.(参考代码:inti,j;for(i=0;iN;i+)for(j=iJNJ+)aij=0;)329、程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun
29、(intaN),函数的功能是:使数组左下三角元素中的值全部置成0。例如:a数组中的值为I197II097Ia=I238I则返回主程序后a数组中的值应为|008|I456I000注意:部分源程序存在考生文件夹下的文件PrOgI31.c中。请勿改动主函数main和其它函数中的任何内容,仪在函数fun的花括号中填入你编写的若干语句。/progl31.c原始代码:#include,stdio.hincludeconio.h#include,stdlib.h#defineN5intfun(intaN)main()itaNNzij;system(cls);printf(*Thearray*n);for(i
30、=0;iN;i+)for(j=0;jN;j+)aij=rand()%10;printf(%4dzaij);printf(n11);)fun(八);printf(THERESUn);for(i=0;iN;i+)for(j=O;jN;j+)printf(%4d,ai0);printf(n);NONO();NONO()*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FI1.E*rf,*wf;inti,j,a;rf=fopen(bg04.inzr);wf=fopen(bg04.out,w);for(i=0;i5;i+)for(j=0;j5;j+)fscanf(rfz%d,&ai皿);
31、fun(八);for(i=0;i5;i+)(for(j=0;j5;j+)fprintf(wfz,%4d,aij);fprintf(wfz);)fclose(rf);fclose(wf);/progl31.C参考代码:(intij;for(i=0;iN;i+)for(j=O;j=j)aij=0;332、程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:给数组周边元素置0值。例如:a数组中的值为|0111279|00000|19745|09740|a=|20131831|则返回主程序后a数组中的值应为|0131830|05680000001456821591741注
32、意:部分源程序存在考生文件夹下的文件ProgI34.C中。请勿改动主函数Inain和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/prog134.c原始代码:includestdio.hJtincludeconio.hinclude*stdlib.h*ttdefineN5fun(intwN)main()intaNN,i,j;systemCclsz,);printf*Thearray*nz,);for(i=0;iN;i+)for(j=0;jN;j+)aij=rand()%10;printf(*%4d*,aij);Printf(n);)fun(八);printf(zr*TH
33、ERESU1.T*n*);for(i=0;iN;i+)for(j=0;jN;j+)Printf(Md,aij);Printf(n);)NONO();)NONO()*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FI1.E*rf,*wf;inti,j,a55,s;rf=fopen(bg08.in,r);Wf=fopen(*bg08.out*,w);for(i=0;i5;i+)for(j=0;j5;j+)fscanf(rf,%d”,&aij);fun(八);for(i=0;iN;i+)for(j=0;jN;j+)fprintf(wf,Md,aij);fprintf(wf,n);f
34、close(rf);fclose(wf);/prog134.c参考代码:(inti,j;for(i=0;iN;i+)for(j=0;jN;j+)if(i=0)11(i=N-1)11(j=0)11(j=N-1)wij=0;341、请编写一个函数fun,它的功能是:求出一个MXN二维数组每行元素的和数,并依次放入一个一维数组中传回主函数。例如,若有以下二维数组:6102101617151586418111912012137则输出:44616423注意:部分源程序存在考生文件夹下的文件progl58.c中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/
35、prog158.C原始代码:#defineM4#defineN5#includefun(intaNJntb)main()intxMN,yMJzj;printf(The%dx%dArray:n,M,N);for(i=0;iM;i+)for(j=0;jN;j+)xij=rand()%2O;printf(%4d,xij);printf(n);fun(,y);printf(Thesumofeachline:n);for(i=0;iM;i+)printf(%4dzyi);printf(n);NONO();)NONO()*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/intxMN=32,
36、43,23,54,23,54,5,4,23,9,43,23,33,44,22,23,11,23,32,32,yM,i;FI1.E*wf;fun(x,y);wf=fopen(bl58.out,w);for(i=0;iM;i+)fprintf(wf,%dnzyi);fclose(wf);)/prog158.c参考代码:(intiJ,sum=0,n=0;for(i=0jiMJ)for(j=0;jN;j+)sum+=aij;bn+=sum;sum=0;)362、请编写函数FUn,其功能是:计算并输出下列多项式的值:S=I+1/1!+1/2!+1/3!+1/4!+ln!例如,在主函数中从键盘给n输入15
37、,则输出为:s=2.718282。注意:要求n的值大于1但不大于100。部分源程序在考生文件夹下的文件PrOgI89.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/prog189.C原始代码:includedoublefun(intn)main()doubles;intn;printf(,lnputn:);scanf(%d,&n);s=fun(n);printf(s=%n,s);NONO();NONO()(*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/FI1.E*rfz*wf;intn,i;doubleS;r
38、f=fopen(bcl89.inzr);wf=fopen(bcl89.outzw);for(i=0;i10;i+)fscanf(rf,%d,&n);s=fun(n);fprintf(wfz%n,s);)fclose(rf);fclose(wf);/progl89.C参考代码:doublem=1.0;inti;doublep=1.0;for(i=l;i=n;i+)P=P*;m=m+1.0p;)return(m);)/prog27.c参考代码:(inttotal=0;intaverage=0;int*p-below=below;inti=0,j=0;for(i=0;im;i+)total=total+scorei;average=totalm;for(i=0;im;i+)if(scoreiaverage