第 1 题
已知程序如下:
int S(int n) {
return (n <= 0) ? 0 : S(n - 1) + n;
}
void main() {
cout << S(1);
}
程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息依次对应的是( )。
A. main() → S(1) → S(0)
B. S(0) → S(1) → main()
C. main() → S(0) → S(1)
D. S(1) → S(0) → main()
[tag_link] 正确答案:A递归调用函数时,在系统栈里保存的函数信息需满足先进后出的特点,依次调用了main(),S(1),S(0),故栈底到栈顶的信息依次是main(),S(1),S(O)。