程序改错==================================================题号:7471/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:计算正整数num的各位上的数字之积。
例如:若输入:252,则输出应该是:20。
若输入:202,则输出应该是:0。
------------------------------------------------------*/#include <stdio.h>#include <conio.h>long fun (long num){/**********ERROR**********/long k=1do{k*=num%10 ;/**********ERROR**********/num\=10;/**********ERROR**********/}while(!num) ;return (k) ;}void main( ){long n ;printf("\Please enter a number:") ; scanf("%ld",&n) ;printf("\n%ld\n",fun(n)) ;}答案:位置 1:long k=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人。
------------------------------------------------------*/#include "stdio.h"float Min=0;int J=0;float fun(float array[],int n){int i;float sum=0,ave;Min=array[0];for(i=0;i<n;i++){if(Min>array [i]) Min=array [i];/**********ERROR**********/sum=+array [i];}/**********ERROR**********/ave=sum\n;for(i=0;i<n;i++)/**********ERROR**********/if(array [i]=Min) J++;return(ave);}void main( ){float a[10],ave;int i=0;for(i=0;i<10;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。
π 1 1 1- = 1 - - + - - - + ...4 35 7------------------------------------------------------*/#include "stdio.h"/**********ERROR**********/#include "math"void fun(){int i=1;/**********ERROR**********/int s=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:#include "math.h" 【或】 #include <math.h>位置 2:float s=0,t=1,p=1; 【或】 float s=0,p=1,t=1; 【或】 float p=1,s=0,t=1; 【或】 float p=1,t=1,s=0; 【或】 float t=1,p=1,s=0; 【或】 float t=1,s=0,p=1;位置 3:while(fabs(t)>1e-4) 【或】 while(0.0001<fabs(t)) 【或】 while(1e-4<fabs(t)) 【或】while(fabs(t)>0.0001)位置 4:printf("pi=%f\n",s*4);题号:7244/*------------------------------------------------------【程序改错】:只允许修改错误代码,其他代码不允许修改!--------------------------------------------------------功能:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。
问第4个人岁数,他说比第3个人大2岁。
问第三个人,又说比第2人大两岁。
问第2个人,说比第一个人大两岁。
最后问第一个人,他说是10岁。
请问第五个人多大?------------------------------------------------------*/#include"stdio.h"int age(int n){int c;/**********ERROR**********/if(n=1)c=10;else/***********FOUND***********/c=age(n)+2;return(c);}void main(){/**********ERROR**********/printf("%d",age5);}答案:位置 1:if(n==1)位置 2:c=age(n-1)+2;位置 3:printf("%d",age(5));题号:3230/*------------------------------------------------------ 【程序改错】--------------------------------------------------------题目:从键盘输入的整数中找出最小值,输入负数时结束。
--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/#include "stdio.h"main(){int min,a;scanf("%d",&a);min=a;/**********ERROR**********/while (a<0 ){/**********ERROR**********/if(a>min) min=a;scanf("%d",&a);}}答案:位置 1:while(a>=0)位置 2:if(a<min) min=a; 【或】 if(a<=min) min=a;题号:1900/*------------------------------------------------------ 【程序改错】--------------------------------------------------------题目:从键盘输入的正整数中找出最大值,输入0时结束。
--------------------------------------------------------注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/#include "stdio.h"main(){int max=0,a;do{scanf("%d",&a);/**********ERROR**********/if(a>max) a=max;/**********ERROR**********/while(a==0);printf("%d",max);}答案:位置 1:if(a>max) max=a;位置 2:while(a!=0);题号:5672/*------------------------------------------------------ 【程序改错】--------------------------------------------------------题目:输入两个正整数,并由小到大排列。
输入负数或0则重新输入。