单选题
已知程序如下:int s(int n){ return(n’<=0)’0=s(n-1)+n; }void main(){ cout<
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
【答案解析】
解析:主函数调用被调用函数,要做三件事:一是将实参和返回地址传给被调用函数保存,二是为被调用函数的参数和局部变量分配工作区,三是将控制权转给被调用函数的入口。调用按后调用先返回,必须使用栈。这里是主函数调用一个递归函数,递归函数调用自身,出口是参数为0。被调用函数返回主调用函数前也完成三件事:保存被调用函数(过程)的计算结果;释放被调用函数(过程)的工作区,按被调用函数(过程)保存的返回地址将控制权交给调用函数(过程)。
提交答案
关闭