1、累加累乘第1题 (10.0分) 题号:626功能:下面程序是计算 sum1+(1+1/2)+(1+1/2+1/3)+. (1+1/2+.1/n)的值。例如:当n3,sum4.3333333 double f(int n) int i; double s; s=0; for(i=1;i=n;i+) /*SPACE*/ 【?】; return s;main() int i,m=3; float sum=0; for(i=1;i=m;i+) /*SPACE*/ 【?】; /*SPACE*/ printf(【?】n,sum);答案: 1). s+=1.0/i 或 s+=1/i 或 s= s + 1.0
2、/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,并输出结果。int fun( int n) int m=0,f=1,i; /*SPACE*/ for(i=1;【?】;i+) m+=i*f; /*SPACE*/ 【?】; /*SPACE*/ return 【?】;main() printf(m=%dn, fun(10);答案: 1). i=n 2). f= -f 3). m第3题 (10.0分) 题号:4功能:下面的程序是求1!+3!+5!+n!的
3、和。main() long int f,s; int i,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=%ldn,n,s); 答案: 1). s=0 2). i+=2 或 i=i+2 或 i+,i+ 3). j=j 或 jj 4). f= f * j 第4题 (10.0分) 题号:407/*- 【程序改错】-功能:编写函数求2!+4!+6!+8!+10+12!+14!。-*/#inc
4、lude stdio.hlong sum(int n) /*FOUND*/ int i,j long t,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(this sum=%ldn,sum(14); getch();答案: 1). int i,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/*-
5、 【程序改错】-功能:求1到20的阶乘的和。-*/fun() int n,j; float s=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=%dn,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=%fn,s);
6、第6题 (10.0分) 题号:16/*- 【程序改错】-功能:根据整型形参m的值,计算如下公式的值。 1 1 1 t = 1- - - . - 2x2 3x3 mxm 例如:若m=5,则应输出:0.536389-*/double fun(int m) double y=1.0; int i; /*FOUND*/ for(i=2;im;i-) /*FOUND*/ y-=1/(i*i); /*FOUND*/ return m;main() int n=5; printf(nthe result is %lfn,fun(n);答案: 1). for(i=2;i=i;i+) 或 for(i=2;im+
7、1;i+) 或 for(i=2;ii;i+) 或 for(i=2;1+mi;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). return y; 或 return (y); 或 return(y);第7题 (10.0分) 题号:392/*- 【程序改错】-功能:根据整型形参m,计算如下公式的
8、值: y=1/21/81/18.1/2m*m-*/#include stdio.hdouble fun(int m) /*FOUND*/ double y=0 int i; /*FOUND*/ for(i=1; im; i+) /*FOUND*/ y=+1.0/(2*i*i); return(y);main() int n; clrscr(); printf(Enter n: ); scanf(%d, &n); printf(nThe result is %1fn, fun(n); getch(); 答案: 1). double y=0; 2). for(i=1; i=m; i+) 3). y
9、+=1.0/(2*i*i);第8题 (10.0分) 题号:437/*- 【程序改错】-功能:以下程序能求出1*1+2*2+.+n*n1000) +n; s+=n*n; /*FOUND*/ printf(n=%dn,&n-1); getch();答案: 1). s=n=0; 2). while(s=1000) 3). printf(n=%dn,n-1);第9题 (10.0分) 题号:375/*- 【程序改错】-功能:根据整型形参 m,计算某一数据项的值。 y = 1/(100*100)+1/(200*200)+1/(300*300)+ +1/(m*m)例如:若m = 2000,则应输出: 0.0
10、00160。-*/#include #include /*FOUND*/fun ( int m ) double y = 0, d ; int i ; /*FOUND*/ for( i = 100, i = m, i += 100 ) d = (double)i * (double)i ; /*FOUND*/ y += 1.0 d ; return( y ) ; main( ) int n = 2000 ; clrscr( ) ; printf( nThe result is %lfn, fun ( n ) ) ;答案: 1). double fun ( int m ) 2). for( i
11、= 100; i = m; i += 100 ) 3). y += 1.0 / d ;第10题 (10.0分) 题号:12/*- 【程序改错】-功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值 小于等于0.0001。 _ 1 1 1 = 1 - + - + . 4 3 5 7-*/*FOUND*/#include stdio.hfun() int i=1; /*FOUND*/ int s=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=%dn,s*4);mai
12、n() fun();答案: 1). #include math.h 或 #include 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.0001fabs(t) 或 while(1e-40.0001) 4). printf(pi=%fn, s * 4 );第11题 (10.0分) 题号:13/*- 【程序改错】-功能:求1到
13、10的阶乘的和。-*/main() int i; float t,s=0; float fac(int n); /*FOUND*/ for(i=1;i10;i+) /*FOUND*/ s=fac(i); printf(%fn,s);float fac(int n)/*FOUND*/ int y=1; int i; for(i=1 ;i=n;i+) y=y*i; /*FOUND*/ return;答案: 1). for(i=1;i=i;i+) 或 for(i=1;ii;i+) 2). s= s + fac(i) ; 或 s+=fac(i); 或 s=fac(i)+s; 3). float y=1
14、.0; 或 float y=1; 4). return y; 或 return(y); 或 return (y);第12题 (10.0分) 题号:408/*- 【程序改错】-功能:写计算级数 ex=1+x+x2/2!+x3/3!+ .+xn/n! 的值。-*/#includestdio.hmain() int m,n; float x,term,ex1,ex2; printf(x,m=); scanf(%f %d,&x,&m); /*FOUND*/ ex1=ex2=1; term=1; for(n=1;n1; n-) term*=n/x; ex2+=term; printf(exforward
15、=%f exbackrard=%fn,ex1,ex2); getch();答案: 1). ex1=ex2=1; 2). term*=x/n; 3). for (n=m;n=1; n-)第13题 (10.0分) 题号:352/*- 【程序改错】-功能:根据整型形参m,计算如下公式的值: y=11/31/51/7.1/(2m-3)-*/#include stdio.hdouble fun(int m) /*FOUND*/ double y=1 int i; /*FOUND*/ for(i=1; im; i+) /*FOUND*/ y+=1.0/(2i-3); return(y);main() in
16、t n; clrscr(); printf(Enter n: ); scanf(%d, &n); printf(nThe result is %1fn, fun(n); getch(); 第14题 (10.0分) 题号:438/*- 【程序改错】-功能:输入n,计算s=1+1+2+1+2+3+1+2+3+4+.+1+2+3+4+.+n-*/#includevoid main() /*FOUND*/ int i,s;p,n; printf(Enter n:n); /*FOUND*/ scanf(%d,n); /*FOUND*/ for(s=p=0,i=1;in;i+) s+=p+=i; prin
17、tf(S= %dn,s); getch();答案: 1). int i,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 ( int n ) int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for
18、( k = 1; k = n; k+ ) /*FOUND*/ s = (double)a / b; c = a; a = a + b; b = c; /*FOUND*/ return c;main( ) int n = 5; clrscr( ); printf( nThe value of function is: %lfn, fun ( n ) );答案: 1). double fun(int n) 2). s = s + (double)a / b; 或 s += (double)a / b; 或 s += a /(double)b; 或 s=s+a/(double)b; 3). return s;第16题 (10.0分) 题号:6/*- 【程序改错】-
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2