考虑下面给出的 C函数。
int f(int j)
{
static int i = 50;
int k;
if (i == j)
{
printf(“something”);
k = f(i);
return 0;
}
else return 0;
}
以下哪一项是正确的?
(A)函数对于 j 的所有值都返回 0。
(B)该函数为 j 的所有值打印字符串。
(C)当 j = 50 时,函数返回 0。
(D)当 j = 50 时,函数会耗尽运行时堆栈或陷入无限循环答案: (D)
解释:当 j 为 50 时,函数会一次又一次地调用自己,因为在递归过程中 i 和 j 都没有改变。
这个问题的测验