问题 单项选择题

调用递归过程或函数时,处理参数及返回地址需要用一种称为()的数据结构。

A.队列

B.栈

C.多维数组

D.顺序表

答案

参考答案:B

解析:

当在一个函数的运行期间调用另一个函数时,在运行被调用函数之前,系统需要先完成3个操作,即将所有的实参、返回地址等信息传递给被调函数保存;

为被调函数的局部变量分配存储区;

将控制转移到被调函数的入口。

从被调函数返回调用函数之前,系统还要完成3个操作,即保存被调函数的计算结果;

释放被调函数的数据区;

依照被调函数保存的地址将控制转移到调用函数。

当有多个函数构成嵌套调用时,按照"后调用先返回"的原则,上述函数之间的信息传递和控制转移必须通过"栈"来实现,每当调用一个函数时,就在栈顶为它分配一个存储区,每当退出一个函数时,就释放它的存储区,当前正在运行的函数的数据区必在栈顶。递归函数的运行过程类似于多个函数的嵌套调用,只是调用和被调用函数是同一个函数。

选择题
单项选择题 A1型题