1、计算机二级 Java 考试 1+2015 年及答案解析(总分:40.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是( )。(分数:1.00)A.一个算法的空间复杂度大,则其时间复杂度必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述 3 种说法都不对2.开发软件时对提高开发人员工作效率至关重要的是( )。(分数:1.00)A.操作系统的资源管理功能B.先进的软件开发工具和环境C.程序员的数量D.计算机的并行处理能力3.程序设计语言的基本成分是数据成分、运算成分、控制成分和( )。(分数:
2、1.00)A.对象成分B.变量成分C.语句成分D.传输成分4.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。(分数:1.00)A.125B.n/2C.nD.n+l5.有下列二叉树,对此二叉树前序遍历的结果为( )。 (分数:1.00)A.XZCYABB.XYZABCC.XYABCZD.XYAZBC6.下列叙述中正确的是( )。(分数:1.00)A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述 3 种说法都不对7.软件工程的理论和技术性研究的内容主要
3、包括软件开发技术和( )。(分数:1.00)A.消除软件危机B.软件工程管理C.程序设计自动化D.实现软件可重用8.在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )。(分数:1.00)A.调用语句B.命令C.H 令D.消息9.下列选项中,是软件调试技术的是( )。(分数:1.00)A.错误推断B.集成测试C.回溯法D.边界值分析10.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是( )。(分数:1.00)A.DB 包括 DBS 和 DBMSB.DBMS 包括 DB 和 DBSC.DBS 包括 DB 和 DBMSD.没有任何关系11.下列( )不是高级
4、程序设计语言。(分数:1.00)A.FORTRANB.JavaC.C+D.VisualASM12.16 根地址总线的寻址范围是( )。(分数:1.00)A.531KBB.64KBC.640KBD.1MB13.在一所大学中,每个系都有自己的局域网,则连接各个系的校园网( )。(分数:1.00)A.是广域网B.还是局域网C.是地区网D.这些局域网不能互连14.下列关于信息加密的叙述中,正确的是( )。(分数:1.00)A.加密通过加密算法实现B.加密前的文件称为密文C.加密后的文件称为明文D.将明文变为密文的过程称为解密15.下列关于域名和 IP 地址的叙述中,不正确的是( )。(分数:1.00)
5、A.在 Internet 中访问一台主机必须使用它的主机名B.200.201.202.203 是一个 C 类 IP 地址C.IP 地址采用的是分层结构D.主机名与 IP 地址是一一对应的16.Java 语言中。负责并发管理的机制是( )。(分数:1.00)A.垃圾回收B.虚拟机C.代码安全D.多线程17.下列描述中,错误的是( )。(分数:1.00)A.Java 要求编程者管理内存B.Java 的安全性体现在多个层次上C.Applet 要求在支持 Java 的浏览器上运行D.Java 有多线程机制18.Java 为移动设备提供的平台是( )。(分数:1.00)A.J2MEB.J2SEC.J2E
6、ED.JDK5.019.JDK 中提供的文档生成器是( )。(分数:1.00)A.javadoc.exeB.javap.exeC.java.exeD.javaprof.exe20.下列不属于 Swing 中构件的是( )。(分数:1.00)A.JPanelB.JTableC.MenuD.JFrame21.阅读下面程序 importjava.io.*; public class TypeTransition public static void main(String args) char a=h; int i=100 ; int J=97; int aa=a+i; System.out.pri
7、ntln(“aa=“+aa); char bb=(char)j; System.out.println(“bb=“+bb): 如果输出结果的第二行为 bb=a,那么第一行的输出结果是( )。(分数:1.00)A.aa=IB.aa=204C.aa=vD.aa=15622.阅读下面程序 public class Operators And Expressions( void equals Methodl() Stringsl 一 new String(“how are you“); Strings2=new String(“how are you“); System.out.println(s1=
8、 =s2): public static void main(String args) Operators And Expressions Oper And Exp=new Oper- ators And Expressions (); /用于复合类型数据的”= =”运算符 OperAndExp.equalsMethodl(); 程序运行结果是( )。(分数:1.00)A.= =B.trueC.falseD.equal23.阅读下面代码 if(x= =0)System.out.println(“冠军“);) elseif(x一 3)System.Out.println(“亚军“); elseS
9、ystem.out.println(“季军“); 若要求打印字符串”季军”,则变量 X 的取值范围是( )。(分数:1.00)A.x=d elseSystem.out.println(“季军“); 若要求打印字符串”季军”,则变量 X 的取值范围是( )。(分数:1.00)A.x=d当 x 的值不等于 0 且不大干-3,也就是 X 的值不等于 0 同时 x 的值小于等于-3 时,则输出“季军“。经过上述分析可知,要想输出“季军“,x 所满足的条件为 x!=OContainerAdapter 容器适配器;FocusAdapter 焦点适配器;MouseAdapter 鼠标适配器;KeyAdapt
10、er 键盘适配器WindowAdapter 窗口适配器,由此可知本题答案为 D。26.下列类中属于字节输入抽象类的是( )。(分数:1.00)A.FileInputStreamB.ObjectInputStreamC.FiterInputStreamD.InputStream 解析:解析:在 Java 中定义了两种类型的流,字节型和字符型,这两种流分别用 4 个抽象类表示:InputStream,OutputStream,Reader,Writer,其中 InptutStream 和 OutStream 表示字节流,Reader和 Reader 是表示字符流,所以字节输入抽象类为 Inptut
11、Stream。27.能向内部直接写入数据的流是( )。(分数:1.00)A.FileOutputStreamB.FileInputStreamC.ByteArrayOutputStream D.ByteArraylnputStream解析:解析:本题考查 Java 的内存读写。在 java.io 中,还提供了 ByteArrayInputStream、ByteArrayoutputStream 和 StringBufferInputStream 类可直接访问内存,它们是 InputStream 和 OutputStream 的子类。用 ByteArrayOutputStream 可向字节数组写
12、入数据;ByteArrayInputStream 可从字节数组中读取数据。28.下列运算符中属于关系运算符的是( )。(分数:1.00)A.= = B.=C.+ =D.- =解析:解析:本题考查 Java 的关系运算符。B 中写法不正确,C、D 均为赋值运算符。29.下列方法中,声明抛出 InterruptedException 类型异常的方法是( )。(分数:1.00)A.suspend()B.resume()C.sleep() D.start()解析:解析:本题考查线程的基本操作。Java 中提供了 interrupt 方法用来中断一个线程,当调用一个线程的 interrupt 方法时,即
13、向该线程发送一个中断请求。在调用线程的 interrupt 方法时,如果该线程由于调用了 sleep 方法或 wait 方法而正在处于阻塞状态,那么线程会抛出一个 InterruptException 异常。30.下列关于 System 类的叙述中,错误的是( )。(分数:1.00)A.System 类是一个 final 类B.System 类不能实例化C.System 类中没有定义属性 D.System 类主要提供了系统环境参数的访问解析:解析:本题考查 System 类的基本知识。Systern 类是一个 final 类,所有的方法都用类变量来调用,对 System 类不可能实例化。Sys
14、tem 类主要用来提供标准输入/输出和系统环境信息的访问设置。而System 类的属性有:public static final InputStream in;标准输入;publicstatic final OutputStream out;标准输出;pubhc static finalPrintStream err;标准错误输出。31.阅读下面程序 public class Increment public static void main(stringargs) int C; c=5: System.out.println(c); System.out.println(c+): Syste
15、m.out.println(c); 程序运行结果是( )。(分数:1.00)A.566B.556 C.677D.666解析:解析:本题考查的是 Java 增量运算符“+“。 x+是先使用后加 l,即首先使用 X 的值进行表达式的计算,然后才对 x 的值加 1。而+x 是先加 1 后使用,即首先对 x 的值加 1,然后使用 x 的值进行表达式的计算。本题首先生成一个整型变量 C,其初始值为 5。第一条输出语句输出 c 的初始值,即 5。然后,第二条输出表达式 c+的结果,即先输出 C 的值,然后才对 c 的值加 1,所以,第二条输出语句输出的是5,输出后 c 的结果才为 6。最后一条输出语句输出
16、结果为 6。因此,本题的正确答案为 B。32.下列叙述中,错误的是( )。(分数:1.00)A.JavaApplication 与 Applet 所用编译命令相同B.通常情况下 JavaApplication 只能有一个 main()方法C.JavaApplet 必须有 HTML 文件才能运行D.JavaApplet 程序的.class 文件可用 Java 命令运行 解析:解析:本题考查的是 Java 中的 Applet 以及 Applet 与 Application 的区别。Applet 是能够嵌入HTML 语言中,并能够在浏览器中运行的类。Applet 的运行环境是 Web 浏览器,所以必
17、须建立 HTML 文件,告诉浏览器如何加载与运行 Applet。因为 Applet 是不能直接通过 Java 命令行启动运行的。所以选项 D的说法错误。33.下列关于 Java 语言中线程的叙述中,正确的是( )。(分数:1.00)A.线程由代码、数据、内核状态和一组寄存器组成B.线程间的数据是不共享的C.用户只能通过创建 Thread 类的实例或者定义和创建 Thread 子类的实例,建立和控制自己的线程D.因多线程并发执行而引起的执行顺序的不确定性可能造成执行结果的不确定 解析:解析:本题考查线程的基本知识。线程与进程在概念上是相关的,线程是由表示程序运行状态的寄存器、程序计数器、栈指针以
18、及堆栈组成,它不包含进程地址空间中的代码和数据。代码所操作的数据是Java 线程模型中的一个组成部分,数据与代码是独立的。数据可以被多个线程共享,也可不共享。Java语言中提供两种创建线程的方法,一种是通过继承 Thread 类创建线程,另一种是通过实现 Runnable 接口来创建线程。34.处理对象传输的接口是( )。(分数:1.00)A.Serializable B.C:loneableC.hemListenerD.ActionListener解析:解析:处理对象传输就是把对象串行化。Java 语言中,如果要串行化某些类的对象,这些类就必须实现 Serializable 接口。35.在读
19、取二进制数据文件的记录时,为了提高效率常常使用的一种辅助类是( )。(分数:1.00)A.InputStreamB.FileInputStreamC.StringBuffer D.BufferedReader解析:解析:本题考查 Java 语言的输入/输出流。InputStream 类、FilelnputStream 类和BufferedReader 类都是 Java 语言中和输入输出直接相关的类,不属于辅助类,因此可以直接判断出选项C 为正确答案。36.在 Applet 中显示文字、图形等信息时,应使用的方法是( )。(分数:1.00)A.init()B.start()C.paint() D
20、.destroy()解析:解析:paint()是与 Applet 显示相关的方法,由它来具体执行 Applet 的绘制功能。init()方法用于初始化 Applet,start()方法用于激活 Applet。在 init()方法完成后,将调用 start()方法,而且在Applet 每次显示时都要调用。destroy()方法用于彻底终止 Applet。37.关于线程的生命周期以下状态正确的是( )。(分数:1.00)A.新建状态、可运行状态、阻塞状态、恢复状态和终止状态B.新建状态、运行状态、阻塞状态、恢复状态和终止状态C.新建状态、可运行状态、运行状态、阻塞状态和终止状态 D.新建状态、可运
21、行状态、运行状态、恢复状态和终止状态解析:解析:线程生命周期中出现的状态包括:新建状态、可运行状态、运行状态、阻塞状态和终止状态。38.Thread 类中能运行线程的方法是( )。(分数:1.00)A.resume()B.start()C.run() D.init()解析:解析:resume()是 Thread 类提供的用于线程控制的方法;start()是 Thread 类中的方法,新建的线程不会自动运行,必须调用线程的 start()方法才能运行该线程;run()是 Thread 类中的方法,在该方法中定义了线程的具体行为,线程开始执行时,就是从它的 run()方法开始执行的,就像 Java 应用程序从main()开始、Applet 从 ink()开始一样;init()不是 Thread 类中的方法。39.以下不是 APPLET 标记的选项是( )。(分数:1.00)A.PARAMB.BODY C.CODEBASED.ALT解析:40.在 Java 中,与数据库连接的技术是( )。(分数:1.00)A.开放数据库连接B.Java 数据库连接 C.数据库厂家驱动程序D.数据库厂家的连接协议解析: