第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题:
A.循环的递归调用
B.大数据结构的局部变量
C.函数代码长度过长
D.代码运行时错误
第3题:
设有一个递归算法如下 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次函数调用
第4题:
已知递归函数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)
第5题:
已知递归函数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
第6题:
试题四(共 15 分)
阅读以下说明和 C 函数代码,回答问题并将解答写在答题纸的对应栏内。
[说明]
著名的菲波那契数列定义式为
f1 = 1 f2 = 1 fn = fn-1 + fn-2 (n = 3,4,…)
因此,从第 1 项开始的该数列为 1,1,2,3,5,8,13,21,…。函数 fib1 和 fib2 分别用递归方式和迭代方式求解菲波那契数列的第 n 项(调用 fib1、fib2 时可确保参数 n 获得一个正整数) 。
[C函数代码]
[问题 1](6 分)
函数 fib1 和 fib2 存在错误,只需分别修改其中的一行代码即可改正错误。
(1)函数 fib1 不能通过编译,请写出 fib1 中错误所在行修改正确后的完整代码;
(2)函数 fib2 在n≤2 时不能获得正确结果,请写出 fib2 中错误所在行修改正确后的完整代码。
[问题 2](3 分)
将函数 fib1 和 fib2 改正后进行测试,发现前 46 项都正确,而第 47 项的值是一个负数,请说明原因。
[问题 3](6 分)
函数 fib1、fib2 求得菲波那契数列第 n 项(n>40)的速度并不相同,请指出速度慢的函数名,并简要说明原因。
第7题:
第8题:
在下述哪种情况下适宜采用inline定义内联函数。()
第9题:
关于递归的有关内容描述项正确的是()
第10题:
递归是函数自身调用编程技术
有返回值的函数可以是递归的函数
无返回值函数是不能使用递归的
递归分为直接递归和间接递归
第11题:
缩小问题规模
代码简洁
代码易懂
代码清晰
第12题:
只需少量的程序就可描述出解题过程所需要的多次重复计算
需要大量的程序就可描述出解题过程所需要的多次重复计算
大大地增加了程序的代码量
大大地减少了程序的代码量
第13题:
一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看,通常递归过程比非递归过程()。
A.较快
B.较慢
C.相同
D.无法确定
第14题:
阅读以下说明和C函数代码,回答问题并将解答写在对应栏内。
【说明】
著名的菲波那契数列定义式为
f1=1 f2=1 fn=fn-1+fn-2 (n=3,4,…)
因此,从第1项开始的该数列为1,1,2,3,5,8,13,21,…。函数fibl和fib2分别用递归方式和迭代方式求解菲波那契数列的第n项(调用fib1、fib2时可确保参数n获得一个正整数)。
【C函数代码】
函数fib1和fib2存在错误,只需分别修改其中的一行代码即可改正错误。
(1)函数fib1不能通过编译,请写出fib1中错误所在行修改正确后的完整代码。
(2)函数fib2在n≤2时不能获得正确结果,请写出fib2中错误所在行修改正确后的完整代码。
第15题:
已知递归函数f(n)的功能是计算 1+2+3…n,且n>=1,应采用的代码段是_____.
第16题:
已知递归函数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);
第17题:
在 ______ 情况下适宜采用inline定义内联函数。
A.函数体含有循环语句
B.函数体含有递归语句
C.函数代码少、频繁调用
D.函数代码多、不常调用
第18题:
已知递归函数f的定义如下:
int f(int n)
{
if(n <=1)return 1; //递归结束情况
else return n*f(n-2); //递归}
则函数调用语句f(5)的返回值是【 】。
第19题:
递归的好处描述不正确的是()。
第20题:
数据结构与算法里,关于递归说法正确的是()。
第21题:
python中递归函数的作用()
第22题:
函数体含有循环语句
函数体含有递归语句
函数代码少、频繁调用
函数体含有switch语句
第23题:
函数体含有循环语句
函数体含有递归语句
函数代码少、频繁调用
函数代码多、不常调用