软件水平考试

在C程序中有些变量随着其所在函数被执行而为其分配存储空间,当函数执行结束后由系统回收。这些变量的存储空间应在( )分配。A.代码区 B.静态数据区 C.栈区 D.堆区

题目
在C程序中有些变量随着其所在函数被执行而为其分配存储空间,当函数执行结束后由系统回收。这些变量的存储空间应在( )分配。

A.代码区
B.静态数据区
C.栈区
D.堆区
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在函数调用过程中,下列说法正确的是()。

A.形式参数和实在参数各占一个独立的存储单元

B.形式参数和实在参数存储空间都是在函数调用时分配的

C.)在函数的执行过程中,形参变量值的改变不会影响实参值的改变

D.函数调用结束时,临时存储区被撤消

E.在函数调用过程中,实在参数与形式参数在个数、类型上必须匹配


正确答案:ACDE

第2题:

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

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

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

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

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


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

第3题:

●程序中常采用变量表示数据,变量具有名、地址、值、作用域、生存期等属性。关于变量的叙述,(32)是错误的

(32)

A.根据作用域规则,在函数中定义的变量只能在函数中引用

B.在函数中定义的变量,其生存期为整个程序执行期间

C.在函数中定义的变量不能与其所在函数的形参同名

C.在函数中定义的变量,其存储单元在内存的栈区


正确答案:B


第4题:

以下选项中叙述错误的是( )。

A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

B.在c程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

C.C程序函数中定义的自动变量,系统不自动赋确定的初值

D.C程序函数的形参不可以说明为static型变量


正确答案:A
静态变量只赋值一次,下一次调用.还是使用上次遗留的值。答案选择A)

第5题:

下列说法中错误的是

A.静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值

B.若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽

C.静态全局变量可以被其他的编辑单位所引用

D.所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失


正确答案:C
解析:静态全局变量只限于本文件所使用。静态全局变量只限于本文件所使用,不能被其他的文件所引用。

第6题:

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

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

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

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

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


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

第7题:

程序中常采用变量表示数据,变量具有名、地址、值、作用域、生存期等属性。关于变量的叙述,(19)是错误的。

A.根据作用域规则,在函数中定义的变量只能在函数中引用

B.在函数中定义的变量,其生存期为整个程序执行期间

C.在函数中定义的变量不能与其所在函数的形参同名

D.在函数中定义的变量,其存储单元在内存的栈区


正确答案:B
解析:本题考查程序语言基础知识。变量程序语言中的一个重要概念,具有类型、存储地址和作用域和生存期等属性。变量的作用域是指一个范围,是从代码空间的角度考虑问题,它决定了变量的可见性,说明变量在程序的哪个区域可用,即程序中哪些行代码可以使用变量。作用域有三种:局部作用域、全局作用域和文件作用域,相对应于局部变量(local variable)、全局变量和静态变量(global variable)。在变量的作用域中,可以合法地引用它,设置它的值,或在表达式中使用它;在变量的作用域之外,就不能引用它的名称,这么做会导致一个编译错误。在程序执行时,所有的变量都有有限的生存期。它们从被声明的那一刻起存在,并在某一刻消失,最迟也要在程序终止时消失。变量生存多长时间取决于属性“存储持续时间”。函数中定义的变量(局部变量)一般在函数被执行时由系统自动在栈区分配存储空间,当函数执行结束时自动撒消其存储空间,这称为变量具有自动的存储持续时间。对于全局变量,其生存期一般从程序运行开始,至程序运行结束,称为变量具有静态的存储持续时间。还有一些变量,其存储空间由程序员根据需要申请或释放,称为具有动态的存储持续时间。

第8题:

若程序中定义了局部变量与全局变量,则(30)。

A.在函数内只能访问局部变量,不能访问全局变量

B.局部变量与全局变量的名字不得相同

C.一个函数被多次调用时,其定义的局部变量必定分配同一个存储单元

D.函数中定义的局部变量与全局变量同名时,在函数内引用的是局部变量


正确答案:D
解析:本题考查程序语言的基本概念。在高级语言程序中,变量的作用域(引用变量的代码范围)可能是全局的或者是局部的。对于全局变量,其作用域是整个程序(或文件),因此在函数内可以访问全局变量,而局部变量的作用域为声明(定义》该变量的函数(过程,子程序)。一般语言都规定,若全局变量和局部变量的名称相同,则在局部变量的作用域范围内,引用的是局部变量(即最近嵌套原则)。程序运行过程中,每次调用一个函数时,都在栈区为该函数的运行创建活动记录(主要包括函数运行时需要的数据和控制信息),函数运行结束后则释放为其分配的活动记录。因此,函数多次运行时,其定义的局部变量不一定分配同一个存储单元。

第9题:

若程序中定义了局部变量与全局变量,则(11)。A.在函数内只能访问局部变量,而不能访问全局变量SX

若程序中定义了局部变量与全局变量,则(11)。

A.在函数内只能访问局部变量,而不能访问全局变量

B.局部变量与全局变量的名字不得相同

C.若一个函数被多次调用,则其定义的局部变量必定分配同一个存储单元

D.函数中定义的局部变量与全局变量同名时,在函数内引用的是局部变量


正确答案:D
本题考查程序语言的基本概念。在高级语言程序中,变量的作用域(引用变量的代码范围)可能是全局的或者是局部的。对于全局变量,其作用域是整个程序(或文件),因此在函数内可以访问全局变量,而局部变量的作用域为声明(定义)该变量的函数(过程,子程序)。一般语言都规定,若全局变量和局部变量的名称相同,则在局部变量的作用域范围内,引用的是局部变量(即最近嵌套原则)。程序运行过程中,每次调用一个函数时,都在栈区为该函数的运行创建活动记录(主要包括函数运行时需要的数据和控制信息),函数运行结束后则释放为其分配的活动记录。因此,函数多次运行时,其定义的局部变量不一定分配同一个存储单元。

第10题:

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

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

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

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

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


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

更多相关问题