《《C语言》改错题库.docx》由会员分享,可在线阅读,更多相关《《C语言》改错题库.docx(40页珍藏版)》请在优知文库上搜索。
1、2.改错题(50)51、在考生文件夹下给定的程序InOCli1.C中,fun函数的功能是:先从键盘上输入个3行3列矩阵的各个元素的值,然后输出主对角线元素之积。请改正程序中的错误,或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*modi1.c*/#indudeintfun()inta33zsum;itij;*founcj*/sum=0;for(i=0;i3;i+)for(j=0;j3;j+)*founcj*/scanf(%daij);)for(i=0;i3;i+)sum=sum*aii;printf(,Sum=%d
2、n,sum);)main()fun();/modil.c参考答案:*foupd*/sum=l;*founc*/scanf(%d,aij);52、考生文件夹下的给定程序modi2.c的功能是:读入一个整数k(2WkW10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数:2310,则应输出:2、3、5、7、11。请改正程序中的语法错误,使程序能得出正确的结果。注意:不要改动Inain函数,不得增行或删行,也不得更改程序的结构!*modi2.c*/#includeconio.h#includestdio.h#includestdlib.h*Isprimefintn);intizm
3、;m=l;for(i=2;in;i+)*found*/if!(n%i)m=0;break;return(m);)main()intj;system(cls);printf(nPleaseenteranintegernumberbetween2and100OOSCanf(%d,&k);printf(nnTheprimefactor(三)of%dis(are):,k);for(j=2;j=k;j+)if(!(k%j)&(ISPrime(j)printf(n%4dJ);printf(n);)/modi2.c参考答案:*found*/lsprime(n)*found*/if(n%i)53、在考生文件夹
4、下的给定程序modi3.c中,函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*modi3c*/#include#includeftdefineMAX1.INE20fun(char*pstr6)itij;char*p;for(i=0;i5;i+)for(j=i+l;jO)p=*(pstr+i);*found*/*(pstr+i)=pstr+j;*(pstr+j)=p;)main()inti;char*pstr6,str6MAX1.INE;system(cls);for(
5、i=0;i6;i+)pstri=stri;printf(nEnter6string(lstringateachline):n);for(i=0;i6;i+)scanf(%szpstri);fun(pstr);printf(Thestringsaftersorting:n);for(i=0;iO)*/*found*(pstr+i)=*(pstr+j);54、在考生文件夹下的给定程序modi4.c中,函数FUn的功能是:求k!(k13),所求阶乘的值作为函数值返回。例如:若k=10,则应输出:3628800请改正程序中的错误,使它能得出正确的结果。注意:不要改动Inain函数,不得增行或删行,也不
6、得更改程序的结构!*modi4.c*/#include#includeincludelongfun(intk)/*fourd*/ifk0return(k*fun(k-l);/*found*/elseif(k=0)return11.;)main()intk=10;SyStCm(cls);Printf(%d!=%ldn”,k,fun(k);)7modi4.c参考答案:*fourd*/if(k0)/*found*/elseif(k=0)56、在考生文件夹下的给定程序Inodi6.c中,函数fun的功能是:实现两个整数的交换.例如给a和b分别输入:60和65,输出为:a=65b=60请改正程序中的错误
7、,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*modi6.c*/#include#include/*foundvoidfun(intazb)intt;/*foundt=b;b=a;a=t;*/*本*/)main()intazb;printf(Entera/b:);scanf(%d%d/&az&b);fun(&a,&b);printf(a=%db=%dn,a,b);)/modi6.c参考答案:/*木*found*4c*4c*/voidfun(int*ajnt*b)/*found*/t=*b;*b=*a;*a=t;57、在考生文件夹下的给定程序modi7
8、.c中,函数FUn的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。请改正程序中的错误,使它能得出正确的结果。注意:不要改动Inain函数,不得增行或删行,也不得更改程序的结构!*modi7.c*/#includeftinclude#includeintfun(intk)intm=0,mc=0,j;while(k=2)&(mc10)*found*/if(k%13=O)(k%17=0)m=m+k;mc+;k-;)returnm;*found*/main()system(,cls);printf(%dn,fun(500)
9、;)/modi7.c参考答案:*found*/if(k%13=0)(k%17=0)4c*4c*found*4c*4c/)60、在考生文件夹下的给定程序Inodil0.c中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。请改正程序中的错误,使它能得出正确结果。注意:不要改动Inain函数,不得增行或删行,也不得更改程序的结构!*modi10c*/#include#defineN20voidfun(inta,intn)iti,j,t,p;*/for(j=O;jn-l;j+)/*foundP=J*/for(i=j;in;i+)if(aiap)/*foundP=j;t=ap;
10、ap=aj;aU=t;)main()intaN=9,6,8,3,-l,i,m=5;Printf(排序前的数据:);for(i=0;im;i+)printf(%d,ai);printf(n);fun(a,m);Printf(排序后的数据:);for(i=0;im;i+)printf(%d,ai);printf(n);/modi10.c参考答案:*found*/P=j;/*found*/63、在考生文件夹下的给定程序modil3.c中,函数FUn的功能是:根据整型形参m的值,计算如下公式的值。1112233mm例如:若In中的值为:5,则应输出:0.536389o请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*modi13.c*/include#includeincludedoublefun(intm)doubley=1.0;inti;*found*/*found*4c*Iy-=l(i*i);return(y);)main()intn=5;system(cls);printf(nTheresultis%lfn,fun(n);/modi13.c参考答案:*foundfor(i=2;i=m;i+)*found*/*