1、C语言程序改错范本模板第1题程序改错(5分)(题号:422)/- 【程序改错】-题目:给一个不多于5位的正整数,要求:一、求它是 几位数,二、逆序打印出各位数字。-注意:不可以增加或删除程序行,也不可以更改程序 的结构。-/includestdio.h”main( )/*FOUND*/long a,b,c,d,e,x,scanf(”%ld”,&x);a=x/10000;/*FOUND*/b=x/10000/1000;c=x%1000/100;d=x%100/10;e=x10;/*FOUND*/if (a=0)printf(there are 5, %ld ld %ld %ld ldn”,e,d
2、,c,b,a);else if (b!=0) printf(”there are 4, %ld %ld ld %ldn”,e,d,c,b);else if (c!=0) printf( there are 3,%ld %ld ldn”,e,d,c);else if (d!=0) printf(there are 2, %ld ldn,e,d);else if (e!=0) printf( there are 1,ldn”,e);getch();答案: 1)。 long a,b,c,d,e,x; 2). b=x10000/1000; 或 b=x/100010; 3)。 if (a!=0) 或 i
3、f (!a)第2题程序改错(5分)(题号:411)/*- 【程序改错】-题目:某个公司采用公用电话传递数据,数据是四位的 整数,在传递过程中是加密的,加密规则如下: 每位数字都加上5,然后除以10的余数代替该位数 字。再将新生成数据的第一位和第四位交换,第 二位和第三位交换。举例:输入一个四位整数1234,则结果为:9876。-注意:不可以增加或删除程序行,也不可以更改程序 的结构。-*/include stdio。h”main()int a,i,aa4,t;printf(”输入一个四位整数:);/*FOUND*/scanf(d”,a);aa0=a10;/*FOUND*/aa1=a%10010
4、;aa2=a%1000/100;aa3=a/1000;/*FOUND*/for(i=0;i=3;i+)aai+=5;aai%=10;for(i=0;i=3/2;i+)t=aai;aai=aa3-i;aa3i=t;for(i=3;i=0;i)printf(”d”,aai);getch();第1题程序改错(5分)(题号:253)/- 【程序改错】-题目:输入10个数,要求输出这10个数的平均值-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/float average(float array10) int i; float aver,sum=array0;/*FOUND*/ for(i
5、=0;i10;i+) sum=sum+arrayi; aver=sum/10.0; return(aver);main( ) /*FOUND*/ int score10,aver ; int i; printf(input 10 scores:n”);for(i=0;i10;i+)/*FOUND*/ scanf(%f”, score);printf(”n”);/*FOUND*/aver=average(score10);printf(average score is 5.2f,aver);答案: 1). for(i=1;i10;i+) 或 for(i=1;i=9;i+) 2)。 float s
6、core10,aver; 或 float aver,score10; 3). scanf(f”, scorei); 或 scanf(f”, score+i); 4)。 aver=average(score);第2题程序改错(5分)(题号:414)/*- 【程序改错】-题目:输入一行字符,分别统计出其中英文字母、空 格、数字和其它字符的个数。-注意:不可以增加或删除程序行,也不可以更改程序 的结构。-/#include stdio.h”main()char c;int letters=0,space=0,digit=0,others=0;printf(”please input some cha
7、ractersn”);/*FOUND*/while((c=getchar()=n)/*FOUND*/if(c=ac=z&c=A&c=Z)letters+;/*FOUND*/else if(c=! )space+;else if(c=0&c=9)digit+;elseothers+;printf(all in all:char=%d space=%d digit=%d others=%dn”,letters,space,digit,others);答案: 1). while(c=getchar()!=n) 2). if( c=a&c=z | c=A&c=Z ) 或 if( c=zc=a | c=
8、A&c=Z ) 或 if( c=a| 3)。 else if(c= )第3题程序改错(5分)(题号:250)/*- 【程序改错】-题目:以下程序输出前六行杨辉三角形,即 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 -注意:不可以增加或删除程序行,也不可以更改程序的结构。-/main( ) static int a66; int i,j,k;/*FOUND*/ for(i=1;i=6;i+) for(k=0;k102*i;k+) printf( ”); for(j=0;j=i;j+) /*FOUND*/ if(j=0&j=i) aij=1; else /*FOUND*/ aij=
9、ai1j1+aij1; printf( ); printf(3d”,aij); /*FOUND*/ printf(t); 答案: 1). for(i=0;i6;i+) 或 for(i=0;i=5;i+) 2). if(j = 0 | j = i) 3). aij=ai-1j+ai-1j1; 或 aij=ai1j-1+ai1j; 4). printf(”n”);答案: 1)。 scanf(d,a); 2). aa1=a100/10; 或 aa1=a/10%10; 3)。 for(i=0;i=3;i+) 或 for(i=0;i4;i+)第1题程序改错(5分)(题号:3)/*- 【程序改错】-题目:
10、用起泡法对10个整数从小到大排序。 程序中共有4条错误语句,请改正错误.-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/void sort(int x,int n) int i,j,k,t; for(i=0;in-1;i+)/*FOUND*/ for(j=0;jj;j+) 或 for(j=0;jx j + 1 ) 或 if(x j + 1 xj) 3). scanf(%d,ai); 或 scanf(%d”,a+i); 4)。 sort(a,n); 或 sort(&a0,n);第2题程序改错(5分)(题号:431)/*- 【程序改错】-题目:编写函数fun求1000以内所有8的倍数
11、之和。-注意:不可以增加或删除程序行,也不可以更改程 序的结构。-/include”stdio.h”define N 1000main()int sum; sum=fun(8); printf(”%d以内所有%d的倍数之和为:dn”,N,8,sum); getch();int fun(int m)/*FOUND*/int s=0;i; /*FOUND*/ for(i=1;iN;i+)/*FOUND*/if(i/m=0) s+=i; return s; 答案: 1). int s=0 , i ; 2)。 for(i=1;iN;i+) 3). if(im=0)第3题程序改错(5分)(题号:444)
12、/*- 【程序改错】-题目:求100以内(包括100)的偶数之和。-注意:不可以增加或删除程序行,也不可以更改程序的结构.-*/#include stdio。h”main()/*FOUND*/int i,sum=1;/*FOUND*/for(i=2;i=100;i+=1)sum+=i;/*FOUND*/printf(Sum=%d n;sum);getch();答案: 1). int i,sum=0; 2)。 for(i=2;i=100;i+=2) 3)。 printf(”Sum=%d n,sum);第1题程序改错(5分)(题号:14)/- 【程序改错】-题目:函数fun的功能是:求1到20的阶
13、乘的和。 请改正程序中的错误,使它能得出正确的结果。-注意:不可以增加或删除程序行,也不可以更改程序的结构.-/fun() int n,j; float s=0。0,t=1.0; for(n=1;n=20;n+) /*FOUND*/ s=1; for(j=1;j=n;j+)/*FOUND*/ t=t*n;/*FOUND*/ s+t=s; /*FOUND*/ printf(”jiecheng=%dn,s);main() fun();答案: 1). t=1; 或 t=1.0; 2)。 t= t j ; 或 t=j; 或 t=j*t; 3)。 s= s + t ; 或 s+=t; 或 s=t+s;
14、4)。 printf(”jiecheng=%fn”,s);第2题程序改错(5分)(题号:396)/- 【程序改错】-题目:请编写一个函数fun,函数的功能是:统计出若干 个学生的平均成绩,最低分以及得最低分的人数。 例如,输入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,
15、ave; Min=array0;for(i=0;iarray i) Min=array i;/*FOUND*/sum=+array i; /*FOUND*/ ave=sumn; for(i=0;in;i+)/*FOUND*/if(array i=Min) J+;return(ave);main( ) float a10,ave; int i=0; for(i=0;i10;i+) scanf(%f,&ai); ave=fun(a,10); printf(”ave=%fn”,ave); printf(”min=fn,Min); printf(”Total:%dn”,J); getch();答案:
16、1). sum+=arrayi; 或 sum=sum+array i; 2)。 ave=sum/n; 3). if(arrayi=Min) J+; 或 if(Min=arrayi) J+;第3题程序改错(5分)(题号:444)/- 【程序改错】-题目:求100以内(包括100)的偶数之和。-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/include ”stdio。h”main()/*FOUND*/int i,sum=1;/*FOUND*/for(i=2;i=100;i+=1)sum+=i;/*FOUND*/printf(Sum=d n;sum);getch();答案: 1). int i,sum=0; 2)。 for(i=2;i=100;i+=2) 3). printf(”Sum=d n,sum);第1题程序改错(5分)(题号:14)/- 【程序改错】-题目:函数fun的功能是:求1到20的阶乘的和。 请改正程序中的错误,使它能得出正确的结果。-注意:不可以增加或删除程序行,也不可以更改程序的结构.-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1