C语言程序改错范本模板.docx
- 文档编号:24312621
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:74
- 大小:40.64KB
C语言程序改错范本模板.docx
《C语言程序改错范本模板.docx》由会员分享,可在线阅读,更多相关《C语言程序改错范本模板.docx(74页珍藏版)》请在冰豆网上搜索。
C语言程序改错范本模板
〖第1题〗『程序改错』(5分)(题号:
422)
/*-—-----—---——----——-——---——------—-——-—-——-——-——--——--
【程序改错】
------——-—-——-—-—--------—--—-—————--—-—--——---————-—-—-
题目:
给一个不多于5位的正整数,要求:
一、求它是
几位数,二、逆序打印出各位数字。
----—----————---—-——-—--————-——--—-----——-——--—-——-—----
注意:
不可以增加或删除程序行,也不可以更改程序
的结构。
—--——--—-—--—-—-—---—————---—-—-———————---———-——---———*/
#include"stdio.h”
main()
{
/**********FOUND**********/
longa,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=x%10;
/**********FOUND**********/
if(a==0)
printf("thereare5,%ld%ld%ld%ld%ld\n”,e,d,c,b,a);
elseif(b!
=0)printf(”thereare4,%ld%ld%ld%ld\n”,e,d,c,b);
elseif(c!
=0)printf("thereare3,%ld%ld%ld\n”,e,d,c);
elseif(d!
=0)printf("thereare2,%ld%ld\n",e,d);
elseif(e!
=0)printf("thereare1,%ld\n”,e);
getch();
}
答案:
1)。
longa,b,c,d,e,x;
2).b=x%10000/1000;或b=x/1000%10;
3)。
if(a!
=0)或if(!
a)
〖第2题〗『程序改错』(5分)(题号:
411)
/*————-—-———----—-—-———----——--—-—----———----—-——-—---——
【程序改错】
--———-—————-——---——-—-——--———-————-—----——----—-————--——
题目:
某个公司采用公用电话传递数据,数据是四位的
整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,然后除以10的余数代替该位数
字。
再将新生成数据的第一位和第四位交换,第
二位和第三位交换。
举例:
输入一个四位整数1234,则结果为:
9876。
—-—--------————---——-—---—-—----—-——-——-----——---————--—
注意:
不可以增加或删除程序行,也不可以更改程序
的结构。
-—---—--———---—————---—---——-—--———----—-———-——-—-————*/
#include"stdio。
h”
main()
{inta,i,aa[4],t;
printf(”输入一个四位整数:
");
/**********FOUND**********/
scanf("%d”,&a);
aa[0]=a%10;
/**********FOUND**********/
aa[1]=a%100%10;
aa[2]=a%1000/100;
aa[3]=a/1000;
/**********FOUND**********/
for(i=0;i〈=3;i++)
{aa[i]+=5;
aa[i]%=10;
}
for(i=0;i<=3/2;i++)
{t=aa[i];
aa[i]=aa[3-i];
aa[3—i]=t;
}
for(i=3;i〉=0;i——)
printf(”%d”,aa[i]);
getch();
}
〖第1题〗『程序改错』(5分)(题号:
253)
/*————--—-—-—-—-——-—————-----—---—----—-—---—-——-—--—-——
【程序改错】
----—————--——---———--—---——————--———-———---—————-————-——
题目:
输入10个数,要求输出这10个数的平均值
--—-------———--—--—---—-—--———-—-------—-———--—-————-——-
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
———————---—-—-—--——-—-———————-——-—-—----—-—------———-—*/
floataverage(floatarray[10])
{
inti;
floataver,sum=array[0];
/***********FOUND***********/
for(i=0;i<10;i++)
sum=sum+array[i];
aver=sum/10.0;
return(aver);
}
main()
{
/***********FOUND***********/
intscore[10],aver;
inti;
printf("input10scores:
\n”);
for(i=0;i〈10;i++)
/***********FOUND***********/
scanf("%f”,score);
printf(”\n”);
/***********FOUND***********/
aver=average(score[10]);
printf("averagescoreis%5.2f",aver);
}
答案:
1).for(i=1;i〈10;i++)或for(i=1;i〈=9;i++)
2)。
floatscore[10],aver;或floataver,score[10];
3).scanf("%f”,&score[i]);或scanf("%f”,score+i);
4)。
aver=average(score);
〖第2题〗『程序改错』(5分)(题号:
414)
/*—--—-—————------—————-—-———---—-———-—--——-—-————-———-—
【程序改错】
--——-—-———---—--——-—--————-——————--——-——---——-—————-—---
题目:
输入一行字符,分别统计出其中英文字母、空
格、数字和其它字符的个数。
-——-—-———-——---—-—-————-———————---——-—--————--—————-——-—
注意:
不可以增加或删除程序行,也不可以更改程序
的结构。
——-——--—————---——---—--—-————--—-———-——-——-——--——-——-—*/
#include"stdio.h”
main()
{charc;
intletters=0,space=0,digit=0,others=0;
printf(”pleaseinputsomecharacters\n”);
/**********FOUND**********/
while((c=getchar())==’\n’)
{
/**********FOUND**********/
if(c〉=’a'&&c<='z’&&c〉='A’&&c〈='Z’)
letters++;
/**********FOUND**********/
elseif(c=!
'')
space++;
elseif(c〉=’0’&&c〈='9’)
digit++;
else
others++;
}
printf("allinall:
char=%dspace=%ddigit=%dothers=%d\n”,letters,
space,digit,others);
}
答案:
1).while((c=getchar())!
=’\n’)
2).if(c〉='a’&&c<='z'||c〉='A’&&c〈=’Z')或if(c<='z’&&c〉=’a'||c〉='A'&&c〈='Z')或if(c<='z’&&c>=’a’||
3)。
elseif(c==’')
〖第3题〗『程序改错』(5分)(题号:
250)
/*——————-—------——-—-—-—-—--————-—---——-—--—————--—---—-
【程序改错】
—--—--————--—--——--—-—————-—-—-—-———--—-—-————--——--——-—
题目:
以下程序输出前六行杨辉三角形,即
1
11
121
1331
14641
…………
…………
-————------———-—-——-------———-----———--—————-——---———-—-
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
—--————-——--—-—--—--------——--—--—-—-—--—-—-—---—--—-—*/
main()
{
staticinta[6][6];
inti,j,k;
/***********FOUND***********/
for(i=1;i〈=6;i++)
{for(k=0;k〈10—2*i;k++)
printf("”);
for(j=0;j<=i;j++)
{
/***********FOUND***********/
if(j==0&&j==i)
a[i][j]=1;
else
/***********FOUND***********/
a[i][j]=a[i—1][j—1]+a[i][j—1];
printf("");
printf("%—3d”,a[i][j]);
}
/***********FOUND***********/
printf("\t");
}
}
答案:
1).for(i=0;i〈6;i++)或for(i=0;i<=5;i++)
2).if(j==0||j==i)
3).a[i][j]=a[i-1][j]+a[i-1][j—1];或a[i][j]=a[i—1][j-1]+a[i—1][j];
4).printf(”\n”);
答案:
1)。
scanf("%d",&a);
2).aa[1]=a%100/10;或aa[1]=a/10%10;
3)。
for(i=0;i<=3;i++)或for(i=0;i<4;i++)
〖第1题〗『程序改错』(5分)(题号:
3)
/*-————---—--———--——-—---—————-———---———————-———--—-—-——
【程序改错】
—-—----——————-—--———-—————--—-—————-——----—————-—-—-——--
题目:
用起泡法对10个整数从小到大排序。
程序中共有4条错误语句,请改正错误.
---————-——---————-—--—--------—----—---————---—-—-—-————
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
—--—-—————--—---—-----—-————-——-—-—--——---—----—---—--*/
voidsort(intx[],intn)
{
inti,j,k,t;
for(i=0;i〈n-1;i++)
/**********FOUND**********/
for(j=0;j /**********FOUND**********/ if(x[i]〉x[i+1]) {t=x[j];x[j]=x[j+1];x[j+1]=t;} } main() { inti,n,a[100]; printf("pleaseinputthelengthofthearray: \n"); scanf("%d",&n); for(i=0;i〈n;i++) /**********FOUND**********/ scanf(”%d",a[i]); /**********FOUND**********/ sort(n,a); printf(”outputthesortedarray: \n"); for(i=0;i〈=n—1;i++) printf("%5d”,a[i]); printf("\n”); } 答案: 1)。 for(j=0;j〈n-1—i;j++)或for(j=0;n-1—i>j;j++)或for(j=0;j 2)。 if(x[j]>x[j+1])或if(x[j+1]〈x[j]) 3).scanf("%d",&a[i]);或scanf("%d”,a+i); 4)。 sort(a,n);或sort(&a[0],n); 〖第2题〗『程序改错』(5分)(题号: 431) /*———--——--——————————--—-—-—-—-——--—-————--—-—-———--—-—- 【程序改错】 -—---——---—--—----——-—-———-————--————----—---——--—-——--— 题目: 编写函数fun求1000以内所有8的倍数之和。 ——-———---—--—---——-—-——-—--------—--——-—--—---——-----—-— 注意: 不可以增加或删除程序行,也不可以更改程 序的结构。 ----——-—-——--——-—-—-—--—-—————-———--—--————-————----—-*/ #include”stdio.h” #defineN1000 main() {intsum; sum=fun(8); printf(”%d以内所有%d的倍数之和为: %d\n”,N,8,sum); getch(); } intfun(intm) { /**********FOUND**********/ ints=0;i; /**********FOUND**********/ for(i=1;i〉N;i++) /**********FOUND**********/ if(i/m==0) s+=i; returns;} 答案: 1).ints=0,i; 2)。 for(i=1;i 3).if(i%m==0) 〖第3题〗『程序改错』(5分)(题号: 444) /*——-———-———————-—---——-—--—-——-——-—--—---———--——-—---—- 【程序改错】 ---—--—-——-—---—--———---—-—-—-—-———————-——--——-———-——-—— 题目: 求100以内(包括100)的偶数之和。 ----—-----—----——-—--————--—-—--—----——-——————--—--——-—— 注意: 不可以增加或删除程序行,也不可以更改程序的结构. --——————---—-——-—-——--—-———-——---—--—--—-———-—-——-—-——*/ #include"stdio。 h” main() { /**********FOUND**********/ inti,sum=1; /**********FOUND**********/ for(i=2;i〈=100;i+=1) sum+=i; /**********FOUND**********/ printf("Sum=%d\n";sum); getch(); } 答案: 1).inti,sum=0; 2)。 for(i=2;i<=100;i+=2) 3)。 printf(”Sum=%d\n",sum); 〖第1题〗『程序改错』(5分)(题号: 14) /*-——-—-—---—————-——----—---—--——--——-———----——--—--———— 【程序改错】 —--——-——----———————--—---——-———---——---———-—-—---—-—---— 题目: 函数fun的功能是: 求1到20的阶乘的和。 请改正程序中的错误,使它能得出正确的结果。 -—---—--——----—-————————-——-—-——---—-—---——-——---—------ 注意: 不可以增加或删除程序行,也不可以更改程序的结构. --—----—-—————----—-—-—---———----———-—-——--—————-——--—*/ fun() { intn,j; floats=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=%d\n",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; 4)。 printf(”jiecheng=%f\n”,s); 〖第2题〗『程序改错』(5分)(题号: 396) /*—-——-——-—-——-————-—---—-—--—-——-————--———-—--—--——-——- 【程序改错】 ——-—--—---——--———-—-——--—-—————----——-————-—————----—-—— 题目: 请编写一个函数fun,函数的功能是: 统计出若干 个学生的平均成绩,最低分以及得最低分的人数。 例如,输入10名学生的成绩分别为92,87,68,56, 92,84,67,75,92,66,则输出平均成绩为77。 9, 最高分为56,得最高分的人数为1人。 ----——-—-———----—--—--———-—————----—-——-—-——-—------—-—— 注意: 不可以增加或删除程序行,也不可以更改程序的结构。 --———-———————-—-—-—----—--——————-----———-———--—----—-—*/ #include"stdio。 h” floatMin=0; intJ=0; floatfun(floatarray[],intn) { inti;floatsum=0,ave; Min=array[0]; for(i=0;i {if(Min>array[i])Min=array[i]; /**********FOUND**********/ sum=+array[i];} /**********FOUND**********/ ave=sum\n; for(i=0;i /**********FOUND**********/ if(array[i]=Min)J++; return(ave); } main() { floata[10],ave; inti=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); getch(); } 答案: 1).sum+=array[i];}或sum=sum+array[i];} 2)。 ave=sum/n; 3).if(array[i]==Min)J++;或if(Min==array[i])J++; 〖第3题〗『程序改错』(5分)(题号: 444) /*—---—-——--———--——-——----—--—-----—-——-—--———--———----— 【程序改错】 ——-—--————-—-—-——-——————-—-—-------—————--—-—--——--————- 题目: 求100以内(包括100)的偶数之和。 --—--—---—------——-————————-——----———-—--—----————-—-—-— 注意: 不可以增加或删除程序行,也不可以更改程序的结构。 ---——-—-——--——---————————-——-———---———--—-——--—-————--*/ #include”stdio。 h” main() { /**********FOUND**********/ inti,sum=1; /**********FOUND**********/ for(i=2;i<=100;i+=1) sum+=i; /**********FOUND**********/ printf("Sum=%d\n";sum); getch(); } 答案: 1).inti,sum=0; 2)。 for(i=2;i〈=100;i+=2) 3).printf(”Sum=%d\n",sum); 〖第1题〗『程序改错』(5分)(题号: 14) /*---————--——-—---———------——-———----—------—-——----———- 【程序改错】 -—---—-—-————---—--——-———-—-—————-——----——--—-—-—-————-- 题目: 函数fun的功能是: 求1到20的阶乘的和。 请改正程序中的错误,使它能得出正确的结果。 -—----——-—--————-—-————----——-——-——--—-——-——--—-—-—————— 注意: 不可以增加或删除程序行,也不可以更改程序的结构. --—--—-————-——-——-—-—---————--
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 改错 范本 模板
![提示](https://static.bdocx.com/images/bang_tan.gif)