递归函数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题:
已知递归函数f的定义如下:
int f(int n){
if(n<= 1)return 1;//递归结束情况f5=5*f3=5*3*f1
else return n*f(n-2); //递归
}
则函数调用语句f(5)的返回值是______。
第2题:
A、f(1)=0
B、f(1)=1
C、f(0)=1
D、f(n)=f(n-1)+1/n
第3题:
有以下程序 #include<iostream.h> int f(int n) {if(n==1)return 1: else return f(n-1)+1;} void main() {int i,j=0; for(i=1;i<3;i++):j+=f(i); cout<<j;} 程序运行后的输出结果是( )。
A.4
B.3
C.2
D.1
第4题:
设有一个递归算法如下 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次函数调用
第5题:
有以下程序( )。 #include<iostream.h> int f(int n) { if(n==1)return l; else return f(n-1)+1; } void main() { int i,j=-; for(i=1;i<3;i++) j+=f(i); cout<j<<endl; } 程序运行后输出结果是( )。
A.4
B.3
C.2
D.1
第6题:
能保证对所有的参数能够结束的递归函数是
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);)
第7题:
已知递归函数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)
第8题:
已知递归函数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
第9题:
下列函数中,哪项是正确的递归函数( )。
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
第10题:
第11题:
设有一个递归算法如下: int fact(int n) { //n大于等于0 if(n<=0) return 1; else return n*fact(n-1); } 则计算fact(n)需要调用该函数的次数为()
第12题:
n+1
n-1
n
n+2
第13题:
已知递归函数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
第14题:
下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。(注:阶乘的定义是n!cn*(n-1)*...*2*1)
unsigned fact(unsigned n)
{
if (n<=1)
return 1;
return 【 】;
}
第15题:
设有一个递归算法如下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
第16题:
有以下程序#include<iostream.h>int f(int n){if(n==1 )return 1;else return f(n-1 )+ 1;}void main() {int i,j=0;for(i=1 ;i<3;i++) j+=f(i);cout<<j<<end1;}程序运行后的输出结果是( )。
A.4
B.3
C.2
D.1
第17题:
已知递归函数f(n)的功能是计算 1+2+3…n,且n>=1,应采用的代码段是_____.
第18题:
设求解某问题的递归算法如下:
F(int n){
if n=1 {
Move(1)
}else{
F(n-1);
Move(n);
F(n-1);
}
}
求解该算法的计算时间时,仅考虑算法Move所做的计算为主要计算,且Move为常数级算法。则算法F的计算时间T(n)的递推关系式为(9);设算法Move的计算时间为k,当 n=4时,算法F的计算时间为(10)。
A.T(n)=T(n-1)+1
B.T(n)=2T(n-1)
C.T(n)=2T(n-1)+1
D.T(n)=2T(n+1)+1
第19题:
已知递归函数f(n)的功能是打印n,n-1,…,1,且n>=1,应采用的代码段是(42)。
A.if n>1 then f(n-1); printf("% d",n);
B.if n<1 then f(n+1); printf("% d", n);
C.printf("% d",n); if n>1 then f(n-1);
D.printf("% d", n); if n<1 then f(n+1);
第20题:
下面 ______ 是正确的递归函数,它保证对所有的参数能够结束。
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); }
第21题:
有以下程序 #include<iostream.h> int f(iht n) { if(n==1) return 1; else return f(n-1)+1;} void main( ) { iht i,j=0; for(i=1;i<3;i++)j+=f(i); cout < < j;} 程序运行后的输出结果是
A.4
B.3
C.2
D.1
第22题:
递归函数f(n)=f(n-1)+n(n>1)的递归出口是()
第23题:
f(1)=0
f(1)=1
f(0)=1
f(n)=n