举一反三
- 以下程序拟实现计算s=1 + 2*2 + 3*3 + … + n*n +…,直到s>1000为止。 #include main( ) { int s,n; s=1; n=1; do { n=n+1; s=s+n*n; } while(s>1000); printf("s=%d\n",s); } 程序运行后,不能得到正确结果,以下修改方案正确的是
- 下面程序的功能是计算 S= 0!+1!+2!+…+k! ( k>=0 )。 #include "stdio.h" long fun(int n) { int i; long s=1; for(i=1; ① ;i++) s*=i; return( ② ); } int main() { int k,n; long s; scanf("%d",&n); s= ③ ; for(k=0;k<=n;k++) s+= ④ ; printf("%ld\n",s); return 0; }
- 读程序并写结果。#include stdio.hlong fun(int n){ long s;if(n==1||n==2)s=2;elses=n-fun(n-1);return s;}int main(){ printf(%ld\n,fun(3)); return 0;}
- 以下程序的运行结果是 。 #include “stdio.h” fun(int n) {int s; if(n==0) s=7; else s=n+fun(n-1); return s; } main() { printf(“%d”,fun(3));}
- main(){int s=0,a=5,n=1;do{s=s+1;a=a-2;}while(a!=n);printf("%d,%d\n",s,a);}
内容
- 0
下列程序的输出结果是【 】。 long fun(int n) { long s; if(n==1||n==2) s=2; else s=n+fun(n-1); return s; } int main() { cout<<fun(4); return 0; }
- 1
以下程序的功能是计算1到n的阶乘和,请填空。 long f(int n) { int i; long s; s=1; for(i=1; i <=n; i++) s=s*i; return s; } main() { long s; int k, n; scanf("%d", &n); s=0; for(k=0; k <=n; k++) s=s +_____ ;printf("%d\n",s); }
- 2
以下程序的功能是计算:s= 1+1/2+1/3+……+1/10,程序运行后输出结果错误,导致错误结果的程序行是 #include int main() { int n; float s; s=1.0; for(n=10;n>1;n--) { s=s+1/n; } printf("%6.4f ",s); return 0; }
- 3
要求以下程序的功能是计算:s=1+1/2+1/3+…+1/100。 #include int main() { int n;float s; s=1.0; for(n=100;n>1;n--) s=s+1/n; printf(“%6.4f\n”,s); return 0; }
- 4
下列函数能够求n的阶乘n!的是 A: f = lambda n: n! B: def f(n): s=1 for i in range(n): s = s * i return s C: def f(n): s=1 for i in range(n,0,-1): s = s * i return s D: def f(n): if n == 1: return 1 else: return f(n-1)*n