c语言填空与改错.docx

上传人:b****2 文档编号:16902106 上传时间:2023-07-19 格式:DOCX 页数:23 大小:20.17KB
下载 相关 举报
c语言填空与改错.docx_第1页
第1页 / 共23页
c语言填空与改错.docx_第2页
第2页 / 共23页
c语言填空与改错.docx_第3页
第3页 / 共23页
c语言填空与改错.docx_第4页
第4页 / 共23页
c语言填空与改错.docx_第5页
第5页 / 共23页
c语言填空与改错.docx_第6页
第6页 / 共23页
c语言填空与改错.docx_第7页
第7页 / 共23页
c语言填空与改错.docx_第8页
第8页 / 共23页
c语言填空与改错.docx_第9页
第9页 / 共23页
c语言填空与改错.docx_第10页
第10页 / 共23页
c语言填空与改错.docx_第11页
第11页 / 共23页
c语言填空与改错.docx_第12页
第12页 / 共23页
c语言填空与改错.docx_第13页
第13页 / 共23页
c语言填空与改错.docx_第14页
第14页 / 共23页
c语言填空与改错.docx_第15页
第15页 / 共23页
c语言填空与改错.docx_第16页
第16页 / 共23页
c语言填空与改错.docx_第17页
第17页 / 共23页
c语言填空与改错.docx_第18页
第18页 / 共23页
c语言填空与改错.docx_第19页
第19页 / 共23页
c语言填空与改错.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言填空与改错.docx

《c语言填空与改错.docx》由会员分享,可在线阅读,更多相关《c语言填空与改错.docx(23页珍藏版)》请在冰点文库上搜索。

c语言填空与改错.docx

c语言填空与改错

填空:

1.以下程序求1000以内的所有的完全数之和,请将程序补充完整,并给出正确结果,填入相应窗口。

”完全数”是指:

一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:

6=1+2+3,则6就是一个完全数。

程序:

#include

#include

#include

main()

{

intsum,n,m,s,k;

sum=0;

for(n=3;n<=1000;n++)

{

s=0;

k=n/2+1;

for(m=1;m

if(n%m==0)

________;

if(s==n)

{

____________

}

}

printf("\nThesum=%d",sum);

}

s=s+m;sum=sum+n;530

2.以下程序求[10,1000]之间能被3或5或8整除的数之和。

请将程序补充完整,给出正确程序运行结果,填入相应窗口。

#include

#include

#include

main()

{

__________

longsum;

sum=0;

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

{if(_______________)

sum+=i;

}

clrscr();

printf("%ld\n",sum);

}

inti;i%3==0||i%5==0||i%8==0267793

3.下面程序求[3,750]之间同构数之和,请将程序补充完整,并给出正确结果,填入相应窗口。

同构数是:

一自然数平方的末几位与该数相同时,称此数为自构数,例如:

5*5=25,25*25=625则称5、25为自同构数。

程序:

#include

#include

#include

main()

{longsum,n,m,s,k;

sum=0;

for(n=3;n<=750;n++)

{if(n<10)k=10;

else

if(n<100)k=100;

elsek=1000;

s=n*n;

_________;

if(s%k==0)

{

___________

}

}

printf("\nThesum=%d",sum);

}

s=s-n;sum+=n;1113

4.下面程序是求[5,75]之间的所有奇数的立方和。

请将程序补充完整,并给出正确结果,填入相应窗口。

程序:

#include

#include

#include

main()

{longsum;

___________

sum=0;

for(i=5;i<=75;i++)

{

if(fmod(i,2)!

=0)

____________

}

clrscr();

printf("%ld\n",sum);

}

inti;sum=sum+i*i*i;105568

5.下面程序是求[1,450]之间同时满足除3余2和除5余3条件的数的个数。

请将程序补充完整,并给出正确结果,填入相应窗口。

程序:

#include

#include

#include

main()

{

intcount;

inti;

__________

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

{

if(fmod(i,3)==2&&fmod(i,5)==3)

_____________

}

clrscr();

printf("%d\n",count);

}

count=0;count++;30

 

6.下面程序是求[50,450]之间的能被3和5整除的数的平方和。

请将程序补充完整,并给出正确结果,填入相应窗口。

程序:

#include

#include

#include

main()

{

longsum;

_________;

sum=0;

for(i=50;i<=450;i++)

{

if(fmod(i,3)==0&&fmod(i,5)==0)

___________

}

clrscr();

printf("%ld\n",sum);

}

inti;sum=sum+i*i;27073

 

7.下面的程序是求[2,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;}

___________

}

main()

{intcount=0,i;

clrscr();

for(i=2;i<=500;i++)

if(prime(i))___________

printf("%d\n",count);

}

returnyes;count++;95

8.下面的程序是求表达式的值:

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;

____________

t=1.0;

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

{t=t*i/(2*i+1);

____________

}

returns;

}

main()

{printf("\n%12.10lf",fun(20));

}

s=1;s=s+t;1.5707961494

9.下面的程序是求如下表达式的值。

S=sqrt(ln

(1)+ln

(2)+ln(3)+……+ln(n))

将程序补充完整,当n=60时,给出程序运行结果(按四舍五入保留6位小数)。

程序:

#include

#include

#include

doublefun(intn)

{________________

inti;

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

s+=log(1.0*i);

s=sqrt(s);

returns;

}

main()

{

clrscr();

printf(______________);

}

doubles=0;“%.6lf”,fun(60)13.734197

改错:

1.下面的程序是求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;}

return1;

}

main()

{intsum=0,i;

clrscr();

for(i=2;i<=500;i++)

if(prime(i))sum+=i;

printf("%d\n",sum);

}

returnyes;21536

2.下面的程序中,函数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结果是:

%.6lf\n",fun(m));

}

t+=1.0/(i*(i+1));returnt;1.485915

3.下面的程序中,函数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));

}

j<=ifac=fac*j;1.7182818011

4.下面的程序中,函数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结果是:

%.6lf\n",fun(m));

}

t+=1.0/(i*(i-1));returnt;1.985714

5.下面程序中,函数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

6.下列程序的功能是:

求出以下分数序列的前30项之和,

2/1,3/2,5/3,8/5,13/8,21/13,……

请改正程序中的错误,并运行修改后程序,给出程序结果(按四舍五入保留6位小数)。

程序:

#include

#include

main()

{longa,b,c,k;

doubles;

clrscr();

s=0.0;a=2;b=1;

for(k=1;k<=30;k++)

s=s+a/b;

c=a;a=a+b;b=c;

printf("\n结果:

%.6lf\n",s);

}

{s=s+(float)a/b;c=a;a=a+b;b=c;}48.840601

7.下面的程序是求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);

}

yes=1;yes=0;13887

 

8.下面的程序是计算:

s=f(-30)+f(-29)+......+f(-1)+f(0)+f

(1)+......+f(30)

的值。

其中函数定义如下:

f(x)=(x+1)/(x-2)ifx>=1f(x)=0ifx=0orx=2

f(x)=(x-1)/(x-2)ifx<0请改正程序中的错误,并给出正确程序的运行结果(按四舍五入保留6位小数)。

程序:

#include

#include

#include

doublef(doublex)

{if(x==0&&x==2)

return0.0;

elseif(x<0.0)

return(x-1)/(x-2);

else

return(x+1)/(x-2);

}

doublefsum(intn)

{inti;doubles=0.0,y;

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

{y=f(1.0*i);s+=y;}

returny;

}

main()

{clrscr();

printf("%.6lf\n",fsum(30));

}

x==0||x==2returns;65.223018

9.下面的程序是计算如下公式的A15值。

A1=1,A2=1/(1+A1),A3=1/(1+A2),A4=1/(1+A3),......

请改正程序中的错误,并给出程序运行的正确结果(按四舍五入保留10位小数)

程序:

#include

#include

doublefun(intn)

{intA=1.0;inti;

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

A+=1.0/(1+A);

ReturnA;

}

main()

{clrscr();

printf("%12.10lf\n",fun(15));

}

doubleA=1.0;A=1.0/(1+A);0.6180344478

编程练习

1.[10,130]之间,所有整数的平方和。

分析:

用变量i从10到130循环,用变量s求和,s初值为0,每次循环,s=s+i*i;

#include

main()

{longintI,s=0;

for(I=10;I<=130;I++)

s=s+I*I;

printf(“\n%d”,s);

}

注意:

i一定要是longint型。

2.[10,150]奇数的平方和。

分析:

用变量s求和,s初值为0。

用变量I从10到150循环,如果I是奇数(I%2!

=0),则s=s+I*I

#include

main()

{longintI,s=0;

for(I=10;I<=150;I++)

if(I%2!

=0)s=s+I*I;

printf(“\n%ld”,s);

}

3.[10,150]之间,能被3或7整除的数的平方和。

分析:

用变量s求和,s初值为0。

用变量I从10到150循环,如果I能被3或7整除(I%3==0||i%7==0),则s=s+I*I

#include

main()

{longintI,s=0;

for(I=10;I<=150;I++)

if(I%3==0||I%7==0)

s=s+I*I;

printf(“\n%ld”,s);

}

4.[1,800]中能被3和8整除的数的个数。

分析:

用变量n求个数,n初值为0。

用变量I从1到800循环,如果I能被3和8整除(I%3==0&&i%8==0),则n++

#include

main()

{intI,n=0;

for(I=1;I<=800;I++)

if(I%3==0&&I%8==0)n++;

printf(“\n%d”,n);

}

5.s=1+1/(2*2)+1/(3*3)+…..+1/(m*m),求m=50时的s(结果保留4位小数)

分析:

用变量s求和,s初值为0。

用变量I从1到50循环,s=s+1/(I*I)

#include

main()

{intI;

floats=0;

for(I=1;I<=50;I++)

s=s+1.0/(I*I)

printf(“\n%.4f”,s);

}

6.求100以内最小的自然数n,使1*1+2*2+3*3+…+n*n>5500

分析:

用变量s求和,s初值为0。

用变量n从1开始循环,每次I增加1,如果s>5500,循环结束。

#include

main()

{intn=1,s=0;

do{s=s+n*n;

n=n+1;

}while(s<=5500);

printf(“\nn=%d”,n-1);

}

7.a1=1a2=1/(1+a1)an=1/(1+an-1),求a25(结果保留10位小数)

分析:

用变量a求项,a初值为1。

用变量I从2到25循环,a=1/(1+a)

#include

main()

{intI;

floata=1;

for(I=2;I<=25;I++)

a=1/(1+a);

printf(“\n%.10f”,a);

}

8.1/1!

+1/2!

+….+1/10!

(结果保留10位小数)

分析:

用变量s求和,s初值为0。

用变量a求阶乘,a初值为1。

用变量I从1到10循环,a=a*I,s=s+1/a。

#include

main()

{intI;

longinta=1;

floats=0;

for(I=1;I<=10;I++)

{a=a*I;s=s+1.0/a;

}

printf(“\n%.10f”,s);

}

9.求s=1+1/3+(1*2)/(3*5)+…+(1*2*…*n)/(3*5*…*(2*n+1))当n=40时的值。

(结果保留10位小数)

分析:

用变量s求和,s初值为1。

用变量a用来求项的分子,变量b求项的分母,a、b初值均为1。

用变量n从1到40循环,a=a*n,b=b*(2*n+1),s=s+a/b。

#include

main()

{floats=1;

intn;

longinta=1,b=1;

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

{a=a*n;

b=b*(2*n+1);

s=s+(float)a/b;

}

printf(“\ns=%.10f”,s);

}

10.数列1,1,2,3,5,8…..有f(n)=f(n-1)+f(n-2),f

(1)=1,f

(2)=1,求f(40)

分析:

用变量f1、f2、f作为数列相邻的三项,初值f1=1,f2=1。

用变量n从3到40循环,f=f1+f2,f1=f2,f2=f.

#include

main()

{longintf1=1,f2=1,f,n;

for(n=3;n<=40;n++)

{f=f1+f2;

f1=f2;

f2=f;

}

printf(“\nf=%ld”,f);

}

思考:

求14万之内的最大的f(n).

11.Sn=1-1/3+1/5-1/7+…1/(2n-1)求s(100)(保留4位小数)

分析:

用变量s求和,s初值为0。

用变量n从1到100循环,如果n是奇数(n%2!

=0),s=s+1/(2*n-1),否则s=s-1/(2*n-1)。

#include

main()

{intn;

floats=0;

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

if(n%2!

=0)s=s+1.0/(2*n-1)

elses=s-1.0/(2*n-1);

printf(“\n%.4f”,s);

}

12.求1000以内最大的20个素数之和。

分析:

用变量s求和,s初值为0。

用变量I统计以求得素数的个数,I初值为0。

用变量a从1000到1循环,如果a是素数,则s=s+a,I++。

当i值等于20时,跳出循环。

main()

{inta,s=0,I=0,j;

for(a=1000;a>=1;a--)

{for(j=2;j

if(a%j==0)break;

if(j==a)

{s=s+a;I++;}

if(I==20)break;

}

printf(“\n%d”,s);

}

14.求[10,200]间可以被其因子的个数整除的整数的个数。

分析:

用变量n统计所求的整数个数,n初值为0。

用变量a从10到200循环,如果a可以被其因子的个数整除,则n值增1。

判断a是否可以被其因子的个数整除:

用变量c求a的因子的个数,c初值

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2