1、计算机二级 JAVA 分类模拟题 185 及答案解析(总分:67.80,做题时间:90 分钟)一、选择题(总题数:40,分数:67.80)1.在 Java 语言中对象的清除有多种实现的机制,下列技术属于垃圾回收机制的是_。(分数:1.00)A.字节编译B.内存跟踪C.语法检查D.堆栈上/下溢检查2.Reader 类所处理的是_。(分数:1.00)A.字符流B.字节流C.文件流D.管道流3.Applet 的运行过程要经历 4 个步骤,下面不是其运行步骤的是(分数:1.00)A.浏览器加载指定 URL 中的 HTML 文件B.浏览器显示 HTML 文件C.浏览器加载 HTML 文件中指定的 App
2、let 类D.浏览器中的 Java 运行环境运行该 Applet4.下列 Java 语句从指定网址读取 html 文件,在下砸线处应填上的选项是_。 Reader in=new_(new URL(urlString). openStream();(分数:1.00)A.ReaderB.DataOutputStreamC.ByteArray InputStreamD.InputStreamReader5.下列 _ 不是 FilterlnputStream 的子类。(分数:1.00)A.CheckedInputStreamB.BufferedInputStreamC.PushbackInputStr
3、eamD.FileInputStream6.语句“Hello“.equals(“hello“);的正确执行结果是_。(分数:2.00)A.trueB.falseC.0D.17.在 Java 源文件中_类最多只能有一个,其他类的个数不限。(分数:1.00)A.publicB.privateC.protectedD.没有这种类8.面向数据流的设计方法可以直接把数据流图映射成软件结构。对于变换流,除了输入模块、变换模块和输出模块外还需要一个 _ 。(分数:2.00)A.调度模块B.主控模块C.平衡模块D.等价模块9.Frame 默认的布局管理器是_。(分数:2.00)A.FlowLayoutB.Bo
4、rderLayoutC.GridLayoutD.CardLayout10.支持子程序调用的数据结构是 _ 。(分数:2.00)A栈B树C.队列D.二叉树11.下列叙述中,错误的是_。(分数:2.00)A.Java 中没有检测和避免死锁的专门机制B.程序中多个线程互相等待对方持有的锁,可能形成死锁C.为避免死锁,Java 程序中可先定义获得锁的顺序,解锁按加锁的反序释放D.为避免死锁,Java 程序中可先定义获得锁的顺序,解锁按加锁的正序释放12.用链表表示线性表的优点是 _ 。(分数:2.00)A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序
5、相同13.在多分支语句 switch(表达式)中,表达式不可以返回_。(分数:2.00)A.短整型B.字符型C.接口型D.整型14.下面语句会产生编译错误的是 _ 。(分数:2.00)A.float F=1024.0F;B.double D=1024.0;C.byte B=1024;D.char C=1024;15.下列关于构造方法的叙述中,错误的是_。(分数:2.00)A.Java 语言规定构造方法名与类名必须相同B.Java 语言规定构造方法没有返回值,但不用 void 声明C.Java 语言规定构造方法不可以重载D.Java 语言规定构造方法只能通过 new 自动调用16.软件生命周期是
6、指_。(分数:1.80)A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程17.如果进栈序列为 e1、e2、e3、e4、e5,则可能的出栈序列是_。(分数:1.80)A.e3、e1、e4、e2、e5B.e5、e2、e4、e3、e1C.e3、e4、e1、e2、e5D.任意顺序18.算法的空间复杂度是指 _ 。(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间19.下列程序片段中,能通过编译的是_。(分数:1.80)A.public abs
7、tract class Animalpublic void speak();B.public abstract class Animalpublic void speak();C.public class Animalpubilc abstract void speak();D.public abstract class Animalpubilc abstract void speak();20.下列选项中,属于 Java 语言的垃圾回收机制的是_。(分数:2.00)A.语法检查B.堆栈溢出检查C.跨平台D.内存跟踪21.下列哪个是非法的 Java 标识符?(分数:1.00)A.Tree_Gl
8、assesB.FirstJavaAppletC._$theLastOneD.Two273.522.在 Java 语言中,不允许使用指针体现出的 Java 特性是_。(分数:2.00)A.可移植B.解释执行C.健壮性D.安全性23.栈和队列的共同点是_。(分数:2.00)A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同特点24.下列关于 Java 简单数据类型的描述中,正确的是_。(分数:2.00)A.布尔类型的数据不可以和数字进行相互转换B.布尔类型数据可以和数字进行相互转换C.“ab“是字符常量D.“ab“是字符串常量25.按照“先进先出”原则组织数据的结构是_。
9、(分数:2.00)A.队列B栈C.双向链表D.二叉树26.若有以下说明和语句: int c45,(*p)5; p=c; 能够正确引用 c 数组元素的是_。(分数:2.00)A.p+1B.*(p+3)C.*(p+1)+3D.*(p0+2)27.下面程序的输出结果是_。 #include stdio.h main() int a=1,2,3,4,5); intx,y,*p; p=a0; x=*(p+2); y=*(p+4); printf(“%d,%d,%d/n“, *p,x,y); (分数:2.00)A.1,3,5B.1,2,3C.1,2,4D.1,4,528.下列 A1pplet 实现在键盘上
10、输入一个字符串,然后将该字符串照原样显示在屏幕上。请选择正确的语句填入横线处。 import java.awt.*; import java.applet.*; public class ex28 extends Applet Label 11, 12; TextField tf; public void init() setLayout (new GridLayout(3, 1); 11 = new Label(“请输入一个字符串:“); 12 = new Label(“);. tf = new TextField(15); add(11); add(tf); add(12); setSiz
11、e(150, 100); public boolean action(Event e, Object o) if(e.target = tf) repaint (); return true; (分数:2.00)A.12.setText(11.getText();B.11.setText(12.getText();C.11.setText(tf, getText();D.12.setText(tf.getText();29.下列关于二叉树的叙述中,正确的是_。(分数:2.00)A.叶子节点总是比度为 2 的节点少一个B.叶子节点总是比度为 2 的节点多一个C.叶子节点数是度为 2 的节点数的两
12、倍D.度为 2 的节点数是度为 1 的节点数的两倍30.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是_。(分数:1.00)A.1:1 联系B.m:1 联系C.1:m 联系D.m:n 联系31.下列关于链式存储结构的叙述中,不正确的是_。(分数:1.00)A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构B.逻辑上相邻的结点物理上不必相邻C.可以通过计算确定第 i 个结点的存储地址D.插入、删除运算操作方便,不必移动结点32.Java 以 JVM 为基础,最上层是 _ 。(分数:2.00)A.移植接口B.Java 基本类C.
13、基本 APID.Java 应用程序和 Applet 小程序33.阅读下面代码 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 public void decrement(double decMe) decMe=decMe-1.0; 代码执行后输出的结果是(分数:2.00)A.12.3B.11.3C.13.3D.-1.034.下列
14、选项中属于 Java 语言的垃圾回收机制的一项是_。(分数:1.80)A.语法检查B.堆栈溢出检查C.跨平台D.内存跟踪35.下列描述异常含义的各选项中,正确的是_。(分数:1.80)A.程序编译错误B.程序语法错误C.程序自定义的异常事件D.程序编译或运行时发生的异常事件36.下列数中代表八进制整数的是_。(分数:1.00)A.0XA6B.0144C.1840D.-1E337.若线程执行语句 synchronized(this)没有成功,则该线程将进入的状态是_。(分数:1.00)A.终止状态B.仍然保持运行状态C.不确定D.阻塞状态38.在编译 Java 程序时,用于指定生成.class
15、文件位置的选项是 _ 。(分数:2.00)A.-gB.-dC.-verboseD.-nowarn39.阅读下面代码 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 public void decrement(double decMe) decMe=decMe-1.0; 代码执行后输出的结果是_。(分数:2.00)A.12.3B.
16、11.3C.13.3D.-1.040.在创建线程时可以显式地指定线程组,此时可供选择的线程构造方法有_种。(分数:1.80)A.1B.2C.3D.4计算机二级 JAVA 分类模拟题 185 答案解析(总分:67.80,做题时间:90 分钟)一、选择题(总题数:40,分数:67.80)1.在 Java 语言中对象的清除有多种实现的机制,下列技术属于垃圾回收机制的是_。(分数:1.00)A.字节编译B.内存跟踪 C.语法检查D.堆栈上/下溢检查解析:2.Reader 类所处理的是_。(分数:1.00)A.字符流 B.字节流C.文件流D.管道流解析:解析 Reader 是一个抽象类,字符输入流都是抽
17、象类 Reader 类的子类,它是用来读取字符文件的类。字符输出流都是 Writer 抽象类的子类。所以,Reader 类所处理的是字符流。因此,本题的正确答案是 A。3.Applet 的运行过程要经历 4 个步骤,下面不是其运行步骤的是(分数:1.00)A.浏览器加载指定 URL 中的 HTML 文件B.浏览器显示 HTML 文件 C.浏览器加载 HTML 文件中指定的 Applet 类D.浏览器中的 Java 运行环境运行该 Applet解析:4.下列 Java 语句从指定网址读取 html 文件,在下砸线处应填上的选项是_。 Reader in=new_(new URL(urlStrin
18、g). openStream();(分数:1.00)A.Reader B.DataOutputStreamC.ByteArray InputStreamD.InputStreamReader解析:解析 创建一个 Reader 流的对象 in。5.下列 _ 不是 FilterlnputStream 的子类。(分数:1.00)A.CheckedInputStreamB.BufferedInputStreamC.PushbackInputStreamD.FileInputStream 解析:6.语句“Hello“.equals(“hello“);的正确执行结果是_。(分数:2.00)A.trueB.
19、false C.0D.1解析:解析 字符串的 equals()方法只在完全一样(包括大小写)的情况下才返回 true。7.在 Java 源文件中_类最多只能有一个,其他类的个数不限。(分数:1.00)A.public B.privateC.protectedD.没有这种类解析:8.面向数据流的设计方法可以直接把数据流图映射成软件结构。对于变换流,除了输入模块、变换模块和输出模块外还需要一个 _ 。(分数:2.00)A.调度模块B.主控模块 C.平衡模块D.等价模块解析:9.Frame 默认的布局管理器是_。(分数:2.00)A.FlowLayoutB.BorderLayout C.GridLa
20、youtD.CardLayout解析:10.支持子程序调用的数据结构是 _ 。(分数:2.00)A栈 B树C.队列D.二叉树解析:解析 根据栈的定义,栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,主函数会保持当前状态,然后转去执行子函数,把子函数的运行结果返回到主函数,主函数继续向下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。11.下列叙述中,错误的是_。(分数:2.00)A.Java 中没有检测和避免死锁的专门机制B.程序中多个线程互相等待对方持有的锁,可能形成死锁C.为避免死锁,Java 程序中可先定义获得锁的顺序,解锁按加锁的反序释放D.为避免死锁,Java
21、程序中可先定义获得锁的顺序,解锁按加锁的正序释放 解析:解析 如果 Java 程序要访问多个共享数据,则要首先从全局考虑定义一个获得锁的顺序,并且在整个程序中都遵守这个顺序。释放锁时,要按加锁的反序释放。12.用链表表示线性表的优点是 _ 。(分数:2.00)A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作 D.数据元素的物理顺序与逻辑顺序相同解析:解析 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。“关系”描述的是数据元素之间的逻辑关系,因此又称数据的逻辑结构。数据的存储结构是指数据结构(数据的逻辑结构)在计算机中的表示,又称物理结构。数据的存储结构有顺序存储
22、结构和链式存储结构两种。不同存储结构的数据处理效率不同。由于链表采用链式存储结构,元素的物理顺序并不连续,对于插入和删除无需移动元素,很方便,当查找元素时就需要逐个元素查找,因此查找的时间相对更长。13.在多分支语句 switch(表达式)中,表达式不可以返回_。(分数:2.00)A.短整型B.字符型C.接口型 D.整型解析:解析 在多分支语句 switch(表达式)中,表达式 expression 只能返回 int(整型)、short(短整型)和 char(字符型)。多分支语句把表达式返回的值依次与每个 case 子句中的值相比较,如果遇到匹配的值,则执行该 case 子句后的语句序列。14
23、.下面语句会产生编译错误的是 _ 。(分数:2.00)A.float F=1024.0F;B.double D=1024.0;C.byte B=1024; D.char C=1024;解析:解析 本题考查考生对 Java 中数据类型的理解。为了防止计算机高低位字节存储顺序不同,通常byte 类型用来表示数据避免出错,因为它只有 8bit,范围是:-128+127。float 类型数的表示范围是:-3.40282347E383.40282347E38;double 类型数的表示范围是:-1.79769313486231570E3081.79769313486231570E308;char 类型在
24、内存中占 16bit,表示范围是065535。15.下列关于构造方法的叙述中,错误的是_。(分数:2.00)A.Java 语言规定构造方法名与类名必须相同B.Java 语言规定构造方法没有返回值,但不用 void 声明C.Java 语言规定构造方法不可以重载 D.Java 语言规定构造方法只能通过 new 自动调用解析:16.软件生命周期是指_。(分数:1.80)A.软件产品从提出、实现、使用维护到停止使用退役的过程 B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程解析:解析 软件生命周期(SDLC, Systems Development Life Cy
25、cle, SDLC)是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。17.如果进栈序列为 e1、e2、e3、e4、e5,则可能的出栈序列是_。(分数:1.80)A.e3、e1、e4、e2、e5B.e5、e2、e4、e3、e1 C.e3、e4、e1、e2、e5D.任意顺序解析:解析 根据栈先进后出的特点可知 e1 肯定是最后出栈的,因此正确答案为选项 B。18.算法的空间复杂度是指 _ 。(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间 解
26、析:19.下列程序片段中,能通过编译的是_。(分数: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 Animalpubilc abstract void speak();解析:解析 Java 中一个类是一个 abstract 类的子类,它必须具体实现父类的 abstract 方法。如果一
27、个类中含有 abstract 方法,那么这个类必须用 abstract 来修饰(abstract 类也可以没有 abstract 方法)。有 abstract 方法的父类只声明,由继承它的子类实现。所以选 A。20.下列选项中,属于 Java 语言的垃圾回收机制的是_。(分数:2.00)A.语法检查B.堆栈溢出检查C.跨平台D.内存跟踪 解析:解析 语法检查是编译器的工作,不属于垃圾回收机制。堆栈溢出是在解释执行时所进行的检查,所以选项 A 和 B 都不正确。跨平台是 Java 语言的特点,不属于垃圾回收机制。所以正确的选项只有 D。Java 语言提供了一个系统级线程,用于监控内存,在必要时对
28、不再使用的某些内存空间进行回收,这就是垃圾回收机制。21.下列哪个是非法的 Java 标识符?(分数:1.00)A.Tree_GlassesB.FirstJavaAppletC._$theLastOneD.Two273.5 解析:解析 本题主要考查 Java 语言的标识符这个知识点。Java 语言的标识符必须由字母、下划线(_)、美元符号($)开始,其余字符可以是上述 3 种符号或数字(09)。Java 语言使用 Unicode 字符集,所以标识符中使用的字母包括下面几种:AZ;az;Unicode 字符集中序号大于 0xC0 的所有符号。选项 A 是正确的,下划线“”是可以在标识符里面出现的
29、;选项 B 是正确的;选项 C 是正确的,符号$也是可以在标识符里面出现的;选项 D 是错误的,符号“.”不能在标识符里面出现。故本题答案是 D。22.在 Java 语言中,不允许使用指针体现出的 Java 特性是_。(分数:2.00)A.可移植B.解释执行C.健壮性D.安全性 解析:解析 本题考查 Java 安全性。Java 语言对字节代码执行前要检查,不允许使用指针,可以防止对内存的非法入侵,提高安全性。23.栈和队列的共同点是_。(分数:2.00)A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素 D.没有共同特点解析:栈和队列都是操作受限的线性表,只允许在端点插入和删除。
30、不同点是栈只允许在表的一端进行插入和删除操作,而队列允许在表的一端进行插入操作,而在另一端进行删除操作。24.下列关于 Java 简单数据类型的描述中,正确的是_。(分数:2.00)A.布尔类型的数据不可以和数字进行相互转换 B.布尔类型数据可以和数字进行相互转换C.“ab“是字符常量D.“ab“是字符串常量解析:解析 字符常量是单引号括起来的一个字符,所以 C 选项是错误的;字符串常量是双引号括起来的若干字符,所以 D 选项的说法是错误的;布尔类型的数据不对应任何的数值,因此不可以和数字进行相互转换。25.按照“先进先出”原则组织数据的结构是_。(分数:2.00)A.队列 B栈C.双向链表D
31、.二叉树解析:解析 队列是一种特殊的线性表示,只允许在表的一端插入元素;在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”;先插入的元素先被删除,是按“先进先出”的原则组织数据的。26.若有以下说明和语句: int c45,(*p)5; p=c; 能够正确引用 c 数组元素的是_。(分数:2.00)A.p+1B.*(p+3)C.*(p+1)+3D.*(p0+2) 解析:27.下面程序的输出结果是_。 #include stdio.h main() int a=1,2,3,4,5); intx,y,*p; p=a0; x=*(p+2); y=*(p+4); printf(“
32、%d,%d,%d/n“, *p,x,y); (分数:2.00)A.1,3,5 B.1,2,3C.1,2,4D.1,4,5解析:28.下列 A1pplet 实现在键盘上输入一个字符串,然后将该字符串照原样显示在屏幕上。请选择正确的语句填入横线处。 import java.awt.*; import java.applet.*; public class ex28 extends Applet Label 11, 12; TextField tf; public void init() setLayout (new GridLayout(3, 1); 11 = new Label(“请输入一个字符
33、串:“); 12 = new Label(“);. tf = new TextField(15); add(11); add(tf); add(12); setSize(150, 100); public boolean action(Event e, Object o) if(e.target = tf) repaint (); return true; (分数:2.00)A.12.setText(11.getText();B.11.setText(12.getText();C.11.setText(tf, getText();D.12.setText(tf.getText(); 解析:29
34、.下列关于二叉树的叙述中,正确的是_。(分数:2.00)A.叶子节点总是比度为 2 的节点少一个B.叶子节点总是比度为 2 的节点多一个 C.叶子节点数是度为 2 的节点数的两倍D.度为 2 的节点数是度为 1 的节点数的两倍解析:二叉树叶子节点总是比度为 2 的节点多一个,这是二叉树的性质。30.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是_。(分数:1.00)A.1:1 联系B.m:1 联系C.1:m 联系 D.m:n 联系解析:解析 实体间的联系有一对一(1:1)、一对多(1:m)和多对多(m:n),没有多对一(m:1)。题目中
35、,一个部门可以有多名职员,而每个职员只能属于一个部门,显然,部门和职员间是一对多的联系。31.下列关于链式存储结构的叙述中,不正确的是_。(分数:1.00)A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构B.逻辑上相邻的结点物理上不必相邻C.可以通过计算确定第 i 个结点的存储地址 D.插入、删除运算操作方便,不必移动结点解析:解析 链式存储结构的主要特点有:结点中除自身信息外,还有表示链接信息的指针域,因此存储密度小、存储空间利用率低;逻辑上相邻的结点物理上不必相邻;插入、删除操作灵活方便。线性存储结构可以通过计算确定第 i 个结点的存储地址,但链式存储结构不能。32.Java
36、 以 JVM 为基础,最上层是 _ 。(分数:2.00)A.移植接口B.Java 基本类C.基本 APID.Java 应用程序和 Applet 小程序 解析:33.阅读下面代码 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 public void decrement(double decMe) decMe=decMe-1.0;
37、 代码执行后输出的结果是(分数:2.00)A.12.3 B.11.3C.13.3D.-1.0解析:解析 Java 中的方法的参数传递是传值调用,而不是地址调用,因此方法不能改变 d 的值,但是改变了参数变量 decMe 的值。34.下列选项中属于 Java 语言的垃圾回收机制的一项是_。(分数:1.80)A.语法检查B.堆栈溢出检查C.跨平台D.内存跟踪 解析:解析 本题考查 Java 语言的垃圾回收机制。语法检查是编译器的一项工作,不属于垃圾回收,选项 A 错误;堆栈溢出在解释执行时进行检查,选项 B 错误;跨平台是 Java 语言的一个特点,不属于垃圾回收机制,选项 C 错误;为了充分利用
38、资源,Java 语言提供了一个系统级的线程,用于监控内存,在必要时对不再使用的某些内存进行回收,这就是垃圾回收机制。35.下列描述异常含义的各选项中,正确的是_。(分数:1.80)A.程序编译错误B.程序语法错误C.程序自定义的异常事件D.程序编译或运行时发生的异常事件 解析:解析 异常是在程序编译或者运行时所发生的可预料或者不可预料的异常事件,它会引起程序的中断,影响程序的正常运行。36.下列数中代表八进制整数的是_。(分数:1.00)A.0XA6B.0144 C.1840D.-1E3解析:37.若线程执行语句 synchronized(this)没有成功,则该线程将进入的状态是_。(分数:
39、1.00)A.终止状态B.仍然保持运行状态C.不确定D.阻塞状态 解析:解析 在 Java 语言中,临界区用“synchronized”关键字标识。每个由 synchronized 语句指定的对象设置一个锁,称为对象锁。如果线程中使用 synchronized 来请求对象的锁,但没有获得成功时,进入对象锁阻塞状态,该状态下的线程当获得对象锁后,将可进入可运行状态。故此题选 D。38.在编译 Java 程序时,用于指定生成.class 文件位置的选项是 _ 。(分数:2.00)A.-gB.-d C.-verboseD.-nowarn解析:39.阅读下面代码 public class public
40、 static void main(String args) double d=12.3; Decrementer dec=new Decrementer(); 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 的值,但是改变了参数变量 de
41、cMe 的值。40.在创建线程时可以显式地指定线程组,此时可供选择的线程构造方法有_种。(分数:1.80)A.1B.2C.3 D.4解析:解析 线程组是由 java. lang 包中的 ThreadGroup 类实现的。在创建线程时可以显式地指定线程组,此时需要从如下三种线程构造方法中选择一种: public Thread (ThreadGroup group, Runnable target); public Thread (ThreadGroup group, String name); public Thread (ThreadGroup group, Runnable target, String name)。