#JC1036. 递归
递归
一、单项选择题(每题2分,共20分)
1、递归的两个完整过程是?()。 {{ select(1) }}
- 循环与判断
- 递进与回归
- 顺序与分支
- 读取与输出
2、递归函数指的是?()。 {{ select(2) }}
- 函数调用别的函数
- 函数自己调用自己
- 使用for循环重复执行
- 使用while循环重复执行
3、下面关于递归出口作用描述正确的是?()。 {{ select(3) }}
- 让递归无限执行
- 终止递进,开始回归
- 增大递归层数
- 用来定义全局变量
4、如果递归没有写出口,程序会发生什么?()。 {{ select(4) }}
- 运行速度变快
- 直接得到正确答案
- 无限递归,栈耗尽程序崩溃
- 自动生成出口继续运行
5、递归函数中,写在递归调用语句之后的代码,在哪个阶段执行?()。 {{ select(5) }}
- 递进阶段
- 回归阶段
- 程序一开始就执行
- 永远不会执行
6、递归求1~n累加和,f(n)=f(n‑1)+n,递归出口正确的是?()。
{{ select(6) }}
if(n==1) return 1;if(n==1) return 0;return f(n)+1;if(n>1) return n;
7、求n的阶乘递归函数fac(n)=fac(n‑1)*n,n=1时出口返回值为?()。
{{ select(7) }}
- 0
- 1
- n
- n‑1
8、兔子繁殖问题(斐波那契),n≥3递归公式f(n)=?()。 {{ select(8) }}
f(n‑1)+nf(n‑1)+f(n‑2)f(n‑1)*nf(n‑2)*2
9、递归解决台阶问题(一步走1阶或2阶),n=3时走法数是?()。 {{ select(9) }}
- 2
- 3
- 4
- 5
10、下面不属于递归缺点的是?()。 {{ select(10) }}
- 层数过多容易崩溃
- 部分场景大量重复计算,速度慢
- 代码一定冗长复杂
- 函数调用占用栈内存
二、判断题(每题2分,共10分)
11、递归解决问题,大问题可以拆解为结构相似的更小的子问题。() {{ select(11) }}
- 正确
- 错误
12、递进时输出数字,会从大到小打印;回归时输出,会从小到大打印。() {{ select(12) }}
- 正确
- 错误
13、递归必须要有递归出口,出口对应最小规模子问题的解。() {{ select(13) }}
- 正确
- 错误
14、台阶递归问题,当n越大,重复计算越多,程序运行越慢。() {{ select(14) }}
- 正确
- 错误
15、所有问题用递归写,运行效率都一定比循环高。() {{ select(15) }}
- 正确
- 错误