资源描述:
《C语言程序改错——答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序改错--------------------------------------------------------请改正程序中的错误,使它能得出正确的结果。注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/题目1:函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。例如,若给num1和num2分别输入49和21,则输出的最大公约数为7。intfun(inta,intb){intr,t;if(a
2、OUND**********/b=a;/**********FOUND**********/a=t;}r=a%b;while(r!=0){a=b;b=r;/**********FOUND**********/r=a/b;}/**********FOUND**********/returna;}intmain(void){intnum1,num2,a;scanf("%d%d",&num1,&num2);a=fun(num1,num2);printf("themaximumcommondivisoris%d",a);return0;}答案:1).a=b;2).b=t
3、;3).r=a%b;}4).returnb;或return(b);或return(b);题目2:下列给定程序中,函数fun的功能是:判断m是否为素数,若是返回1,否则返回0。主函数的功能是:按每行5个输出1-100之间的全部素数。请改正程序中的4个错误,使它能得出正确的结果。intmain(void){intm,k=0;for(m=1;m<100;m++)if(fun(m)==1){printf("%4d",m);k++;if(k%5==0)printf("");}return0;}/**********FOUND**********/voidfun(intn){i
4、nti,k=1;if(m<=1)k=0;/**********FOUND**********/for(i=1;ii;i++)或for(i=2;i<=m-1;i++)或for(i=2;m-1=>i;i++)3).if(m%i==0)k=0;4).returnk;题目3:函数fun的功能是:输出F
5、abonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。请改正程序中的4个错误,使它能得出正确的结果。voidfun(void){inti;floatf1=1,f2=1,f3;/**********FOUND**********/printf("%8d",f1);/**********FOUND**********/for(i=1;i<=20;i++){f3=f1+f2;/**********FOUND**********/f2=f1;/**********FOUND**********/f3=f2;printf("%
6、8.0f",f1);}printf("");}intmain(void){fun();return0;}答案:1).printf("%8.0f",f1);或printf("%f",f1);2).for(i=1;i<20;i++)或for(i=1;20>i;i++)或for(i=2;i<=20;i++)或for(i=2;20>=i;i++)或for(i=1;i<=19;i++)或for(i=1;19>=i;i++)3).f1=f2;4).f2=f3;题目4:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置。intmain
7、(void){inti,a[10],min,k=0;printf("pleaseinputarray10elements");for(i=0;i<10;i++)/***********FOUND***********/scanf("%d",a[i]);for(i=0;i<10;i++)printf("%d",a[i]);min=a[0];/***********FOUND***********/for(i=3;i<10;i++)/***********FOUND***********/if(a[i]>min){min=a[i];k