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