题7
题目
设有如下递归函数, 在 func(func(5)) 的执行过程中, 第 4 个被执行的 func 函数是 ( ).
int func(int x) {
if (x <= 3) return 2;
else return func(x - 2) + func(x - 4);
}A. func(2)
B. func(3)
C. func(4)
D. func(5)
分析
首先,执行内层参数 func(5) = func(3) + func(1) = 4 ,共执行 3 次 func 函数。然后,执行 func(func(5)) = func(4) = func(2) + func(0) = 4 ,因此第 4 个被执行的 func 函数是 func(4)。 也可以采用画出递归调用树的方式, 即某个函数的执行次序等于其在递归调用树的层次遍历中的次序。
解
C