省二C语言最新改错题.docx
《省二C语言最新改错题.docx》由会员分享,可在线阅读,更多相关《省二C语言最新改错题.docx(120页珍藏版)》请在冰点文库上搜索。
省二C语言最新改错题
STNR
STYQ
WJM
STDA
以下程序求[10,1000]之间能被3或5或8整除的数之和。
请改正程序中的错误,并运行修改后的程序,给出正确程序运行结果,填入相应窗口。
#include
#include
#include
main()
{
inti;
intsum;
sum=0;
for(i=10;i<1000;i++)
{if((fmod(i,3)==0)||(fmod(i,5)==0)&&(fmod(i,8)==0)
sum+=1;
}
clrscr();
printf("%d\n",sum);
}
267793
下面的程序中,函数fun的功能是:
根据形参m,计算下面公式的值。
T=1+1/(2*3)+1/(3*4)+......+1/(m*(m+1))
请改正程序中的错误,并运行改正后的程序。
当从键盘输入50时,给出程序运行的正确结果(按四舍五入保留6位小数)。
程序:
#include
#include
doublefun(intm)
{doublet=1.0;
inti=2;
for(i=2;i<=m;i++)
t+=1/(i*(i+1));
returnt;
}
main()
{intm;
clrscr();
printf("\n请输入一个整数:
");
scanf("%d",m);
printf("\n结果是:
%lf\n",fun(m));
}
1.480392
下面的程序中,函数fun的功能是:
根据形参m,计算下面公式的值。
T=1+1/(2*3)+1/(3*4)+......+1/(m*(m+1))
请改正程序中的错误,并运行改正后的程序。
当从键盘输入70时,给出程序运行的正确结果(按四舍五入保留6位小数)。
程序:
#include
#include
doublefun(intm)
{doublet=1.0;
inti=2;
for(i=2;i<=m;i++)
t+=1.0/i*(i+1);
return;
}
main()
{intm;
clrscr();
printf("\n请输入一个整数:
");
scanf("%d",&m);
printf("\n结果是:
%lf\n",fun(m));
}
1.485915
下面的程序中,函数fun的功能是:
根据形参m,计算下面公式的值。
T=1/1!
+1/2!
+1/3!
+......+1/m!
请改正程序中的错误,并运行改正后的程序。
当从键盘输入10时,给出程序运行的正确结果(按四舍五入保留10位小数)。
程序:
#include
#include
doublefun(intm)
{doublefac,t=0.0;
inti=1,j;
for(i=1;i<=m;i++)
{fac=1.0;
for(j=1;j<=m;j++)fac=fac*i;
t+=1.0/fac;
}
returnt;
}
main()
{intm;
clrscr();
printf("\n请输入整数:
");
scanf("%d",&m);
printf("\n结果是:
%12.10lf\n",fun(m));
}
1.7182818011
下面的程序中,函数fun的功能是:
根据形参m,计算下面公式的值。
T=1+1/(1*2)+1/(2*3)+......+1/(m-1)*m
请改正程序中的错误,并运行改正后的程序。
当从键盘输入70时,给出程序运行的正确结果(按四舍五入保留6位小数)。
程序:
#include
#include
doublefun(intm)
{doublet=1.0;
inti=2;
for(i=2;i<=m;i++)
t+=1.0/(i*(i+1));
return;
}
main()
{intm;
clrscr();
printf("\n输入整数:
");
scanf("%d",&m);
printf("\n结果是:
%lf\n",fun(m));
}
1.985714
下例程序中,函数fun的功能是:
计算并输出k以内的最大的10个能被13或17整除的自然数之和。
请改正程序中的错误,并运行正确的程序。
当从键盘输入500时,给出程序运行的正确结果
#include
#include
intfun(intk)
{intm=0,mc=0,j;
while((k>=2)||mc<10)
{if((k%13==0)&&(k%17==0))
{m=m+k;mc++;}
k--;
}
returnm;
}
main()
{intk;
clrscr();
printf("\n请输入整数:
");
scanf("%d",&k);
printf("\n结果是:
%d\n",fun(k));
}
4622
下例程序中,函数fun的功能是:
计算并输出k以内的最大的10个能被13和17整除的自然数之和。
请改正程序中的错误,并运行正确的程序。
当从键盘输入2500时,给出程序运行的正确结果
#include
#include
intfun(intk)
{intm=0,mc=0,j;
while((k>=2)&&mc<10)
{if((k%13==0)||(k%17==0))
{m=m+k;mc++;}
k--;
}
return;
}
main()
{intk;
clrscr();
printf("\n请输入整数:
");
scanf("%d",&k);
printf("\n结果是:
%d\n",fun(k));
}
14365
下面的程序是求1000以内的最大的20个素数之和。
请修改程序中的错误,使它能得出正确的结果,并给出正确结果。
程序:
#include
#include
#include
intfun(inthigh)
{intsum=0,n=0,j,yes;
while((high>=2)||(n<10))
{yes=1;
for(j=2;j<=sqrt(high);j++)
if(high%j==0)
yes=0;break;
if(yes){sum+=high;n++;}
high--;
}
returnsum;
}
main()
{clrscr();
printf("%d\n",fun(1000));
}
18580
下面程序是求[50,300]之间的所有偶数的平方和。
请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
程序:
#include
#include
#include
main()
{
longsum;
inti;
sum=0;
for(i=50;i<=300;i++)
{
if(fmod(i,2)!
=0)
sum+=i*i;
}
clrscr();
printf("%ld\n",sum);
}
4525500
下面程序是求[20,400]之间的能被9整除的数的平方和。
请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
程序:
#include
#include
#include
main()
{
longsum;
inti;
sum=1;
for(i=20;i<=400;i++)
{
if(fmod(i,9)==0)
sum+=i*i;
}
clrscr();
printf("%ld\n",sum);
}
2378565
以下程序求10000以内的所有完全数的个数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
”完全数”是指:
一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:
6=1+2+3,则6就是一个完全数。
程序:
#include
#include
#include
main()
{
intcount,n,m,s,k;
count=0;
for(n=3;n<=10000;n++)
{
s=1;
k=n/2+1;
for(m=1;mif(n%m==0)
s+=1;
if(s==n)
{
count+=1;
}
}
printf("\nThecount=%d",count);
}
4
以下程序求[1,500]之间能被3或5整除的数之和。
请改正程序中的错误,并运行修改后的程序,给出正确程序运行结果,填入相应窗口。
#include
#include
#include
main()
{
inti;
intsum;
sum=0;
for(i=1;i<500;i++)
{if((fmod(i,3)==0)||(fmod(i,5)==0))
sum+=i;
}
clrscr();
printf("%d\n",sum);
}
58418
下面的程序是求[100,999]之间所有的素数的个数。
请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
程序:
#include
#include
#include
intprime(intn)
{intyes,i;
if(n<=1){return0;}
yes=1;
for(i=2;i<=sqrt(n);i++)
if(n%i!
=0){yes=0;break;}
returnyes;
}
main()
{intcount=0,i;
clrscr();
for(i=100;i<999;i++)
if(prime(i))count+=1;
printf("%d\n",count);
}
143
下面程序是求[20,400]之间的能被9整除的数的平方和。
请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
程序:
#include
#include
#include
main()
{
longsum;
inti;
sum=1;
for(i=20;i<=400;i++)
{
if(fmod(i,9)==0)
sum+=i*i;
}
clrscr();
printf("%d\n",sum);
}
2378565
下面的程序是求[20,700]之间所有的素数的个数。
请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
程序:
#include
#include
#include
intprime(intn)
{intyes,i;
if(n<=1){return0;}
yes=0;
for(i=2;i<=sqrt(n);i++)
if(n%i==0){yes=0;break;}
returnyes;
}
main()
{intcount=0,i;
clrscr();
for(i=20;i<=700;i++)
if(prime(i))count+=1;
printf("%d\n",count);
}
117
下面程序是求[1,550]之间同时满足除3余2和除5余3条件的数之和。
请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
程序:
#include
#include
#include
main()
{
intsum;
inti;
sum=0;
for(i=1;i<=550;i++)
{
if(fmod(i,3)==2&&fmod(i,5)==3)
sum+=1;
}
clrscr();
printf("%ld\n",sum);
}
10286
下面的程序中,函数fun的功能是:
根据形参m,计算下面公式的值。
T=1/1!
+1/2!
+1/3!
+......+1/m!
请改正程序中的错误,并运行改正后的程序。
当从键盘输入10时,给出程序运行的正确结果(按四舍五入保留10位小数)。
程序:
#include
#include
doublefun(intm)
{doublefac,t=0.0;
inti=1,j;
for(i=1;i<=m;i++)
{fac=1.0;
for(j=1;j<=m;j++)fac=fac*i;
t+=1.0/fac;
}
returnt;
}
main()
{intm;
clrscr();
printf("\n请输入整数:
");
scanf("%d",&m);
printf("\n结果是:
%12.10lf\n",fun(m));
}
1.7182818011
下面的程序中,函数fun的功能是:
根据形参m,计算下面公式的值。
T=1+1/(1*2)+1/(2*3)+......+1/(m-1)*m
请改正程序中的错误,并运行改正后的程序。
当从键盘输入70时,给出程序运行的正确结果(按四舍五入保留6位小数)。
程序:
#include
#include
doublefun(intm)
{doublet=1.0;
inti=2;
for(i=2;i<=m;i++)
t+=1.0/(i*(i+1));
return;
}
main()
{intm;
clrscr();
printf("\n输入整数:
");
scanf("%d",&m);
printf("\n结果是:
%lf\n",fun(m));
}
1.985714
下面的程序是求400以内的所有的素数之和。
请修改程序中的错误,使它能得出正确的结果,并给出正确结果。
程序:
#include
#include
#include
intprime(intn)
{intyes,i;
if(n<=1){return0;}
yes=0;
for(i=2;i<=sqrt(n);i++)
if(n%i==0){yes=1;break;}
returnyes;
}
main()
{intsum=0,i;
clrscr();
for(i=2;i<=400;i++)
if(prime(i))sum+=i;
printf("%d\n",sum);
}
13887
以下程序求[1,600]之间能被5或6整除的数的个数。
请改正程序中的错误,并运行修改后的程序,给出正确程序运行结果,填入相应窗口。
#include
#include
#include
main()
{
inti;
intcount;
count=1;
for(i=1;i<=600;i++)
{if((fmod(i,5)==1)||(fmod(i,6)==1))
count=count+i;
}
clrscr();
printf("%d\n",count);
}
200
下面的程序是求500以内的所有的素数的个数。
请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
程序:
#include
#include
#include
intprime(intn)
{intyes,i;
if(n<=1){return1;}
yes=1;
for(i=2;i<=sqrt(n);i++)
if(n%i==0){yes=0;break;}
returnyes;
}
main()
{intcount=0,i;
clrscr();
for(i=2;i<=500;i++)
if(prime(i))count+=i;
printf("%d\n",count);
}
95
下面程序是求[1,120]之间的所有整数的平方和。
请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
程序:
#include
#include
#include
main()
{
intsum;
inti;
sum=0;
for(i=1;i<120;i++)
{
sum+=i*i;
}
clrscr();
printf("%ld\n",sum);
}
583220
以下程序求1000以内最大的完全数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
”完全数”是指:
一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:
6=1+2+3,则6就是一个完全数。
程序:
#include
#include
#include
main()
{
intn,m,s,k,big;
for(n=3;n<=1000;n++)
{
s=1;
k=n/2+1;
for(m=1;mif(n%m==0)
s+=1;
if(s==n)
{
big=n;
}
}
printf("\nThebig=%d",big);
}
496
下面程序是求[5,145]之间的所有奇数的平方和。
请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
程序:
#include
#include
#include
main()
{
longsum;
inti;
sum=0;
for(i=5;i<145;i++)
{
if(fmod(i,2)!
=0)
sum+=i*i;
}
clrscr();
printf("%d\n",sum);
}
518655
以下程序求10000以内最大的完全数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。
”完全数”是指:
一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:
6=1+2+3,则6就是一个完全数。
程序:
#include
#include
#include
main()
{
intn,m,s,k,big;
s=1;
for(n=3;n<=10000;n++)
{
k=n/2+1;
for(m=1;mif(n%m==0)
s+=m;
if(s==n)
{
big=n;
}
}
printf("\nThebig=%d",big);
}
8128
下面的程序是求表达式的值:
s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+(1*2*3*....*n)/(3*5*7*.....(2*n+1))
请修改程序中的错误,并运行修改后的程序。
当n=20时,程序的运行结果(保留10位小数)。
程序:
#include
#include
#include
doublefun(intn)
{doubles,t;inti;
s=0.0;t=1.0;
for(i=1;i<=n;I--)
{t=t*i/(2*i+1);
s+=t;
}
returns;
}
main()
{
printf("\n%12.10lf",fun(20));
}
1.5707961494
下面的程序是求表达式的值:
s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+(1*2*3*....*n)/(3*5*7*.....(2*n+1))
请修改程序中的错误,并运行修改后的程序。
当n=30时,程序的运行结果(保留10位小数)。
程序:
#include
#include
#include
doublefun(intn)
{doubles,t;inti;
s=1.0;t=1.0;
for(i=1;i<=n;i++)
{t=t*n/(2*n+1);
s=t;
}
returns;
}
main()
{printf("\n%12.10lf",fun(30));
}
1.5707963267
下面的程序是求表达式的值:
s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+(1*2*3*....*n)/(3*5*7*.....(2*n+1))
请修改程序中的错误,并运行修改后的程序。
当n=40时,程序的运行结果(保留10位小数)。
程序:
#include
#include
#include
doublefun(intn)
{doubles,t;inti;
s=1.0;t=1.0;
for(i=2;i<=n;i--)
{t=t*n/(2*i+1);
s+=t;
}
returns;
}
main()
{
printf("\n%