《C语言》编程题库.docx
3.编程题(18)236、编写程序,实现矩阵(3行3列)的转置(即行列互换)。例如,输入下面的矩阵:100200300400500600700800900程序输出:100400700200500800300600900注意:部分源程序存在考生文件夹下的文件proglc中。请勿改动主函数Inain和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/progl.c原始代码:include<stdio.h>include<conio.h>intfun(intarray)main()itij;intarray33=100,200z300,400,500z600,700z800,900);for(i=0;i<3;i+)for(j=O;j<3;j+)printf(,'%7d,arrayij);printf("n");)fun(array);printf("Convertedarrayrn");for(i=0;i<3;i+)for(j=0;j<3;j+)printf(',%7d"zarrayiU);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;i<3;i+)for(j=0;j<3;j+)fprintf(wf,"%7dn",arrayij);)fclose(wf);/progl.c参考代码:intfun(intarray33)inti,jjintb33;for(i=0;i<3;i+)for(j=0;j<3;j+)bji=arrayij;for(i=O;i<3;i+)for(j=0;j<3;j+)arrayij=bi11j;)241、请编写函数FUn,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如:二维数组中的值为1 35792 99946 999813570则函数值为61。注意:部分源程序存在考生文件夹下的文件PrOg8.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/prog8.c原始代码:#include<conio.h>Itinclude<stdio.h>#include<stdlib.h>defineM4ftdefineN5intfun(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;i<M;i+)(for(j=0;j<N;j+)printf(*%6d*,aaij);printfn*);y=fun(aa);printf(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;k<10;k+)(for(i=0;i<M;i+)for(j=0;j<N;j+)fscanf(rf,"%d”,aaij);y=fun(aa);fprintf(wf,"%dn”,y);)fclose(rf);fclose(wf);)/prog8.c参考代码:(inti,j,sum=0;for(i=0;i<M;i+)for(j=0;j<N;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原始代码:include<conio.h>include<stdio.h>#include<stdlib.h>voidfun(inta33Jntb33)main()nta33=l,2,3,4,5,6,7,8,9,t33;intij;system("cls');fun(a,t);for(i=0;i<3;i+)(for(j=0;j<3;j+)printf("%7d"ztij);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;i<3;i+)for(j=0;j<3;j+)fprintf(wfz"%7d"ztij);fprintf(wfz"n");fclose(wf);J/prog25.c参考代码:voidfun(inta33,intb33)ntij;for(i=0;i<3;i+)for(j=0;j<3;j+)bij=aij+aji;)254、m个人的成绩存放在SCore数组中,请编写函数FUn,它的功能是:将低于平均分的人数作为函数值返回。例如,当SCOre数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为:10、20、30、40»注意:部分源程序存在考生文件夹下的文件Prog27.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/prog27.c原始代码:#include<conio.h>#include<stdio.h>#include<string.h>include<stdlib.h>intfun(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;i<n;i+)printf("%d"zbelowi);NONO();)NONO()*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/int',n,below10,score10;FI1.E*rf,*wf;rf=fopen("bc04.in,z"r");wf=fopen("bc04.out","w");for(i=O;i<10;i+)for(j=0;j<10;j+)fscanf(rfz"%d",&scorej);n=fun(score,10,below);for(j=0;j<n;j+)fprintf(wf,"%d",belowj);fprintf(wf,"n");)fclose(rf);fclose(wf);)#defineN5intfun(intaNJntn)main()intaNNznzi,j;system("cls");printf("*Thearray*n");for(i=0;i<N;i+)for(j=O;j<N;j+)aij=rand()%10jprintf("%4d,ai0);)printf("n");)don=rand()%10;while(n>=3);printf("n=%4dn,zn);fun(a,n);printf("*THERESU1.T*");for(i=0;i<N;i+)for(j=O;j<N;j+)printf(',%4d",aij);printf("n");)NONO();NONO()*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。FI1.E*rf,*wf;inti,j,n,a55;rf=fopen("bw01.in"z"r");wf=fopen("bw01.out,z"w");for(i=0;i<5;i+)for(j=0;j<5;j+)fscanf(rf,"%d",&aij);fscanf(rf,"%d"z&n);fun(a,n);for(i=0;i<5;i+)for(j=0;j<5;j+)fprintf(wf,%4d"zaij);fprintf(wf,"n");)fclose(rf);fclose(wf);/prog34.c参考代码:(i11ti,j;for(i=O;i<N;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注意:部分源程序存在考生文件夹下的文件PrOg42.c中。请勿改动主函数main和其他函数中的任何内容,仪在函数fun的花括号中填入你编写的若干语句。/prog42.c原始代码:include<conio.h>/include<stdio.h>#include<string.h>#include<stdlib.h>floatfun(intn)()main()