已知有一个求阶乘的递归函数如下: def fac(n): if n==0 or n==1: return 1 else: 填空 其中,应填入的是()。
A.return n*fac(n-1)
B.n*fac(n-1)
C.return (n-1)*fac(n)
D.(n-1)*fac(n)
第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题:
已知递归函数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
第3题:
请补充函数fun(),函数fun()的功能是求7的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
long fun(int n)
{
if(【 】)
return(n*fun(【 】);
else if(【 】)
return 1;
}
main()
{
int k=7;
printf("%d!=%ld\n", k, fun(k));
}
第4题:
有如下递归函数:
int Fun(int n){
if(n<=1) return 1;
______
}
请补充完整,使得函数Fun能够正确计算形参n的阶乘。
第5题:
设有一个递归算法如下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
第6题:
设有一个递归算法如下 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次函数调用
第7题:
下面的函数是完成1~n的累加,请填空。a(int k){ if(k <=0) printf("error\n"); if(k == 1) return 1; else;}
第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题:
递归函数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题:
下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。(注:阶乘的定义是n!=n*(n-1)*...*2*1)
unsigned fact (unsigned n)
{
if(n<=1)
retum 1;
return【 】;
}
第12题:
设有一个递归算法如下: int fact(int n) { //n大于等于0 if(n<=0) return 1; else return n*fact(n-1); } 则计算fact(n)需要调用该函数的次数为()
第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题:
( 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
第15题:
下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。(注:阶乘的定义是n!cn*(n-1)*...*2*1)
unsigned fact(unsigned n)
{
if (n<=1)
return 1;
return 【 】;
}
第16题:
下面是一个递归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的积
第17题:
阅读以下函数说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。
【函数2.1说明】
递归函数sum(int a[], int n)的返回值是数组a[]的前n个元素之和。
【函数2.1】
int sum (int a[],int n)
{
if(n>0) return (1);
else (2);
}
【函数2.2说明】
有3个整数,设计函数compare(int a,int b,int c)求其中最大的数。
【函数2.2】
int compare (int a, int b, int c )
{ int temp, max;
(3) a:b;
(4) temp:c;
}
【函数2.3说明】
递归函数dec(int a[],int n)判断数组a[]的前n个元素是否是不递增的。不递增返回 1,否则返回0。
【函数2.3】
int dec( int a[], int n )
{
if(n<=1) return 1;
if(a[0]<a[1]) return 0;
return (5);
}
第18题:
请补充函数proc,函数proc的功能是求7的阶乘。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。 试题程序: include<stdio.h> long proc(int n) { if( 【1】 ) return(n*proc( 【2】 ); else if(【3】) return l; } void main { int k=7: printf("%d!=%ld\n",k,proc(k)); }
第19题:
能保证对所有的参数能够结束的递归函数是
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);)
第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题:
A.求整数n的阶乘
B.factorial(5)是函数调用
C.是递归函数
D.求任意两个数值n和n-1的乘积
第23题:
第24题:
n+1
n-1
n
n+2