C语言程序改错练习_第1页
C语言程序改错练习_第2页
C语言程序改错练习_第3页
C语言程序改错练习_第4页
C语言程序改错练习_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 共18题第2题 (4.0分) 题号:406 难度:中 第2章/*- 程序改错-功能:有1、2、3、4个数字,能组成多少个互不一样且无重复数 字的三位数?都是多少?-*/#include <stdio.h>main() int i,j,k; /*FOUND*/ printf("n") /*FOUND*/ for(i=1;i<=5;i+) for(j=1;j<5;j+) for (k=1;k<5;k+) /*FOUND*/ if (i!=k|i!=j|j!=k) printf("%d,%d,%dn",i,j,k); 答案:=(

2、答案1)=printf("n");=(答案2)=for(i=1;i<5;i+)=或=for(i=1;i<=4;i+)=(答案3)=if (i!=k&&i!=j&&j!=k)第9题 (4.0分) 题号:443 难度:中 第2章/*- 程序改错 -功能:企业发放的奖金根据利润提成。利润(i)低于或等于10万元 时,奖金可提10%;利润高于10万元,低于20万元时,低于 10万元的部分按10%提成,高于10万元的部分,可可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%;40万 到60万之间时高于40万元的部分,可提

3、成3%;60万到100万 之间时,高于60万元的部分,可提成1.5%,高于100万元时, 超过100万元的部分按1%提成,从键盘输入当月利润i,求 应发放奖金总数?-*/#include <stdio.h>main() long int i; double bonus1,bonus2,bonus4,bonus6,bonus10,bonus; /*FOUND*/ scanf("%ld"&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonu

4、s4+200000*0.3; bonus10=bonus6+400000*0.15; /*FOUND*/ if(i>100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03; else if(i<=1000000) bonus=bonus6+(i-600000)*0.015; else bo

5、nus=bonus10+(i-1000000)*0.01; /*FOUND*/ printf("bonus=%d",bonus)答案:=(答案1)=scanf("%ld",&i);=(答案2)=if(i<=100000)=(答案3)=printf("bonus=%d",bonus);第29题 (4.0分) 题号:435 难度:中 第2章/*- 程序改错-功能:输入n,计算s=1+1+2+1+2+3+1+2+3+4+.+1+2+3+4+.+n-*/#include<stdio.h>void main() /*F

6、OUND*/ int i,s;p,n; printf("Enter n:n"); /*FOUND*/ scanf("%d",n); /*FOUND*/ for(s=p=0,i=1;i<n;i+) s+=p+=i; printf("S= %dn",s);答案:=(答案1)=int i,s,p,n;=(答案2)=scanf("%d",&n);=(答案3)=for(s=p=0,i=1;i<=n;i+)第30题 (4.0分) 题号:556 难度:中 第2章/*-程序改错-题目:下列程序的功能为:按下列公

7、式计算并输出x的值。其中a和b的值由键盘输入。 请纠正程序中存在的错误,使程序实现其功能。公式: x=2ab/(a+b)2(平方)-*/#include <stdio.h> main() int a,b; double x;/*FOUND*/ scanf("%d,%d",a,b);/*FOUND*/ x=2ab/(ab)(ab);/*FOUND*/ printf("x=%dn",x);答案:=(答案1)=scanf("%d,%d",&a,&b);=(答案2)=x=2.0*a*b/(a+b)*(a+b);=(

8、答案3)=printf("x=%fn",x);第40题 (4.0分) 题号:411 难度:难 第2章/*- 程序改错-功能:一球从100米高度自由落下,每次落地后反跳回原高度的 一半;再落下,求它在第10次落地时,共经过多少米? 第10次反弹多高?-*/#include<stdio.h>main() /*FOUND*/ float sn=100.0;hn=sn/2; int n; /*FOUND*/ for(n=2;n<10;n+) sn=sn+2*hn; /*FOUND*/ hn=hn%2; printf("the total of road

9、is %fn",sn); printf("the tenth is %f metern",hn);答案:=(答案1)=float sn=100.0,hn=sn/2;=(答案2)=for(n=2;n<=10;n+)=或=for(n=2;n<11;n+)=(答案3)=hn=hn/2;第42题 (4.0分) 题号:446 难度:中 第1章/*-程序改错-功能:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。-*/#include <stdio.h>main() char c; int letters=0,space=0,digi

10、t=0,others=0; printf("please input some charactersn"); /*FOUND*/ while(c=getchar()='n') /*FOUND*/ if(c>='a'&&c<='z'&&c>='A'&&c<='Z') letters+; /*FOUND*/ else if(c=!' ') space+; else if(c>='0'&

11、;&c<='9') digit+; else others+; 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<

12、='z'&&c>='a' | c>='A'&&c<='Z' )=或=if( c <= 'z' && c >= 'a' | c >= 'A' && c<='Z' )=(答案3)=else if(c=' ')第49题 (4.0分) 题号:433 难度:中 第2章/*- 程序改错-功能:学习使用按位或 | 。-*/#include <stdio.h

13、>main() /*FOUND*/ int a b; a=077; b=a|3; /*FOUND*/ printf("40: The a & b(decimal) is %d n",&b); /*FOUND*/ b|=7 printf("40: The a & b(decimal) is %d n",b);答案:=(答案1)=int a,b;=(答案2)=printf("40: The a & b(decimal) is %d n",b);=(答案3)=b|=7;=或=b=b|7;第61题 (4.

14、0分) 题号:441 难度:中 第2章/*- 程序改错-功能:请输入星期几的第一个字母来判断一下是星期几,如果第一 个字母一样,则继续判断第二个字母。-*/#include "conio.h"#include <stdio.h>void main() char letter; printf("please input the first letter of somedayn"); /*FOUND*/ while (letter=getch()='Y') switch (letter) case 'S': pri

15、ntf("please input second lettern"); if(letter=getch()='a') printf("saturdayn"); else if (letter=getch()='u') printf("sundayn"); else printf("data errorn"); break; case 'F': printf("fridayn"); break; case 'M': printf(&q

16、uot;mondayn"); break; case 'T': printf("please input second lettern"); /*FOUND*/ if(letter=getch()!='u') printf("tuesdayn"); else if (letter=getch()='h') printf("thursdayn"); else printf("data errorn"); /*FOUND*/ break case 'W&

17、#39;: printf("wednesdayn"); break; default: printf("data errorn"); 答案:=(答案1)=while (letter=getch()!='Y')=(答案2)=if(letter=getch()='u')=(答案3)=break;第63题 (4.0分) 题号:434 难度:中 第2章/*- 程序改错-功能:以下程序能求出1*1+2*2+.+n*n<=1000中满足条件的 最大的n。-*/#include <stdio.h>#include &q

18、uot;string.h"main() int n,s; /*FOUND*/ s=n=0; /*FOUND*/ while(s>1000) +n; s+=n*n; /*FOUND*/ printf("n=%dn",&n-1);答案:=(答案1)=s=n=0;=(答案2)=while(s<=1000)=(答案3)=printf("n=%dn",n-1);第64题 (4.0分) 题号:4 难度:易 第1章/*- 程序改错-功能:在一个已按升序排列的数组中插入一个数,插入后,数 组元素仍按升序排列。-*/#include <

19、stdio.h>#define N 11main() int i,number,aN=1,2,4,6,8,9,12,15,149,156; printf("please enter an integer to insert in the array:n"); /*FOUND*/ scanf("%d",&number) printf("The original array:n"); for(i=0;i<N-1;i+) printf("%5d",ai); printf("n");

20、 /*FOUND*/ for(i=N-1;i>=0;i-) if(number<=ai) /*FOUND*/ ai=ai-1; else ai+1=number; /*FOUND*/ exit; if(number<a0) a0=number; printf("The result array:n"); for(i=0;i<N;i+) printf("%5d",ai); printf("n");答案:=(答案1)=scanf("%d",&number);=(答案2)=for(i=N-

21、2;i>=0;i-)=或=for(i=N-2;0<=i;i-)=(答案3)=a i + 1 =ai;=(答案4)=break;第70题 (4.0分) 题号:408 难度:中 第2章/*- 程序改错-功能:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5-*/#include <stdio.h>main() int n,i; printf("nplease input a number:n"); scanf("%d",&n); printf("%d=",n); for(i=2;i<

22、=n;i+) /*FOUND*/ while(n=i) /*FOUND*/ if(n%i=1) printf("%d*",i); /*FOUND*/ n=n%i; else break; printf("%d",n);答案:=(答案1)=while(n!=i)=(答案2)=if(n%i=0)=或=if (!(n%i)=(答案3)=n=n/i;第76题 (4.0分) 题号:553 难度:中 第1章/*-程序改错-题目:列程序的功能为:已知圆锥半径r和高h,计算圆锥体积v。请纠正程序中存在错误, 使程序实现其功能。-*/#include <stdio.

23、h>main() /*FOUND*/float r=10,h=5;/*FOUND*/v=1/3*3.14159*r2*h;/*FOUND*/printf("v=%dn",v);答案:=(答案1)=double r=10,h=5,v;=或=float r=10,h=5,v;=(答案2)=v=1.0/3*3.14159*r*r*h;=(答案3)=printf("v=%fn",v);第79题 (4.0分) 题号:551 难度:中 第1章/*-程序改错-题目:下列程序从键盘输入一个数n,求1n之和并输出。请纠正程序中存在错误,使程 序实现其功能。 如输入

24、5 输出:The sum from 1 to 5 is 15-*/#include <stdio.h>main() int i=1,n;/*FOUND*/ float sum;/*FOUND*/ scanf("%d", n);/*FOUND*/ for(;i<n;i+) sum+=i; printf("The sum from 1 to %d is %dn",n,sum); 答案:=(答案1)=float sum=0;=(答案2)=scanf("%d",&n);=(答案3)=for(;i<=n;i+)第

25、84题 (4.0分) 题号:439 难度:易 第2章/*- 程序改错-功能:求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);答案:=(答案1)=int i,sum=0;=(答案2)=for(i=2;i<=100;i+=2)=(答案3)=printf("Sum=%d n",sum);第97题 (4.0分) 题号:413 难度:易 第2章/*- 程序改错-功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论