国家二级(JAVA)笔试模拟试卷47 (题后含答案及解析)
题型有:1. 选择题 2. 填空题
选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1. 下列各数据结构中不属于线性结构的是( )。
A.线形表
B.栈与队列
C.线性链表
D.二叉树
正确答案:D
解析:一个线性结构需要满足以下两个条件:一是有且只有一个根节点;二是每个节点最多
有一个前件,也最多有一个后件。选项中的线形表、栈与队列、线性链表都满足这两个条件,所以它们都是线性结构,而二叉树虽然只有一个根节点,但它的每个节点可以有两个子树,不满足线性结构的每个节点最多有一个前件,也最多有一个后件这一条件。所以它不是线性结构。
2. 以下各项特点中,属于线性表的顺序存储结构的是( )。
A.线性表中所有元素所占的存储空间是不连续的
B.线性表的数据元素在存储空间中是随便存放的
C.线性表中所有元素所占的存储空间是连续的
D.前后件两个元素在存储空间是随便存放的
正确答案:C
解析:线性表的顺序存储结构要求;线性表中所有元素所占的存储空间是连续的,并且线性表的数据元素在存储空间中是按逻辑顺序依次存放的。因此,选项A、B是错误的。在线
性表的顺序存储结构中,前后件两个元素在存储空间中是紧邻的,因此,选项D也是错误的,
3. 下列关于栈的叙述中不正确的是( )。
A.在栈中能插入数据
B.在栈中能删除数据
C.栈是先进先出的线性表
D.栈是先进后出的线性表
正确答案:C
解析:栈是一种线性表,只不过是一种特殊的线性表。在这种特殊的线性表中,插入和删除运算都只在线性表的一端进行。即在这种线性表中,一端是封闭的,不允许进行插入与删除元素;一端是开口的,允许进行插入与删除元素。选项A、B是正确的。栈是一种先进后出的线性表。
4. 下列关于链式存储的叙述中正确的是( )。
A.链式存储结构的空间不可以是不连续的
B.数据节点的存储顺序与数据元素之间的逻辑关系必须一致
C.链式存储方式只可用于线性结构
D.链式存储也可用于非线性结构
正确答案:D
解析:链式存储结构不同于顺序存储结构,它的存储空间可以是不连续的,并且数据节点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系是由指针域来确定的。链式存储方式可用于线性结构,也可用于非线性结构,在表示复杂的非线性结构时,指针域的个数要多一些。
5. 对于输入输出,在设计和编程时都应该考虑的原则是( )。
A.对部分输入数据检验其合法性
B.不允许默认值
C.输入一批数据时,最好使用输入结束标志
D.输入数据时,不允许使用自由格式
正确答案:C
解析:输入输出信息是用户直接关心的,输入输出方式和格式应尽可能方便用户的使用,因为系统能否被用户接受,往往取决于输入输出的风格。好的输入输出风格对所有输入数据检其合法性,允许默认值,并且在输入数据时,允许使用自由格式。
6. 下面内容不属于软件危机的是( )。
A.软件质量难以保证
B.软件的成本不断提高
C.软件需求增长缓慢
D.软件不可维护或维护程度非常低
正确答案:C
解析:所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。选项A、B、D都属于软件危机的一种表现,软件危机还包括软件需求的增长得不到满足、软件开发成本和进度无法控制和软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
7. 数据字典(DD) 是定义以下哪种系统描述工具中的数据的工具? ( )
A.数据流程图
B.系统流程图
C.程序流程图
D.软件结构图
正确答案:A
解析:本题考查数据字典的作用,数据字典是对数据流程图中出现的被命名的图形元素的确切解释。
8. 一个关系数据库文件中的各条记录( )。
A.前后顺序不能任意颠倒,一定要按照输入的顺序排列
B.前后顺序可以任意颠倒,不影响库中数据的关系
C.前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同
D.前后顺序不能任意颠倒,一定要按照关键字段值的顺序排列
正确答案:B
解析:关系数据库的逻辑性强而物理性弱,因此关系数据库中的各条记录前后顺序可以任意颠倒,不影响库中数据的关系。
9. 对排序文件的初始状态不作任何要求的排序方法有( )。
A.直接插入和快速排序
B.直接插入和归并排序
C.归并和快速排序
D.归并和直接选择排序
正确答案:A
解析:只有归并排序要求待排序文件“部分排序”(把待排序的文件分成若干个子文件,每个子文件内的记录是已排序的)。
10. 概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是( )。
A.把软件划分成模块
B.确定模块之间的调用关系
C.确定各个模块的功能
D.设计每个模块的伪代码
正确答案:D
解析:概要设计是数据库的总体设计,其目的就是要根据需求规格说明书把软件按照功能划分为多个模块,然后确定每个模块要实现的功能,最后确定模块之间的调用关系。而设计每个模块的伪代码则属于详细设计。所以只有最后一个不属于概要设计范畴。
11. Java程序的执行方式是( )。
A.即时编译方式和非解释执行方式
B.非即时编译方式和非解释执行方式
C.非即时编译方式和解释执行方式
D.即时编译方式和解释执行方式
正确答案:D
解析:该题考查考生对Java程序的执行方式的掌握。Java字节码的执行有两种方式:即时编译方式和解释执行方式。
12. 下列选项中属于Java核心包的是( )。
A.javax.swing
B.javax.naming
C.javax.sound
D.java.io
正确答案:D
解析:Java类库中主要包括核心iava包、javax扩展包和org扩展包。此题中javax.swing、javax.naming、javax.sound都为javax扩展包,只有java.io为核心包。
13. 当从现存类中派生出新类时,不能在派生类中做的是( );
A.增加新的成员变量
B.增加新的成员方法
C.重新定义已有的成员方法
D.改变父类的数据成员或成员方法
正确答案:D
解析:一个类可以继承其父类的所有成员变量和方法,还可以重新定义父类的成员方法,但不能改变父类的数据成员。故本题的答案是D。
14. 有如下程序 public class Test { int a,b; Test( ) {a=100;b=200; } Test(int x,int y) {a = x;b = y; } public static void main(String args[]) {Test Obj1=new Test(12,45);System.out.println(“a = “Obj1.a+” b= “+Obj1.B) ;Test Obj1=new Test( );System.out.println(“a = “数组定义时初始化Obj1.a+” b= “+Obj1.B) ; } } 程序的运行结果为( )。
A.a=100 b=200 a=12 b=45
B.a=12 b=45 a=100 b=200
C.a=12 b=200 a=100 b=45
D.a=100 b=45 a=12 b=200
正确答案:B
解析:本题考查构造方法及构造方法重载。在上面的程序中,类Test类有两个构造方法,即使用了方法重载技术。不带参数的构造方法对类的实例变量进行特定数值的赋值,而带参数的构造方法根据参数对类的实例变量进行赋值。
15. 下列关于Java变量作用域的说法中,不正确的是( )。
A.在Java程序中要使用一个变量,必须先对其进行声明
B.变量声明语句可以在程序的任何地方,只要在变量使用之前即可
C.变量不可以在其作用域之外使用
D.局部变量在使用之前可以不初始化,系统使用默认的初始值
正确答案:D
解析:局部变量在使用之前必须初始化,否则编译错误,类的成员变量则不一定要在使用之前初始化,系统赋予其默认的初始值。
16. Java的字符类型采用的是Unicode编码方案,每个Unicode码占用( )个字节。
A.1
B.2
C.3
D.4
正确答案:B
解析:本题具体考查Java语言对字符类型编码方案的理解。与C++语言不同,Java的字符类型采用的是Unicode编码方案,而Unicode编码方案每个字符占用2个字节。故本题答案是B。
17. 下面哪个语句会产生编译错误? ( )
A.float F=4096.0F;
B.double D=4096.0;
C.byte B=4096;
D.char C=4096;
正确答案:C
解析:该题考查对基本数据类型的定义以及基本数据类型的取值范围的掌握。选项A正确,Java语言默认的实型数的形式是double类型的,要把它赋给float类型的变量,必须在实型数后面加上f或F字母;选项B是正确的;选项C是错误的,4069已经超出了byte类型的所能
容许的范围-128~127;选项D是正确的,因为在Jav与运算的数据进行按位求异或运算,如果两个操作数对应位相同,则该位的结果为0,否则结果为1。即:1=0, 1=1,0=1,0=0。在本题中,67的二进制数是01000011,3的二进制数是 00000011,它们俩进行异或运算后的结果为 01000000,其十进制数为64。故本题答案是B。
19. 在Java中,存放字符串变量的对象属于( )类对象。
A.Character
B.String
C.StringBuffer
D.Vector
正确答案:C
解析:本题考查对字符串对象的理解。在生成字符串的两个类String和StringBuffer中,前者生成的字符串是不变字符串,不能直接对它的内容进行修改,而后者生成的字符串是可
变的,可以对其内容进行修改。而Character类是对字符类型的类封装。Vector类是Java语言提供给用户的一种通用类,是一种链表结构的类型。故本题答案是C。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论