8、计算数列第 n 项的函数定义如下: int a(int n){ if (n == 0) return 0; else if (n == 1) return 1; else if (n == 2) return 2; else return a(n-1)+a(n-3); } 若执行函数调用表达式 a(4),函数 a 被调用的次数是________。
A.3
B.4
C.5
D.6
第1题:
已知递归函数fun的定义如下: int fun(int n) { if(n<=1)return 1;//递归结束情况 else return n*fun(n-2);//递归 } 则函数调用语句fun(5)的返回值是( )。
A.5
B.12
C.15
D.30
第2题:
( 21 )计算斐波那契数列第 n 项的函数定义如下:
Int fib(int n){
if (n == 0) return 1;
else if (n == 1) return 2;
else return fib(n-1)+fib(n-2);
}
若执行函数调用表达式 fib(2) ,函数 fib 被调用的次数是
A ) 1
B ) 2
C ) 3
D ) 4
第3题:
设有如下函数定义: int fun(int k) {if(k<1)return 0; else if(k= =l)return l; else return fun(k-1)+1: } 若执行调用语句:“n=fun(3);”,则函数fun总共被诃用的次数是( )。
A.2
B.3
C.4
D.5
第4题:
有如下程序: #include <stdio.h> long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%d\n",fib(3));} 该程序的输出结果是( )。
A.2
B.4
C.6
D.8
第5题:
计算斐波那契数列第n项的函数定义如下: intfib(intn){ if.(n==0)return1; elseif(n==1)return2: elsereturnfib(n-1)+fib(n-2); } 若执行函数调用表达式fib(2),函数fib被调用的次数是( )。
A.1
B.2
C.3
D.4
第6题:
设有如下函数定义
int fun(int k)
{if(k<1) return 0:
else if(k==1) return 1:
else return fun(k一1)+1:
}
若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是
A.2
B.3
C.4
D.5
第7题:
能保证对所有的参数能够结束的递归函数是
A.int f(int n){if(n<1)return 1;else return n*f(n+1);}
B.int f(int n){if(n>1)return 1;else return n*f(n-1);}
C.int f(int n){if(abs(n)<1)return 1;else return n*f(n/2);}
D.int f(int n){if(n>1)return 1;else return n*f(n*2);)
第8题:
设有一个递归算法如下: int fact(int n){ if(n<=0)return 1; else return n*fact(n-1); } 下面正确的叙述是(35)。
A.计算fact(n)需要执行n次函数调用
B.计算fact(n)需要执行n+1次函数调用
C.计算fact(n)需要执行n+2次函数调用
D.计算fact(n)需要执行n-1次函数调用
第9题:
下面 ______ 是正确的递归函数,它保证对所有的参数能够结束。
A.int f(int n){ if(n<1) return 1; else return n*f(n+1); }
B.int f(int n){ if(n>1) return 1; else return n*f(n-1); }
C.int f(int n){ if(abs(n)<1) return 1; else return n*f(n/2); }
D.int f(int n){ if(n>1) return 1; else return n*f(n*2); }
第10题:
递归函数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)
第11题:
(32)设有如下函数定义
int fun(int k)
{ if (k<1) return 0;
else if(k==1) return 1;
else return fun(k-1)+1;
}
若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是
A)2
B)3
C)4
D)5
第12题:
设有一个递归算法如下: int fact(int n) { //n大于等于0 if(n<=0) return 1; else return n*fact(n-1); } 则计算fact(n)需要调用该函数的次数为()
第13题:
有如下程序: #include<iostream> using namespace std; long fun(int n) { if(n>2) return(fun(n-1)+fun (n-2)); else return 2; } int main() { cout<<fun(3)<<end1; return 0; } 则该程序的输出结果应该是 ( )。
A.2
B.3
C.4
D.5
第14题:
计算斐波那契数列第n项的函数定义如下: intfib(intn){ if(n==0)returnl; elseif(n==l)return2: elsereturnfib(n-1)+fib(n-2); } 若执行函数调用表达式fib(2),函数fib被调用的次数是( )。
A.1
B.2
C.3
D.4
第15题:
有如下程序: #include<iostream.h> long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2);} void main( ) {cout<<fib(3);} 该程序的输出结果是
A.2
B.4
C.6
D.8
第16题:
设有一个递归算法如下int fact(intn){//n 大于等于0 if(n<=0)return 1; else return n* fact(n--); }则计算fact(n)需要调用该函数的次数为(30)次。
A.n
B.n+1
C.n+2
D.n-1
第17题:
设有一个递归算法如下 im fact(int n){ if(n<=0)return 1; else return n * fact(n-1); } 下面正确的叙述是(35)。
A.计算fact(n)需要执行n次函数调用
B.计算fact(n)需要执行n+1次函数调用
C.计算fact(n)需要执行n+2次函数调用
D.计算fact(n)需要执行n-1次函数调用
第18题:
下列程序的输出结果为( )。 int fun(int n){ if(n==0)return 1; else return n*fun(n-1): return 0; } void main() { eout<<func(4)<<endl;}
A.1
B.10
C.24
D.11
第19题:
已知递归函数f(n)的功能是计算1+2+…+n,且n≥1,应采用的代码段是______。
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)
第20题:
已知递归函数fun的定义如下: int fun(int n) { if(n<=1)return1;//递归结束情况 else return n*fun(n-2);//递归 } 则函数调用语句fun(5)的返回值是( )。
A.5
B.12
C.15
D.30
第21题:
下列函数中,哪项是正确的递归函数( )。
A int Fun(int n)
{
if(n<1) return 1;
else return n*Fun(n+1);
}
B) int Fun(ira n)
{
if(abs(n)<1) return 1;
else return n*Fun(n/2);
}
C) int Fun(int n)
{
if(n>1) return 1;
else return n*Fun(n*2)1
}
D) int Fun(int n)
{
if(n>1) return 1;
else retun n*Fun(n-1);
}
A.A
B.B
C.C
D.D
第22题:
设n的初始值为正整数,设计一个递归算去如下: int fact (int n) { if (n<=0) return l; else return (n*fact (n-l)) ; 以下叙述中正确的是(49) 。
A.计算fact(n)需要执行n次函数调用
B.计算fact(n)需要执行n+l次函数调用
C.计算fact(n)需要执行n+2次函数调用
D.计算fact(n)需要执行n-l次函娄[调用
第23题:
第24题:
n+1
n-1
n
n+2