1、计算机二级 JAVA-171 及答案解析(总分:67.40,做题时间:90 分钟)一、选择题(总题数:36,分数:67.40)1.阅读如下程序。 class Test implements Runnable public static void main(String args; Test t=new Test(); t.start(); public void run() 下列关于上述程序的叙述正确的是_。(分数:2.00)A.程序不能通过编译,因为 start()方法在 Test 类中没有定义B.程序编译通过,但运行时出错,提示 start()方法没有定义C.程序不能通过编译,因为 run
2、()方法没有定义方法体D.程序编译通过,且运行正常2.下面程序的输出结果是_。 #include stdio.h main() int x=10; int x=20; printf(“%d,“,x); printf(“%d/n“, x); (分数:2.00)A.10, 20B.20, 10C.10, 10D.20, 203.阅读下列代码: public class Person static int arr=new int10; public static void main(String args) System. out. printlnarrD); 该代码的运行结果是_。(分数:1.80
3、)A.编译时将产生错误B.编译时正确,运行时将产生错误C.输出零D.输出空4.Java 中的抽象类 Reader 和 Writer 所处理的流是_。(分数:1.80)A.图像流B.对象流C.字节流D.字符流5.下列叙述中,错误的是_。(分数:2.00)A.Java Application 与 Applet 所用编译命令相同B.通常情况下 Java Application 只能有一个 main()方法C.Java Applet 必须有 HTML 文件才能运行D.Java Applet 程序的 class 文件可用 Java 命令运行6.下列方法中能完成主类实例初始化工作的是 _ 。(分数:2.0
4、0)A.start()B.stop()C.init()D.paint()7.Java 语言中如果要使用某个包中的类时,需要使用_导入。(分数:1.80)A.inportB.outportC.importD.input8.若定义 int a=2,b=2,下列表达式中值不为 4 的是 _ 。(分数:2.00)A.a*(+b)B.a*(b+)C.a+bD.a*b9.下列可以获得构件前景色的方法是_。(分数:1.80)A.getsize()B.getForeground()C.getBackground()D.paint()10.下列说法中错误的是 _ 。(分数:2.00)A.TextArea 可以显
5、示多行多列的文本B.TextField 可以显示多行多列的文本C.在单行文本输入区中按下回车键会触发 ActionEvent 事件D.单行和多行文本区都可以通过方法 setEditable(Boolean)来设定只读属性11.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是_。(分数:1.00)A.编辑软件B.操作系统C.教务管理系统D.浏览器12.在下列程序的空白处,应填入的正确选项是_。 import java. io. * ; Public class writeInt Public static void main(stringa) IntmyArr
6、ay=10,20,30,40); try DataOutputSystem dos=new DataOutputSystem (new FileOutputSystem(“ints. dat“); for(int i=0; IMYARRAY. LENGTH. I+) dos. writeInt(myArrayi); dos. _; System. out. println (“Have written binary file ints. dat“); Catch(IOException ioe) System. out. println(“IO Exception“); (分数:1.80)A.
7、start()B.close()C.read()D.write()13.有两个关系 R 和 T 如下: (分数:2.00)A.选择B.投影C交D并14.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是_。(分数:2.00)A.概要设计B.详细设计C.可行性分析D.需求分析15.如果线程正处于运行状态,可使线程进入阻塞状态的方法是_。(分数:2.00)A.yield()B.start()C.wait()D.notify()16.阅读下面程序 public class VariableUse public static void main(String arqs) int
8、 a; if(a=8) int b=9; System.out.println(“a=“+a); System.out.println(“b=“+b); System.out.println(“a=“+a); System.out.println(“b=“+b): 该程序在编译时的结果是(分数:2.00)A.变量 a 未赋值B.第二个 System.out.println(“b=“+b);语句中,变量 b 作用域有错C.第二个 System.out.println(“a=“+a);语句中,变量 a 作用域有错D.第一个 System.out.println(“b=“+b);语句中,变量 b 作
9、用域有错17.下列说法中, _ 是正确的。(分数:2.00)A.子类拥有的成员数目大于等于父类拥有的成员数目B.父类代表的对象范围比子类广C.子类要调用父类的方法,必须使用 super 关键字D.一个 Java 类可以有多个父类18.下列关于 Applet 中的归档文件叙述不正确的是_。(分数:1.00)A.使用归档文件的好处是减少 HTTP 的连接次数,从而大大减少了 Applet 整体的下载时间B.所有的浏览器都识别相同的归档文件格式和指定归档文件的 HTML 代码C.归档文件是一种压缩文件,使用它也减少了文件的传输时间D.使用 JDK 的 jar 工具创建 JAR 文件19.请阅读如下程
10、序。 import java.io.*; public class ExceptionCatch public static void main (String args) try FileInputStream fis=new FilelnputStream (“text“); System.out.println (“content of text is: “); catch (FileNotFoundException e) System.out.println (e); System.out.println (“message:“+e.getMessageQ); e.printStac
11、kTrace (System.out); _; System.out.println (e); 为保证程序正确运行,程序中下划线处的语句应是_。(分数:2.00)A.catch(FileInputStream s)B.printStackTrace()C.catch(IOException e)D.System.out.println(e)20.有如下三个关系 R、S 和 T: (分数:1.80)A.笛卡儿积B交C并D.自然连接21.关于数组,下列说法中不正确的是_。(分数:3.00)A.数组的元素可以是值(基本数据类型)、对象或其他数组B.数组是最简单的复合数据类型,是一系列数据的集合C.定
12、义数组时,必须分配内存D.一个数组中的所有值必须是相同的类型22.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(分数:2.00)A.概要设计B.详细设计C.可行性分析D.需求分析23.若数组 a 定义为 inta=newint34,则 a 是 _ 。(分数:2.00)A.一维数组B.二维数组C.三维数组D.四维数组24.Java 程序的解释执行过程分为( )。(分数:2.00)A.代码的装入、校验、执行B.代码的校验、装入、执行C.代码的校验、装入、执行D.代码的装入、执行、校验25.下列选项中不属于结构化程序设计原则的是_。(分数:2.00)A.可封装B.自顶向
13、下C.模块化D.逐步求精26.在下列代码的下面线处应填入的内容是_。 public class FirstSample public static void main(_args) System. out. println(“你好!“); (分数:1.80)A.staffB.doubleC.intD.String27.在一个应用程序中有如下定义:int a=1,2,3,4,5,6,7,8,9,10:,为了打印输出数组 a的最后一个元素,下面正确的代码是 _ 。(分数:2.00)A.System.out.println(a10;)B.System.out.pdntln(a9);C.System.
14、out.println(aa.length);D.System.out.println(a8);28.按照“先进先出”原则组织数据的结构是_。(分数:2.00)A.队列B栈C.双向链表D.二叉树29.运行以下程序后,如果从键盘上输入 65 14回车,则输出结果为 _ 。 void main() int m,n; printf(“Enter m,n:“); scanf(“%d%d“,m,n); while(m!=n) while(mn)m-=n, while(nm)n-=m; printf(“m=%d/n“,m); (分数:2.00)A.m=3B.m=2C.m=1D.m=030.下列关于字符串的
15、叙述错误的是 _ 。(分数:2.00)A.创建了字符串对象后,字符串所代表的文本根据情况可改变B.字符串由 java.lang.Stfing 和 java.lang.StringBuffer 定义C.字符串常用数组存储,处理字符串实际上就是对数组元素分别处理,要注意数组下界不要越界D.在 Java 语言中,字符串是作为对象来处理的31.下列方法中,声明抛出 InterruptedException 类型异常的方法是_。(分数:2.00)A.suspend()B.resume()C.sleep()D.start()32.下列关于 Applet 生命周期的说法,正确的是 _ 。(分数:2.00)A
16、.void init()在 Applet 下载前调用B.void start()只在初始化之后调用C.void stop()在关闭浏览器时调用D.stop()总在 void destroy()之前被调用33.Applet 是一种特殊的 _ 。(分数:1.00)A.应用程序B.HTMLC.脚本语言D.图形软件34.下面的程序执行后,屏幕上显示的应是 _ 。 Pubhc class Exam public static void main(String args) charchar1=“t“,“e“,“s“,“t“; charchat2=“t“,“e“,“s“,“t“,“1“ Sbing s1=n
17、ew String(char1); String s2=new String(char2,0,4); System.out.println(s1.equals(s2); (分数:2.00)A.trueB.falseC.testD.编译错误35.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是 _ 。(分数:1.00)A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca36.下面程序段的输出结果为_。 public class Test int a, b; Test() a=100; b=200; T
18、est(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 Obj2=new Test(); System. out. println(“a=“+Obj2. a+“b=“+Obj2. b); (分数:1.80)A.a=100 b=200a=12 b=45B.a=12 b=45a=100 b=200C.a=12 b=200a=100 b=45D.a=100 b=45a
19、=12 b=200计算机二级 JAVA-171 答案解析(总分:67.40,做题时间:90 分钟)一、选择题(总题数:36,分数:67.40)1.阅读如下程序。 class Test implements Runnable public static void main(String args; Test t=new Test(); t.start(); public void run() 下列关于上述程序的叙述正确的是_。(分数:2.00)A.程序不能通过编译,因为 start()方法在 Test 类中没有定义 B.程序编译通过,但运行时出错,提示 start()方法没有定义C.程序不能通过
20、编译,因为 run()方法没有定义方法体D.程序编译通过,且运行正常解析:解析 新建的线程不会自动运行,必须调用线程的 start()方法,该方法把嵌入在线程中的虚拟CPU 置为可运行状态,使其可以被 JVM 运行。本题中的程序缺少 start()方法的定义,所以不能通过编译。2.下面程序的输出结果是_。 #include stdio.h main() int x=10; int x=20; printf(“%d,“,x); printf(“%d/n“, x); (分数:2.00)A.10, 20B.20, 10 C.10, 10D.20, 20解析:3.阅读下列代码: public clas
21、s Person static int arr=new int10; public static void main(String args) System. out. printlnarrD); 该代码的运行结果是_。(分数:1.80)A.编译时将产生错误B.编译时正确,运行时将产生错误C.输出零 D.输出空解析:解析 arr为整型数组,分配地址后默认值为 0,所以创建数组时也是对每个数组元素赋初值0。4.Java 中的抽象类 Reader 和 Writer 所处理的流是_。(分数:1.80)A.图像流B.对象流C.字节流D.字符流 解析:解析 Reader/writer 所处理的流是字符流
22、,InputStrearn/OutputStream 的处理对象是字节流。5.下列叙述中,错误的是_。(分数:2.00)A.Java Application 与 Applet 所用编译命令相同B.通常情况下 Java Application 只能有一个 main()方法C.Java Applet 必须有 HTML 文件才能运行D.Java Applet 程序的 class 文件可用 Java 命令运行 解析:解析 JavaApplet 程序必须有 HTML 文件才能运行,它和一般的 Java Application 运行机制不同,比较复杂,其中的.class 文件不可用 Java 命令运行。6
23、.下列方法中能完成主类实例初始化工作的是 _ 。(分数:2.00)A.start()B.stop()C.init() D.paint()解析:解析 本题考查对 Applet 必须要重载的几个方法的理解。选项 A 错误,start()方法使得程序从初始态进入运行态,当浏览器从图标状态恢复为窗口时,或者当用户离开包含 Applet 的主页后又再返回时,系统都会自动再执行一遍 start()方法。选项 B 错误,stop()方法是和 start()方法相对应的,当浏览器变成图标或者是用户离开 Applet 所在页面时,浏览器都会调用 stop()方法,该方法也是可以被多次调用的。选项 C 正确,当创
24、建 JavaApplet 且第一次使用支持 Java 的浏览器载入该 Applet 时,就会执行init()方法,通常在这方法中执行一次性的初始化操作。选项 D 错误,paint()方法是画图时必须要重载的方法。7.Java 语言中如果要使用某个包中的类时,需要使用_导入。(分数:1.80)A.inportB.outportC.import D.input解析:解析 本题考查包的导入和使用。首先用 package 语句说明一个包,该包的层次结构必须与文件目录的层次相同,否则,在编译时可能出现找不到包的问题。Java 语言中 java. lang 包是编译器自动导入,其他包中的类必须用 impo
25、rt 导入。8.若定义 int a=2,b=2,下列表达式中值不为 4 的是 _ 。(分数:2.00)A.a*(+b) B.a*(b+)C.a+bD.a*b解析:解析 +b,先自加,再计算,即 a*(+b)等价于 b=b+1;a*b。9.下列可以获得构件前景色的方法是_。(分数:1.80)A.getsize()B.getForeground()C.getBackground()D.paint() 解析:解析 A 是获得控件大小,B 是获得构件的前景色,C 是获得构件的背景色,D 是继承 Applet 的子类需要实现的方法。10.下列说法中错误的是 _ 。(分数:2.00)A.TextArea
26、可以显示多行多列的文本B.TextField 可以显示多行多列的文本 C.在单行文本输入区中按下回车键会触发 ActionEvent 事件D.单行和多行文本区都可以通过方法 setEditable(Boolean)来设定只读属性解析:解析 TextField 是单行文本区,只能显示单行文本。11.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是_。(分数:1.00)A.编辑软件B.操作系统 C.教务管理系统D.浏览器解析:解析 编辑软件和浏览器属于工具软件,教务系统是应用软件。12.在下列程序的空白处,应填入的正确选项是_。 import java. io.
27、 * ; Public class writeInt Public static void main(stringa) IntmyArray=10,20,30,40); try DataOutputSystem dos=new DataOutputSystem (new FileOutputSystem(“ints. dat“); for(int i=0; IMYARRAY. LENGTH. I+) dos. writeInt(myArrayi); dos. _; System. out. println (“Have written binary file ints. dat“); Catc
28、h(IOException ioe) System. out. println(“IO Exception“); (分数:1.80)A.start()B.close() C.read()D.write()解析:解析 close 方法关闭写文件。13.有两个关系 R 和 T 如下: (分数:2.00)A.选择B.投影C交D并 解析:解析 关系的选择运算是指从关系 R 中得到满足给定条件的元组组成新的关系。由题可以看出,T 是由满足条件 R.B=T.B and R.C=T.C 进行选择得到的。14.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是_。(分数:2.00)A.
29、概要设计B.详细设计C.可行性分析D.需求分析 解析:解析 在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么的问题。本题的正确答案为 D。15.如果线程正处于运行状态,可使线程进入阻塞状态的方法是_。(分数:2.00)A.yield()B.start()C.wait() D.notify()解析:解析 线程调用 wait()方法时,线程由运行状态进入阻塞状态。16.阅读下面程序 public class VariableUse public static void main(String arqs) int a
30、; if(a=8) int b=9; System.out.println(“a=“+a); System.out.println(“b=“+b); System.out.println(“a=“+a); System.out.println(“b=“+b): 该程序在编译时的结果是(分数:2.00)A.变量 a 未赋值B.第二个 System.out.println(“b=“+b);语句中,变量 b 作用域有错 C.第二个 System.out.println(“a=“+a);语句中,变量 a 作用域有错D.第一个 System.out.println(“b=“+b);语句中,变量 b 作用
31、域有错解析:解析 局部变量定义在复合语句内,其作用域为定义开始到符合语句结束。所以 b 的作用域为从变量 b 开始定义到第一个大括号括回的地方,因而第二个输出 b 的语句访问不到变量 b。17.下列说法中, _ 是正确的。(分数:2.00)A.子类拥有的成员数目大于等于父类拥有的成员数目B.父类代表的对象范围比子类广 C.子类要调用父类的方法,必须使用 super 关键字D.一个 Java 类可以有多个父类解析:18.下列关于 Applet 中的归档文件叙述不正确的是_。(分数:1.00)A.使用归档文件的好处是减少 HTTP 的连接次数,从而大大减少了 Applet 整体的下载时间B.所有的
32、浏览器都识别相同的归档文件格式和指定归档文件的 HTML 代码 C.归档文件是一种压缩文件,使用它也减少了文件的传输时间D.使用 JDK 的 jar 工具创建 JAR 文件解析:解析 不是所有的浏览器都识别相同的归档文件格式和指定归档文件的 HTML 代码。19.请阅读如下程序。 import java.io.*; public class ExceptionCatch public static void main (String args) try FileInputStream fis=new FilelnputStream (“text“); System.out.println (“
33、content of text is: “); catch (FileNotFoundException e) System.out.println (e); System.out.println (“message:“+e.getMessageQ); e.printStackTrace (System.out); _; System.out.println (e); 为保证程序正确运行,程序中下划线处的语句应是_。(分数:2.00)A.catch(FileInputStream s)B.printStackTrace()C.catch(IOException e) D.System.out.
34、println(e)解析:解析 题中程序的最后一个语句体“System.out.println(e);”表示另一个 catch 从句的开始,catch 从句由 catch 引导,并且要先捕获异常,所以选项 C 正确。20.有如下三个关系 R、S 和 T: (分数:1.80)A.笛卡儿积B交C并D.自然连接 解析:解析 在实际应用中,最常用的连接是一个叫自然连接的特例。它满足下面的条件:两关系间有公共域:通过公共域的相等值进行连接。通过观察 3 个关系 R、S 和 T 的结果可知,关系 T 是由关系 R 和S 进行自然连接得到的。21.关于数组,下列说法中不正确的是_。(分数:3.00)A.数组
35、的元素可以是值(基本数据类型)、对象或其他数组B.数组是最简单的复合数据类型,是一系列数据的集合C.定义数组时,必须分配内存 D.一个数组中的所有值必须是相同的类型解析:解析 定义数组时,并不分配内存,所以不要求给出数组元素的个数,而是到使用的时候才决定数组的大小。22.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(分数:2.00)A.概要设计B.详细设计C.可行性分析D.需求分析 解析:解析 在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么的问题。本题的正确答案为 D。23.若数
36、组 a 定义为 inta=newint34,则 a 是 _ 。(分数:2.00)A.一维数组B.二维数组 C.三维数组D.四维数组解析:解析 二维数组有两种定义方式:typearrayName;typearrayName;从题目中的语句可以看出,本题定义了一个二维数组。24.Java 程序的解释执行过程分为( )。(分数:2.00)A.代码的装入、校验、执行 B.代码的校验、装入、执行C.代码的校验、装入、执行D.代码的装入、执行、校验解析:解析 该题考查考生对 Java 程序的解释执行过程的掌握。解释执行过程分 3 步进行:代码的装入,装入代码的工作由“类装载器”完成;代码的校验,被装入的代
37、码由字节码校验器进行检查;代码的执行,通过校验后,代码便开始执行了。25.下列选项中不属于结构化程序设计原则的是_。(分数:2.00)A.可封装 B.自顶向下C.模块化D.逐步求精解析:解析 结构化程序设计原则包括模块化、自顶向下分解、逐步求精的原则。26.在下列代码的下面线处应填入的内容是_。 public class FirstSample public static void main(_args) System. out. println(“你好!“); (分数:1.80)A.staffB.doubleC.intD.String 解析:解析 这是学习 Java 语言接触的第一个程序,m
38、ain 函数的参数是 String args。27.在一个应用程序中有如下定义:int a=1,2,3,4,5,6,7,8,9,10:,为了打印输出数组 a的最后一个元素,下面正确的代码是 _ 。(分数:2.00)A.System.out.println(a10;)B.System.out.pdntln(a9); C.System.out.println(aa.length);D.System.out.println(a8);解析:28.按照“先进先出”原则组织数据的结构是_。(分数:2.00)A.队列 B栈C.双向链表D.二叉树解析:队列是一种特殊的线性表示,只允许在表的一端插入元素;在表的
39、另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”;先插入的元素先被删除,是按“先进先出”的原则组织数据的。29.运行以下程序后,如果从键盘上输入 65 14回车,则输出结果为 _ 。 void main() int m,n; printf(“Enter m,n:“); scanf(“%d%d“,m,n); while(m!=n) while(mn)m-=n, while(nm)n-=m; printf(“m=%d/n“,m); (分数:2.00)A.m=3B.m=2C.m=1 D.m=0解析:30.下列关于字符串的叙述错误的是 _ 。(分数:2.00)A.创建了字符串对象后,
40、字符串所代表的文本根据情况可改变 B.字符串由 java.lang.Stfing 和 java.lang.StringBuffer 定义C.字符串常用数组存储,处理字符串实际上就是对数组元素分别处理,要注意数组下界不要越界D.在 Java 语言中,字符串是作为对象来处理的解析:31.下列方法中,声明抛出 InterruptedException 类型异常的方法是_。(分数:2.00)A.suspend()B.resume()C.sleep() D.start()解析:解析 如果一个线程在调用 sleep()、join()、wait()等方法被阻塞时,就会抛出InterruptedExcepti
41、on 类型异常。32.下列关于 Applet 生命周期的说法,正确的是 _ 。(分数:2.00)A.void init()在 Applet 下载前调用B.void start()只在初始化之后调用C.void stop()在关闭浏览器时调用D.stop()总在 void destroy()之前被调用 解析:33.Applet 是一种特殊的 _ 。(分数:1.00)A.应用程序 B.HTMLC.脚本语言D.图形软件解析:34.下面的程序执行后,屏幕上显示的应是 _ 。 Pubhc class Exam public static void main(String args) charchar1=
42、“t“,“e“,“s“,“t“; charchat2=“t“,“e“,“s“,“t“,“1“ Sbing s1=new String(char1); String s2=new String(char2,0,4); System.out.println(s1.equals(s2); (分数:2.00)A.true B.falseC.testD.编译错误解析:35.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是 _ 。(分数:1.00)A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca 解析:36
43、.下面程序段的输出结果为_。 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 Obj2=new Test(); System. out. println(“a=“+Obj2. a+“b=“+Obj2. b); (分数:1.80)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解析:解析 本题考查构造方法及构造方法重载。Test 类有两个构造方法,即使用了方法重载技术。不带参数的构造方法对类的实例变量进行特定数值的赋值,而带参数的构造方法根据参数对类的实例变量进行赋值。TestObj1=newTest(12,45)语句调用的是 Test (intx, inty),而 TestObj2=newTest()调用的是Test(),注意根据参数个数来区分。