1、计算机二级 JAVA 分类模拟题 196 及答案解析(总分:63.40,做题时间:90 分钟)一、选择题(总题数:35,分数:63.40)1.如果进栈序列为 e1、e2、e3、e4、e5,则可能的出栈序列是 _ 。(分数:2.00)A.e3、e1、e4、e2、e5B.e5、e2、e4、e3、e1C.e3、e4、e1、e2、e5D.任意顺序2.若有 int x=3;则执行 y=x+*4;语句后的结果是_。(分数:1.00)A.x 为 3,y 为 12B.x 为 3,y 为 16C.x 为 4,y 为 12D.x 为 4,y 为 163.结构化程序设计的一种基本方法是_。(分数:2.00)A.筛选
2、法B.递归法C.归纳法D.逐步求精法4.执行下列代码段之后,变量 z 的值为_。 Public class Test8 public static void main(String args) int x=2; int y=3; int z=4; z-= y-x-; System.out.println(z); (分数:3.00)A.1B.2C.3D.45.对下列代码编译或执行结果的描述中,正确的是_。 class Test public static void main(String args) TestThread pm1 = new TestThread(“One“); pm1.star
3、t(); TestThread pm2 = new TestThread(“Two“); pm2.start(); class TestThread extends Thread private String sTname=“; TestThread(String s) sTname = s; public void run() for(int i=0;i2;i+) try sleep(1000); catch (InterruptedException e) System.out.println(sTname+“ “); (分数:2.00)A.不能通过编译,TestThread 类中不能定义
4、变量和构造方法B.输出 One One Two TwoC.输出 Two One One TwoD.选项 B 或 C 都有可能出现6.下列属于合法的 Java 标识符是_。(分数:1.80)A.“ABC“B.B.abstract class F1.C.private double height;D.double weight10.在程序的下面线处应填入的选项是_。 public class Test_ public static void main(String args) Test t=new Test(); Thread tt=new Thread(t); tt. start(); publ
5、ic void run() for(int i=0; i5; i+) System. out. println(“i=“+i); (分数:1.80)A.implements RunnableB.extends ThreadC.implements ThreadD.extends Runnable11.设 A 为已定义的类名,则下列声明 A 类的对象 a 的语句中正确的是_。(分数:2.00)A.public A a=new A()B.public A a=A()C.A a=new class();D.a A;12.下列关于 Object 类中定义方法的描述中,正确的是_。(分数:1.00)A.
6、其他类不能调用B.其他类部分能调用C.其他类大部分不能调用D.其他类全部都能调用13.下列关于类的说法,错误的是_。(分数:2.00)A.对于一个类来说,只能生成 1 到 2 个对象B.类是定义属性和方法的模板C.由程序员编写,作为程序的一部分,其目的是产生对象D.类定义的是一种对象类型,是同类对象共有的变量和方法14.下面程序段的输出结果为_。 package test; public class ClassA int x=20; static int y=6; public static void main(String args) ClassB b=new ClassB(); b. go
7、(10); System. out. println(“x=“+b. x); class ClassB int x; void go(int y) ClassA a=new ClassA(); x=a. y; (分数:1.80)A.x=10B.x=20C.x=6D.编译不通过15.下列不属于 Swing 的构件是_。(分数:1.80)A.JButtonB.JLabelC.JFrameD.JPane16.当执行下面的程序时,其输出结果为 _ 。 union st int a: char b: main() union st s: char *p=(char*)s; s.a=0x3132; s.b
8、=0x33; printf(“%c“,*p); (分数:2.00)A.1B.2C.3D.不确定17.在创建线程时可以显式地指定线程组,此时可供选择的线程构造方法有_种。(分数:1.80)A.1B.2C.3D.418.下列有关数据库的描述,正确的是_。(分数:2.00)A.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C.关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属性组并非该关系的关键字。但它是另一个关系的关键字,则称其为本关系的外关键字19.一个栈的进栈顺序是 1,2,3,4,则出栈顺序为_。(分数:1.00)A.
9、4,3,2,1B.2,4,3,1C.1,2,3,4D.3,2,1,420.下列程序的功能是将一个整数数组写入二进制文件,在程序的下画线处应填入的选项是 _ 。 import java.io.*; public class XieShuzu public static void main(Stringa) intmyArray=(10,20,30,40); try DataOutputStream dos= new DataOutputStream(new FileOutput Stream(“ints.dat“); for(int i=0;imyArray.length;i+) dos._(m
10、yArrayi); dos.close(); System.out.println(“已经将整数数组写入二进制文件:ints.dat“); catch(IOException ioe) System.out.println(“IO Excepr_on“); (分数:2.00)A.writeArrayB.writeByteC.writeIntD.writeDouble21.在多分支语句 switch(表达式)中,表达式不可以返回_。(分数:2.00)A.短整型B.字符型C.接口型D.整型22.在待排序的元素序列基本有序的前提下,效率最高的排序方法是 _ 。(分数:1.00)A.插入排序B.选择排
11、序C.快速排序D.堆排序23.软件生命周期是指_。(分数:2.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程24.已定义以下函数: fun(int *p) (return *p;) 该函数的返回值是 _ 。(分数:2.00)A.不确定的值B.形参 p 中存放的值C.形参 p 所指存储单元的值D.形参 p 的地址值25.下列关于 Applet 的说法中,错误的是_。(分数:2.00)A.Applet 自身不能运行,必须嵌入其他应用程序(如浏览器)中运行B.可以在安全策略的控制下读写本地磁盘文件C.
12、Java 中不支持向 Applet 传递参数D.Applet 的主要类定义为 java.applet.Applet 类的子类26.程序的 3 种基本控制结构是(分数:1.00)A.过程、子过程和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移27.下列说法中,正确的是 _ 。(分数:2.00)A.Java 是不区分大小写的,源文件名与程序类名不允许相同B.Java 语言以方法为程序的基本单位C.Applet 是 Java 的一类特殊应用程序,它嵌入 HTML 中随着主页发布到互联网上D.以/开始的为多行注释语句28.下列方法中,不属于 WindowListener 接口的是_
13、。(分数:2.00)A.windowOpened()B.windowClosed()C.windowActivatedD.mouseDragged()29.查找随机文件的记录时,应使用的方法是(分数:2.00)A.readInt()B.readBytes(int n)C.seek(long l)D.readDouble()30.下列叙述中,错误的是_。(分数:2.00)A.Java Application 与 Applet 所用编译命令相同B.通常情况下 Java Application 只能有一个 main()方法C.Java Applet 必须有 HTML 文件才能运行D.Java App
14、let 程序的 class 文件可用 Java 命令运行31.下列语句中,可以作为无限循环语句的是_。(分数:1.80)A.for(;)B.for(int i=0; i10000; i+)C.while(false)D.do while(false)32.下列说法中错误的一项是_。(分数:3.00)A.共享数据的所有访问都必须使用 synchtonized 加锁B.共享数据的访问不一定全部使用 synchronized 加锁C.临界区必须使用 synchronized 标识D.所有的对共享数据的访问都是临界区33.下列选项中,与成员变量共同构成一个类的是_。(分数:1.80)A.关键字B.方法
15、C.运算符D.表达式34.下面语句会产生编译错误的是_。(分数:1.00)A.float F=1024.0F;B.double D=1024.0;C.byte B=1024;D.char C=1024;35.要在一个单一的类文件中创建既可用作 JavaApplet,又可用作 Java 应用程序的 Java 软件代码。下列说法错误的是 _ 。(分数:2.00)A.作为 Application 要定义 main()方法,并且把 main()方法所在的类定义为个 public 类B.为使该程序成为一个 Applet,main()方法所在的这个 public 类必须继承 Applet 类或 LAppl
16、et 类C.在该类中可以像普通 Applet 类一样重写 Applet 类的 init()、start()、paint()等方法D.转换后的程序只能在浏览器中加载执行,而不能在 Appletviewer 中执行计算机二级 JAVA 分类模拟题 196 答案解析(总分:63.40,做题时间:90 分钟)一、选择题(总题数:35,分数:63.40)1.如果进栈序列为 e1、e2、e3、e4、e5,则可能的出栈序列是 _ 。(分数:2.00)A.e3、e1、e4、e2、e5B.e5、e2、e4、e3、e1 C.e3、e4、e1、e2、e5D.任意顺序解析:解析 根据栈先进后出的特点可知 e1 肯定是
17、最后出栈的,因此正确答案为选项 B。2.若有 int x=3;则执行 y=x+*4;语句后的结果是_。(分数:1.00)A.x 为 3,y 为 12B.x 为 3,y 为 16C.x 为 4,y 为 12 D.x 为 4,y 为 16解析:解析 x+运行的结果是 x 本来的值,然后 x 会自增,x 的值会成为 x+1。例如:y1=x+;y2=+x,无论是 x+还是+x,x 的值都会加 1,区别在于 x 先将值赋给 y1,然后 x 会自增;而第二个是 x 自增,即在它的值成为 x+1 之后,再将新的 x 的值赋给 y2。3.结构化程序设计的一种基本方法是_。(分数:2.00)A.筛选法B.递归法
18、C.归纳法D.逐步求精法 解析:解析 结构化程序设计的主要方法是自顶向下,逐步求精,模块化,限制使用 GOTO 语句。所以选择 D。4.执行下列代码段之后,变量 z 的值为_。 Public class Test8 public static void main(String args) int x=2; int y=3; int z=4; z-= y-x-; System.out.println(z); (分数:3.00)A.1B.2C.3D.4 解析:解析 表达式中的运算次序应该是先对 y 做减量运算,得到 y=2,然后再取 x 的值 x=2,做减法运算得到 0,最后用 z 减去 0,得到
19、答案为 4。5.对下列代码编译或执行结果的描述中,正确的是_。 class Test public static void main(String args) TestThread pm1 = new TestThread(“One“); pm1.start(); TestThread pm2 = new TestThread(“Two“); pm2.start(); class TestThread extends Thread private String sTname=“; TestThread(String s) sTname = s; public void run() for(in
20、t i=0;i2;i+) try sleep(1000); catch (InterruptedException e) System.out.println(sTname+“ “); (分数:2.00)A.不能通过编译,TestThread 类中不能定义变量和构造方法B.输出 One One Two TwoC.输出 Two One One TwoD.选项 B 或 C 都有可能出现 解析:解析 多线程的执行顺序是无法估计的。6.下列属于合法的 Java 标识符是_。(分数:1.80)A.“ABC“B.B.abstract class F1.C.private double height; D.
21、double weight解析:解析 本题考查对成员变量的声明。成员变量的声明格式为:修饰符 type 变量名;其中 type 可以是 java 语言中的任意数据类型,而修饰符可以是 public、protected, prlvate, static, final, transient, volatile 等。选项 A 错误,成员变量不能同时声明成 public 和 protected。选项 B 是类的声明格式,并不是成员变量的声明。成员变量声明应以“;“结尾,选项 D 错误。选项 C 声明了一个私有的double 型成员变量,为正确答案。10.在程序的下面线处应填入的选项是_。 public
22、 class Test_ public static void main(String args) Test t=new Test(); Thread tt=new Thread(t); tt. start(); public void run() for(int i=0; i5; i+) System. out. println(“i=“+i); (分数:1.80)A.implements Runnable B.extends ThreadC.implements ThreadD.extends Runnable解析:解析 Test 类实现了 Runnable 接口。11.设 A 为已定义的
23、类名,则下列声明 A 类的对象 a 的语句中正确的是_。(分数:2.00)A.public A a=new A() B.public A a=A()C.A a=new class();D.a A;解析:解析 对象的生成包括声明、实例化和初始化 3 个方面的内容,一般格式是先定义一个对象变量,再用关键字 new 生成一个对象,并为该对象变量赋值。12.下列关于 Object 类中定义方法的描述中,正确的是_。(分数:1.00)A.其他类不能调用B.其他类部分能调用C.其他类大部分不能调用D.其他类全部都能调用 解析:解析 Object 类是 Java 类层次的根,所以其他类都是由 Object
24、类派生出来的,在 Object 类中定义的方法,在其他类中都可以使用。因此,正确答案为 D。13.下列关于类的说法,错误的是_。(分数:2.00)A.对于一个类来说,只能生成 1 到 2 个对象 B.类是定义属性和方法的模板C.由程序员编写,作为程序的一部分,其目的是产生对象D.类定义的是一种对象类型,是同类对象共有的变量和方法解析:14.下面程序段的输出结果为_。 package test; public class ClassA int x=20; static int y=6; public static void main(String args) ClassB b=new Class
25、B(); b. go(10); System. out. println(“x=“+b. x); class ClassB int x; void go(int y) ClassA a=new ClassA(); x=a. y; (分数:1.80)A.x=10B.x=20C.x=6 D.编译不通过解析:解析 本题考查在 Java 中静态变量(类变量)的用法。在题目程序段中生成了一个 static int y=6 类变量,在 ClassA 中调用的 b. go(10),只不过是在 ClassB 中的一个局部变量,通过调用 ClassB 中的 go 方法可以生成一个 ClassA 对象,并给这个新
26、生成的对象赋以 ClassA 中的类变量 y 的值。从 main()方法作为入口执行程序,首先生成一个 ClassB 的对象,然后 b. go(10)会调用 ClassA,会给 x 和 y 赋值,x=a. y 后,x 值为 6,再返回去执行 System. out. println(“x=“+b. x)语句,输出为 x=6,可见,正确答案为选项 C。15.下列不属于 Swing 的构件是_。(分数:1.80)A.JButtonB.JLabelC.JFrameD.JPane 解析:解析 Swing 构件中 JButton 是按钮构件,JLabel 为标签构件,JFrame 为顶层窗体容器构件。中
27、间容器面板应为 JPanel,而不是 JPane。16.当执行下面的程序时,其输出结果为 _ 。 union st int a: char b: main() union st s: char *p=(char*)s; s.a=0x3132; s.b=0x33; printf(“%c“,*p); (分数:2.00)A.1 B.2C.3D.不确定解析:17.在创建线程时可以显式地指定线程组,此时可供选择的线程构造方法有_种。(分数:1.80)A.1B.2C.3 D.4解析:解析 线程组是由 java. lang 包中的 ThreadGroup 类实现的。在创建线程时可以显式地指定线程组,此时需要
28、从如下三种线程构造方法中选择一种: public Thread (ThreadGroup group, Runnable target); public Thread (ThreadGroup group, String name); public Thread (ThreadGroup group, Runnable target, String name)。18.下列有关数据库的描述,正确的是_。(分数:2.00)A.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C.关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属
29、性组并非该关系的关键字。但它是另一个关系的关键字,则称其为本关系的外关键字 解析:19.一个栈的进栈顺序是 1,2,3,4,则出栈顺序为_。(分数:1.00)A.4,3,2,1 B.2,4,3,1C.1,2,3,4D.3,2,1,4解析:解析 栈是一种特殊的线性表,栈的插入和删除运算都只在一端进行,即它的一端是封闭的,不允许插入与删除元素,一端是开口的,允许插入与删除元素,栈中的元素是先进后出的。答案是 A。20.下列程序的功能是将一个整数数组写入二进制文件,在程序的下画线处应填入的选项是 _ 。 import java.io.*; public class XieShuzu public s
30、tatic void main(Stringa) intmyArray=(10,20,30,40); try DataOutputStream dos= new DataOutputStream(new FileOutput Stream(“ints.dat“); for(int i=0;imyArray.length;i+) dos._(myArrayi); dos.close(); System.out.println(“已经将整数数组写入二进制文件:ints.dat“); catch(IOException ioe) System.out.println(“IO Excepr_on“);
31、 (分数:2.00)A.writeArrayB.writeByteC.writeInt D.writeDouble解析:解析 向流中写入整数数组,用 WrinteInt 方法。21.在多分支语句 switch(表达式)中,表达式不可以返回_。(分数:2.00)A.短整型B.字符型C.接口型 D.整型解析:解析 在多分支语句 switch(表达式)中,表达式 expression 只能返回 int(整型)、short(短整型)和 char(字符型)。多分支语句把表达式返回的值依次与每个 case 子句中的值相比较,如果遇到匹配的值,则执行该 case 子句后的语句序列。22.在待排序的元素序列基
32、本有序的前提下,效率最高的排序方法是 _ 。(分数:1.00)A.插入排序 B.选择排序C.快速排序D.堆排序解析:解析 插入排序通过数据元素的交换来逐步消除线性表中的逆序,所以关键字比较的次数与记录的初始排列次序有关,在待排序的元素序列基本有序的前提下,效率最高。而选择排序和堆排序的关键字比较的次数与记录的初始排列次序无关。快速排序虽然与记录的初始排列次序有关,但在待排序的元素序列基本有序的前提下,效率低于插入排序。23.软件生命周期是指_。(分数:2.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程 B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行
33、维护过程解析:解析 软件生命周期(SDLC,Systems Development Life Cycle,SDLC)是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。24.已定义以下函数: fun(int *p) (return *p;) 该函数的返回值是 _ 。(分数:2.00)A.不确定的值B.形参 p 中存放的值C.形参 p 所指存储单元的值 D.形参 p 的地址值解析:25.下列关于 Applet 的说法中,错误的是_。(分数:2.00)A.Applet 自身不能运行,必须嵌入其他应用程序(如浏览器)中
34、运行B.可以在安全策略的控制下读写本地磁盘文件C.Java 中不支持向 Applet 传递参数 D.Applet 的主要类定义为 java.applet.Applet 类的子类解析:解析 本题考查 Applet 的交互性。交互性是 Applet 的重要特征,它使 Web 页面能够与用户动态交互,接收用户输入的参数,然后根据用户输入做出不同反应。26.程序的 3 种基本控制结构是(分数:1.00)A.过程、子过程和分程序B.顺序、选择和重复 C.递归、堆栈和队列D.调用、返回和转移解析:解析 本题考查基本的程序控制结构。 采用结构化程序设计方法编写程序,可使程序结构良好、易读、易理解、易维护,它
35、包括 3 种基本控制结构,分别是顺序结构、选择结构和重复结构(又称循环结构)。 考点 控制程序结构的方法和作用。27.下列说法中,正确的是 _ 。(分数:2.00)A.Java 是不区分大小写的,源文件名与程序类名不允许相同B.Java 语言以方法为程序的基本单位C.Applet 是 Java 的一类特殊应用程序,它嵌入 HTML 中随着主页发布到互联网上 D.以/开始的为多行注释语句解析:解析 Java 语言是区分大小写的,且具源文件名必须与程序类名相同,其扩展名为:java,源文件中最多只能有一个 public 类,其他类的个数不限,所以选项 A 是错误的; B 选项是错误的,Java 语
36、言是以类为程序的基本单元;D 选项是错误的以“/”开始的为单行注释语句,多行注释语句的符号为“/*/”。选项 C 是正确的。28.下列方法中,不属于 WindowListener 接口的是_。(分数:2.00)A.windowOpened()B.windowClosed()C.windowActivatedD.mouseDragged() 解析:解析 本题考查 WindowListener 接口。WindowListener 接口提供的方法包括:windowClosing(WindowEvent),windowOpened(WindowEvent),windowIconified(Window
37、Event),indowDeiconified(WindowEvent),windowClosed(WindowEvent),windowAcfivated(WindowEvent),windowDeactivated(WindowEvent)。由此可知,选项 D 中 mouseDragged()不属于 WindowListener 接口。29.查找随机文件的记录时,应使用的方法是(分数:2.00)A.readInt()B.readBytes(int n)C.seek(long l) D.readDouble()解析:解析 本题考查随机文件流的相关方法。RandomAccessFile 中主要
38、包含的方法有:length()方法用来求随机文件的字节长度; seek(long pos)方法用来对随机文件记录的查找,所以选项 C 正确;close()方法用来将随机文件资源关闭;readDouble()是对随机文件浮点数的读取; readInt()是对随机文件整数的读取;readChar()是对随机文件字符变量的读取;skipBytes(int n)是随机文件字节的读取。30.下列叙述中,错误的是_。(分数:2.00)A.Java Application 与 Applet 所用编译命令相同B.通常情况下 Java Application 只能有一个 main()方法C.Java Apple
39、t 必须有 HTML 文件才能运行D.Java Applet 程序的 class 文件可用 Java 命令运行 解析:解析 JavaApplet 程序必须有 HTML 文件才能运行,它和一般的 Java Application 运行机制不同,比较复杂,其中的.class 文件不可用 Java 命令运行。31.下列语句中,可以作为无限循环语句的是_。(分数:1.80)A.for(;) B.for(int i=0; i10000; i+)C.while(false)D.do while(false)解析:解析 B 的循环终止条件为 10000,C、D 的终止条件为常量 false,都不能无限循环。
40、32.下列说法中错误的一项是_。(分数:3.00)A.共享数据的所有访问都必须使用 synchtonized 加锁B.共享数据的访问不一定全部使用 synchronized 加锁 C.临界区必须使用 synchronized 标识D.所有的对共享数据的访问都是临界区解析:解析 共享数据的所有访问一定要作为临界区,用 synchronized 标识,这样保证了所有的对共享数据的操作都通过对象锁的机制进行控制。33.下列选项中,与成员变量共同构成一个类的是_。(分数:1.80)A.关键字B.方法 C.运算符D.表达式解析:解析 类体中定义的两种成员是数据成员和成员函数。34.下面语句会产生编译错误
41、的是_。(分数:1.00)A.float F=1024.0F;B.double D=1024.0;C.byte B=1024; D.char C=1024;解析:解析 本题考查考生对 Java 中数据类型的理解。为了防止计算机高低位字节存储顺序不同,通常byte 类型用来表示数据避免出错,因为它只有 8 位 bit,范围是:-128 +127,选项 C 超出了此范围,所以是错误的。float 类型数的表示范围是: -3.40282347E383.40282347E38;double 类型,致的表示范围是: -1.79769313486231520E3081.79769313486231570E
42、308;char 类型在内存中占 16 位 bit,表示范围是 0-65535。35.要在一个单一的类文件中创建既可用作 JavaApplet,又可用作 Java 应用程序的 Java 软件代码。下列说法错误的是 _ 。(分数:2.00)A.作为 Application 要定义 main()方法,并且把 main()方法所在的类定义为个 public 类B.为使该程序成为一个 Applet,main()方法所在的这个 public 类必须继承 Applet 类或 LApplet 类C.在该类中可以像普通 Applet 类一样重写 Applet 类的 init()、start()、paint()等方法D.转换后的程序只能在浏览器中加载执行,而不能在 Appletviewer 中执行 解析: