printf("%5d",a[i]);
printf("\n");
}
-------------------------------------
『错误答案』:
1scanf("%d",&number);
2for(i=N-2;i>=0;i--)或for(i=N-2;0<=i;i--)
3a[i+1]=a[i];
4break;}
------------------------------------
4题目:
以下程序的功能是求如下表达式:
S=1+1/(1+2)+1/(1+2+3)+
1/(1+2+3+4)…请改正程序中的错误,使程序能得到正确的运行结果。
#include
main()
{
intn;
floatfun();
printf("Pleaseinputanumber:
");
/**********FOUND**********/
printf("%d",n);
printf("%10.6f\n",fun(n));
}
/**********FOUND**********/
fun(intn)
{
inti,j,t;
floats;
s=0;
/**********FOUND**********/
for(i=1;i<=n;i++);
{
t=0;
for(j=1;j<=i;j++)
t=t+j;
/**********FOUND**********/
s=s+1/t;
}
returns;
}
『错误答案』:
1scanf("%d",&n);
2floatfun(intn)
3for(i=1;i<=n;i++)或for(i=1;n>=i;i++)或for(i=1;ii;i++)
4s+=1.0/t或s=s+1.0/(float)t;或s=s+1.0/t;或s+=1.0/(float)t
/*-----------------------------------
5题目:
输入一行英文文本,将每一个单词的第一个字母变成大写。
例如:
输入"ThisisaCprogram.",输出为"ThisIsACProgram."。
-------------------------------------
#include
#include
#include
/**********FOUND**********/
fun(charp)
{
intk=0;
/**********FOUND**********/
while(*p=='\0')
{
if(k==0&&*p!
='')
{
*p=toupper(*p);
/**********FOUND**********/
k=0;}
elseif(*p!
='')k=1;
elsek=0;
/**********FOUND**********/
*p+;
}
}
main()
{charstr[81];
clrscr();
printf("pleaseinputaEnglishtextline:
");
gets(str);
printf("Theoriginaltextlineis:
");
puts(str);
fun(str);
printf("Thenewtextlineis:
");
puts(str);
}
『错误答案』:
1fun(char*p)或fun(charp[])
2while(*p!
='\0')或while(*p)
3k=1;}
4p++;或p=1+p;或++p;或p=p+1;
-------------------------------------
6题目:
将一个字符串中的大写字母转换成小写字母。
例如:
输入aSdFG输出为asdfg。
-------------------------------------
#include
/**********FOUND**********/
charfun(charc)
{
if(*c<='Z'&&*c>='A')*c-='A'-'a';
/**********FOUND**********/
fun=c;
}
main()
/**********FOUND**********/
chars[81],*p=s;
gets(s);
while(*p)
{
*p=fun(p);
/**********FOUND**********/
puts(*p);
p++;
}
putchar('\n');
}
『错误答案』:
1charfun(char*c)
2return*c;或return(*c);或return(*c);
3{chars[81],*p=s;
4putchar(*p);或printf("%c",*p);
7题目:
下列给定程序中,函数fun的功能是:
判断m是否为素数,若是返回1,否则返回0。
主函数的功能是:
按每行5个输出1-100之间的全部素数。
请改正程序中的4个错误,使它能得出正确的结果。
-------------------------------------
main()
{intm,k=0;
for(m=1;m<100;m++)
if(fun(m)==1)
{
printf("%4d",m);k++;
if(k%5==0)printf("\n");
}
}
/**********FOUND**********/
voidfun(intm)
{inti,k=1;
if(m<=1)k=0;
/**********FOUND**********/
for(i=1;i/**********FOUND**********/
if(m%i=0)k=0;
/**********FOUND**********/
returnm;
}
『错误答案』:
1intfun(intm)或fun(intm)
2for(i=2;ii;i++)或for(i=2;i<=m-1;i++)或for(i=2;m-1=>i;i++)
3if(m%i==0)k=0;
4returnk;
-------------------------------------
8题目:
函数fun的功能是:
用下面的和式求圆周率的近似值。
直到最后一项的绝对值小于等于0.0001。
π111
—=1-—+—-—+...
4357
请改正程序中的错误,使它能得出正确的结果。
-------------------------------------
/**********FOUND**********/
#include"stdio.h"
fun()
{
inti=1;
/**********FOUND**********/
ints=0,t=1,p=1;
/**********FOUND**********/
while(fabs(t)<=1e-4)
{
s=s+t;
p=-p;
i=i+2;
t=p/i;
}
/**********FOUND**********/
printf("pi=%d\n",s*4);
}
main()
{
fun();
}
『错误答案』:
1.#include"math.h"
2floats=0,t=1,p=1;
或floats=0,p=1,t=1;
3while(fabs(t)>1e-4)或while(0.00010.0001)
4printf("pi=%f\n",s*4);
9题目:
下列给定程序中,函数fun的功能是:
求1到10的阶乘的和。
主函数和fun函数中,各有两个错误,请改正,使其能得到正确的运行结果。
-------------------------------------main()
{
inti;
floatt,s=0;
floatfac(intn);
/**********FOUND**********/
for(i=1;i<10;i++)
/**********FOUND**********/
s=fac(i);
printf("%f\n",s);
}
floatfac(intn)
{
/**********FOUND**********/
inty=1;
inti;
for(i=1;i<=n;i++)
y=y*i;
/**********FOUND**********/
return;
}
『错误答案』:
1for(i=1;i<=10;i++)或for(i=1;10>=i;i++)或for(i=1;i<11;i++)或for(i=1;11>i;i++)
2s=s+fac(i);或s+=fac(i);
3floaty=1.0;或floaty=1;
4returny;或return(y);或return(y);
10题目:
函数fun的功能是:
求1到20的阶乘的和。
请改正程序中的错误,使它能得出正确的结果。
-------------------------------------
fun()
{
intn,j;
floats=0.0,t;
for(n=1;n<=20;n++)
{
/**********FOUND**********/
s=1;
for(j=1;j<=n;j++)
/**********FOUND**********/
t=t*n;
/**********FOUND**********/
s+t=s;
}
/**********FOUND**********/
printf("jiecheng=%d\n",s);
}
main()
{
fun();
}
『错误答案』:
1t=1;或t=1.0;
2t=t*j;或t*=j;
3s=s+t;或s+=t;
4printf("jiecheng=%f\n",s);
-------------------------------------
11题目:
函数fun的功能是:
求1到20的阶乘的和。
请改正程序中的错误,使它能得出正确的结果。
fun()
{
intn,j;
floats=0.0,t;
for(n=1;n<=20;n++)
{
/**********FOUND**********/
s=1;
for(j=1;j<=n;j++)
/**********FOUND**********/
t=t*n;
/**********FOUND**********/
s+t=s;
}
/**********FOUND**********/
printf("jiecheng=%d\n",s);
}
main()
{
fun();
}
『错误答案』:
1t=1;或t=1.0;
2t=t*j;或t*=j;
3s=s+t;或s+=t;
4printf("jiecheng=%f\n",s);
-------------------------------------
12【程序改错】
题目:
函数fun的功能是:
根据整型形参m的值,计算如下公式的值。
111
t=1-——-——-...-——
2x23x3mxm
例如,若m=5,则应输出:
0.536389
请改正程序中的错误,使它能得出正确的结果。
-------------------------------------
doublefun(intm)
{
doubley=1.0;
inti;
/**********FOUND**********/
for(i=2;i/**********FOUND**********/
y-=1/(i*i);
/**********FOUND**********/
returnm;
}
main()
{
intn=5;
printf("\ntheresultis%lf\n",fun(n));
}
『错误答案』:
1for(i=2;i<=m;i++)或for(i=2;m>=i;i++)或for(i=2;ii;i++)或for(i=2;1+m>i;i++)
2y-=1.0/(i*i);或y=y-1.0/(i*i);或y-=1.0/(float)(i*i);或y=y-1.0/(float)(i*i);或y=y-1.0/i/i;或y=y-1.0/(float)i/(float)i;
3returny;或return(y);或return(y);
12题目:
函数fun的功能是:
实现交换两个整数的值。
例如给a和b分别输入3和6,输出为a=6b=3
请改正程序中的4个错误,使它能得出正确的结果。
-------------------------------------
/**********FOUND**********/
voidfun(inta,b)
{
intt;
/**********FOUND**********/
t=a;
/**********FOUND**********/
a=b;
/**********FOUND**********/
b=t;
}
main()
{
inta,b;
printf("entera,b:
");scanf("%d%d",&a,&b);
fun(&a,&b);
printf("a=%db=%d\n",a,b);
}
-------------------------------------
『错误答案』:
1voidfun(int*a,int*b)或fun(int*a,int*b)
2t=*a;
3*a=*b;
4*b=t;
-------------------------------------
13【程序改错】
题目:
函数fun的功能是:
计算并输出k以内最大的10个能被13或17整除的自然数之和。
k的值由主函数传入,若k的值为500,则函数值为4622。
请更改程序中的错误,使它能得出正确的结果。
-------------------------------------
intfun(intk)
{
intm=0,mc=0,j;
/**********FOUND**********/
while((k>=2)||(mc<10))
{
/**********FOUND**********/
if((k%13=0)||(k%17=0))
{m=m+k;mc++;}
/**********FOUND**********/
k++;
}
/**********FOUND**********/
return;
}
main()
{
printf("%d\n",fun(500));
}
-------------------------------------
『错误答案』:
1while((2<=k)&&(mc<10))或while((k>=2)&&(10=2)&&(mc<10))或while((2<=k)&&(mc<=9))或while((k>=2)&&(9<=mc))或while((2<=k)&&(9<=mc))或while((k>=2)&&(mc<=9))
2if((k%17==0)||(k%13==0))或if!
((k%17!
=0)&&(k%13!
=0))
3k--;
4returnm;或return(m);
------------------------------------
14题目:
函数fun的功能是:
计算正整数num的各位上的数字之积。
例如,输入252,则输出应该是20。
请改正程序中的错误,使它能得出正确的结果。
-------------------------------------
longfun(longnum)
{
/**********FOUND**********/
longk;
do
{
k*=num%10;
/**********FOUND**********/
num\=10;
}while(num);
returnk;
}
main()
{
longn;
printf("\nPleaseenteranumber:
");
/**********FOUND**********/
scanf("%ld",n);
/**********FOUND**********/
printf("\n%ld\n",fun(longn));
}
『错误答案』:
1longk=1;
2num/=10;或num=num/10;
3scanf("%ld",&n);
4printf("\n%ld\n",fun(n));
-------------------------------------
15题目:
函数fun的功能是:
求出两个