程序改错题new-答案_第1页
程序改错题new-答案_第2页
程序改错题new-答案_第3页
程序改错题new-答案_第4页
程序改错题new-答案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上1. 程序调试题1(X_2_1.C)调试要求:下列程序不能得到正确的结果,它包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括X_2_1.C文件和X_2_1.EXE文件)保存到目录C:KS中。功能说明:计算半径为1n的圆的面积,仅打印超过 50 的圆面积。如输入:6则输出:r=4,square=50.r=5,square=78.r=6,square=113.带错误原程序:#include main() int r,n; float area; scanf(%d,&n); fo

2、r (r=1,r=n;r+) area=3.*r*r; if (area50.0) continue; printf(r=%d,square=%dn,r,area); getch();答案#include main() int r,n; float area; scanf(%d,&n); for (r=1;r=n;r+)/*modified*/ area=3.*r*r; if (area50.0) continue; printf(r=%d,square=%fn,r,area);/*modified*/ getch();2. 程序调试题2(X_2_2.C)调试要求:下列程序不能得到正确的结果,

3、它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括X_2_2.C文件和X_2_2.EXE文件)保存到目录C:KS中。功能说明:将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。如输入:79则输出:4F又输入:1234则输出:4D2带错误原程序(见C:KSX_2_2.C):#include int DtoH(int n,char *str) int i,d; for (i=0;n!=0,i+) d=n%16; if (d=10) stri=0+d; else stri

4、=A+d-10; n/=16; return i;main() int i,k,n; char str80; scanf(%d,&n); k=DtoH(n,str); for (i=k-1;i=0;i-) printf(%c,str(i); getch();答案#include int DtoH(int n,char *str) int i,d; for (i=0;n!=0;i+)/*modified*/ d=n%16; if (d=0;i-) printf(%c,stri);/*modified*/ getch();3. 程序调试题1(D_3_1.C)调试要求:下列程序不能得到正确的结果,请

5、按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括D_3_1.c文件和D_3_1.exe文件)保存到指定目录中。功能说明:以下程序计算并输出等差数列的累加和,数列的首项为a0,公差为d,项数为n。如输入:-3 5 4则输出:sumx=18例示说明:-3为首项,5为公差,4为项数,前4项之和为18原程序(见D_3_1.C):#include int sumx( int a0, d, n )int i, k, s=0;k = a0;for ( i=0; in; i+ )s += k;k += d;return s;void main()i

6、nt a0, d, n;scanf( %d%d%d, &a0, &d, &n );printf( sumx=%dn, sumx(a0,d,n) );答案#include int sumx( int a0, int d, int n ) /*modified*/int i, k, s=0;k = a0;for ( i=0; in; i+ ) s += k;k += d; /*modified*/return s;void main()int a0, d, n;scanf( %d%d%d, &a0, &d, &n );printf( sumx=%dn, sumx(a0,d,n) );4. 程序调试

7、题1(E_3_1.c)调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括E_3_1.c文件和E_3_1.exe文件)保存到指定目录中。功能说明:统计一字符串中各个字母出现的次数,该字符串从键盘输入,统计时不区分大小写。对数字、空格及其他字符都不予统计。最后在屏幕上显示统计结果。例如字符串:“abcdefgh23 ABCDEF abc”的统计结果与输出格式为: a b c d e f g h i j k l m n o p q r s t u v w x y z 出现的次数为:;

8、3 3 3 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #include #include void main( ) int i, a26; char ch,str80; /*modify*/ gets(str); /* modify*/ for(i=0;i=A&ch=Z ?ch+a-A:ch; if(a=ch&ch=z) ach-a+; /* modify*/ for(i=0;i26;i+) printf(“%2c”, a+i); /* 输出26个字母 */ printf(“出现的次数为:n”); for(i=0;i26;i+) printf(

9、“%2d”,ai); /* 输出各字母出现次数 */ printf(“n”); 5. 程序调试题1调试要求:下列程序包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括B_2_1.C文件和B_2_1.EXE文件)保存到指定目录中。功能说明:利用格里高利公式/4=1-1/3+1/5-1/7+.求前n.项的值。如输入:5则输出:pi=3.又输入:10000则输出:pi=3.带错误原程序(见B_2_1.C):#include main( ) float pi=0,n,i; int sign=1; scanf(%f,&n); /

10、* modify*/ for (i=1;i=n;i+) pi+=sign/(2*i-1); sign=-sign; pi=4*pi; printf(pi=%fn,pi); /* modify*/ getchar(); /*本句无错;暂停程序,按任意键继续 */ 6. 程序调试题2调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括B_2_2.C文件和B_2_2.EXE文件)保存到指定目录中。功能说明:从键盘输入一个非负十进制整数n(n32768),转化成二进制存入数组a,输出二进制结果。如输入:23则输

11、出:10111又输入:1234则输出:带错误原程序(见B_2_2.C):#include main() int a16,n,i; /* modify*/ scanf(%d,&n); for (i=0;n0;i+) /* modify*/ ai=n%2; /* modify*/ n/=2; while(i0) printf(%d,a-i); getchar(); /*本句无错;暂停程序,按任意键继续 */7.程序调试:调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果程序功能:输入字符串,将其中所有的大写字母转为小写

12、字母,然后输出。 #include void str_to_upper( char s) int i; /* modify*/while ( si != 0 ) if ( si=A & si=Z ) si=si ( A -a); /*modified*/i+;void main()char str80;gets( str );str_to_upper( str ); /* modify*/puts(str );8. 程序调试题3调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括B_2_3.C文件和B_

13、2_3.EXE文件)保存到指定目录中。功能说明:程序从键盘输入一行字符串,所有字符依次向右循环移动m个位置并输出,移出的字符循环到最左边。如输入:3则输出:带错误原程序(见B_2_3.C):#include #include void shift_s(char a,int n,int m) /*a数组的n个字符右移m个位置*/ int i,j,t; for(i=1;i0;j-) aj = aj+1; /*移位并复制*/ a0=an; an=0;main() char stra80; int i, n,m; gets(stra); n = strlen(stra); scanf(%d,&m);

14、shift_s(stra,n,m); /*函数调用参数*/ puts(*stra); getchar(); /*本句无错;暂停程序,按任意键继续 */答案#include #include void shift_s(char a,int n,int m) /*a数组的n个字符右移m个位置*/ int i,j,t; for(i=0;i0;j-) aj = aj-1; /*modified*/ a0=an; an=0;main() char stra80; int i, n,m; gets(stra); n = strlen(stra); scanf(%d,&m); shift_s(stra,n,

15、m); /*函数调用参数*/ puts(stra); /*modified*/ getchar(); /*本句无错;暂停程序,按任意键继续 */9. 程序调试题1调试要求:下列程序包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括C_2_1.C文件和C_2_1.EXE文件)保存到指定目录中。功能说明:利用公式e = 1 + 1/1! + 1/2! + + 1/n! + 求前n项的e值。如输入:4则输出:2.又输入:10则输出:2.带错误原程序(见C_2_1.C):#include main() int n,i; flo

16、at e,a; scan(%d,&n); e=a=1.0; for (i=1;i=n;i+) a*=i; e+=1a; printf(%fn,e); getchar(); /* 本句没错,程序暂停,按任意键继续 */答案#include main() int n,i; float e,a; scanf(%d,&n); /*modified*/ e=a=1.0; for (i=1;i=n;i+) a*=i; e+=1/a; /*modified*/ printf(%fn,e); getchar(); /* 本句没错,程序暂停,按任意键继续 */10. 程序调试题2调试要求:下列程序包含3个错误,

17、请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括C_2_2.C文件和C_2_2.EXE文件)保存到指定目录中。功能说明:程序从键盘输入一行16进制字符串(字母必须大写),调用hexvalue函数转换为10进制,并输出转换结果。如输入:1A则输出:26又输入:1AF8则输出:6904带错误原程序(见C_2_2.C):#include long hexvalue(char str) long data=0; int n,i; for (i=0;stri!=0,i+) if (stri=0 & stri=A | stri=F) n=st

18、ri-A+10; else break; data=data*10+n; return data;main() char s80; scanf(%s,s); printf(%ld,hexvalue(s); getchar(); /* 本句没错,程序暂停,按任意键继续 */答案#include long hexvalue(char str) long data=0; int n,i; for (i=0;stri!=0;i+) /*modified*/ if (stri=0 & stri=A & stri=F) /*modified*/ n=stri-A+10; else break; data=

19、data*16+n; /*modified*/ return data;main() char s80; scanf(%s,s); printf(%ld,hexvalue(s); getchar(); /* 本句没错,程序暂停,按任意键继续 */11. 程序调试题3调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括C_2_3.C文件和C_2_3.EXE文件)保存到指定目录中。功能说明:程序从键盘输入一个整数n,将数组a的11个元素向左循环n次后输出。如输入:3则输出:3 4 5 6 7 8 9 10

20、0 1 2带错误原程序(见C_2_3.C):#include main() int a10=0,1,2,3,4,5,6,7,8,9,10,n,i,j,p; scanf(%d,&n); for(i=1;in;i+) p=a0; j=0; while(j10) aj=aj+1; j+; a10=p; for(i=0;i=10;i+) printf(%d ,a(i); getchar(); /* 本句没错,程序暂停,按任意键继续 */答案#include main() int a11=0,1,2,3,4,5,6,7,8,9,10,i,j,n,p; /*modified*/scanf(%d,&n);

21、for(i=0;in;i+) /*modified*/ p=a0; j=0; while(j10) aj=aj+1; j+; a10=p; for(i=0;i=10;i+) printf(%d ,ai); /*modified*/ getchar(); /* 本句没错,程序暂停,按任意键继续 */12. 程序调试题1调试要求:下列程序包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括D_2_1.C文件和D_2_1.EXE文件)保存到指定目录中。功能说明:打印从11000 能同时被 3和 5 整除的前n个数。如输入:3则

22、输出:15 30 45带错误原程序(见C:KSD_2_1.C):#include main( ) int k; scanf(%d,&n); for(k=1;k=1000;k+) if(k%3=0&k%5=0) print(%d ,k); n-; if(n=0) break; getchar(); /*本句没错,暂停程序,按任意键继续 */答案#include main( ) int k,n; /*modified*/ scanf(%d,&n); for(k=1;k=1000;k+) if(k%3=0&k%5=0) printf(%d ,k); /*modified*/ n-; if(n=0) break; getchar(); /*本句没错,暂停程序,按任意键继续 */ 13. 程序调试题3调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括D_2_3.C文件

温馨提示

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

评论

0/150

提交评论