举一反三
- 下列函数能够求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
- 使用递归函数计算n!(n=0,1,2,3,…)的是______ A: fac(int n) if(n==0)return 1; else for(i=1;i<=n;i++)f*=i; return f; } B: fac(int n) { if(n==0‖n==1)return 1; else return n*fac(n-1); } C: fac(int n) {int i=1,f=1; if(n==0)return 1; else do{f*=i;}while(i++<n); return f; } D: fac(int n) {int i=1,f=1; if(n==0)return 1; else while(1<=n)f*=i++; return f;
- int F(int n){if(n==0)return 1;return n*F(n-1);}是一个递归函数。
- 使用递归函数计算n!(n=0,1,2,3,……)的是( ) A: fac(int n) B: int i,f=1; C: if(n==0)return 1; D: else for(i=1;i<=n;i++)f*=i; E: return f; F: fac(int n) G: if(n==0||n==1)return 1; H: else return n*fac(n-1); I: fac(int n) J: int i=1,f=1; K: if(n==0)return 1; L: else while(i<=n)f*=i++; M: return f; N: fac(int n) O: int i=1,f=1; P: if(n==0)return 1; Q: else dof*=i;while(i++<n); R: return f;
- 在下列程序中,调用f(5)的值是( ) int f(int n) { if(n==1) return(1); else if(n==2) return(2); else return(f(n-1)+f(n-2)); }
内容
- 0
递归函数f(n)的功能是计算1+2+…+n,且n≥1,则f(n)的代码段是 (49) 。 A: if n>1 then return 1 else return n+f(n-1) B: if n>1 then return 1 else return n+f(n+1) C: if n>1 then return 0 else return n+f(n+1) D: if n<1 then return 0 else return n+f(n-1)
- 1
下面程序执行的结果是 。#include<;stdio.h>;int f(int );int main(){int z;z=f(5);printf("%d\n",z);return 0;}int f(int n){if(n==1||n==2)return 1;elsereturn f(n-1)+f(n-2);}
- 2
int f( unsigned int n) { if ( n==0 || n==1 ) return 1; else return n*f(n-1);} A: O(1) B: O(n) C: O(n^2) D: O(n!)
- 3
以下程序的输出结果是______ 。#include int f(int n) { if(n == 1) return 1; else return n + f(n - 1);}int main(void) { printf("%d\n", f(5)); return 0;}
- 4
以下程序的输出结果是_______。 int f(int n){ if(n<=1) return 0; n/=2; return f(n)+n; } int main(void){ printf("%d",f(7)); return 1; } A: 4 B: 3 C: 5 D: 6