Java认证考试

声明局部变量时,局部变量将被赋一个默认的初值

题目

声明局部变量时,局部变量将被赋一个默认的初值

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

第1题:

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

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

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

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

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


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

第2题:

(11)声明一个变量为局部变量应该用 A.Global B.Private C.Static D.Public


正确答案:C
【解析】定义变量的关键字有:Global、Public、Private、Dim和Static。其中,Global和Public用来声明全局变量,Private和Dim可用来声明模块变量,Dim和Static可用来声明局部变量。

第3题:

对局部变量不正确描述()

A.在不同块内可以使用相同的变量名而不会混淆

B.局部变量在任何一个函数内有效

C.局部变量的初值每调用一次赋一次

D.用auto说明的变量为局部变量


参考答案:B

第4题:

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

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

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

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

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

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


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

第5题:

声明一个变量为局部变量应该刚( )。

A.Global

B.Private

C.Static

D.Public


正确答案:B

第6题:

以下关于局部变量的叙述中错误的是( )。

A.在过程中用Dim语句或Static语句声明的变量是局部变量

B.局部变量的作用域是它所在的过程

C.在过程中用Static语句声明的变量是静态局部变量

D.过程执行完毕,该过程中用Dim或Static语句声明的变量即被释放


正确答案:D
解析:static用于定义静态变量,dim定义的是动态变量。静态变量的生存期是程序的整个运行时间,而动态变量的生存期是所在的过程结束,即过程结束该动态变量即被销毁。而变量的可见性是指变量在程序的那些部分可供调用,过程中定义的变量在此过程结束后销毁。故本题选D。

第7题:

用Dim声明的局部变量是动态动态变量,其值在过程执行完后仍保留,而用Stalic声明的局部变量是静态变量,其值在程序执行完后会消失。()


参考答案:错误

第8题:

以下叙述中正确的是

A.局部变量说明为static存储类,其生存期将得到延长

B.全局变量说明为static存储类,其作用域将被扩大

C.任何存储类的变量在未赋初值时,其值都是不确定的

D.形参可以使用的存储类说明符与局部变量完全相同


正确答案:A
解析:静态局部变量在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久性的存储单元。由此可知静态局部变量的生存期将一直延长到程序运行结束。而全局变量的只有一种静态存储类别,故全局变量说明为static存储类,和没有说明为static存储类其生存期都是一直延长到程序运行结束;未赋初值的auto型变量的初值是随机的,未赋初值的static型变量的初值是0。

第9题:

下列说法中错误的是

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

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

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

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


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

第10题:

C语言局部变量问题?

局部变量按说当再次执行时是可以回初值的,可是我在C51编译器下试验,却发现如果不在定义时不给它赋初值,哪它当再次执行时是不会回初值的,这是怎么回事?


您好!
Java中的类的static变量相当于C语言里的全局(extern或者static)变量,放在全局数据区,被操作系统初始化成全0;而因为对象都由new操作生成,所以对象的成员变量放置在(相当于)C中由calloc分配的堆空间中,calloc将其全部初始化为0。

而局部变量放置在栈中,栈空间是经常被复用的,比如先调用A函数:A()等A执行完了之后会释放所用的栈空间,然后调用B函数:B(),B函数占用的栈空间就会是原来A占用的那片空间,而那片空间是A函数读写了很多次的。如果想要局部变量默认初始化为0的话,就必须要么一个函数申请栈空间后就将其memset成0,要么函数释放栈空间时将其memset成0,无论是什么情况,都会增加不必要的开销。所以干脆就放任局部变量的值未定义了

局部变量通常你自己都会给它去赋值的,因为你的代码告诉你,你需要去给它赋值才能达到你的要求;

成员变量如果你一开始定义了,你怎么给它赋值?我想也没多少人能一开始就能肯定自己用到什么值吧。
所以java就只对成员变量默认初始化了,
在局部变量里,你定义了量就一定要用到它(那么赋值就少不了),如果你忘了赋值,那么就出错了,方便提醒你,而且你写的程序大了,局部变量多了,找问题就有点麻烦了。
而对于这个问题,成员变量就不会有多少了
int f()
{
    int a = 5;
    return 1;
}
当执行一次结束后,变量a也就释放了,消失了,当再次执行时声明的a已经不是上次的a了,已经是再次声明的一个变量了,如果在换成这个static int a = 5;那么执行结束后,a不会释放,下次执行时还是这个a,且值是保存的,而不是重新声明一个.

更多相关问题