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.265488r=5,square=78.539825r=6,square=113.097351带错误原程序:#include main()int r,n;float area;scanf(“%d“,
2、for (r=1,rmain()int r,n;float area;scanf(“%d“,for (r=1;rint DtoH(int n,char *str)int i,d;for (i=0;n!=0,i+) d=n%16;if (d=10) stri=0+d;elsestri=A+d-10;n/=16;return i;main()int i,k,n;char str80;scanf(“%d“,k=DtoH(n,str);for (i=k-1;i=0;i-)printf(“%c“,str(i); getch();答案#include int DtoH(int n,char *str)in
3、t 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)调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果。将结果(包括D_3_1.c文件和D_3_1.exe文件)保存到指定目录中。功能说明:以下程序计算并输出等差数列的累加和,数列的首项为a0,公差为d,项数为n。如输入:-3 5 4则输出:sumx=18例示说明:-3为首项,5为公差,4为项数,前
4、4项之和为18原程序(见D_3_1.C):#include int sumx( int a0, d, n )int i, k, s=0;k = a0;for ( i=0; iint sumx( int a0, int d, int n ) /*modified*/int i, k, s=0;k = a0;for ( i=0; i#include void main( ) int i, a26;char ch,str80; /*modify*/gets(str); /* modify*/for(i=0;i=Aint sign=1;scanf(“%f“, /* modify*/for (i=1;i
5、main()int a16,n,i; /* modify*/scanf(“%d“,for (i=0;n0;i+) /* modify*/ai=n%2; /* modify*/n/=2;while(i0)printf(“%d“,a-i); getchar(); /*本句无错;暂停程序,按任意键继续 */7.程序调试:调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/字样的注释),使其运行能得到正确的结果程序功能:输入字符串,将其中所有的大写字母转为小写字母,然后输出。#include void str_to_upper( char s) int i; /
6、* modify*/while ( si != 0 ) if ( si=A 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“,shift_s(stra,n,m); /*函数调用参数*/puts(*stra);getchar(); /*本句无错;暂停程序,按任意键继续 */答案#include #include void shift_s(char a,int n,int m) /*a数组的n 个字符右移 m个位置*/ in
7、t 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“,shift_s(stra,n,m); /*函数调用参数*/puts(stra); /*modified*/getchar(); /*本句无错;暂停程序,按任意键继续 */9. 程序调试题1调试要求:下列程序包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*/ 字样的注释 ),使其运行能得到正确的结果。将结果(包括C_2_1.C文
8、件和C_2_1.EXE文件)保存到指定目录中。功能说明:利用公式e = 1 + 1/1! + 1/2! + + 1/n! + 求前 n项的e值。如输入:4 则输出:2.708333又输入:10 则输出:2.718282带错误原程序(见C_2_1.C):#include main()int n,i;float e,a;scan(“%d“,e=a=1.0;for (i=1;imain()int n,i;float e,a;scanf(“%d“, /*modified*/e=a=1.0;for (i=1;ilong hexvalue(char str)long data=0;int n,i;for (i=0;stri!=0,i+)if (stri=0 int n,i;for (i=0;stri!=0;i+) /*modified*/if (stri=0 scanf(“%d“,for(i=1;in;i+)p=a0;j=0;while(j10)aj=aj+1;j+;a10=p;