1、二级 JAVA 笔试-290 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.软件调试的目的是(分数:2.00)A.发现错误B.改正错误C.改善软件的性能D.验证软件的正确性2.阅读下面程序public class ConcatTest public static void main(String args) String str1=“abc“;String str2=“ABC“:String str3=str1.concat(str2);System.out.println(str3);程序运行的结果是(分数:2.00)A.abcB.AB
2、CC.abcABCD.ABCabc3.冒泡排序在最坏情况下的比较次数是(分数:2.00)A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/24.阅读下面程序public class Test3 public static void main(String args) int x=3,y=4,z=5;String s=“xyz“:System.out.println(s+x+y+z);程序运行的结果是(分数:2.00)A.xyz12B.xyz345C.xyzxyzD.12xyz5.要在 HTML 文件中嵌入 Applet,在applet标记中必须定义的是(分数:2.00)A.App
3、let 字节码文件的 URLB.Applet 显示区域的高度和宽度C.Applet 字节码的文件名D.选项 B 和选项 C6.下列语句中执行跳转功能的语句是(分数:2.00)A.for 语句B.while 语句C.continue 语句D.switch 语句7.下列运算符中不能进行位运算的是(分数:2.00)A.B.C.D.8.下列方法中,声明抛出 InterruptedException 类型异常的方法是(分数:2.00)A.suspended()B.resume()C.sleep()D.start()9.内部类不可直接使用外部类的成员是(分数:2.00)A.静态成员B.实例成员C.方法内定
4、义D.以上 3 个选项都不是10.下面程序中需要对 Empleyee 的对象进行存储,请在下画线处填入正确的选项。class Employee implements _ (分数:2.00)A.ComparableB.SerializableC.CloneableD.DataInput11.阅读下面程序public class Test4 public static void main(String args) int 1=10,j=3;float m=213.5f,n=4.0f;System.out.println(i%j);System.out.println(m%n);程序运行的结果是(分
5、数:2.00)A.1.0 和 1.5B.1 和 1.5C.1.0 和 2.5D.1 和 2.512.数组中各个元素的数据类型是(分数:2.00)A.相同的B.不同的C.部分相同的D.任意的13.下列叙述中正确的是(分数:2.00)A.为了建立一个关系,首先要构造数据的逻辑关系B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项C.一个关系的属性名表称为关系模式D.一个关系可以包括多个二维表14.如果用户定义的 Applet 类中没有 init()方法,则该程序(分数:2.00)A.必须定义一个 main()方法B.无法提供编泽C.可以提供编译,但运行时将出错D.可以提供编译,并且能够正
6、常运行15.在 JDK 目录中,Java 程序运行环境的根目录是(分数:2.00)A.binB.demoC.libD.jre16.如果线程正处于运行状态,可使该线程进入阻塞状态的方法是(分数:2.00)A.yield()B.start()C.wait()D.notify()17.下列适配器类中不属于事件适配器的是(分数:2.00)A.MouseAdapterB.KeyAdapterC.ComponentAdapterD.FrameAdapter18.下列叙述中正确的是(分数:2.00)A.数据的逻辑结构与存储结构必定是一一对应的B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定
7、是线性结构C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D.以上三种说法都不对19.下列叙述中正确的是(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库技术的根本目标是要解决数据的共享问题C.数据库管理系统就是数据库系统D.以上三种说法都不对20.能向内存直接写入数据的流是(分数:2.00)A.FileOutputStreamB.FileInputStreamC.ByteArrayOutputStreamD.ByteArrayInputStream21.阅读下面程序public class Test1 public static voi
8、d main(String args) System.out.println(34+56-6);System.out.println(26*2-3);System.out.println(3*4/2);System.out.println(5/2);程序运行的结果是(分数:2.00)A.844962B.902562.5C.8423122D.6849142.522.一棵二叉树中共有 70 个叶子结点与 80 个度为 1 的结点,则该二叉树中的总结点数为(分数:2.00)A.219B.221C.229D.23123.在面向对象方法中,实现信息隐蔽是依靠(分数:2.00)A.对象的继承B.对象的多态
9、C.对象的封装D.对象的分类24.阅读下面程序import java.io.*;public class ByteStreamTest public static void main(String args) int myArray=10,20,30,40;try DataOutputStream dos=new DataOutputStream(new _(“ints.dat“);for(int i=0;imyArray.length;i+)dos.writeInt(myArrayi);dos.close();System.out.println(“Have written binary f
10、ile ints.dat“);catch(IOException ioe) System.out.println(“IOException“);为保证程序正确运行,在程序中下画线处应填人的代码是(分数:2.00)A.FileOutputStreamB.ByteArrayOutputStreamC.BufferedOutputStreamD.FileWriter25.下列类中属于字节输入抽象类的是(分数:2.00)A.FileInputStreamB.ObjectInputStreamC.FilterInputStreamD.InputStream26.阅读下面程序class Test impl
11、ements 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()方法没有定义方法体D.程序编译通过,且运行正常27.下列运算符中属于关系运算符的是(分数:2.00)A.=B.=C.+=D.-=28.如果使用 Thread t=new Test(
12、)语句创建一个线程,则下列叙述正确的是(分数:2.00)A.Test 类一定要实现 Runnable 接口B.Test 类一定是 Thread 类的子类C.Test 类一定是 Runnable 类的子类D.Test 类一定是继承 Thread 类,并且实现 Runnable 接口29.下列布尔变量定义中,正确并且规范的是(分数:2.00)A.BOOLEAN canceled=false;B.boolean canceled=false;C.boolean CANCELED=false;D.boolean canceled=FALSE;30.如果要在 Applet 中显示特定的文字、图形等信息,
13、可以在用户定义的 Applet 类中重写的方法是(分数:2.00)A.paint()B.update()C.drawString()D.drawLine()31.软件是指(分数:2.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合32.阅读下面程序public class Test2 public static void main(String args) int a=10,b=4.c=20,d=6;System.out.println(a+*b+c*-d);程序运行的结果是(分数:2.00)A.144B.160C.140D.16433.下列叙述中正确的是(分数
14、:2.00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对34.下列关于 System 类的叙述中,错误的是(分数:2.00)A.System 类是一个 final 类B.System 类不能实例化C.System 类中没有定义属性D.System 类主要提供了系统环境参数的访问35.下列叙述中,不符合良好程序设计风格要求的是(分数:2.00)A.程序的效率第一,清晰第二B.程序的可读性好C.程序中要有必要的注释D.输入数据前要有提示信息二、填空题(总题数:15,分数:30.00)36.软件需求规
15、格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特征,其中最重要的是 1。(分数:2.00)填空项 1:_37.在两种基本测试方法中, 1 测试的原则之一是保证所测模块中的每一个独立路径至少执行一次。(分数:2.00)填空项 1:_38.线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的 1 存储结构。(分数:2.00)填空项 1:_39.对如图所示二叉树进行中序遍历的结果为_。(分数:2.00)填空项 1:_40.在 E-R 图中,矩形表示 1。(分数:2.00)填空项 1:_41.在 java 中,所有数据类型的长度都固定,因此没有保留
16、字 1。(分数:2.00)填空项 1:_42.布尔逻辑运算符包括:!、public class DirTest public static void main(String args) File myDir=Flew File(“C:/Program Files/“);System.out.println(myDir+(_.isDirectory()?“is“:“is not“)+“a directory.“);(分数:2.00)填空项 1:_47.一个 Applet 在被加载到浏览器并完成初始化后,将被调用的方法是 1。(分数:2.00)填空项 1:_48.Java 中线程体是由线程类的 1
17、2 方法进行定义的,线程运行时,也是从该方法开始执行。(分数:2.00)填空项 1:_49.AWT 中的布局管理器包括 BorderLayout、 1、CardLayout、GridBagLayout 和 GridLayout。(分数:2.00)填空项 1:_50.Java 中线程模型由虚拟的 CPU、代码和数据构成。该模型是由 java.lang. 1 类进行定义和描述的。(分数:2.00)填空项 1:_二级 JAVA 笔试-290 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.软件调试的目的是(分数:2.00)A.发现错误B.改正错误
18、C.改善软件的性能D.验证软件的正确性解析:解析 软件测试与软件调试是两个不同的概念:软件测试的目的是发现错误,而软件调试的目的是发现错误及导致程序失效的原因,并修改程序以修正错误,调试是测试之后的活动。2.阅读下面程序public class ConcatTest public static void main(String args) String str1=“abc“;String str2=“ABC“:String str3=str1.concat(str2);System.out.println(str3);程序运行的结果是(分数:2.00)A.abcB.ABCC.abcABC D.
19、ABCabc解析:解析 String 类的 concat 方法原型为 public String concat(String str),其功能是将指定字符串连到此字符串的末尾。如果参数字符串的长度为 0,则返回此 String 对象。否则,创建一个新的String 对象,用来表示由此 String 对象表示的字符序列和由参数字符串表示的字符序列串联而成的字符序列。所以本题中的结果为 str1 和 str2 串联而成的字符序列,即“abcABC“。3.冒泡排序在最坏情况下的比较次数是(分数:2.00)A.n(n+1)/2B.nlog2nC.n(n-1)/2 D.n/2解析:解析 冒泡排序的基本思
20、想是对当前未排序的全部结点自上而下地依次进行比较和调整,让键值较大的结点下沉,键值较小的结点往上冒。也就是说,每当比较两个相邻结点后发现它们的排列与排序要求相反,就要将它们互换。对 n 个结点的线性表采用冒泡排序,冒泡排序的外循环最多执行 n-1 遍。第一遍最多执行 n-1 次比较,第二遍最多执行 n-2 次比较,以此类推,第 n-1 遍最多执行 1 次比较。因此,整个排序过程最多执行 n(n-1)/2 次比较。4.阅读下面程序public class Test3 public static void main(String args) int x=3,y=4,z=5;String s=“xy
21、z“:System.out.println(s+x+y+z);程序运行的结果是(分数:2.00)A.xyz12B.xyz345 C.xyzxyzD.12xyz解析:解析 Java 中对+运算符的功能进行了扩展,使其能够进行字符串连接。如“xyz“+“rst“结果为“xyzrst“,“xyz“+3 结果为“xyz3“。如果运算符+的第一个操作数不是字符串,则运算结果由后续的操作数决定,如 3+4+5+“xyz“的结果是“12xyz“,而不是“345xyz“。5.要在 HTML 文件中嵌入 Applet,在applet标记中必须定义的是(分数:2.00)A.Applet 字节码文件的 URL B.
22、Applet 显示区域的高度和宽度C.Applet 字节码的文件名D.选项 B 和选项 C解析:解析 Applet 是能够嵌入 HTML 页面中,并在浏览器中运行的 Java 类。Applet 的运行环境是 Web浏览器,所以不能直接通过命令行启动,必须建立 HTML 文件,告诉浏览器如何加载和运行 Applet。在浏览器中指定此 HTML 文件的 URL,就可以通过 HTML 文件启动 Applet 运行。6.下列语句中执行跳转功能的语句是(分数:2.00)A.for 语句B.while 语句C.continue 语句 D.switch 语句解析:解析 for 语句和 while 语句都是循
23、环控制语句;switch 语句是多分支语句;选项 C 的 continue语句是跳转语句,continue 语句跳过循环体中下面尚未执行的语句,回到循环体的开始继续下一轮的循环。7.下列运算符中不能进行位运算的是(分数:2.00)A.B.C.D. 解析:解析 Java 中的移位运算符包括、imyArray.length;i+)dos.writeInt(myArrayi);dos.close();System.out.println(“Have written binary file ints.dat“);catch(IOException ioe) System.out.println(“IO
24、Exception“);为保证程序正确运行,在程序中下画线处应填人的代码是(分数:2.00)A.FileOutputStream B.ByteArrayOutputStreamC.BufferedOutputStreamD.FileWriter解析:解析 二进制文件可作为 FileOutputStream 对象的构造方法的参数,而 FileOutputStream 对象作为 DataOutputStream 的构造方法的参数实现 DataOutputStream 类。在本程序中,ints.dat 二进制文件应作为 FileOutputStream 对象构造方法的参数,然后 FileOutput
25、Stream 对象作为字节输出流的形式参数。25.下列类中属于字节输入抽象类的是(分数:2.00)A.FileInputStreamB.ObjectInputStreamC.FilterInputStreamD.InputStream 解析:解析 所有的字节输入流都从 InputStream 类继承。26.阅读下面程序class Test implements Runnable public static void main(String args) Test t=new Test();t.start():public void run() 下列关于上述程序的叙述正确的是(分数:2.00)A.
26、程序不能通过编译,因为 start()方法在 Test 类中没有定义 B.程序编译通过,但运行时出错,提示 start()方法没有定义C.程序不能通过编译,因为 run()方法没有定义方法体D.程序编译通过,且运行正常解析:解析 创建线程有两种方法:实现 java.lang.Runnable 接口;继承 Thread 类并重写 run()方法。start()是 Thread 类中的方法,而本程序中的 Test 类实现了 Runnable 接口,Runnable 接口中只定义了一个抽象方法 run(),故 Test 类不能调用 start()方法。编译时会出现 start()方法未定义的错误。2
27、7.下列运算符中属于关系运算符的是(分数:2.00)A.= B.=C.+=D.-=解析:解析 选项 A 中=表示相等关系,是关系运算符;选项 B 中=是赋值运算符;选项 C 与 D 中的+=和-=为复合赋值运算符。28.如果使用 Thread t=new Test()语句创建一个线程,则下列叙述正确的是(分数:2.00)A.Test 类一定要实现 Runnable 接口 B.Test 类一定是 Thread 类的子类C.Test 类一定是 Runnable 类的子类D.Test 类一定是继承 Thread 类,并且实现 Runnable 接口解析:解析 无论通过哪种方式创建线程,都必须通过 r
28、un()方法定义线程体,因为一个线程在开始执行时,就是通过从其 run()方法开始执行的。Runnable 接口中定义了抽象 run()方法,而 Thread 类本身也实现了 Runnable 接口,所以在创建一个线程时必须实现 run()方法,即一定要实现 Runnable 接口。29.下列布尔变量定义中,正确并且规范的是(分数:2.00)A.BOOLEAN canceled=false;B.boolean canceled=false; C.boolean CANCELED=false;D.boolean canceled=FALSE;解析:解析 Java 中标识符是区分字母大小写的,bo
29、olean、false 都是关键字,变为大写后不正确,故选项 A、选项 D 都不正确。Java 中的变量名一般为小写字母,只有常量才用大写字母,所以选项 C 也不正确。30.如果要在 Applet 中显示特定的文字、图形等信息,可以在用户定义的 Applet 类中重写的方法是(分数:2.00)A.paint() B.update()C.drawString()D.drawLine()解析:解析 Applet 显示相关的方法主要有 3 个,paint()、update()、repaint()。paint()方法具体执行 Applet 的绘制,定义为 public void paint(Graph
30、ics g)。update()方法定义为:public void update(Graphics g),主要用于更新 Applet 的显示,此方法将首先清除背景,再调用 paint()方法完成Applet 的具体绘制。用户自定义的 Applet 类一般不用重写此方法。repaint()方法定义为 public void repaint(),主要用于 Applet 的重新显示,它调用 update()方法实现对 Applet 的更新。31.软件是指(分数:2.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合 解析:解析 软件是程序、数据与相关文档的集合,相对于计算
31、机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。32.阅读下面程序public class Test2 public static void main(String args) int a=10,b=4.c=20,d=6;System.out.println(a+*b+c*-d);程序运行的结果是(分数:2.00)A.144B.160C.140 D.164解析:解析 本题输出的值为 a+*b+c*-d,+、-的优先级最高,相当于(a+)*b+c*(-d),由于 a+中,+在变量 a 之后,先取值再自增,a+表达式的值为 10,(a+)*b 的值为 40;又由于-d 中,-在变量
32、d 之前,所以先自减再取值,-d 的值为 5,c *(-d)的值为 100,所以(a+)*b+c*(-d)的值为 140。33.下列叙述中正确的是(分数:2.00)A.程序执行的效率与数据的存储结构密切相关 B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对解析:解析 程序的执行效率与数据的存储结构、程序所处理的数据量、程序所采用的算法等因素有关。34.下列关于 System 类的叙述中,错误的是(分数:2.00)A.System 类是一个 final 类B.System 类不能实例化C.System 类中没有定义属性 D.System 类主
33、要提供了系统环境参数的访问解析:解析 System 类是特殊类,它是一个 final 类,所有的方法都通过变量来调用,即对 System 类不可能实例化,它主要提供标准输入/输出和系统环境信息的访问与设置。System 类中的属性有标准输入、标准输出、标准错误输出。35.下列叙述中,不符合良好程序设计风格要求的是(分数:2.00)A.程序的效率第一,清晰第二 B.程序的可读性好C.程序中要有必要的注释D.输入数据前要有提示信息解析:解析 良好的程序设计风格是“清晰第一,效率第二”。二、填空题(总题数:15,分数:30.00)36.软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修
34、改性等特征,其中最重要的是 1。(分数:2.00)填空项 1:_ (正确答案:无歧义性)解析:解析 软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。包括正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等。其中最重要的特性是无歧义性,即需求规格说明书应该是精确的、无二义的,需求说明书越精确,则以后出现错误、混淆、反复的可能性越小。37.在两种基本测试方法中, 1 测试的原则之一是保证所测模块中的每一个独立路径至少执行一次。(分数:2.00)填空项 1:_ (正确答案:白盒)解析:解析 白盒测试的基本原则:保证所测模块中每一个独立路径至少执行一次;保
35、证所测模块所有判断的每一分支至少执行一次;保证所测模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有内部数据结构的有效性。按照白盒测试的基本原则,“白盒”法是穷举路径测试。38.线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的 1 存储结构。(分数:2.00)填空项 1:_ (正确答案:链式)解析:解析 数据结构包括数据的逻辑结构和存储(物理)结构,其中逻辑结构分为线性结构和非线性结构,存储结构包括顺序结构和链式结构。在循环队列中,队尾的指针指向队首元素,是队列的链式存储结构。39.对如图所示二叉树进行中序遍历的结果为_。(分数:2.00)
36、填空项 1:_ (正确答案:ACBDFEHCP)解析:解析 二叉树中序遍历的含义:首先按中序遍历根结点的左子树,然后访问根结点,最后按中序遍历根结点的右子树,中序遍历二叉树的过程是一个递归的过程。根据题目中给出的二叉树的结构可知中序遍历的结果是 ACBDFEHGP。40.在 E-R 图中,矩形表示 1。(分数:2.00)填空项 1:_ (正确答案:实体)解析:解析 在 E-R 图中用矩形表示实体,用椭圆形表示属性,用菱形表示联系。41.在 java 中,所有数据类型的长度都固定,因此没有保留字 1。(分数:2.00)填空项 1:_ (正确答案:sizeof)解析:解析 由于 Java 中所有数
37、据类型的长度都固定,并与平台无关,因此没有 sizeof 保留字。42.布尔逻辑运算符包括:!、public class DirTest public static void main(String args) File myDir=Flew File(“C:/Program Files/“);System.out.println(myDir+(_.isDirectory()?“is“:“is not“)+“a directory.“);(分数:2.00)填空项 1:_ (正确答案:myDir)解析:解析 本程序首先创建 File 类的一个实例 myDir 对象,输出结果实际上是对文件属性的测
38、试,即是否是一个目录。File 类提供 isDirectory()方法来测定文件是否是目录,所以本题空白位置所要填入的内容就是创建的 myDir 对象。47.一个 Applet 在被加载到浏览器并完成初始化后,将被调用的方法是 1。(分数:2.00)填空项 1:_ (正确答案:start-|_|-)解析:解析 init-|_|-方法是在 Applet 被下载时调用,一般用来完成所有必需的初始化操作;start-|_|-方法是在 Applet 初始化之后以及 Applet 被重新访问时调用,使Applet 成为激活状态;因为本题要求是完成初始化后所以不是 init-|_|-方法。48.Java
39、中线程体是由线程类的 12 方法进行定义的,线程运行时,也是从该方法开始执行。(分数:2.00)填空项 1:_ (正确答案:run)解析:解析 Java 中的线程体是由线程类的 run-|_|-方法定义的,在此方法中定义线程的具体行为。当线程运行时,也是从其 run-|_|-方法开始执行的。49.AWT 中的布局管理器包括 BorderLayout、 1、CardLayout、GridBagLayout 和 GridLayout。(分数:2.00)填空项 1:_ (正确答案:FlowLayout)解析:解析 为了实现跨平台的特性并且获得动态的布局效果,Java 将容器内的所有构件安排给一个“布局管理器”负责管理,不同的布局管理器使用不同的算法和策略,容器可以通过选择不同的布局管理器来决定布局。AWT 中的布局管理器包括:BorderLayout、FlowLayout、CardLayout、GridBagLayout 和GridLayout。50.Java 中线程模型由虚拟的 CPU、代码和数据构成。该模型是由 java.lang. 1 类进行定义和描述的。(分数:2.00)填空项 1:_ (正确答案:Thread)解析:解析 线程模型在 Java 中是由 java.lang.Thread 类进行定义和描述的。程序中的线程都是Thread 的实例。