您好,欢迎访问三七文档
程序改错==================================================题号:7471/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:计算正整数num的各位上的数字之积。例如:若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。------------------------------------------------------*/#includestdio.h#includeconio.hlongfun(longnum){/**********ERROR**********/longk=1do{k*=num%10;/**********ERROR**********/num\=10;/**********ERROR**********/}while(!num);return(k);}voidmain(){longn;printf(\Pleaseenteranumber:);scanf(%ld,&n);printf(\n%ld\n,fun(n));}答案:位置1:longk=1;位置2:num/=10;【或】num=num/10;位置3:}while(num);【或】while(num!=0)题号:7383/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:统计出若干个学生的平均成绩,最低分以及得最低分的人数。例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9,最低高分为56,得最低分的人数为1人。------------------------------------------------------*/#includestdio.hfloatMin=0;intJ=0;floatfun(floatarray[],intn){inti;floatsum=0,ave;Min=array[0];for(i=0;in;i++){if(Minarray[i])Min=array[i];/**********ERROR**********/sum=+array[i];}/**********ERROR**********/ave=sum\n;for(i=0;in;i++)/**********ERROR**********/if(array[i]=Min)J++;return(ave);}voidmain(){floata[10],ave;inti=0;for(i=0;i10;i++)scanf(%f,&a[i]);ave=fun(a,10);printf(ave=%f\n,ave);printf(min=%f\n,Min);printf(Total:%d\n,J);}答案:位置1:sum+=array[i];【或】sum=sum+array[i];位置2:ave=sum/n;位置3:if(array[i]==Min)J++;题号:1698/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。π111-=1--+---+...4357------------------------------------------------------*/#includestdio.h/**********ERROR**********/#includemathvoidfun(){inti=1;/**********ERROR**********/ints=0,t=1,p=1;/**********ERROR**********/while(fabs(t)=1e-4){s=s+t;p=-p;i=i+2;t=p/i;}/**********ERROR**********/printf(pi=%d\n,s*4);}main(){fun();}答案:位置1:#includemath.h【或】#includemath.h位置2:floats=0,t=1,p=1;【或】floats=0,p=1,t=1;【或】floatp=1,s=0,t=1;【或】floatp=1,t=1,s=0;【或】floatt=1,p=1,s=0;【或】floatt=1,s=0,p=1;位置3:while(fabs(t)1e-4)【或】while(0.0001fabs(t))【或】while(1e-4fabs(t))【或】while(fabs(t)0.0001)位置4:printf(pi=%f\n,s*4);题号:7244/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?------------------------------------------------------*/#includestdio.hintage(intn){intc;/**********ERROR**********/if(n=1)c=10;else/***********FOUND***********/c=age(n)+2;return(c);}voidmain(){/**********ERROR**********/printf(%d,age5);}答案:位置1:if(n==1)位置2:c=age(n-1)+2;位置3:printf(%d,age(5));题号:3230/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:从键盘输入的整数中找出最小值,输入负数时结束。--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/#includestdio.hmain(){intmin,a;scanf(%d,&a);min=a;/**********ERROR**********/while(a0){/**********ERROR**********/if(amin)min=a;scanf(%d,&a);}}答案:位置1:while(a=0)位置2:if(amin)min=a;【或】if(a=min)min=a;题号:1900/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:从键盘输入的正整数中找出最大值,输入0时结束。--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/#includestdio.hmain(){intmax=0,a;do{scanf(%d,&a);/**********ERROR**********/if(amax)a=max;}/**********ERROR**********/while(a==0);printf(%d,max);}答案:位置1:if(amax)max=a;位置2:while(a!=0);题号:5672/*------------------------------------------------------【程序改错】--------------------------------------------------------题目:输入两个正整数,并由小到大排列。输入负数或0则重新输入。--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------*/#includestdio.hmain(){inta,b,t;do{scanf(%d,%d,&a,&b);}/**********ERROR**********/while(a=0&&b=0);if(a=b)/**********ERROR**********/t=a;a=b;b=t;printf(a=%d,b=%d,a,b);}答案:位置1:while(a=0||b=0);位置2:{t=a;a=b;b=t;}题号:7282/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:从m个学生的成绩中统计出高于和等于平均分的学生人数,此人数由函数值返回。平均分通过形参传回,输入学生成绩时,用-1结束输入,由程序自动统计学生人数。例如:若输入8名学生的成绩,输入形式如下:80.5607290.59851.58864-1结果为:Thenumberofstudents:4Ave=75.56。------------------------------------------------------*/#includeconio.h#includestdio.h#defineN20intfun(float*s,intn,float*aver){floatav,t;intcount,i;count=0;t=0.0;for(i=0;in;i++)t+=s[i];av=t/n;printf(ave=%f\n,av);for(i=0;in;i++)/**********ERROR**********/if(s[i]av)count++;/**********ERROR**********/aver=av;/**********ERROR**********/returncount}voidmain(){floata,s[30],aver;intm=0,i;printf(\nPleaseentermarks(-1toend):\
本文标题:程序改错C
链接地址:https://www.777doc.com/doc-2150907 .html