累加累乘.docx

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

累加累乘.docx

《累加累乘.docx》由会员分享,可在线阅读,更多相关《累加累乘.docx(32页珍藏版)》请在冰点文库上搜索。

累加累乘.docx

累加累乘

第1题(10.0分)题号:

626

功能:

下面程序是计算sum=1+(1+1/2)+(1+1/2+1/3)+...

(1+1/2+...1/n)的值。

例如:

当n=3,sum=4.3333333

doublef(intn)

{

inti;

doubles;

s=0;

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

/***********SPACE***********/

【?

】;

returns;

}

main()

{

inti,m=3;

floatsum=0;

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

/***********SPACE***********/

【?

】;

/***********SPACE***********/

printf("【?

】\n",sum);

}

答案:

1).s+=1.0/i或s+=1/i或s=s+1.0/i或s=s+1/i

2).sum+=f(i)或sum=sum+f(i)

3).%f

第2题(10.0分)题号:

627

功能:

调用函数fun计算m=1-2+3-4+……+9-10,并输出结果。

intfun(intn)

{

intm=0,f=1,i;

/***********SPACE***********/

for(i=1;【?

】;i++)

{

m+=i*f;

/***********SPACE***********/

【?

】;

}

/***********SPACE***********/

return【?

】;

}

main()

{

printf("m=%d\n",fun(10));

}

答案:

1).i<=n

2).f=-f

3).m

 

第3题(10.0分)题号:

4

功能:

下面的程序是求1!

+3!

+5!

+……+n!

的和。

main()

{

longintf,s;

inti,j,n;

/***********SPACE***********/

【?

】;

scanf("%d",&n);

/***********SPACE***********/

for(i=1;i<=n;【?

】)

{

f=1;

/***********SPACE***********/

for(j=1;【?

】;j++)

/***********SPACE***********/

【?

】;

s=s+f;

}

printf("n=%d,s=%ld\n",n,s);

}

答案:

1).s=0

2).i+=2或i=i+2或i++,i++

3).j<=i或i>=j或jj

4).f=f*j

第4题(10.0分)题号:

407

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

编写函数求2!

+4!

+6!

+8!

+10+12!

+14!

------------------------------------------------------*/

#include"stdio.h"

longsum(intn)

{

/**********FOUND**********/

inti,j

longt,s=0;

/**********FOUND**********/

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

{

t=1;

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

t=t*j;

s=s+t;

}

/**********FOUND**********/

return(t);

}

main()

{

printf("thissum=%ld\n",sum(14));

getch();

}

 

答案:

1).inti,j;

2).for(i=2;i<=n;i=i+2)或for(i=2;i<=n;i+=2)或for(i=2;i<=n;i++,i++)

3).return(s);

 

第5题(10.0分)题号:

14

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

求1到20的阶乘的和。

------------------------------------------------------*/

fun()

{

intn,j;

floats=0.0,t=1.0;

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();

}

答案:

1).t=1;或t=1.0;

2).t=t*j;或t*=j;或t=j*t;

3).s=s+t;或s+=t;或s=t+s;

4).printf("jiecheng=%f\n",s);

 

第6题(10.0分)题号:

16

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

根据整型形参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));

}

答案:

1).for(i=2;i<=m;i++)或for(i=2;m>=i;i++)或for(i=2;ii;i++)或for(i=2;1+m>i;i++)

2).y-=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;或y=y-1/(double)(i*i);或y-=1/(double)(i*i);

3).returny;或return(y);或return(y);

 

第7题(10.0分)题号:

392

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

根据整型形参m,计算如下公式的值:

y=1/2+1/8+1/18+...+1/2m*m

------------------------------------------------------*/

#include"stdio.h"

doublefun(intm)

{

/**********FOUND**********/

doubley=0

inti;

/**********FOUND**********/

for(i=1;i

{

/**********FOUND**********/

y=+1.0/(2*i*i);

}

return(y);

}

main()

{

intn;

clrscr();

printf("Entern:

");

scanf("%d",&n);

printf("\nTheresultis%1f\n",fun(n));

getch();

}

答案:

1).doubley=0;

2).for(i=1;i<=m;i++)

3).y+=1.0/(2*i*i);

 

第8题(10.0分)题号:

437

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

以下程序能求出1*1+2*2+......+n*n<=1000中满足条件的

最大的n。

------------------------------------------------------*/

#include"string.h"

main()

{

intn,s;

/**********FOUND**********/

s==n=0;

/**********FOUND**********/

while(s>1000)

{

++n;

s+=n*n;

}

/**********FOUND**********/

printf("n=%d\n",&n-1);

getch();

}

答案:

1).s=n=0;

2).while(s<=1000)

3).printf("n=%d\n",n-1);

 

第9题(10.0分)题号:

375

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

根据整型形参m,计算某一数据项的值。

y=1/(100*100)+1/(200*200)+1/(300*300)+……+1/(m*m)

例如:

若m=2000,则应输出:

0.000160。

------------------------------------------------------*/

#include

#include

/**********FOUND**********/

fun(intm)

{

doubley=0,d;

inti;

/**********FOUND**********/

for(i=100,i<=m,i+=100)

{

d=(double)i*(double)i;

/**********FOUND**********/

y+=1.0\d;

}

return(y);

}

main()

{

intn=2000;

clrscr();

printf("\nTheresultis%lf\n",fun(n));

}

答案:

1).doublefun(intm)

2).for(i=100;i<=m;i+=100)

3).y+=1.0/d;

 

第10题(10.0分)题号:

12

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

用下面的和式求圆周率的近似值。

直到最后一项的绝对值

小于等于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"或#include

2).floats=0,t=1,p=1;或floats=0,p=1,t=1;或floatp=1,s=0,t=1;或floatp=1,t=1,s=0;或floatt=1,p=1,s=0;或floatt=1,s=0,p=1;

3).while(fabs(t)>1e-4)或while(0.00010.0001)

4).printf("pi=%f\n",s*4);

 

第11题(10.0分)题号:

13

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

求1到10的阶乘的和。

------------------------------------------------------*/

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;

}

答案:

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);或s=fac(i)+s;

3).floaty=1.0;或floaty=1;

4).returny;或return(y);或return(y);

 

第12题(10.0分)题号:

408

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

写计算级数ex=1+x+x2/2!

+x3/3!

+...+xn/n!

的值。

------------------------------------------------------*/

#include"stdio.h"

main()

{

intm,n;

floatx,term,ex1,ex2;

printf("x,m=");

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

/**********FOUND**********/

ex1==ex2=1;

term=1;

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

{

/**********FOUND**********/

term*=x%n;

ex1+=term;

}

ex2=term;

/**********FOUND**********/

for(n=m;n>1;n--)

{

term*=n/x;

ex2+=term;

}

printf("exforward=%fexbackrard=%f\n",ex1,ex2);

getch();

}

答案:

1).ex1=ex2=1;

2).term*=x/n;

3).for(n=m;n>=1;n--)

第13题(10.0分)题号:

352

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

根据整型形参m,计算如下公式的值:

y=1+1/3+1/5+1/7+...+1/(2m-3)

------------------------------------------------------*/

#include"stdio.h"

doublefun(intm)

{

/**********FOUND**********/

doubley=1

inti;

/**********FOUND**********/

for(i=1;i

/**********FOUND**********/

y+=1.0/(2i-3);

return(y);

}

main()

{

intn;

clrscr();

printf("Entern:

");

scanf("%d",&n);

printf("\nTheresultis%1f\n",fun(n));

getch();

}

第14题(10.0分)题号:

438

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

输入n,计算s=1+1+2+1+2+3+1+2+3+4+...+1+2+3+4+...+n

------------------------------------------------------*/

#include

voidmain()

{

/**********FOUND**********/

inti,s;p,n;

printf("Entern:

\n");

/**********FOUND**********/

scanf("%d",n);

/**********FOUND**********/

for(s=p=0,i=1;i

s+=p+=i;

printf("S=%d\n",s);

getch();

}

答案:

1).inti,s,p,n;

2).scanf("%d",&n);

3).for(s=p=0,i=1;i<=n;i++)

 

第15题(10.0分)题号:

366

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

求出以下分数序列的前n项之和。

和值通过函数值返回main

函数。

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

例如:

若n=5,则应输出:

8.391667。

------------------------------------------------------*/

#include

#include

/**********FOUND**********/

fun(intn)

{

inta,b,c,k;doubles;

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

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

{

/**********FOUND**********/

s=(double)a/b;

c=a;

a=a+b;

b=c;

}

/**********FOUND**********/

returnc;

}

main()

{

intn=5;

clrscr();

printf("\nThevalueoffunctionis:

%lf\n",fun(n));

}

答案:

1).doublefun(intn)

2).s=s+(double)a/b;或s+=(double)a/b;或s+=a/(double)b;或s=s+a/(double)b;

3).returns;

 

第16题(10.0分)题号:

6

/*------------------------------------------------------

【程序改错】

----------

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

当前位置:首页 > 自然科学 > 物理

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

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