微盟属于营销型手机网站苏州网络平台公司
这道题考察的是递归函数的调用栈过程。
逐步分析程序的执行过程:
main()函数首先被调用,此时栈底是main()的信息。main()函数调用S(1),此时S(1)的信息被压入栈中,位于main()之上。S(1)函数内部调用S(0),因为n不等于 0,所以S(1)会递归调用S(0)。此时S(0)的信息被压入栈中,位于S(1)之上。
此时栈的状态是:
- 栈底:
main() - 中间:
S(1) - 栈顶:
S(0)
因此,选项 A main()->S(1)->S(0) 是正确的。
继续分析剩余的执行过程:
S(0)执行完毕,返回值 0,此时S(0)的信息从栈中弹出。S(1)接收到S(0)的返回值,计算S(1) = S(0) + 1 = 0 + 1 = 1,然后S(1)的信息从栈中弹出。main()接收到S(1)的返回值,输出结果 1,然后main()的信息从栈中弹出。
最终,栈被清空,程序执行结束。

