全国计算机二级考试Java模拟试题答案及解析

一、选择题

全国计算机二级考试Java模拟试题答案及解析

1.D。【解析】数据的存储结构是指数据结构(数据的逻辑结构)在计算机中的表示,又称物理结构。数据的存储结构主要有两种:顺序存储结构和链式存储结构。

2.D。【解析】冒泡排序法首先将第一个记录的关键字与第二个记录的关键字进行比较,若逆序则交换,然后比较第二个与第三个,以此类推,直至第n-1个与第n个记录的关键字进行比较。在最坏情况下,冒泡排序中,若初始序列为”逆序”序列,需要比较n(n-1)/2次。快速排序是对通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,最终达到整个记录有序。最坏情况下比较次数为n(n-1)/2。

3.C。【解析】栈是只允许在表的一端进行插入和删除的操作,队列是允许在表的一端进行插入,另一端进行删除的操作。

4.C。【解析】二叉树的中序遍历是指先访问左子树。再访问树结点,最后访问右子树;当访问下级左右子树时,也对照此原则。所以C选项正确。

5.A。【解析】”清晰第一,效率第二”,在考虑到程序的执行效率的同时,一定要保证程序清晰、可读;对符号名的命名,除了要符合语法要求外,还要具有一定的含义;程序的注释可以帮助程序员理解程序,不是可有可无的。

6.C。【解析】面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。

7.D。【解析】耦合性与内聚性是模块独立性的两个定性标准,一般的程序设计都会尽量做到高内聚、低耦合,有利于提高模块的独立性。

8.D。【解析】数据独立性是数据库系统的一个最重要的目标之一,它使数据能独立于应用程序。数据独立性包括数据的物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。即数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结构改变时,用户程序也可以不变。

9.C。【解析】软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。

10.A。【解析】关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。

11.B。【解析】顺序存储结构的结点只有自身信息域,没有连接信息的域,因此存储密度大,存储空间利用率高。链式存储结构除了自身域还包括指针域,因此比顺序存储结构的存储密度小,存储空间利用率低。

12.A。【解析】A[8][5]元素存储的位置在第9行第6列,所以A[8][5]之前存储的个数应为8×10+5=85,这些元素占用的空间为85×2字节=170字节,所以A[8][5]的存储位置为400+170=570。

13.C。【解析】操作系统是计算机系统中的一个系统软件,它能有效地组织和管理计算机系统中的各种资源,并且为用户提供良好的界面。没有任何软件支持的计算机称为裸机,而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机,而操作系统位于各种软件的最底层。

14.C。【解析】计算机系统中有限的资源与众多请求分配资源的进程间存在矛盾。当若干进程需求资源的总数大于系统所能提供的资源数时,进程间就会出现抢占资源的现象,如果对进程抢占的资源管理或分配不当就会引起死锁。

15.B。【解析】进程同步是指进程之间一种直接的协同工作关系,这些进程相互合作,共同完成一项任务。进程间的直接相互作用构成进程的同步。

16.A。【解析】本题考查Java语言的特点。Java语言是面向对象的,将客观世界看成由各种对象组成的;机器语言是计算机实际处理时使用的语言,把客观世界都看成由0和1组成;过去的高级语言大多数是面向过程的,比如C语言等,它们是通过数据结构与算法来描述客观世界;汇编语言属于低级语言。考生应注意区分各种语言的区别。本题正确答案为选项A。

17.B。【解析】本题考查Java中的布局管理器。Pane和Applet默认的布局管理器是FlowLayout,构件在容器中放置规律是从上到下、从左到右进行放置;BorderLayout是Window、Frame和Dialog的默认布局管理器,在BorderLayout布局管理器中构件分成5个区域North、South、East、West和Center,每个区域只能放置一个构件。考生应注意区分各个布局管理器的区别和联系,以及各个布局管理器的特点。

18.B。【解析】本题考查Java语言的虚拟机。Java本身的编译器用Java语言编写,运行系统的虚拟机用C语言实现。Java语言的执行模式是半编译和半解释型,程序首先由编译器转换为标准字节代码,然后由Java虚拟机去解释执行,字节代码实际上可以看作是虚拟机的机器代码。考生应当理解Java语言的实现机制,这属于考试重点。正确答案为选项B。

19.B。【解析】本题考查Java的安全性特点。面向网络、分布式的Java语言,对非法入侵的防范是非常重要的,Java语言提供充分的安全保障,在运行程序时,有严格的访问权限检查。对字节代码执行前要检查,不允许使用指针,可防止对内存的非法入侵,它是目前安全性最佳的语言。但是Java并不是对程序执行前检查,而是对字节代码进行检查,Java编写好的程序首先由编译器转换为标准字节代码,然后由Java虚拟机去解释执行。

20.B。【解析】本题考查考生对Java语言概念的理解。属于考试重点内容,考生应注意理解这些基本概念。考生应该明确,Java语言中可以有package语句,用来指定源文件存入所指定的包中,只能有0或1个,所以选项A说法错误;可以有0或多个以上import语句,但必须在所有类定义之前引入标准类,所以选项B说法正确;源文件中最多只能有一个public类,其他类的个数不限,所以选项C和选项D说法错误。

21.D。【解析】本题考查类的声明。选项A错误,abstract用来声明抽象类,final用来声明最终类。这两个修饰词不能同时出现在类声明中;选项B错误,缺少class关键字;选项C错误,类不能声明为protected和private属性,且不以”;”结尾,也缺少class关键字;选项D正确,声明了一个可以公有继承的抽象类。

22.C。【解析】本题考查考生对Java语言中的类和接口的理解。包提供了构成Java语言、Java虚拟机核心的类和接口。例如,类object、类String和类Thread等。对任何一个Java程序来说,这些类几乎都是必不可少的。还包含了许多由Java虚拟机发出的异常,这些异常也是”类”的一种。另外,包还包含一些用于访问系统资源的类,如ClassLoader等。包具有极其重要的作用,在程序开头可以不必明文编写装载它的代码。

23.C。【解析】本题考查JDK目录结构。bin目录下有编译器、解释器和各种工具,如服务器工具、IDLpackage工具和jdb等。jre目录是Java程序运行环境的根目录,它下面有bin子目录,包括平台所用工具和库的可执行文件和DLL文件;lib子目录包括java运行环境的代码库。lib目录下都是库文件。demo目录下有各种演示例子。include目录下是Win32子目录,都是本地方法文件,选项C错误。

24.A。【解析】本题是考查对文件输入、输出流的理解。通过类File的实例或者一个表示文件名称的字符串可以生成文件输入/输出流,在流对象生成的同时,文件被打开,然后就可以进行文件读/写,选项B说法错误。对于InputStream和OutputStream来说,它们的实例都是顺序访问流,即只能进行顺序的读/写,选项C说法错误。当从标准输入流读取数据时,从键盘输入的数据被缓冲,按键时,程序才会得到输入数据,选项D说法错误。

25.D。【解析】本题考查类的声明。选项A中m没有被声明过,不能使用;选项B中虽然b是类Teacher的public成员变量,但在静态方法中,不能使用类中的非静态成员;选项C中a是类Person的private成员,在类外不能直接引用;选项D中change(intm)方法是pubtic方法,并且返回一个int型值,可以通过类的实例变量P引用并赋值给一个int型变量。

26.A。【解析】本题考查Java类实现ZIP数据压缩方式。ZIP压缩文件结构:一个ZIP文件由多个Entry组成,每个Entry有一个唯一的名称,Entry的数据项存储压缩数据。ZiplnputStream实现了ZIP压缩文件的读输入流,支持压缩和非压缩Entry.题目程序中FileInputStreallD_fis=new FilelnputStream("test/")构造了一个文件输入 流,ZiplnputStream zis=new ZiplnputStream(fis)语句利用文件输入流fis构造了一个ZIP输入流,extEntry()语句返回ZIP文件中的下一个Entry,并将输出流定位在此entry数据项的起始位置.

27.B。【解析】本题考查容器的嵌套。将一个容器Panel1放到容器framel中的方法和在容器上添加部件是一样的,使用add()方法即可。

28.C。【解析】本题考查Java中的运算符。首先要清楚程序里面涉及的运算符的含义。"<<"是按位左移运算符,”&”是按位与运算符,"|"是按位或运算符,"^"是按位异或运算符。题目中整型变量n=7相当于二进制中的111,n<<=3语句执行后,n值为lll000。相当于十进制的56,而语句n=n&n+1|n+2^n+3执行后,n值为57,n>>=2语句执行恬,n的值为14,所以选项C正确。

29.A。【解析】本题考查文件操作。seek(long pos)是随机文件记录的查找,满足题意。lengh()方法是求随机文件字节长度的方法,不符合题意;Java中没有find()方法;skipBytes(int n)方法是使随机文件访问跳过指定字节,不符合题意。

30.B。【解析】本题考查压缩文件流的概念。当输入一个ZIP文件时要将ZIP文件作为FilelnputStream构造方法的参数,所以选项B正确。而FilelnputStream对象又作为ZiplnputStream构造方法的参数出现。这里的ZipInputStream对象在将压缩文件内的输入项作为字符文本读出时即作为InputStreamReader的构造方法参数出现。最后,InputStreamReader对象作为BufferedReader的构造方法的参数,并且使用readLine()方法将压缩文件输入项作为文本读出。