文档库 最新最全的文档下载
当前位置:文档库 › 程序改错题答案

程序改错题答案

程序改错题答案
程序改错题答案

1. 程序调试题1(X_2_1.C)

调试要求:下列程序不能得到正确的结果,它包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括X_2_1.C文件和X_2_1.EXE文件)保存到目录C:\KS\中。

功能说明:计算半径为1~n的圆的面积,仅打印超过50 的圆面积。

如输入:6

则输出:

r=4,square=50.265488

r=5,square=78.539825

r=6,square=113.097351

带错误原程序:

#include

main()

{

int r,n;

float area;

scanf("%d",&n);

for (r=1,r<=n;r++)

{

area=3.141593*r*r;

if (area<50.0) continue;

printf("r=%d,square=%d\n",r,area);

}

getch();

}

答案

#include

main()

{

int r,n;

float area;

scanf("%d",&n);

for (r=1;r<=n;r++)/*modified*/

{

area=3.141593*r*r;

if (area<50.0) continue;

printf("r=%d,square=%f\n",r,area);/*modified*/

}

getch();

}

2. 程序调试题2(X_2_2.C)

调试要求:下列程序不能得到正确的结果,它包含3个错误,请按题中的功能要求,调试并

修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括X_2_2.C文件和X_2_2.EXE文件)保存到目录C:\KS\中。

功能说明:将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。

如输入:79 则输出:4F

又输入:1234 则输出:4D2

带错误原程序(见C:\KS\X_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)

str[i]='0'+d;

else

str[i]='A'+d-10;

n/=16;

}

return i;

}

main()

{

int i,k,n;

char str[80];

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<10)/*modified*/

str[i]='0'+d;

else

str[i]='A'+d-10;

n/=16;

}

return i;

}

main()

{

int i,k,n;

char str[80];

scanf("%d",&n);

k=DtoH(n,str);

for (i=k-1;i>=0;i--)

printf("%c",str[i]);/*modified*/

getch();

}

3. 程序调试题3(X_2_3.C)

调试要求:下列程序不能得到正确的结果,它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括X_2_3.C文件和X_2_3.EXE文件)保存到目录C:\KS\中。

功能说明:函数fun分别统计字符串中大写字母和小写字母的个数,main()函数完成字符串的输入和统计数的输出。

如输入:AAaaBBb123CCccccd

则输出:upper=6,lower=8

带错误原程序(见C:\KS\X_2_3.C):

#include

void fun(char *s, int *a, int *b)

{

while (*s=='\0')

{

if(*s>='A' && *s<='Z')

(*a)++;

if (*s>='a' || *s<='z')

(*b)++;

s++;

}

}

main()

char s[100];

int upper=0, lower=0;

gets(s);

fun(s,&upper,&lower);

printf("\nupper=%d,lower=%d\n",upper,&lower);

getch();

}

答案

#include

void fun(char *s, int *a, int *b)

{

while (*s!='\0')/*modified*/

{

if(*s>='A' && *s<='Z')

(*a)++;

if (*s>='a'&&*s<='z')/*modified*/

(*b)++;

s++;

}

}

main()

{

char s[100];

int upper=0, lower=0;

gets(s);

fun(s,&upper,&lower);

printf("\nupper=%d,lower=%d\n",upper,lower);/*modified*/

getch();

}

4. 程序调试题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项之和为18

原程序(见\D_3_1.C):

#include

int sumx( int a0, d, n )

int i, k, s=0;

k = a0;

for ( i=0; i

s += k;

k += d;

return s;

}

void main()

{

int a0, d, n;

scanf( "%d%d%d", &a0, &d, &n );

printf( "sumx=%d\n", sumx(a0,d,n) );

}

答案

#include

int sumx( int a0, int d, int n ) /*modified*/

{

int i, k, s=0;

k = a0;

for ( i=0; i

{ s += k;

k += d;}

return s;

}

void main()

{

int a0, d, n;

scanf( "%d%d%d", &a0, &d, &n );

printf( "sumx=%d\n", sumx(a0,d,n) );

}

5. 程序调试题2(D_3_2.C)

调试要求:下列程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括D_3_2.c 文件和D_3_2.exe文件)保存到指定目录中。

功能说明:以下函数length返回字符串中字母A到字母Z所包含字符的长度。主程序输入一行字符串,调用length函数输出该字符串中大写字母A到Z的子串长度。如输入:Z2009-AShanghaiZ

则输出:Length=8

例示说明:从A到Z的子串为Shanghai,其长度为8

原程序(见\D_3_2.C):

#include

int length( char *p )

{

char *q, *r;

for ( q=p; *q!='\0' || *q!='A'; q++ )

;

for ( r=q; *r!='\0' && *r!='Z'; r++ )

;

return r-q;

}

void main()

{

char str[81];

int n;

gets( str[0] );

n = length( str );

printf( "Length=%d\n", n );

}

答案

#include

int length( char *p )

{

char *q, *r;

for ( q=p; *q!='\0' &&*q!='A'; q++ ) /*modified*/

;

for ( r=q; *r!='\0' && *r!='Z'; r++ )

;

return r-q-1; /*modified*/

}

void main()

{

char str[81];

int n;

gets( str ); /*modified*/

n = length( str );

printf( "Length=%d\n", n );

}

6. 程序调试题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 出现的次数为:;

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, a[26];

char ch,str[80],*p=str;

gets(&str); /* 获取字符串 */

for(i=0;i<26;i++) a[i]=0; /* 初始化字符个数*/

while(*p) {

ch=(*p)++; /* 移动指针统计不同字符出现的次数 */

ch=ch>=’A’&&ch<=’Z’ ?ch+’a’-‘A’:ch;

/* 大小写字符转换*/

if(’a’<=ch<=’z’) a[ch-‘a’]++;

}

for(i=0;i<26;i++) printf(“%2c”, ’a’+i); /*输出26个字母 */

printf(“出现的次数为:\n”);

for(i=0;i<26;i++) printf(“%2d”,a[i]);

/*输出各字母出现次数 */

printf(“\n”);

}

答案

#include

#include

void main( )

{

int i, a[26];

char ch,str[80],*p=str;

gets(str);/*modified*/

for(i=0;i<26;i++) a[i]=0; /* 初始化字符个数*/

while(*p) {

ch=*p++; /*modified*/

ch=ch>=’A’&&ch<=’Z’ ?ch+’a’-‘A’:ch;

/* 大小写字符转换*/

if(’a’<=ch)&&(ch<=’z’) a[ch-‘a’]++; /*modified*/

}

for(i=0;i<26;i++) printf(“%2c”, ’a’+i); /*输出26个字母*/

printf(“出现的次数为:\n”);

for(i=0;i<26;i++) printf(“%2d”,a[i]);

/*输出各字母出现次数*/

printf(“\n”);

}

7. 程序调试题2(E_3_2.C)

调试要求:下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。将结果(包括E_3_1.c 文件和E_3_1.exe文件)保存到指定目录中。

功能说明:递归算法求x n,即x n=x*x n-1,其中x为实数,n≥0。原程序(见\E_3_2.c) void main(){

float x, y;

int n;

scanf("%f%d",&x,&n);

y=xn(x,n);

printf("x^n=%f\n",y);

}

float xn(float x, int n){

fload z;

if(n<0) {

printf("n is a wrong number!\n");

exit(0);

}

if(n!=0) z=1;

else z=xn(x,n);

return z;

}

答案

void main(){

float x, y,xn(float,int);/*modified*/

int n;

scanf("%f%d",&x,&n);

y=xn(x,n);

printf("x^n=%f\n",y);

}

float xn(float x, int n){

fload z;

if(n<0) {

printf("n is a wrong number!\n");

exit(0);

}

if(n==0) z=1;/*modified*/

else z=x*xn(x,n-1); /*modified*/

return z;

}

8. 程序调试题1

调试要求:下列程序包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括B_2_1.C文件和B_2_1.EXE文件)保存到指定目录中。

功能说明:利用格里高利公式π/4=1-1/3+1/5-1/7+......求前n.项的π值。

如输入:5 则输出:pi=3.339683

又输入:10000 则输出:pi=3.141498

带错误原程序(见\B_2_1.C):

#include

main( )

{

float pi=0,n,i;

int sign=1;

scanf("%f",n);

for (i=1;i<=n;i++)

{

pi+=sign/(2*i-1);

sign=-sign;

}

pi=4*pi

printf("pi=%f\n",pi);

getchar(); /*本句无错;暂停程序,按任意键继续*/

}

答案

#include

void main()

{

int n, i;

scanf( "%d", &n );

printf( "%d=1", n );

for ( i = 2; i <= n; )

{

if ( n % i ==-0 ) /*modified*/

{

printf( "*%d", i );

n=n/i; /*modified*/

}

else

i++;

}

}

9. 程序调试题2

调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括B_2_2.C文件和B_2_2.EXE文件)保存到指定目录中。

功能说明:从键盘输入一个非负十进制整数n(n<32768),转化成二进制存入数组a,输出二进制结果。

如输入:23 则输出:10111

又输入:1234 则输出:10011010010

带错误原程序(见\B_2_2.C):

#include

main()

{

int a[16],n;

scanf("%d",&n);

for (i=0;n<0;i++)

{

a(i)=n%2;

n/=2;

}

while(i>0)

printf("%d",a[--i]);

getchar(); /*本句无错;暂停程序,按任意键继续*/

}

答案

#include

void str_to_upper( char *s )

{

while ( *s != '\0' ) /*modified*/

{

if ( *s>='a' && *s<='z' ) /*modified*/

*s = *s + 'A' -'a'; /*modified*/

s++;

}

}

void main()

{

char str[80];

gets( str );

str_to_upper( str );

puts( str );

}

10. 程序调试题3

调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括B_2_3.C文件和B_2_3.EXE文件)保存到指定目录中。

功能说明:程序从键盘输入一行字符串,所有字符依次向右循环移动m个位置并输出,移出的字符循环到最左边。

如输入:

123456789

则输出:

789123456

带错误原程序(见\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;i

{

for (j=n;j>0;j--)

a[j] = a[j+1]; /*移位并复制*/

a[0]=a[n];

}

a[n]='\0';

}

main()

{

char stra[80];

int i, n,m;

gets(stra);

n = strlen(stra);

scanf("%d",&m);

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;i

{

for (j=n;j>0;j--)

a[j] = a[j-1]; /*modified*/

a[0]=a[n];

}

a[n]='\0';

}

main()

char stra[80];

int i, n,m;

gets(stra);

n = strlen(stra);

scanf("%d",&m);

shift_s(stra,n,m); /*函数调用参数*/

puts(stra); /*modified*/

getchar(); /*本句无错;暂停程序,按任意键继续*/

}

11. 程序调试题1

调试要求:下列程序包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括C_2_1.C文件和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",&n);

e=a=1.0;

for (i=1;i<=n;i++)

{

a*=i;

e+=1\a;

}

printf("%f\n",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("%f\n",e);

getchar(); /* 本句没错,程序暂停,按任意键继续*/

}

12. 程序调试题2

调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括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;str[i]!='\0',i++)

{

if (str[i]>='0' && str[i]<='9')

n=str[i]-'0';

else if (str[i]>='A' || str[i]<='F')

n=str[i]-'A'+10;

else

break;

data=data*10+n;

}

return data;

}

main()

{

char s[80];

scanf("%s",s);

printf("%ld",hexvalue(s));

getchar(); /* 本句没错,程序暂停,按任意键继续*/

}

答案

#include

long hexvalue(char *str)

{

long data=0;

int n,i;

for (i=0;str[i]!='\0';i++) /*modified*/

{

if (str[i]>='0' && str[i]<='9')

n=str[i]-'0';

else if (str[i]>='A' && str[i]<='F') /*modified*/

n=str[i]-'A'+10;

else

break;

data=data*16+n; /*modified*/

}

return data;

}

main()

{

char s[80];

scanf("%s",s);

printf("%ld",hexvalue(s));

getchar(); /* 本句没错,程序暂停,按任意键继续*/

}

13. 程序调试题3

调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括C_2_3.C文件和C_2_3.EXE文件)保存到指定目录中。

功能说明:程序从键盘输入一个整数n,将数组a的11个元素向左循环n次后输出。

如输入:3

则输出:3 4 5 6 7 8 9 10 0 1 2

带错误原程序(见\C_2_3.C):

#include

main()

{

int a[10]={0,1,2,3,4,5,6,7,8,9,10},n,i,j,p;

scanf("%d",&n);

for(i=1;i

{

p=a[0];

j=0;

while(j<10)

{

a[j]=a[j+1];

j++;

}

a[10]=p;

}

for(i=0;i<=10;i++)

printf("%d ",a(i));

getchar(); /* 本句没错,程序暂停,按任意键继续*/

}

答案

#include

main()

{

int a[11]={0,1,2,3,4,5,6,7,8,9,10},i,j,n,p; /*modified*/

scanf("%d",&n);

for(i=0;i

{

p=a[0];

j=0;

while(j<10)

{

a[j]=a[j+1];

j++;

}

a[10]=p;

}

for(i=0;i<=10;i++)

printf("%d ",a[i]); /*modified*/

getchar(); /* 本句没错,程序暂停,按任意键继续*/

}

14. 程序调试题1

调试要求:下列程序包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括D_2_1.C文件和D_2_1.EXE文件)保存到指定目录中。

功能说明:打印从1~1000 能同时被3和5 整除的前n个数。

如输入:3 则输出:15 30 45

带错误原程序(见C:\KS\D_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(); /*本句没错,暂停程序,按任意键继续*/

}

15. 程序调试题2

调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括D_2_2.C文件和D_2_2.EXE文件)保存到指定目录中。

功能说明:从键盘输入一个十进制整数n,转化成八进制存入数组a,输出八进制结果。

如输入:70 则输出:106

带错误原程序(见C:\KS\D_2_2.C):

#include

main()

{

int a[10],n,i=0,j;

scanf("%f",&n);

do {

a[i++]=n%8;

n/=10;

} while(n>0);

for (j=i-1;j>=0;j--)

printf("%d",a(j));

getchar(); /*本句没错,暂停程序,按任意键继续*/

}

答案

#include

main()

{

int a[10],n,i=0,j;

scanf("%d",&n); /*modified*/

do {

a[i++]=n%8;

n/=8; /*modified*/

} while(n>0);

for (j=i-1;j>=0;j--)

printf("%d",a[j]); /*modified*/

getchar(); /*本句没错,暂停程序,按任意键继续*/

}

16. 程序调试题3

调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括D_2_3.C文件和D_2_3.EXE文件)保存到指定目录中。

功能说明:函数myStrupr将字符串str中的小写字母转换为大写,并返回转换的小写字母数。程序输入一个长度小于80的字符串,调用myStrupr函数将小写字母转换为大写,如果输入串没有小写字母,则输出提示信息。

如输入:Hello, Everybody. 则输出:HELLO, EVERYBODY.

又输入:I AM BIG.?!@#$% 则输出:no lowercase

带错误原程序(见C:\KS\D_2_3.C):

#include

int myStrupr(char str[])

{

int i,ct=0;

for (i=0;Str[i]!='\0';i++)

if (str[i]>='a' || str[i]<='z')

{

str[i]=str[i]-32;

ct++;

}

return ct;

}

main()

{

char str[80];

gets(str);

if (myStrupr(str)==0)

puts(str);

else

printf("no lowercase\n");

getchar(); /*本句没错,暂停程序,按任意键继续*/

}

答案

#include

int myStrupr(char str[])

{

int i,ct=0;

for (i=0;str[i]!='\0';i++) /*modified*/

if (str[i]>='a' && str[i]<='z') /*modified*/

{

str[i]=str[i]-32;

ct++;

}

return ct;

}

main()

{

char str[80];

gets(str);

if (myStrupr(str)!=0) /*modified*/

puts(str);

else

printf("no lowercase\n");

getchar(); /*本句没错,暂停程序,按任意键继续*/ }

计算机程序改错题,及答案

11 *程序名:TEST.prg *检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的 *学号,姓名,性别,平均成绩,最低分和选课门数,并将结果存储到表NEW_TEST中. *以下程序有三处错误,请改正 OPEN DA TABASE SDB SELECT STUDENT.学号,姓名,性别,A VG(成绩) 平均成绩,MIN(成绩) 最低分,COUNT(*) 选课门数; FROM STUDENT,SC; WHere STUDENT.学号= SC.学号AND 成绩>= 70 ; &&**********Error********** GROUP BY STUDENT.学号HA VING count(课程号) >= 3; &&**********Error********** inTO table NEW_TEST &&**********Error********** CLOSE ALL 9 *程序名:dbtest3.prg *定义一个视图VS1, *检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号, *并按平均成绩降序排序. *以下程序有三处错误,请改正 SET TALK OFF SET SAFETY OFF open DATABASE SDB &&****Error***修改本行的语法错误,不许注释掉本行或删除本行 CREATE VIEW VS1 SELECT STUDENT2.学号, 姓名, A VG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数, 院系编号; FROM STUDENT2, sc; &&*************Error************* WHERE STUDENT2.学号= SC.学号; GROUP BY SC.学号HA VING COUNT(课程号) > 3; ORDER BY 平均成绩desc &&*************Error************* CLOSE DATABASE RETURN i=2 create table four(结果I) do while i<=1000 if i%3=0 insert into four values(i) &&错误语句请修改 endif

最新二级C语言考试题库及答案程序改错专项练习 精华版

1 / 4 程序改错题(共15题) 1、在考生文件夹下,给定程序MODI.C 的功能是: 求一维数组a 中所有元素的平均值,结果保留两位小数。 例如,当一维数组a 中的元素为:10,4,2,7,3,12,5,34,5,9 程序的输出应为:The aver is: 9.10 。 #include #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9},i; int aver,s; s = 0; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is: %.2f\n", aver); } 2、在考生文件夹下,给定程序MODI.C 的功能是: 求二维数组a 中的最大值和最小值。 例如,当二维数组a 中的元素为: 4 4 34 37 3 12 5 6 5 程序的输出应为:The max is: 37 The min is: 3 。 #include #include void main() { int a[3][3]={4,4,34,37,3,12,5,6,5},i,j,max,min; max = min = a[0][0]; for ( i=0; i<3; i++) for ( j=1; j<3; j++) { if ( max < a[i][j] ) max = a[i][j]; /************found************/ if (min < a[i][j]) min = a[i][j]; } printf("The max is: %d\n", max); printf("The min is: %d\n", min); } 3、在考生文件夹下,给定程序MODI.C 的功能是: 求一维数组a 中的最大元素及其下标。 例如,当一维数组a 中的元素为:1,4,2,7,3,12,5,34,5,9, 程序的输出应为:The max is: 34,pos is: 7 。 #include #include void main() { int a[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos; max = a[0]; pos = 0; for ( i=1; i<10; i++) /************found************/ if (max > a[i]) { max = a[i]; /************found************/ i = pos; } printf("The max is: %d ,pos is: %d\n", max , pos); } 4、在考生文件夹下,给定程序MODI.C 的功能是: 求二维数组a 中的最小值。 例如,当二维数组a 中的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is: 2 。 #include #include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5},i,j,min; min = a[0][0]; for ( i=1; i<3; i++) for ( j=0; j<3; j++) if (min > a[i][j]) { /************found************/ min == a[i][j]; } printf("The min is: %d\n", min); }

程序改错题

程序改错题 (注意:每小题只有1行有错误,答题时请指出错误位置并给出改正结果)1. 输出计算结果。 main() { int a=b=10; a+=b+5; b*=a+=10; printf("%d%d\n",a,b); } 2. 输出计算结果。 #include main() { float x,y; scanf("%f",x); y=x*56/97; printf("%f\n",y); } 3. 输出计算结果。 main() { int x=2,y=3; z=(x++,y++); printf("%d",z); } 4. 输出运行结果。 main() { float a,b,c,v; a=2.0;b=3.0;c=4.0; v=a*b*c; printf("%f\n" ,v) } 5. 输出运行结果。 #include “stdio.h” main(){ float r,s; r=5.0; s=3.14159*r*r; printf("%d\n",s); }

输出程序运行结果。 #include main() { char ch; scanf("%c",ch); printf("%d\n",ch); } 7. 输入一整数判断是否能被13整除。main() { int i; scanf(“%d”,i); if(i%13==0) printf("yes"); else printf("no"); } 8. 输出程序运行结果。 main() { int a,b; float x,y,z; scanf("%f%f%f",&x,&y,&z); a=b=x+y+z; c=a+b; printf("%d%d%d",a,b,c); } 9. 输出程序运行结果。 #include main() { float x,y; scanf("%f",&x); y=2x+10; printf("%f\n",y); } 10. 输出程序运行结果。 main() { int a,b='B'; scanf("%d",a); printf("%c,",b++); printf("%d\n",b-a); }

程序改错1

第1题(10.0分)题号:421 /*-------------------------------- 【程序改错】 -------------------------------- 功能:给一个不多于5位的正整数,要求: 一、求它是几位数, 二、逆序打印出各位数字。 --------------------------------*/ #include"stdio.h" main( ) { /**********FOUND**********/ long a,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("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c); else if (d!=0) printf("there are 2, %ld %ld\n",e,d); else if (e!=0) printf(" there are 1,%ld\n",e); getch(); } 答案: 1). long a,b,c,d,e,x; 2). b=x%10000/1000; 3). if (a!=0) 或 if (!a) 第2题(10.0分)题号:417 /*-------------------------------- 【程序改错】 -------------------------------- 功能:下题是一段有关结构体变量传递的程序. --------------------------------*/ #include "stdio.h" struct student { int x; char c; } a; main() { a.x=3; /**********FOUND**********/ a.c='a' f(a); /**********FOUND**********/ printf("%d,%c",a.x,b.c); getch(); } f(struct student b) { b.x=20; /**********FOUND**********/ b.c=y; } 答案: 1). a.c='a'; 2). printf("%d,%c",a.x,a.c); 3). b.c='y'; 第1题(10.0分)题号:440 /*-------------------------------- 【程序改错】 --------------------------------

2012计算机国二C语言等级考试题库(内部资料)程序改错

1.给定程序MODI1.C中函数fun的功能是:根据以下公式求π值,并作为函数值返回。例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。(1)“t=0;”改为“t=1;”。(2)改成“return(2*s);” 2.给定程序MODI1.C中函数fun的功能是:将长整型中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如:当s中的数为:7654321时,t中的数为:7531。(1)“void fun (long s, long *t)”(2)“sl = sl*10;” 3.给定程序MODI1.C中函数fun的功能是:用下面的公式求π的近似值,知道最后一项的近似值小于指定数(参数num)为止:例如程序0.0001,则程序输出 3.1414。(1) “while(t>=num)”改为 “while(fabs(t)>=num) ”。(2)“t=s%n;”改为 “t=s/n;”。 4.给定程序MODI1.C中函 数fun的功能是:把主函 数中输入的三个数,最大 的放在a中,最小的放在 c中,中间的放在b中。 例如a=55.0 b=34.0 c=12.0。(1)“float k;”。 (2)“if(*a<*c)”。 5. 给定程序MODI1.C中 函数fun的功能是:为一 个偶数寻找两个素数,这 两个素数之和等于该偶 数,并将这两个素数通过 形参指针传回主函数。(1) “y=1;”。(2)“d=a-i;”。 6. 给定程序MODI1.C中 函数fun的功能是:由形 参给定n个实数,输出平 均值以上(含平均值)的 实数个数。所的平均值为: 195.838745,在平均值以 上的实数个数应为:5。(1) “int j, c=0; double xa=0.0;”。(2)“if (x[j]>=xa)”。 7.例如:当s中的数为: 7654321时,t中的数为: 7531。(1)“*t=0;”(2) “if(d%2!=0)” 8.函数功能是:求出 以下分数序列的前n项 和。 2/1,3/2,5/3,8/5/13/ 8,21/13,…...。和值 通过函数值返回到 main函数。例如,n=5, 则应输出:8.391667。 (1)“fun(int n)”改为 “double fun(int n)”。 (2)“b+=c;”改为“b=c;”。 9.函数fun的功能是: 判断一个整数是否是 素数,若是返回1,否 则返回0。(1)“k++” 改为“k++;”(2) “if(m=k)”改为 “if(m==k)” 10.给定程序MODI1.C 中函数fun的功能是: 从整数1到55之间,选 出能被3整除、且有一 位上的数是5的那些 事,并且把这些数放 在b所指的数组中,这 些数作为函数值返回。 规定,函数中a1放个 位数,a2放十位数。 (1)“a2=k/10;”。(2) “return i;”。 11.给定程序MODI1.C 中函数fun的功能是: 计算小于形参k的最大 的10个能被13或17整 除的自然数之和。K的 值由主函数传入,若K 的值为500.则主函数 为4622。(1) “if((k%13==0)||(k%17 ==0))”。(2)“______” 填“}”。 12.已知一个数列从第 0项开始的前三项分别 是0、0、1以后的各项 都是它相邻的前三项 之和。给定程序 MODI1.C中函数fun的 功能是:计算并输出该 数列前n项的平方根之 和。n的值通过形参传 入。(1)“double fun(int n)”。(2)“return sum;”。 13.函数fun的功能是: 根据整形形参m的值: 计算如下公式的 值……例如:若m中的 值为5,则应输出: 0.536389。(1) “for(i=2; i<=m; i++)”(2) “y-=1.0/(i*i);”。 14.函数的功能是:将 字符串中的字符按逆 序输出,但不改变字符 串中的内容。例如字符 串abcd,则应输出dcba。 (1)“void fun(char *a)”。(2)“printf("%c", *a);”。 15.函数fun的功能是:求 三个数的最小公倍数。 X1=15 x2=11 x3=2(1) 改成“int fun(int x, int y, int z )”。(2)return j 16.函数fun的功能是:根 据整型形参m计算如下 公式的值。若主函数中输 入5,则应输出-0.283333。 (1)“t=t-1.0/i;”。 (2)填空“return t;” 17. 例如,若输入:edcba, 则应输出:abcde。(1) “for( i=strlen( t )-1; i; i- - )” (2)“if(t[j]>t[j+1])” 18.函数fun的功能是: 根据形参m的值 (2<=m<=9),在m行m 列的二维数组中存放 如下所示规律的数据, 由main函数输出。(1) “void fun(int a[][M], int m)”。(2) “a[j][k]=(k+1)*(j+1);”。 19.函数fun的功能是: 先从键盘上输入一个3 行3列矩阵的各个元素

C语言程序改错题

第1题【程序改错】 欧阳学文 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的 字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为: “EDCBAABCDE”。 */ #include #include #include void fun (char *s, char *t) { /**********FOUND**********/ int i; sl = strlen(s); for (i=0; i

/**********FOUND**********/ t[i] = s[sli]; for (i=0; i

第2题【程序改错】 功能:求出以下分数序列的前n项之和。和值通过函数值返回main 函数。 2/1+3/2+5/3+8/5+13/8+21/13 …… 例如:若n = 5,则应输出:8.391667。 */ #include #include /**********FOUND**********/ fun ( int n ) { int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k <= n; k++ ) { /**********FOUND**********/ s = (double)a / b;

程序改错包括答案版本.docx

12592 '题目 : 编程求一个十进制整数n 的各位数字之和,设n 为小于或等于 5 位的数。'------------------------------------------------ Option Explicit Private Sub Form_Click() Dim N As Integer, Sum As Integer, S1 As String, S2 As String Dim i As Integer, Ch As String Sum = 0 N = InputBox(" 输入整数n") S1 = Str(N) S1 = Trim(S1) For i = 1 To Len(S1) '**********ERROR********** Ch = Mid(N, i, 1) '**********ERROR********** Sum = Val(Ch) Next i Print " 该整数的各位数之和是: "; Sum End Sub 答案: Ch=Mid(S1 , i , 1) Sum = Sum + Val(Ch) 12610'题目:程序功能根据输入的学习成绩, 分别显示优秀 (90 分以上 ), 良好 (75 分以上 ), 及格 (60 分以上 )不及格四个等级 . '------------------------------------------------ Option Explicit Private Sub Form_Click() Cls Dim i As Integer i = InputBox(" 请输入学习成绩") Select Case i '**********ERROR********** Case 0 < i < 100 MsgBox " 成绩应该在0--100 之间 """ '**********ERROR********** Case 90 Print " 优秀 " Case 75 To 89 Print " 良好 " Case 60 To 74 Print " 及格 " '**********ERROR********** Case MsgBox " 不及格 ", vbCritical End Select End Sub 答案: Case 100 < x or x < 0 Case 90 to 100 Case Else 12616.题目:求 s=1!+3!+5!+7! ,阶乘的计算用Function 过程 fact 实现 . '------------------------------------------------ Option Explicit Private Sub Form_Click() Dim i As Integer, s As Integer '**********ERROR********** For i = 1 To 7 s = s + fact(i) Next i Print s End Sub '**********ERROR********** Public Function fact() Dim t As Integer, i As Integer t = 1 For i = 1 To n t = t * i Next i '**********ERROR********** fact = i End Function 答案: For i = 1 To 7 Step 2 Public Function fact%(n%) fact = t 12620 题目 :编程实现从左到右的滚动字幕,滚动的速度由滚动条控件来控制。 '------------------------------------------------ Option Explicit Private Sub HScroll1_Scroll() '**********ERROR********** Timer1.Interval = HScroll1.Min - HScroll1.Value End Sub Private Sub Timer1_Timer() '**********ERROR********** If Label1.Left <= Form1.Width Then '**********ERROR**********

C语言程序改错基本题库电子版本

C语言程序改错基本 题库

北京石油化工学院 12级复习题 程序改错 一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。 1.求1234n main() { long int sum; int n,i=1; scanf("%d",n); printf(“\n”); while(ia[j]) { max=a[j]; m=j; } printf(“下标:%d\n最大值:%d”, j, max) } *3. 求 3+4 int a=3,b=4;

main() { int a,c; c=a+b; printf(“c=%d”); } 4.用一个函数求两个数之和。 sum(x,y) { float z; z=x+y; return; } main() { float a,b; int c; scanf("%f,%f",&a,&b); c=sum(a,b); printf("\nSum is %f",sum); } 5.用指针作函数参数,对输入的两个整数按大小顺序输出。 swap(int *p1,*p2) { int *p; *p=*p1;*p1=*p2;*p2=*p; } main() { int a,b; int *q1,*q2; scanf("%d,%d",&a,&b); &q1=a,&q2=b; if(a

VB程序设计例题-程序改错程序填空程序设计

'以下程序段用于输出杨辉三角:结果样式如图1 ' Private Sub Form_Click() Const n = 10 Dim arr(n, n) As Integer For I = 1 To n arr(I, I) = 1 '**********SPACE********** 【arr(I, 1) = 1】 Next I For I = 3 To n For j = 2 To I - 1 '**********SPACE********** arr(i, j) =arr(i-1,j-1)+arr(i-1,j) Next j Next I For I = 1 To n For j = 1 To I '**********SPACE********** 【print arr(I,j)】 Next j Print Next I End Sub Option Explicit '------------------------------------------------ '【程序改错】 '------------------------------------------------ '题目:用自定义函数的方法求sum(x),求当-1≤x≤1时,' sum(x)=x/2!+x^2/3!+x^3/4!+……+x^n/(n+1)!, ' 当x〉1或x〈-1时,函数值为0。当n〈=0时,输入数' 据错误。X、N都是由用户输入。 '------------------------------------------------ '注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click() Dim s As Single Dim n As Integer, x As Single, k As Integer n = Val(InputBox("Please input a integer value:"))

程序改错完整版---C语言

(一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。#include "stdio.h" #define N 20 void fun(int a[], int n) { int i, j, t, k; for (j = 0 ;j < n-1 ;j++) { /**********ERROR**********/ k = j for (i = j+1;i < n; i++) /**********ERROR**********/ if(a[i] >a[k]) /**********ERROR**********/ k=j; t = a[k] ; a[k] = a[j] ; a[j] = t; } } main() { int a[N]={9,6,8,3,-1},i, m = 5; printf("排序前的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); fun(a,m); printf("排序后的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); } 【参考答案】 k = j; 【参考答案】 if(a[i] < a[k]) if(a[k] > a[i])

【参考答案】 k = i; (二)功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。 例如:若 n = 15,则应输出:The value is: 2209。 #include "conio.h" #include "stdio.h" long fun ( int n ) { long a=1, b=1, c=1, d=1, k; /**********ERROR**********/ for (k=4; k

计算机基础C++程序改错复习题

? 第1题(分)题号:400 难度:中第2章/*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun求20以内所有5的倍数之积。 ------------------------------------------------------*/ 《 #define N 20 #include <> int fun(int m) { /**********FOUND**********/ int s=0,i; ; for(i=1;i

s*=i; ) 第2题(分)题号:584 难度:中第1章/*-------------------------------------------------------【程序改错】 --------------------------------------------------------- 下列给定程序中函数fun()的功能是计算1/n!的值。 & 例如:给n输入5,则输出。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行, 也不得更改程序的结构。 , 试题程序: -------------------------------------------------------*/ #include <> #include <> /***********FOUND***********/ ~ int fun(int n) { double result =; if(n==0) return ; while(n>1 && n <170) /***********FOUND***********/ result *=n++ ; … result=1/result; return result; } void main() {

C语言程序改错题

第12次上机程序改错第1题 【程序改错】 -------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。 例如:输入圆的半径值:19.527 输出为:s = 598.950017。 ------------------------------------------------------*/ #include #include /**********FOUND**********/ double fun( r) double fun(double r) { double s; /**********FOUND**********/ s=1/2*3.14159* r * r; s=1.0/2*3.14159*r*r; /**********FOUND**********/ return r; return s; } main() { float x;

printf ( "Enter x: "); scanf ( "%f", &x ); printf (" s = %f\n ", fun ( x ) ); } 第2题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include #include #include void fun (char *s, char *t) { /**********FOUND**********/ int i; int sl,i; sl = strlen(s); for (i=0; i

程序改错2

【程序改错-1】 题目:在一个一维整型数组中找出其中最大的数及其下标。程序中共有4条错误语句,请改正错误。『错误答案』: 1 int fun(int *a,int *b,int n) 2 *b=c-a;} 3 scanf("%d",&a[i]); 4 max=fun(a,&p,N); 【程序改错-2】 题目:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。程序中共有4条错误语句,请改正错误。 『错误答案』: 1 scanf("%d",p++); 2 max=p; 3 if(★max★==★arr ★) 4 for(i=0;ii;i++) 或 for(p=arr;pj;j++) 或 for(j=0;jj;j++) 3 if(x[j]>x[★j★+★1★]) 或 if(x[★j★+★1]★ =0;i--) 或 for(i=N-2;0<=i;i--) 3 a[★i★+★1 ★]=a[i]; 4 break;} 『Turbo C——程序改错』【程序改错-5】 题目:将一个字符串中第m个字符开始的全部字符复制成为另一 个字符串。 程序中共有4条错误语句,请改正错误。 『错误答案』: 1 { char *p1,*p2; 或{ char *p2,*p1; 2 p1= ★str1★+★m★ -1; 或 p1=-1+★str1★+★m★; 3 while(*p1) 4 strcopy(str1,str2,m); 【程序改错-6】 题目:以下程序的功能是求如下表达式:请改正程序中的错误,使程序能得到正确的运行结果。 『错误答案』: 1 scanf("%d",&n); 2 float fun(int n) 3 for(i=1;i<=n;i++) 或 for(i=1;n>=i;i++) 或 for(i=1;ii;i++) 4 s+=1.0/t 或 s=★s★+★1.0★/(float)t; 或 s=★s★ +★1.0★/t; 或 s+=1.0/(float)t 【程序改错-7】 题目:下面程序的功能是利用二维数组输出如图所示的图形。请改正程序中的错误,使程序能得到正确的运行结果。『错误答案』: 1 #define N 7 2 a[i][j]=' '; 3 z=z-1; 或 z--; 或 z=-1+z; 或 z=(n+1)/2-1; 或 z=(1+n)/2-1 4 printf("%c",a[i][j]); 【程序改错-8】 题目:输入一行英文文本,将每一 个单词的第一个字母变成大『错误 答案』: 1 fun(char *p) 或 fun(char p[]) 2 while(*p!='\0') 或 while(*p) 3 k=1;} 4 p++; 或 p=1+p; 或 ++p; 或 p=p+1; 【程序改错-9】 题目:将一个字符串中的大写字母 转换成小写字母。 例如:输入aSdFG输出为 asdfg。 『错误答案』: 1 char fun(char *c) 2 return *c; 或 return (*c); 或 return(*c); 3 { char s[81],*p=s; 4 putchar(*p); 或 printf("%c",*p); 【程序改错-10】 题目:将若干学生的档案存放在一 个文件中,并显示其内容。错误答 案』: 1 { struct student *p 2 FILE *fp; 3 for(p=stu;p<★stu★ +★3★;p++) 或 for(p=stu;★ stu★+★3★>p;p++) 或 for(p=stu;p<=★stu★+★2 ★;p++) 或 for(p=stu;★stu★+ ★2★>=p;p++) 4 printf("%4d %-10s %4d\n",(*p) .num ,p->name,(*p).age); 【程序改错-11】 题目:下列给定程序中,函数fun 的功能是:判断m是否为素数,若 是返回1,否则返回0。主函数的 功能是:按每行5个输出1-100 之间的全部素数。『错误答案』: 1 int fun( int m) 或 fun( int m) 2 for(i=2;ii;i++) 或 for(i=2;i<=m-1;i++) 或 for(i=2;m-1=>i;i++) 3 if(★m%i★==★0★) k=0; 4 return k; 或 return(k); 【程序改错-12】 题目:函数fun的功能是:用下面 的和式求圆周率的近似值。直 到最后一项的绝对值小于 等于0.0001。 错误答案』: 1 #include "math.h" 2 float s=0,t=1,p=1; 或 float s=0,p=1,t=1; 或 float p=1,s=0,t=1; 或 float p=1,t=1,s=0; 或 float t=1,p=1,s=0; 或 float t=1,s=0,p=1; 3 while(fabs(t)>1e-4) 或 while(0.00010.0001) 4 printf("pi=%f\n",★ s★*★4★); 【程序改错-13】 题目:下列给定程序中,函数fun 的功能是:求1到10的阶乘的 和。主函数和fun函数中, 各有两个错误,\『错误答案』: 1 for(i=1;i<=10;i++) 或 for(i=1;10>=i;i++) 或 for(i=1;i<11;i++) 或 for(i=1;11>i;i++) 2 s=★s★+★fac(i)★; 或 s+=fac(i); 3 float y=1.0; 或 float y=1; 4 return y; 或 return(y); 或 return (y); 【程序改错-14】 题目:函数fun的功能是:求1到 20的阶乘的和。请改正程序中的错 误,使它能得出正确的结果。 『错误答案』: 1 t=1; 或 t=1.0; 2 t=★t★*★j★; 或 t*=j; 3 s=★s★+★t★; 或 s+=t; 4 printf("jiecheng=%f\n",s); 【程序改错-15】 题目:函数fun的功能是:输出 Fabonacci数列的前20项,要求变 量类型定义成浮点型,输出 时只输出整数部分,输出项 数不得多于或少于20。 『错误答案』: 1 printf("%8.0f",f1); 或 printf("%f",f1); 2 for(i=1;i<20;i++) 或 for(i=1;20>i;i++) 或 for(i=2;i<=20;i++) 或 for(i=2;20>=i;i++) 或 for(i=1;i<=19;i++) 或 for(i=1;19>=i;i++) 3 f1=f2; 4 f2=f3; 【程序改错-16】 题目:函数fun的功能是:根据整 型形参m的值,计算如下公式的值。 1 1 1 t = 1- —— - —— - ... - —— 2x2 3x3 mxm 『错误答案』: 1 for(i=2;i<=m;i++) 或 for(i=2;m>=i;i++) 或 2 y-=1.0/(i*i); 或 y=y-1.0/(i*i); 或 3 return y; 或 return (y); 【程序改错-17】 题目:函数fun的功能是:实现交 换两个整数的值。例如给a和b 分别输入3和6 ,输出为 a=6 b=3『错误答案』: 1 void fun (int *a,int *b) 或 fun (int *a,int *b) 2 t=*a; 3 *a=*b; 4 *b=t; 【程序改错-18】 题目:函数fun的功能是:计算并 输出k以内最大的10个能被13 或17整除的自然数之和。k 的值由主函数传入,若k的值 为500,则函数值为4622。 请更改程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 while (★(2<=k)★&& ★(mc<10)★) 或 while (★(k>=2) ★&&★(10=k;k++) 【程序改错-21】 题目:函数fun的功能是:根据以 下公式求π值,并作为函数值 返回。例如,给指定精度的 变量eps输入0.0005时,应当 输出Pi=3.140578。 『错误答案』: 1 t=1; 或 t=1.0; 2 while (t>eps) 或 while (eps=eps) 或 while (eps<=t) 3 t=t*n/(2*n+1); 或 1.0*n/(2*n+1)*t 4 return (2*s); 或 return(2*s); 或 return (s*2); 或 return(s*2); 【程序改错-22】 题目:函数fun的功能是:求出两 个非零正整数的最大公约数, 并作为函数值返回。例如, 若给num1和num2分别输入49 和21,则输出的最大公约数 为7。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 a=b; 2 b=t; 3 r=a%b;} 4 return b; 或 return (b); 或 return(b); 【程序改错-23】 题目:在主函数中从键盘输入若干 个数放入数组中,用0结束输 入并放在最后一个元素中。 下列给定程序中,函数fun的 功能是:计算数组元素中值 为正数的平均值(不包括0)。 例如,数组中元素的值依次 为39,-47,21,2,-8,15, 0,则程序的运行结果为 19.250000。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 double sum=0.0; 2 while(★s[i]★!=★0 ★) 或 while!(s[i]==0) 或 while!(0==s[i]) 3 sum/=c; 或 sum=sum/c; 4 return sum; 或 return (sum); 【程序改错-24】 题目:fun函数的功能是:先从键 盘上输入一个3行3列矩阵的各 个元素的值,然后输出主对 角线上的元素之和sum。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 sum=0; 2 scanf("%d",&a[i][j]); 3 sum=★sum★+★ a[i][i]★; 或 sum+=a[i][i]; 4 printf("sum=%d\n",sum); 【程序改错-25】 题目:fun函数的功能是:给定n 个实数,输出平均值,并统计 在平均值以下(含平均值) 的实数个数。例如,n=6时, 输入23.5, 45.67, 12.1, 6.4,58.9, 98.4所得平均值 为40.828335,在平均值以 下的实数个数应为3。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 float xa=0; 或 float xa=0.0; 2 for(j=0;jj;j++) 或 for(j=0;n-1>=j;j++) 或 for(j=0;j<=n-1;j++) 3 for(j=0;jj;j++) 或 for(j=0;j<=n-1;j++) 或 for(j=0;n-1>=j;j++) 4 return c; 或 return (c); 【程序改错-26】 题目:fun函数的功能是:找出大 于m的最小素数,并将其作为 函数值返回。 请改正程序中的错误,使它 能得出正确的结果。 『错误答案』: 1 for(k=2;kk;k++)

相关文档
相关文档 最新文档