1、计算机二级 JAVA 分类模拟题 204 及答案解析(总分:58.80,做题时间:90 分钟)一、选择题(总题数:35,分数:58.80)1.下列语句中,可以作为无限循环语句的是_。(分数:1.00)A.for(;)B.for(int i=0;i10000;T+)C.while(false)D.dowhile(false)2.下列叙述中正确的是(分数:1.00)A.线性链表中的各元素在存储空间中的位置必须是连续的B.线性链表中的表头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定
2、是连续的,且各元素的存储顺序也是任意的3.在对象流中,对象的传送首先要将所传送的对象串行化,也就是实现 Serializable 接口。下列代码中必须实现 Serializable 接口的类是_。 ObjectInput in= new ObjectInputStream(new FileInputStream(“employee. dat“); EmployeenewStaff=(Employee1in. readobject();(分数:0.80)A.EmployeeB.InputC.StaffD.Stream4.将 E-R 图转换为关系模式时,实体和联系都可以表示为_。(分数:1.80)
3、A.属性B键C.关系D域5.下列属于黑盒测试方法的是_。(分数:1.00)A.语句覆盖B.逻辑覆盖C.边界值分析D.路径分析6.当一个应用程序的所有非守护线程终止运行时,但仍然有守护线程在运行,应用程序将 _ 。(分数:2.00)A.运行B.阻塞C.终止D.休眠7.下列叙述中,正确的是_。(分数:2.00)A.线程与进程在概念上是不相关的B.一个线程可包含多个进程C.一个进程可包含多个线程D.Java 中的线程没有优先级8.下列代码的下划线处应填入的是_。 import java.io.*; public class Chouti public static void main(String
4、args)throws IOException InputStreamReader ir; BufferedReader in; ir=new_(System.in); in=new BufferedReader(ir); System.out.println(“请输入:“); String str=in.readLine(); System.out.println(str); (分数:1.00)A.BufferedReaderB.InputStreamReaderC.InputSteamD.OutputStream9.有如下程序 public class Test int a,b; Test
5、() 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) ; 程序的运行结果为_。(分数:1.00)A.a=100 b=200a=12 b=45B.a=12 b=45a=100 b=200C.a=
6、12 b=200a=100 b=45D.a=100 b=45a=12 b=20010.在 switch(expression)语句中,expression 的数据类型不能是 _ 。(分数:2.00)A.doubleB.charC.byteD.short11.阅读下面代码 public class public static void main(String args) double d=12.3; Decrementer dec=new Decrementer(); dec.decrement(d); System.out.println(d); class Decrementer publi
7、c void decrement(double decMe) decMe=decMe-1.0; 代码执行后输出的结果是_。(分数:2.00)A.12.3B.11.3C.13.3D.-1.012.关于 Applet 执行的操作,下面说法正确的是_。(分数:1.80)A.在运行时调用其他程序B.可以进行文件读/写操作C.不能装载动态连接库和调用任何本地方法D.试图打开一个 socket 进行网络通信,但是所连接的主机并不是提供 Applet 的主机13.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是_。(分数:2.00)A.概要设计B.详细设计C.可行性分析D.需求分析
8、14.如果在一个关系中存在多个属性(或属性组)都能用来唯一标识关系的元组,且其任何一个子集都不具有这一特性。这些属性(或属性组)都被称为关系的_。(分数:2.00)A.连接码B.主码C.外码D.候选码15.以下程序运行后输出的结果是_。 #include stdio.h main() int i; for(i=1;i=5;i+) switch (1%5) case 0:printf“*“);break; case 1:printf(“#“);break; default:printf(“/n“); case 2:printf(“); (分数:2.00)A.#*B.#*C.#D.#16.下列排序
9、方法中,最坏情况下比较次数最少的是(分数:2.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序17.对于已经被定义过的可能抛出异常的语句,在编译时_。(分数:2.00)A.必须使用 try/cstch 语句处理异常B.如果程序错误,必须使用 try/catch 语句处理异常C.不使用 try/catch 语句会出现编译错误D.不使用 try/catch 语句不会出现编译错误18.使新创建的线程参与运行调度的方法是_。(分数:1.80)A.run()B.start()C.init()D.resume()19._是有关国际组织的标准。(分数:1.00)A.APIB.Org 包C.扩展包
10、 JavaxD.Java 核心包20.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指_。(分数:2.00)A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程21.Applet 的运行过程要经历 4 个步骤,下面不是其运行步骤的是(分数:1.00)A.浏览器加载指定 URL 中的 HTML 文件B.浏览器显示 HTML 文件C.浏览器加载 HTML 文件中指定的 Applet 类D.浏览器中的 Java 运行环境运行该 Applet22.数据模型的三要素是 _ 。(分数:2.00)A.外模式、概念模式和内模式B.关系模型、网状模型、层次模型C
11、.实体、属性和联系D.数据结构、数据操作和数据约束条件23.算法的空间复杂度是指_。(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间24.下列关于队列的叙述中,正确的是_。(分数:2.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表25.下列程序片段中,能通过编译的是_。(分数:1.80)A.public abstract class Animalpublic void speak();B.public abstract class Animalpublic voi
12、d speak();C.public class Animalpubilc abstract void speak();D.public abstract class Animalpubilc abstract void speak();26.在 Java 中,可实现多重继承效果的机制是_。(分数:1.00)A.内部类B.重载C.抽象类D.接口27.如果线程正处于运行状态,则它可能到达的下一个状态是_。(分数:1.00)A.只有终止状态B.只有阻塞状态和终止状态C.可运行状态,阻塞状态,终止状态D.其他所有状态28.对下列二叉树讲行中序遍历的结果是_。 (分数:1.80)A.DBXEAYFZC
13、B.XYZDEFBCAC.ZYXFEDCBAD.YZCFAXEDB29.下列程序执行后,输出的结果是_。 public class Test public static void main(String args) int a=100; if(a100|a100) System.out.println(“a100“); else System.out.println(“a=100“); (分数:2.00)A.a=100B.a100C.a100D.a10030.下列说法中,错误的一项是 _ 。(分数:2.00)A.线程是程序中的一个执行流B.多线程是程序中的多个执行流C.线程是进程的一次动态执行
14、过程D.进程是程序的一次动态执行过程31.下面程序的输出结果是 _ 。 main() char *alpha7= “ABCD“,“EFGH“,“IJKL“,“MNOP“,“QRST“,“UVWX“,“YZ“; char *p; int I: p=alpha; for(i=0;i4;i+) printf(“%c“,*(pi); printf(“/n“); (分数:2.00)A.AEIMB.BFJNC.ABCDD.DHLP32.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。(分数:2.00)A.DB 包括 DBS 和 DBMSB.DBMS 包括 DB 和 DBSC.D
15、BS 包括 DB 和 DBMSD.没有任何关系33.下列关于栈的叙述中,正确的是_。(分数:2.00)A.栈底元素一定是最后入栈的元素B.栈顶元素一定是最先入栈的元素C.栈操作遵循先进后出的原则D.以上三种说法都不对34.向容器添加新构件的方法是 _ 。(分数:2.00)A.add()B.insert()C.hill()D.set()35.不正确的指针概念是 _ 。(分数:2.00)A.一个指针变量只能指向同一类型的变量B.一个变量的地址称为该变量的指针C.只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中D.指针变量可以赋任意整数,但不能赋浮点数计算机二级 JAVA 分类模拟题 2
16、04 答案解析(总分:58.80,做题时间:90 分钟)一、选择题(总题数:35,分数:58.80)1.下列语句中,可以作为无限循环语句的是_。(分数:1.00)A.for(;) B.for(int i=0;i10000;T+)C.while(false)D.dowhile(false)解析:解析 本题中的 while 循环和 do-while 循环中当布尔表达式的值为 true 时,执行循环体中的语句。若某次判断其值为 false,则结束循环。选项 B 的 for 循环中当 i 的值小于 10000,则执行循环语句,当 i 的值大于 10000 时结束循环。只有选项 A 的 for 循环语句
17、可以作为无限循环语句。因此,本题的正确答案是 A。2.下列叙述中正确的是(分数:1.00)A.线性链表中的各元素在存储空间中的位置必须是连续的B.线性链表中的表头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 解析:解析 在线性表的链式存储结构中,各数据结点的存储序号不连续,且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。所以,选项 D 正确。3.在对象流中,对象的传送首
18、先要将所传送的对象串行化,也就是实现 Serializable 接口。下列代码中必须实现 Serializable 接口的类是_。 ObjectInput in= new ObjectInputStream(new FileInputStream(“employee. dat“); EmployeenewStaff=(Employee1in. readobject();(分数:0.80)A.Employee B.InputC.StaffD.Stream解析:解析 一个对象能够实现序列化的前提是实现 Serializable 接口,Serializable 接口没有方法,更像是一个标记,有了这个
19、标记的 Class 才能被序列化机制处理。4.将 E-R 图转换为关系模式时,实体和联系都可以表示为_。(分数:1.80)A.属性B键C.关系 D域解析:解析 将 E-R 图转换为关系模式时,实体和联系都可以表示为关系。5.下列属于黑盒测试方法的是_。(分数:1.00)A.语句覆盖B.逻辑覆盖C.边界值分析 D.路径分析解析:解析 黑盒测试用于对软件的功能进行测试和验证,不须考虑程序内部的逻辑结构。黑盒测试的方法主要包括:等价类划分法、边界值分析法、错误推测法、因果图等。语句覆盖、逻辑覆盖、路径分析均是白盒测试的方法。6.当一个应用程序的所有非守护线程终止运行时,但仍然有守护线程在运行,应用程
20、序将 _ 。(分数:2.00)A.运行B.阻塞C.终止 D.休眠解析:7.下列叙述中,正确的是_。(分数:2.00)A.线程与进程在概念上是不相关的B.一个线程可包含多个进程C.一个进程可包含多个线程 D.Java 中的线程没有优先级解析:解析 线程和进程在概念上是相关的,一个进程可包含多个线程,Java 中的线程是具有优先级的。8.下列代码的下划线处应填入的是_。 import java.io.*; public class Chouti public static void main(String args)throws IOException InputStreamReader ir;
21、BufferedReader in; ir=new_(System.in); in=new BufferedReader(ir); System.out.println(“请输入:“); String str=in.readLine(); System.out.println(str); (分数:1.00)A.BufferedReaderB.InputStreamReader C.InputSteamD.OutputStream解析:解析 InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定
22、,或者可以接受平台默认的字符集。每次调用InptnstreamReader 中的一个 read()方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流渎取更多的字节,使其超过满足当前读取操作所需的字节。为了达到最高效率,可要考虑在。BufferedReader 内包装 InputStreamReader。由此可知,此处是新建了一个InputStreamReader 的对象,所以正确答案是 B。9.有如下程序 public class Test int a,b; Test() a=100; b=200; Test(int x,int y) a = x; b
23、= 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) ; 程序的运行结果为_。(分数:1.00)A.a=100 b=200a=12 b=45B.a=12 b=45a=100 b=200 C.a=12 b=200a=100 b=45D.a=100 b=45a=12 b=200解析:
24、解析 本题考查构造方法及构造方法重载。在上面的程序中,类 Test 类有两个构造方法,即使用了方法重载技术。不带参数的构造方法对类的实例变量进行特定数值的赋值,而带参数的构造方法根据参数对类的实例变量进行赋值。10.在 switch(expression)语句中,expression 的数据类型不能是 _ 。(分数:2.00)A.double B.charC.byteD.short解析:11.阅读下面代码 public class public static void main(String args) double d=12.3; Decrementer dec=new Decremente
25、r(); dec.decrement(d); System.out.println(d); class Decrementer public void decrement(double decMe) decMe=decMe-1.0; 代码执行后输出的结果是_。(分数:2.00)A.12.3 B.11.3C.13.3D.-1.0解析:解析 Java 中的方法的参数传递是传值调用,而不是地址调用,因此方法不能改变 d 的值,但是改变了参数变量 decMe 的值。12.关于 Applet 执行的操作,下面说法正确的是_。(分数:1.80)A.在运行时调用其他程序B.可以进行文件读/写操作C.不能装载
26、动态连接库和调用任何本地方法 D.试图打开一个 socket 进行网络通信,但是所连接的主机并不是提供 Applet 的主机解析:解析 本题考查 Applet 的概念。Java 虚拟机为 Applet 提供能够良好运行的沙箱,一旦它们试图离开沙箱则会被禁止。由于 Applet 是通过网络传递的,这就不可避免地使人想到会发生安全问题。例如,有人编写恶意程序通过小应用程序读取用户密码并散播到网络上,这将会是一件非常可怕的事情。所以,必须对小应用程序进行限制。浏览器禁止 Applet 运行任何本地可运行程序,选项 A 错误。禁止加载本地库或方法,Applet 只能使用自身的代码或 Applet 浏览
27、器提供的 JavaAPI,不允许装载动态连接库和调用任何本地方法,选项 C 正确。禁止读/写本地计算机的文件系统,选项 B 错误。禁止与没有提供 APPlet 的任何主机建立网络连接,如果 Applet 试图打开一个 socket 进行网络通信,所连接的主机必须是提供Applet 的主机,选项 D 错误。13.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是_。(分数:2.00)A.概要设计B.详细设计C.可行性分析D.需求分析 解析:解析 在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做
28、什么的问题。本题的正确答案为 D。14.如果在一个关系中存在多个属性(或属性组)都能用来唯一标识关系的元组,且其任何一个子集都不具有这一特性。这些属性(或属性组)都被称为关系的_。(分数:2.00)A.连接码B.主码C.外码D.候选码 解析:解析 在关系中凡能唯一标识元组中最小属性集的称为该关系的单键或码。二维表中可能有若干个键,它们称为该表的候选码或候选键。从二维表的所有候选键中选取一个作为用户使用的键称为主键或主码。15.以下程序运行后输出的结果是_。 #include stdio.h main() int i; for(i=1;i=5;i+) switch (1%5) case 0:pr
29、intf“*“);break; case 1:printf(“#“);break; default:printf(“/n“); case 2:printf(“); (分数:2.00)A.#*B.#*C.# D.#解析:16.下列排序方法中,最坏情况下比较次数最少的是(分数:2.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序 解析:解析 冒泡排序、简单选择排序和直接插入排序在最坏的情况下的比较次数都是 n(n-1)/2,堆排序在最坏的情况下比较次数最少,是 nlog 2 n。17.对于已经被定义过的可能抛出异常的语句,在编译时_。(分数:2.00)A.必须使用 try/cstch
30、语句处理异常B.如果程序错误,必须使用 try/catch 语句处理异常 C.不使用 try/catch 语句会出现编译错误D.不使用 try/catch 语句不会出现编译错误解析:解析 try 和 catch 语句在捕获异常时使用。当此语句执行时,解释器把可以产生异常的代码段形成一个“警戒区”。此“警戒区”由 try 引导,“警戒区”后面是 catch 从句,其后可接多个 catch 语句。try 和 catch 语句的应用并不能确保程序出现或不出现编译错误,而只能是有效定位错误,所以本题描述正确的是 B 选项。18.使新创建的线程参与运行调度的方法是_。(分数:1.80)A.run()B.
31、start() C.init()D.resume()解析:解析 start()方法使线程参与运行调度。19._是有关国际组织的标准。(分数:1.00)A.APIB.Org 包 C.扩展包 JavaxD.Java 核心包解析:20.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指_。(分数:2.00)A.模块间的关系B.系统结构部件转换成软件的过程描述 C.软件层次结构D.软件开发过程解析:21.Applet 的运行过程要经历 4 个步骤,下面不是其运行步骤的是(分数:1.00)A.浏览器加载指定 URL 中的 HTML 文件B.浏览器显示 HTML 文件 C.浏览器加载 HT
32、ML 文件中指定的 Applet 类D.浏览器中的 Java 运行环境运行该 Applet解析:22.数据模型的三要素是 _ 。(分数:2.00)A.外模式、概念模式和内模式B.关系模型、网状模型、层次模型C.实体、属性和联系D.数据结构、数据操作和数据约束条件 解析:23.算法的空间复杂度是指_。(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间 解析:24.下列关于队列的叙述中,正确的是_。(分数:2.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表 D.队列是先进后出的线性表解析:解析
33、队列是指允许在一端进行插入而在另一端进行删除的线性表。队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则。在队列中,队尾指针与队首指针共同反映队列中元素动态变化的情况。25.下列程序片段中,能通过编译的是_。(分数:1.80)A.public abstract class Animalpublic void speak(); B.public abstract class Animalpublic void speak();C.public class Animalpubilc abstract void speak();D.public abstract class
34、Animalpubilc abstract void speak();解析:解析 Java 中一个类是一个 abstract 类的子类,它必须具体实现父类的 abstract 方法。如果一个类中含有 abstract 方法,那么这个类必须用 abstract 来修饰(abstract 类也可以没有 abstract 方法)。有 abstract 方法的父类只声明,由继承它的子类实现。所以选 A。26.在 Java 中,可实现多重继承效果的机制是_。(分数:1.00)A.内部类B.重载C.抽象类D.接口 解析:解析 Java 语言使用接口来实现类间多重继承的功能,从而弥补了 Java 语言只支持
35、类间单重继承,描述复杂实际问题处理不方便的不足。接口是若干完成某一特定功能的没有方法体的方法(抽象方法)和常量的集合。接口仅提供了方法协议的封装。为了获取接口功能和真正实现接口功能,需要使用类来继承该接口。27.如果线程正处于运行状态,则它可能到达的下一个状态是_。(分数:1.00)A.只有终止状态B.只有阻塞状态和终止状态C.可运行状态,阻塞状态,终止状态 D.其他所有状态解析:解析 线程的生命周期主要分为如下几个状态:新建状态、可运行状态、阻塞状态、终止状态。运行状态(Running)线程是占有 CPU 并实际运行的状态。此时线程状态的变迁有 3 种情况:如果线程正常执行结束或应用程序停止
36、运行时,线程将进入终止状态。如果当前线程执行了 yield()或者当前线程因调度策略从而导致当前线程进入可运行状态。如果发生下面几种情况时,线程就进入阻塞状态:线程调用了sleep()方法、join()方法时,线程进入阻塞状态;线程调用 wait()方法时,线程则运行状态进入阻塞状态;如果线程中使用 synchronized 来请求对象的锁未获得时,进入阻塞状态;如果线程中有输入输出操作,线程进入阻塞状态,待输入输出操作结束后,线程进入可运行状态。因此,本题的正确答案是 C。28.对下列二叉树讲行中序遍历的结果是_。 (分数:1.80)A.DBXEAYFZC B.XYZDEFBCAC.ZYXF
37、EDCBAD.YZCFAXEDB解析:解析 中序遍历的方法是:先遍历左子树,然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。所以中序遍历的结果是 DBXEAYFZC29.下列程序执行后,输出的结果是_。 public class Test public static void main(String args) int a=100; if(a100|a100) System.out.println(“a100“); else System.out.println(“a=100“); (分数:2.00)A.a=100 B.a100C.a
38、100D.a100解析:解析 程序中 a=100,在经过判定 a100|a100 时,由于 a 既不小于 100,也不大于 100,所以判定结果为假。程序会走 if 语句的 else 分支,所以输出为“a=100”。30.下列说法中,错误的一项是 _ 。(分数:2.00)A.线程是程序中的一个执行流B.多线程是程序中的多个执行流C.线程是进程的一次动态执行过程 D.进程是程序的一次动态执行过程解析:31.下面程序的输出结果是 _ 。 main() char *alpha7= “ABCD“,“EFGH“,“IJKL“,“MNOP“,“QRST“,“UVWX“,“YZ“; char *p; int
39、 I: p=alpha; for(i=0;i4;i+) printf(“%c“,*(pi); printf(“/n“); (分数:2.00)A.AEIM B.BFJNC.ABCDD.DHLP解析:32.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。(分数:2.00)A.DB 包括 DBS 和 DBMSB.DBMS 包括 DB 和 DBSC.DBS 包括 DB 和 DBMS D.没有任何关系解析:解析 数据库系统(DBS)由数据库(DB)、数据库管理系统(DBMS)、数据库管理员、硬件平台和软件平台 5 个部分组成,可见 DB 和 DBMS 都是 DBS 的组成部分。33.下列关于栈的叙述中,正确的是_。(分数:2.00)A.栈底元素一定是最后入栈的元素B.栈顶元素一定是最先入栈的元素C.栈操作遵循先进后出的原则 D.以上三种说法都不对解析:解析 栈的存储原则是先进后出,所以选择 C。34.向容器添加新构件的方法是 _ 。(分数:2.00)A.add() B.insert()C.hill()D.set()解析:35.不正确的指针概念是 _ 。(分数:2.00)A.一个指针变量只能指向同一类型的变量B.一个变量的地址称为该变量的指针C.只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中D.指针变量可以赋任意整数,但不能赋浮点数 解析: