( 9 )下面的函数利用递归实现了求 1+2+3+ …… +n 的功能:
int sum ( int n ) {
if ( n==0 )
return 0;
else
return n+sum ( n-1 ) ;
}
在执行 sum ( 10 )的过程中,递归调用 sum 函数的次数是【 9 】 。
第1题:
下面是一个递归程序,其功能为? long Factorial(int n){ if(1==n || n==0){ return 1; } else return n*Factorial(n-1); }
A.求1至n的累加和
B.求n的阶乘
C.求n-1的阶乘
D.函数固定结果为1
第2题:
7、下面的函数利用递归实现了求1+2+3…..+n的功能: int sum(int n){ if(n==0 ) return 0; else return n+sum(n-1); } 在执行sum(10)的过程中,递归调用sum函数的次数是()。
A.9
B.10
C.11
D.8
第3题:
下面函数是求阶乘的递归函数,请将程序补充完整。 long Fact(int n) { if (n < 0) return 0; if (n==1 || n==0) __________________; else ____________________; }
A.第4行: return 1 第5行: return n*Fact(n-1)
B.第4行: return 0 第5行: return n*Fact(n-1)
C.第4行: return -1 第5行: return (n-1)*Fact(n)
D.第4行: return 1 第5行: return Fact(n-1)
第4题:
下面程序可以正确求出1+2+3+。。。+n的和。() #include <stdio.h> int main() { int i = 1,sum = 0,n; scanf(“%d”,&n); while (i <= n) sum = sum + i; ++i; printf("sum=%d",sum); return 0; }
第5题:
程序填空,使下面程序实现输出N!(N<=10000)的十进制位数。 #include <stdio.h> #include <math.h> int main () { int i, n; double sum; sum = 0.0; scanf("%d", &n); for (i = 2; i <= n; i++) { sum +=_________; } printf ("%dn", (int)ceil(sum)); return 0; }