C语言程序改错练习.docx
- 文档编号:26217994
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:23
- 大小:18.52KB
C语言程序改错练习.docx
《C语言程序改错练习.docx》由会员分享,可在线阅读,更多相关《C语言程序改错练习.docx(23页珍藏版)》请在冰豆网上搜索。
C语言程序改错练习
C语言程序改错练习
共18题
第2题(4.0分)题号:
406难度:
中第2章
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
有1、2、3、4个数字,能组成多少个互不相同且无重复数
字的三位数?
都是多少?
------------------------------------------------------*/
#include
main()
{
inti,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,%d\n",i,j,k);
}
}
答案:
=======(答案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%;60万到100万
之间时,高于60万元的部分,可提成1.5%,高于100万元时,
超过100万元的部分按1%提成,从键盘输入当月利润i,求
应发放奖金总数?
------------------------------------------------------*/
#include
main()
{
longinti;
doublebonus1,bonus2,bonus4,bonus6,bonus10,bonus;
/**********FOUND**********/
scanf("%ld"&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
/**********FOUND**********/
if(i>100000)
bonus=i*0.1;
elseif(i<=200000)
bonus=bonus1+(i-100000)*0.075;
elseif(i<=400000)
bonus=bonus2+(i-200000)*0.05;
elseif(i<=600000)
bonus=bonus4+(i-400000)*0.03;
elseif(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=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
voidmain()
{
/**********FOUND**********/
inti,s;p,n;
printf("Entern:
\n");
/**********FOUND**********/
scanf("%d",n);
/**********FOUND**********/
for(s=p=0,i=1;i s+=p+=i; printf("S=%d\n",s); } 答案: =======(答案1)======= inti,s,p,n; =======(答案2)======= scanf("%d",&n); =======(答案3)======= for(s=p=0,i=1;i<=n;i++) 第30题(4.0分)题号: 556难度: 中第2章 /*------------------------------------------------------- 【程序改错】 --------------------------------------------------------- 题目: 下列程序的功能为: 按下列公式计算并输出x的值。 其中a和b的值由键盘输入。 请纠正程序中存在的错误,使程序实现其功能。 公式: x=2ab/(a+b)^2(平方) -------------------------------------------------------*/ #include main() { inta,b; doublex; /***********FOUND***********/ scanf("%d,%d",a,b); /***********FOUND***********/ x=2ab/(a+b)(a+b); /***********FOUND***********/ printf("x=%d\n",x); } 答案: =======(答案1)======= scanf("%d,%d",&a,&b); =======(答案2)======= x=2.0*a*b/((a+b)*(a+b)); =======(答案3)======= printf("x=%f\n",x); 第40题(4.0分)题号: 411难度: 难第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 一球从100米高度自由落下,每次落地后反跳回原高度的 一半;再落下,求它在第10次落地时,共经过多少米? 第10次反弹多高? ------------------------------------------------------*/ #include main() { /**********FOUND**********/ floatsn=100.0;hn=sn/2; intn; /**********FOUND**********/ for(n=2;n<10;n++) { sn=sn+2*hn; /**********FOUND**********/ hn=hn%2; } printf("thetotalofroadis%f\n",sn); printf("thetenthis%fmeter\n",hn); } 答案: =======(答案1)======= floatsn=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 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'||c>='A'&&c<='Z') =======(答案3)======= elseif(c=='') 第49题(4.0分)题号: 433难度: 中第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 学习使用按位或|。 ------------------------------------------------------*/ #include main() { /**********FOUND**********/ intab; a=077; b=a|3; /**********FOUND**********/ printf("\40: Thea&b(decimal)is%d\n",&b); /**********FOUND**********/ b|=7 printf("\40: Thea&b(decimal)is%d\n",b); } 答案: =======(答案1)======= inta,b; =======(答案2)======= printf("\40: Thea&b(decimal)is%d\n",b); =======(答案3)======= b|=7; =========或========= b=b|7; 第61题(4.0分)题号: 441难度: 中第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 请输入星期几的第一个字母来判断一下是星期几,如果第一 个字母一样,则继续判断第二个字母。 ------------------------------------------------------*/ #include"conio.h" #include voidmain() { charletter; printf("pleaseinputthefirstletterofsomeday\n"); /**********FOUND**********/ while((letter=getch())='Y') { switch(letter) { case'S': printf("pleaseinputsecondletter\n"); if((letter=getch())=='a') printf("saturday\n"); elseif((letter=getch())=='u') printf("sunday\n"); elseprintf("dataerror\n"); break; case'F': printf("friday\n"); break; case'M': printf("monday\n"); break; case'T': printf("pleaseinputsecondletter\n"); /**********FOUND**********/ if((letter=getch())! ='u') printf("tuesday\n"); elseif((letter=getch())=='h') printf("thursday\n"); else printf("dataerror\n"); /**********FOUND**********/ break case'W': printf("wednesday\n"); break; default: printf("dataerror\n"); } } } 答案: =======(答案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 #include"string.h" main() { intn,s; /**********FOUND**********/ s==n=0; /**********FOUND**********/ while(s>1000) { ++n; s+=n*n; } /**********FOUND**********/ printf("n=%d\n",&n-1); } 答案: =======(答案1)======= s=n=0; =======(答案2)======= while(s<=1000) =======(答案3)======= printf("n=%d\n",n-1); 第64题(4.0分)题号: 4难度: 易第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 在一个已按升序排列的数组中插入一个数,插入后,数 组元素仍按升序排列。 ------------------------------------------------------*/ #include #defineN11 main() { inti,number,a[N]={1,2,4,6,8,9,12,15,149,156}; printf("pleaseenteranintegertoinsertinthearray: \n"); /**********FOUND**********/ scanf("%d",&number) printf("Theoriginalarray: \n"); for(i=0;i printf("%5d",a[i]); printf("\n"); /**********FOUND**********/ for(i=N-1;i>=0;i--) if(number<=a[i]) /**********FOUND**********/ a[i]=a[i-1]; else { a[i+1]=number; /**********FOUND**********/ exit; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 改错 练习