第 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()
查看答案与解析
参考答案:A
题目详解:
程序执行时,函数调用栈的顺序遵循“后进先出”原则。以下是详细分析:
- 程序从 函数开始执行,首先将 的上下文压入栈底。
- 在 中调用 ,此时 的上下文被压入栈,位于 之上。
- 在 中,由于 不满足 的条件,会继续递归调用 即 ,因此 的上下文被压入栈顶。
- 当 执行时,满足 ,返回 并出栈,接着 计算 并出栈,最后 输出结果后出栈。
因此,栈中信息自栈底到栈顶的顺序为:。
正确答案:A







该机指令格式如题 44 图b 所示,支持寄存器直接和寄存器间接两种寻址方式,寻址方式位分别为 0 和 1,通用寄存器R0~R3 的编号分别为 0、1、2 和 3。请回答下列问题。



