#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)+n
  • f(n‑1)+f(n‑2)
  • f(n‑1)*n
  • f(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) }}

  • 正确
  • 错误