下面是一个递归Java程序,其功能为 ( ) long Factorial(int n){ if(1==n){ return 1; } else return n * Factorial (n-1); }
A.求1-n的和
B.求2到n的和
C.求n的阶乘
D.求2-n的积
第1题:
如有下程序: #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)<<endl; return 0; } 则该程序的输出结果应该是( )。
A.2
B.3
C.
D.5
第2题:
有如下程序: #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
第3题:
阅读下列利用递归来求 n! 的程序
Class FactorialTest{
Static long Factorial (int n) { // 定义 Factorial () 方法
If (n==1)
Return 1;
Else
Return n* Factorial(_____);
}
Public static void main (String a[]) { // main () 方法
Int n=8;
System.out.println{n+ ” ! = ” +Factorial (n)};
}
}
为保证程序正确运行,在下划线处应该填入的参数是
A ) n-1
B ) n-2
C ) n
D ) n+1
第4题:
阅读下面利用递归来求n!的程序 class FactorialTest { static long Factorial(int n){ //定义Factorial()方法 if(n==1)return 1; else return n * Factorial(______); } public static void main(String a[]) { //main()方法 int n=8; System.out.println(n+"!="+Factorial(n)); } } 为保证程序正确运行,在下画线处应该填入的参数是
A.n-1
B.n-2
C.n
D.n+1
第5题:
有如下程序: #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
第6题:
下面的程序中定义了两个方法求自然数1~100的和。具体如下:int suml(int n);利用循环求1~n的和,int sum2(int n);利用递归方法求和1~n的和;在main()方法中调用这两个方法求1~100的和并显示。在程序的每条横线处填写一个适当的语句,使程序的功能完整。
public class Sum{
public static void main(String args[])
{
//1.调用suml(int n),求1~100的和
System.out.println("1~100的和:"+sum1(100));
//2,调用sum2(int n),求1~100的和
System.out.println("1~100的和:"+sum2(100));
}
static int suml(int n)
{
int result=0;
for(int i=1;i<=n;i++)
________________
retrun result;
}
static int sum2(int n)
{
if(______________)
return 1;
else
_____________
}
}
第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题:
已知递归函数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)
第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题:
阅读下列利用递归来求n!的程序 class Factorial Test{ staticlong Factorial(intn){//定义Factorial()方法 if(n==1) retum 1; else returnn*Factorial{{_____}; } publicstaticvoidmain{Stringa[)){//main()方法 intn=8; System.out.println{n+"!="+Factorial(n)}; } } 为保证程序正确运行,在下划线处应该填入的参数是( )。
A.n-1
B.n-2
C.n
D.n+1
第11题:
A.求整数n的阶乘
B.factorial(5)是函数调用
C.是递归函数
D.求任意两个数值n和n-1的乘积
第12题:
汉诺塔问题可以用递归解决,以下也可用递归实现的是()
第13题:
( 9 )下面的函数利用递归实现了求 1+2+3+ …… +n 的功能:
int sum ( int n ) {
if ( n==0 )
return 0;
else
return n+sum ( n-1 ) ;
}
在执行 sum ( 10 )的过程中,递归调用 sum 函数的次数是【 9 】 。
第14题:
阅读下面程序:
include<iostream>
using namespace std;
long fib(int n)
{
if ( n > 2 )
return (fib(n-1)+fib(n-2));
else
return 2;
}
int main()
{
cout<<fib(3)<<end1;
return 0;
{
则该程序的输出结果应该是【 】。
第15题:
下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。(注:阶乘的定义是n!cn*(n-1)*...*2*1)
unsigned fact(unsigned n)
{
if (n<=1)
return 1;
return 【 】;
}
第16题:
有如下程序: #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
第17题:
下面是一个递归Java程序,其功能为 ( )long Factorial(int n){ if(1==n){ return 1; } else return n*Factorial(n-1);}
A.求1-n的和
B.求2到n的和
C.求n的阶乘
D.求2-n的积
第18题:
计算N!的递归算法如下,求解该算法的时间复杂度时,只考虑相乘操作,则算法的计算时间T(n)的递推关系式为(55);对应时间复杂度为(56)。
int Factorial (int n)
{//计算n!
if(n<=1)return 1;
else return n * Factorial(n-1);
}
(62)
A.T(n)=T(n-1)+1
B.T(n)=T(n-1)
C.T(n)=2T(n-1)+1
D.T(n)=2T(n-1)-1
第19题:
阅读下列利用递归来求n!的程序。 class FactorialTest{ static long Factorial(int n){//定义Factorial方法 if(n= =1) return l; else return n*Factorial{ }; } public static void main{String a[]}{ //main方法 int n=8: System.out.println{n+"!="+Factorial (n)}; } } 为保证程序正确运行,在下画线处应该填入的参数是( )。
A.n-1
B.n-2
C.n
D.n+1
第20题:
设有一个递归算法如下: 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次函数调用
第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题:
递归函数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)
第23题:
A.功能等价于下面的函数#n为整数defsum2(n):return(1+n)*n/2
B.sum(5)是函数调用
C.是递归函数
D.求任意两个数值n和n-1的和
第24题:
求1-n的和
求n的阶乘
斐波那契数列
n^k(^表示幂)