软考初级

递归函数执行时,其调用和返回控制是利用( )来进行的。A.栈 B.对列 C.数组 D.树

题目

递归函数执行时,其调用和返回控制是利用( )来进行的。

A.栈 B.对列 C.数组 D.树

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

A.队列

B.栈

C.多维数组

D.顺序表


正确答案:B

第2题:

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

A.队列

B.栈

C.多维数组

D.顺序表


正确答案:B
解析:本题考查数据结构基础知识。
  在函数调用过程中形成嵌套时,则应使最后被调用的函数最先返回,递归函数执行时也是如此。例如,用递归方式求4的阶乘(以factorial(n)表示求n的阶乘)的过程如下所示:
  factorial(4)=4*factorial(3)
        =4*(3*factorial(2))
        =4*(3*(2*factorial(1)))
        =4*(3*(2*1)
        =4*(3*2)
        =4*6
        =24
  显然,要求4的阶乘,需要通过递归调用求出3的阶乘,要求出3的阶乘,必须先求出2的阶乘,依此类推,求出1的阶乘后才能得到2的阶乘,然后才能得到3和4的阶乘。该求解过程中的函数调用和返回需要满足后调用先返回的特点,因此需要使用栈结构。

第3题:

● 栈是一种按“后进先出”原则进行插入和删除操作的数据结构,因此, (9) 必须用栈。

(9)

A. 函数或过程进行递归调用及返回处理

B. 将一个元素序列进行逆置

C. 链表结点的申请和释放

D. 可执行程序的装入和卸载


正确答案:A

第4题:

栈是一种按“后进先出”原则进行插入和删除操作的数据结构,因此, (9) 必须用栈。

A.函数或过程进行递归调用及返回处理

B.将一个元素序列进行逆置

C.链表结点的申请和释放

D.可执行程序的装入和卸载


正确答案:A
本题考查数据结构基础知识。栈是一种后进先出的数据结构。将一个元素序列逆置时,可以使用栈也可以不用。链表结点的申请和释放次序与应用要求相关,不存在“先申请后释放”的操作要求。可执行程序的装入与卸载,也不存在“后进先出”的操作要求。对于函数的递归调用与返回,一定是后被调用执行的先返回。

第5题:

在程序的执行过程中,实现嵌套调用函数正确返回可以用(119)结构。

A.队列

B.栈

C.树

D.图


正确答案:B
解析:函数调用的过程是:系统首先将当前函数的上下文环境信息压入堆栈,然后执行被调用的函数;执行结束后,系统将程序执行信息弹出栈,继续执行原来的程序。可见,堆栈的特点恰好满足要求。

第6题:

一些重要的程序语言(如Pascal语言)允许过程的递归调用,而实现递归调用中的存储分配通常用( )。

A.栈

B.堆

C.数组

D.链表


正确答案:A
解析:一些较流行的程序语言允许过程的递归调用。递归调用就是过程调用本身。递归实现的是:当过程每一次执行后,都能返回到最近一次调用它的过程中。这样各调用点之间形成一种后进先出关系,而栈结构正适合来存储这些调用点。

第7题:

当一次函数调用发生时,对其执行过程正确描述的是(28)。

A.复制实参变量的值→控制流转移到该函数的起始位置→分配一个栈帧→开始执行该函数→控制流返回到函数调用点

B.控制流转移到该函数的起始位置→复制实参变量的值→分配一个栈帧→开始执行该函数→控制流返回到函数调用点

C.控制流转移到该函数的起始位置→分配一个栈帧→复制实参变量的值→开始执行该函数→控制流返回到函数调用点

D.分配一个栈帧→复制实参变量的值→控制流转移到该函数的起始位置→开始执行该函数→控制流返回到函数调用点


正确答案:D
解析:当一次函数调用发生时,其执行过程可归纳为以下5个步骤:①在内存的栈空间中为其分配一个栈帧,用来存放该函数的形参变量和局部变量;②把实参变量的值复制到相应的形参变量中;③控制流转移到该函数的起始位置;④该函数开始执行;⑤当这个函数执行完以后,控制流和返回值返回到函数调用点。

第8题:

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

(39)

A.队列

B.栈

C.多维数组

D.顺序表


正确答案:B

第9题:

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

A.队列

B.栈

C.多维数组

D.顺序表


正确答案:B
解析:在递归函数执行时函数调用过程中形成嵌套时,最后被调用的函数最先返回。例如,用递归方法求3的阶乘(以factorial(n)表示n的阶乘)的过程如下:factorial(3)=3*factorial(2)=3*(2*factorial(1))=3*(2*1)=3:1:2=6。显然,要求3的阶乘,需要递归调用2的阶乘,要求2的阶乘,需要先求出l的阶乘,依此类推,求出1的阶乘后才得到2和3的阶乘。求解的过程满足后调用先返回的特点,因此需要使用到栈。

第10题:

递归函数执行时,需要()来提供支持。

A.栈

B.队列

C.有向图

D.二叉树


正确答案:A