题5
题目
执行完下列语句段后,
int f(int x) {
return ((x > 0) ? x * f(x - 1) : 2);
}
int i;
i = f(f(1));A. 2
B. 4
C. 8
D. 无限递归
分析
栈与递归有着紧密的联系。递归模型包括递归出口和递归体两个方面。递归出口是递归算法的出口, 即终止递归的条件。递归体是一个递推的关系式。根据题意有
f(0) = 2;
f(1) = 1 * f(0) = 2;
f(f(1)) = f(2) = 2 * f(1) = 4;解
B