关于堆式分配,下面说法正确地是()。

题目

关于堆式分配,下面说法正确地是()。

  • A、属于动态分配
  • B、属于静态分配
  • C、适用于可递归调用、具有分程序结构的语言
  • D、适用于允许为变量动态申请内存空间的语言
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下面()存储分配方法可能使系统发生抖动。

A、可变连续分配

B、固定分配

C、页式分配

D、页式虚拟分配


参考答案:D

第2题:

下列中,不属科学堆码方式的是()。

A、通风式

B、散堆式

C、货架堆码法

D、垛堆法


答案:A

第3题:

以下关于串的存储方式的说法中正确的是__________。

A、定长顺序表示和堆分配表示都是串的顺序存储表示

B、定长顺序表示的串的存储空间是编译时预先分配的一个比较大的连续空间

C、堆分配表示的串的存储空间是在程序执行过程中动态分配的

D、堆分配存储表示时的空串不占用连续的存储区


正确答案:ABCD

第4题:

下面关于楼梯类型说法正确的是:( )。

A、混合式楼梯

B、悬挂式楼梯

C、防火式楼梯

D、金属楼梯


答案:ACD

第5题:

一种语言中不同种类的变量往往采用不同的存储分配策略,C语言中的全局变量和静态变量采用静态分配,而自动(Auto)类变量采用(30)。

A.最佳分配

B.首先分配

C.堆式分配

D.栈式分配


正确答案:D
解析:在目标程序运行时,目标代码所引用的数据对象在内存空间中。因此,在编译阶段产生目标时,要把目标代码所引用的数据对象映射到内存空间上,在运行时,再分配给需要的内存单元,这个过程称为存储分配。分配的对象有简单数据类型(如整、实和布尔型等)、结构数据类型(如数组和记录等)和连接数据(如返回地址、参数等)。由于各种语言的语义不同,主要是名字的作用域和生存期不同,因而对存储空间的组织和采用的存储分配策略也不同,可分为静态和动态两大类。把过程或函数的一次执行叫一个活动,把一个活动所需要的存储空间组织在一起构成一个活动记录(有的书上称数据区),不同语言的活动记录结构是不同的。如果在编译时能确定目标程序运行中所需的全部数据空间的大小及相互位置,那么,能在编译时安排好目标程序运行时全部数据对象在存储空间中的位置,且不随目标程序的运行而改变,则称这种分配为静态存储分配,如先于FORTRAN77版本的FORTRAN语言采用这种分配策略。如果一个程序语言允许递归过程、可变数组或动态数据结构,那么,就需采用动态存储分配策略,它有两种方式:栈式和堆式。栈式动态存储分配策略适用于组织PASCAL、C、ALGOL之类的语言的活动记录。每当调用一个过程产生一个活动时,它所需的活动记录就分配在栈顶。每当过程的一个活动结束时,就释放栈顶的活动记录。如果一个程序语言提供用户构造动态数据结构的设施,有自由地申请数据空间和退还数据空间的机制(如C++中的newdelete,PASCAL的new),或者不仅有过程而且有进程的程序结构,即空间的使用未必服从“先申请后释放,后申请先释放”的原则,那么栈式的动态存储分配方案就不适用了,这种情况下通常使用一种称为堆式的动态存储分配方案。下图所示为C语言运行时的内存空间安排,编译程序通常把全局量和每个函数中的静态量分在静态数据区,把一个函数中的自动变量和必需的数据组织成活动记录,随着调用函数的展开,分配在栈中。对于程序员构造动态数据结构,调用malloc动态申请的单元,则分配在堆中。

第6题:

数据空间的使用和管理方法分成()。

A、静态存储分配

B、栈式动态存储分配

C、堆式动态存储分配

D、局部存储分配


参考答案:ABC

第7题:

以下关于程序运行时内存分配区域的叙述中,说法错误的是(33)。

A.全局变量区域存放了程序当中的所有全局变量,是静态分配的区域

B.栈区域是由系统自动来分配的

C.堆是在函数调用时分配的,当函数调用结束之后,相应的堆就会被释放.

D.主函数和其他函数的代码在程序开始运行时,就被装入到内存,保存在代码区


正确答案:C
解析:栈帧是指在调用函数时,系统会自动地分配一块内存区域给这个函数,用来保存它的运行上下文、形参和局部变量。栈帧是在函数调用时分配的,当函数调用结束之后,相应的栈帧就会被释放。而堆区域主要用做动态分配的内存。

第8题:

最适合动态建立数据实体的内存分配方式是(49)。

A.栈式分配

B.堆式分配

C.编译时预先分配

D.以上三种均可


正确答案:B
解析:本题考查系统内存分配策略。内存分配策略可以分为动态分配和静态分配两种。静态分配是指编译阶段能确定源程序中各数据实体的存储空间大小,预先为程序分配内存。动态分配又有栈式分配和堆式分配两种。栈式分配适用于允许递归调用的程序设计。引入一运行栈,每调用一次过程,就把该过程的相应调用记录压入栈,过程执行完毕后再将其弹出栈;堆式分配适用于允许程序为变量在运行时动态申请和释放存储空间的程序,其基本思想是为运行的程序划出适当大的空间,每当程序申请空间时,就从堆的空闲区找出一块空间分配给程序,每当释放时则回收。因此,最适合动态建立数据实体的内存分配方式是堆式分配。

第9题:

Windows内存分配归为两个类型,是( )

A.段分配、块分配

B.段分配、堆分配

C.块分配、栈分配

D.栈分配、堆分配


正确答案:D
解析:内存分配分为分栈配和堆分配。栈上分配的内存系统自动释放,堆上分配的内存,系统不释放。栈一般是静态分配内存,堆上一般是动态分配内存。

第10题:

在编译时安排所有数据对象的存储单元的分配策略属于()。

  • A、静态分配策略
  • B、栈式分配策略
  • C、堆分配策略
  • D、动态分配策略

正确答案:A,B,C,D

更多相关问题