单选题调用递归过程或函数时,处理参数及返回地址需要用一种称为()的数据结构。A队列B栈C多维数组D顺序表
单选题
调用递归过程或函数时,处理参数及返回地址需要用一种称为()的数据结构。
A
队列
B
栈
C
多维数组
D
顺序表
参考解析
解析:
当在一个函数的运行期间调用另一个函数时,在运行被调用函数之前,系统需要先完成3个操作,即将所有的实参、返回地址等信息传递给被调函数保存;
为被调函数的局部变量分配存储区;
将控制转移到被调函数的入口。
从被调函数返回调用函数之前,系统还要完成3个操作,即保存被调函数的计算结果;
释放被调函数的数据区;
依照被调函数保存的地址将控制转移到调用函数。
当有多个函数构成嵌套调用时,按照"后调用先返回"的原则,上述函数之间的信息传递和控制转移必须通过"栈"来实现,每当调用一个函数时,就在栈顶为它分配一个存储区,每当退出一个函数时,就释放它的存储区,当前正在运行的函数的数据区必在栈顶。递归函数的运行过程类似于多个函数的嵌套调用,只是调用和被调用函数是同一个函数。
为被调函数的局部变量分配存储区;
将控制转移到被调函数的入口。
从被调函数返回调用函数之前,系统还要完成3个操作,即保存被调函数的计算结果;
释放被调函数的数据区;
依照被调函数保存的地址将控制转移到调用函数。
当有多个函数构成嵌套调用时,按照"后调用先返回"的原则,上述函数之间的信息传递和控制转移必须通过"栈"来实现,每当调用一个函数时,就在栈顶为它分配一个存储区,每当退出一个函数时,就释放它的存储区,当前正在运行的函数的数据区必在栈顶。递归函数的运行过程类似于多个函数的嵌套调用,只是调用和被调用函数是同一个函数。
相关考题:
● 栈是一种按“后进先出”原则进行插入和删除操作的数据结构,因此, (9) 必须用栈。(9)A. 函数或过程进行递归调用及返回处理B. 将一个元素序列进行逆置C. 链表结点的申请和释放D. 可执行程序的装入和卸载
● 栈是一种按“后进先出”原则进行插入和删除操作的数据结构,因此, (60) 必须用栈。(60)A. 实现函数或过程的递归调用及返回处理时B. 将一个元素序列进行逆置C. 链表结点的申请和释放D. 可执行程序的装入和卸载
在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则A.称为函数的直接递归调用B.称为函数的间接递归调用C.称为函数的循环调用D.C语言中不允许这样的递归调用
在C语言的函数定义过程中,如果函数finA调用了函数funB,函数funB又调用了函数funA,则()。 A.称为函数的直接递归B.称为函数的间接递归C.称为函数的递归定义D.C语言中不允许这样的递归形式
栈是一种按“后进先出”原则进行插入和删除操作的数据结构,因此, (9) 必须用栈。A.函数或过程进行递归调用及返回处理B.将一个元素序列进行逆置C.链表结点的申请和释放D.可执行程序的装入和卸载
单选题关于递归调用不正确的描述是()A递归调用和嵌套调用都是通过堆栈管理实现的B函数直接或间接调用自己称为递归调用C递归终止条件必须为参数值等于0D递归算法的问题规模必须是逐步缩小的