1、二级 JAVA 笔试-79 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下面关于死锁的说法中错误的是( )。(分数:2.00)A.释放锁时要按加锁的反序释放B.多线程同时访问相同数据时可能造成死锁C.死锁完全由程序进行控制D.Java 中具有检测与避免死锁的专门机制,可以防止死锁2.在结构化方法中,软件功能分解属于下列软件开发中的( )阶段。(分数:2.00)A.详细设计B.需求分析C.总体设计D.编程调试3.在结构化设计方法中生成的结构图(SC)中,带有箭头的连线表示( )。(分数:2.00)A.模块之间的调用关系B.程序的组成成分C
2、.控制程序的执行顺序D.数据的流向4.Java 用( )来实现 goto 语句所特有的一些功能。(分数:2.00)A.defaultB.returnC.breakD.continue5.下列属于条件运算符的是( )。(分数:2.00)A.?:B.int r=2;iht result=(sum=1?sum:r);System. out. println (result);(分数:2.00)A.1B.2C.10D.018.下列叙述中正确的是( )。(分数:2.00)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构19.线性表的顺序存储结构和线性表的链式存储结
3、构分别是( )。(分数:2.00)A.顺序存取的存储结构、顺序存取的存储结构B.随机存取的存储结构、顺序存取的存储结构C.随机存取的存储结构、随机存取的存储结构D.任意存取的存储结构、任意存取的存储结构20.00101010 () 00010111 语句的执行结果为( )。(分数:2.00)A.11111111B.00000000C.11000010D.0011110121.在 J2SE1.4 中,文件通道类 FileChannel 所属的包是( )。(分数:2.00)A.java.ioB.java.nio.CharsetC.java.nio.channelsD.java.awt22.下面选项
4、中不是 JDBC API 向 JDBC Driver Manager 发出请求的内容的是( )。(分数:2.00)A.指定要加载的 JDBC 驱动程序B.指定需要连接的数据库系统的类型C.指定需要连接的数据库系统的实例D.指定本地系统的类型23.分布式数据库系统不具有的特点是( )。(分数:2.00)A.分布性B.数据冗余C.数据分布性和逻辑整体性D.位置透明性和复制透明性24.算法分析的目的是( )。(分数:2.00)A.找出数据结构的合理性B.找出算法中输入和输出之间的关系C.分析算法的易懂性和可靠性D.分析算法的效率以求改进25.下列 APl 不属于 java.lang.Math 类的是
5、( )。(分数:2.00)A.random()B.abs()C.drawLine()D.sin()26.Swing 构件的程序不具有( )。(分数:2.00)A.本地代码B.标签C.菜单D.容器27.写出下面程序的输出( )。public class Test public static void main (String args ) iht x=1, y=2;System. out. println (“result=“+x+y);System. out. println (“result=“+(x+y);(分数:2.00)A.result=12 result=12B.result=3re
6、sult=3C.result=3result=12D.result=12result=328.下列 JApplet 实现了一个可编辑的 JTextArea 和一个 JButton,横线上应填入的语句是( )。import javax.swing.*;import java.awt.*;public class Test extends JApplet JTextArea jta;public void init () Container cp=getContentPane();cP.setLayout (new GridLayout (2,1);jta=newJTextArea (30,30)
7、;jta.setEditable (true);_jta.setText(“你好“);JBulton jb=new JButton(“OK“);cp.add(jb);(分数:2.00)A.add(jta);B.cp.add( );C.jts.add(cp);D.cp.add(jta);29.已知数据表 A 中每个元素距其最终位置不远,为节省时间,应采用的算法是( )。(分数:2.00)A.堆排序B.直接插入排序C.快速排序D.直接选择排序30.下列选项中是双精度浮点数的是( )。(分数:2.00)A.12B.0.12DC.0.12fD.12L31.当子类中的成员变量与父类中的成员变量相同时,(
8、 )。(分数:2.00)A.父类中的成员变量隐藏子类中的变量B.子类中的变量无效C.该声明非法D.子类中的成员变量隐藏父类中的变量32.Window 是显示屏上独立的本机窗口,它独立于其他容器,Window 的两种形式是( )。(分数:2.00)A.Panel 和 FrameB.LayoutManager 和 ContainerC.Frame 和 DialogD.Container 和 Component33.已知如下代码:switch(m) case 0: System. out. println(“Condition 0 “);case 1: System. out. println(“C
9、ondition 1 “);case 2: System. out. println(“Condition 2 “);case 3: System. out. println(“Condition 3 “); break;default: System. out. println(“Other Condition“);当 m 的值为( )时,可以输出“Condition 2”。(分数:2.00)A.2B.0,1C.0,1,2D.0,1,2,334.能够实现自动共享类、子类和对象中的方法和数据需要通过( )。(分数:2.00)A.继承机制B.封装机制C.构造函数D.抽象类35.要运行一个名为 T
10、est.class 的类文件,需要在 DOS 提示符下输入( )命令。(分数:2.00)A.javac TestB.javac Test. classC.java TestD.java Test. class二、填空题(总题数:15,分数:30.00)36.冒泡排序算法在最好情况下的元素交换次数为 【1】 。(分数:2.00)填空项 1:_37.在面向对象方法中,对象可看成是属性(数据)以及这些属性上的专用操作的封装体。封装是一种 【2】 技术。(分数:2.00)填空项 1:_38.一个算法通常由两种基本要素组成:一是对数据对象的运算和操作,二是算法的 【3】 。(分数:2.00)填空项 1:
11、_39.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、 【4】 和自定义完整性。(分数:2.00)填空项 1:_40.所谓 【5】 ,是指对数据集合中的各元素以各种方式进行运算,包括插入、删除、查找、更改等运算,也包括对数据元素进行分析。(分数:2.00)填空项 1:_41.Java 源文件中最多只能有一个 【6】 类,其他类的个数不限。(分数:2.00)填空项 1:_42.Java 语言中,循环语句包括 【7】 、while 循环、for 循环。(分数:2.00)填空项 1:_43.如果在 Java 程序中,需要使用 javautil 包中的所有类,则应该在程序的开始处加上 【
12、8】 语句。(分数:2.00)填空项 1:_44.类是由成员变量和 【9】 组成。(分数:2.00)填空项 1:_45.Java 中的线程体是一个线程类的 【10】 方法。(分数:2.00)填空项 1:_46.异常处理主要用于使系统从故障中恢复,主要包括以下三个方面:提示信息、不产生无效的结果和 【11】 。(分数:2.00)填空项 1:_47.PrintStream 类是 【12】 流特有的类,实现了将 Java 基本数据类型转换为字符串表示。(分数:2.00)填空项 1:_48.下列程序段的输出结果是 【13】 。public class Test void printValue(int
13、m) do System.out.println(“The value is“+m);while (-m10);public static void main (String args) int i=10;Test t= new Test();t.printValue(i);(分数:2.00)填空项 1:_49.Swing 允许按自己的要求选择组件的外观和感觉,Swing 是通过 【14】 方法来实现该功能的。(分数:2.00)填空项 1:_50.为了向一个 Applet 传递参数,可以在 HTML 文件的 Applet 标志中使用 PARAM 选项。在 Applet 程序中获取参数时,应使用
14、的方法是 【15】 。(分数:2.00)填空项 1:_二级 JAVA 笔试-79 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下面关于死锁的说法中错误的是( )。(分数:2.00)A.释放锁时要按加锁的反序释放B.多线程同时访问相同数据时可能造成死锁C.死锁完全由程序进行控制D.Java 中具有检测与避免死锁的专门机制,可以防止死锁 解析:解析 Java 中没有提供检测与避免死锁的专门机制,但应用程序员可以采用某些策略防止死锁的发生。2.在结构化方法中,软件功能分解属于下列软件开发中的( )阶段。(分数:2.00)A.详细设计B.需求分析
15、C.总体设计 D.编程调试解析:解析 总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。3.在结构化设计方法中生成的结构图(SC)中,带有箭头的连线表示( )。(分数:2.00)A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序 D.数据的流向解析:解析 常用的软件结构设计工具是结构图(Structure Chart,SC),也称程序结构图,它是描述软件结构的
16、图形工具,描述了软件系统的层次和模块结构关系,反映了整个系统的功能实现以及模块与模块之间的联系与通信,是未来程序中的控制层次体系。在结构图中,模块用一个矩形表示,矩形内注明模块的功能和名字;箭头表示模块之间的调用关系。在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可用带实心圆的箭头表示传输的是控制信息,用带空心圆的箭头表示传递的是数据。4.Java 用( )来实现 goto 语句所特有的一些功能。(分数:2.00)A.defaultB.returnC.break D.continue解析:解析 Java 中没有 goto 语句
17、来实现任意的跳转,因为 goto 语句破坏程序的可读性,而且影响编译的优化。Java 用 break 实现 goto 语句所特有的一些功能,break 提供一个“标签化中断”的语句,可以让程序退出多重嵌套循环。5.下列属于条件运算符的是( )。(分数:2.00)A.?: B.int r=2;iht result=(sum=1?sum:r);System. out. println (result);(分数:2.00)A.1B.2 C.10D.0解析:解析 条件运算符?:为三元运算符,它的一般形式为:expression ? statement1:statement2。其中表达式 express
18、ion 的值应为一个布尔值,若该值为 true,则执行语句 statement1,否则执行语句statement2,而且语句 statement1 和 statement2 需要返回相同的数据类型,且该类型不能是 void。在本题中 sum 等于 0,而不等于 1,所以返回 r 的值为 2。18.下列叙述中正确的是( )。(分数:2.00)A.线性表是线性结构 B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构解析:解析 根据数据结构中各数据元素之间前后间关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足:有且只有一个根结点;每一个结
19、点最多有一个前件,也最多有一个后件,则称该数据结构为线性结构,又称线性表。所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。19.线性表的顺序存储结构和线性表的链式存储结构分别是( )。(分数:2.00)A.顺序存取的存储结构、顺序存取的存储结构B.随机存取的存储结构、顺序存取的存储结构 C.随机存取的存储结构、随机存取的存储结构D.任意存取的存储结构、任意存取的存储结构解析:解析 顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式 LOC(ai)=LOC(a1)+(i-1)L 计算得到,从而实现了随机存取。对于链式存储结构,要对某结点进行存取,
20、都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。20.00101010 () 00010111 语句的执行结果为( )。(分数:2.00)A.11111111B.00000000C.11000010D.00111101 解析:解析 按位异或运算符参与运算的两个值,若两个相应位相同,则结果为 0,否则为 1。即 00=0,113=1,01=1,11=0。21.在 J2SE1.4 中,文件通道类 FileChannel 所属的包是( )。(分数:2.00)A.java.ioB.java.nio.CharsetC.java.nio.channels D.java.awt解析:解析 文件通
21、道是 J2SE1.4 提供的新的输入输出功能之一,被收集在 java.nio 包中。 java.nio.channels 包中的 FileChannel(文件通道类)就是磁盘文件映入内存的一个通道。22.下面选项中不是 JDBC API 向 JDBC Driver Manager 发出请求的内容的是( )。(分数:2.00)A.指定要加载的 JDBC 驱动程序B.指定需要连接的数据库系统的类型C.指定需要连接的数据库系统的实例D.指定本地系统的类型 解析:解析 指定本地系统的类型不属于 JDBC API 向 JDBCDriverManager 发出请求的内容,因为本地系统的类型并不会影响到 J
22、DBC 的使用。23.分布式数据库系统不具有的特点是( )。(分数:2.00)A.分布性B.数据冗余 C.数据分布性和逻辑整体性D.位置透明性和复制透明性解析:解析 分布式数据库系统具有数据分布性、逻辑整体性、位置透明性和复制透明性的特点,其数据也是分布的;但分布式数据库系统中数据经常重复存储,数据也并非必须重复存储,主要视数据的分配模式而定。若分配模式是一对多,即一个片段分配到多个场地存放,则是冗余的数据库,否则是非冗余的数据库。24.算法分析的目的是( )。(分数:2.00)A.找出数据结构的合理性B.找出算法中输入和输出之间的关系C.分析算法的易懂性和可靠性D.分析算法的效率以求改进 解
23、析:解析 算法分析是指对一个算法的运行时间和占用空间做定量的分析,一般计算出相应的数量级,常用时间复杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。25.下列 APl 不属于 java.lang.Math 类的是( )。(分数:2.00)A.random()B.abs()C.drawLine() D.sin()解析:解析 random ()方法是 java.lang.Math 类中求随机数的方法;abs ()方法是 java.lang.Math 类中求绝对值的方法;sin ()方法是 java.lang.Math 类中求正弦函数的方法。选项 C
24、是 Graphics 类提供的画直线的方法。26.Swing 构件的程序不具有( )。(分数:2.00)A.本地代码 B.标签C.菜单D.容器解析:解析 Swing 是由纯 Java 实现的轻量级构件,没有本地代码,不依赖操作系统的支持,这是它与AWT 构件的最大的区别。27.写出下面程序的输出( )。public class Test public static void main (String args ) iht x=1, y=2;System. out. println (“result=“+x+y);System. out. println (“result=“+(x+y);(分数
25、:2.00)A.result=12 result=12B.result=3result=3C.result=3result=12D.result=12result=3 解析:解析 Java 表达式的同级运算符从左到右进行,括号可以改变优先级。+在 Java 中既是算术的加号也可以作为字符串的连接符号。“result=“+x+y 中,字符串“result=“先与 x 做字符串的连接,结果字符串 result=1 再与 y 做字符串连接。在“result“+(x+y)中,先计算括号中的加法运算,结果为3,“result=“再与 3 做字符串连接。28.下列 JApplet 实现了一个可编辑的 JT
26、extArea 和一个 JButton,横线上应填入的语句是( )。import javax.swing.*;import java.awt.*;public class Test extends JApplet JTextArea jta;public void init () Container cp=getContentPane();cP.setLayout (new GridLayout (2,1);jta=newJTextArea (30,30);jta.setEditable (true);_jta.setText(“你好“);JBulton jb=new JButton(“OK“
27、);cp.add(jb);(分数:2.00)A.add(jta);B.cp.add( );C.jts.add(cp);D.cp.add(jta); 解析:解析 在 JApplet 中添加构件就是在内容面板中添加构件,因此需要先得到内容面板,然后再向其中添加 Swing 构件。29.已知数据表 A 中每个元素距其最终位置不远,为节省时间,应采用的算法是( )。(分数:2.00)A.堆排序B.直接插入排序 C.快速排序D.直接选择排序解析:解析 当数据表 A 中每个元素距其最终位置不远,说明数据表 A 按关键字值基本有序,在待排序序列基本有序的情况下,采用插入排序所用时间最少。30.下列选项中是双
28、精度浮点数的是( )。(分数:2.00)A.12B.0.12D C.0.12fD.12L解析:解析 选项 A 代表一个整数;选项 C 代表一个单精度浮点数;选项 D 代表一个长整型数。选项 B为正确答案,代表一个双精度浮点数。31.当子类中的成员变量与父类中的成员变量相同时,( )。(分数:2.00)A.父类中的成员变量隐藏子类中的变量B.子类中的变量无效C.该声明非法D.子类中的成员变量隐藏父类中的变量 解析:解析 Java 中,类是分层次的,当子类的成员变量与父类的成员变量名字相同时,子类的成员变量会隐藏父类的成员变量,当子类的成员方法与父类的成员方法名字、参数列表、返回值类型都相同时,子
29、类的方法是父类的方法的重写。32.Window 是显示屏上独立的本机窗口,它独立于其他容器,Window 的两种形式是( )。(分数:2.00)A.Panel 和 FrameB.LayoutManager 和 ContainerC.Frame 和 Dialog D.Container 和 Component解析:解析 Window 是 java.awt.Window 的对象。Window 是显示屏上独立的本机窗口,它独立于其他容器。Window 有两种形式:Frame(框架)和 Dialog(对话框)。Frame 和 Dialog 是 Window 的子类。33.已知如下代码:switch(m
30、) case 0: System. out. println(“Condition 0 “);case 1: System. out. println(“Condition 1 “);case 2: System. out. println(“Condition 2 “);case 3: System. out. println(“Condition 3 “); break;default: System. out. println(“Other Condition“);当 m 的值为( )时,可以输出“Condition 2”。(分数:2.00)A.2B.0,1C.0,1,2 D.0,1,2
31、,3解析:解析 由于前三个 case 语句中没有 break 语句,因此执行 case0 之后,会继续执行 case1 和 case2,所以可以输出“Condition 2”,同理执行 case 1 和 case 2 都可以输出“Condition 2”,执行 case 3 的时候,无法输出“Condition 2”。34.能够实现自动共享类、子类和对象中的方法和数据需要通过( )。(分数:2.00)A.继承机制 B.封装机制C.构造函数D.抽象类解析:解析 继承性是面向对象方法的一个重要基本特征,它使代码可重用,可降低程序复杂性。通过继承机制,能够实现自动共享类、子类和对象中的方法和数据。3
32、5.要运行一个名为 Test.class 的类文件,需要在 DOS 提示符下输入( )命令。(分数:2.00)A.javac TestB.javac Test. classC.java Test D.java Test. class解析:解析 javac 是 Java 语言的编译器,用于将源文件编译为字节码文件,所以 A、B 不正确。 java是 Java 解释器,用于运行类文件,输入命令时,后面直接跟类名,不加.class,所以 C 正确。二、填空题(总题数:15,分数:30.00)36.冒泡排序算法在最好情况下的元素交换次数为 【1】 。(分数:2.00)填空项 1:_ (正确答案:0)解
33、析:解析 根据冒泡排序算法思想可知,若待排序的初始序列为“正序”序列,则只需进行一趟排序,在排序过程中进行 n-1 次关键字间的比较,且不移动和交换元素,这种情况是冒泡排序的最好情况,故冒泡排序算法在最好的情况下的元素交换次数为 0。37.在面向对象方法中,对象可看成是属性(数据)以及这些属性上的专用操作的封装体。封装是一种 【2】 技术。(分数:2.00)填空项 1:_ (正确答案:信息隐蔽)解析:解析 对象的封装性是指将对象的方法和属性代码包装在一起,即包含并隐藏对象的信息,以便把对数据和方法的访问尽量限制在其内部本身。封装隐藏了不必要的复杂性,因而有利于对复杂对象的管理和对程序安全的防护
34、。38.一个算法通常由两种基本要素组成:一是对数据对象的运算和操作,二是算法的 【3】 。(分数:2.00)填空项 1:_ (正确答案:控制结构)解析:解析 一个算法通常由两种基本要素组成:一是对数据对象的运算和操作,二是算法的控制结构。39.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、 【4】 和自定义完整性。(分数:2.00)填空项 1:_ (正确答案:参照完整性)解析:解析 关系模型允许定义三类数据约束,它们是实体完整性、参照完整性以及用户定义的完整性约束,其中前两种完整性约束由关系数据库系统自动支持。40.所谓 【5】 ,是指对数据集合中的各元素以各种方式进行运算,包括
35、插入、删除、查找、更改等运算,也包括对数据元素进行分析。(分数:2.00)填空项 1:_ (正确答案:数据处理)解析:解析 所谓数据处理,是指对数据集合中的各元素以各种方式进行运算。在数据处理领域中,建立数学模型有时并不十分重要,事实上,许多实际问题是无法表示成数学模型的。人们最感兴趣的是知道数据集合中数据元素之间存在什么关系,应如何组织它们,即如何表示所需要处理的数据元素。41.Java 源文件中最多只能有一个 【6】 类,其他类的个数不限。(分数:2.00)填空项 1:_ (正确答案:public)解析:解析 Java 源文件中最多只能有一个 public 类,其他类的个数不限,这是 Ja
36、va 程序结构的要求。相类似的要求还有:一个源文件中 package 语句只能有 0 个或 1 个;import 语句可以有 0 个或多个。42.Java 语言中,循环语句包括 【7】 、while 循环、for 循环。(分数:2.00)填空项 1:_ (正确答案:do-while 循环)解析:解析 Java 语言中包括三种循环,分别是“当型”循环 while、“直到型”循环 do-while 和确定次数的 for 循环。43.如果在 Java 程序中,需要使用 javautil 包中的所有类,则应该在程序的开始处加上 【8】 语句。(分数:2.00)填空项 1:_ (正确答案:import
37、java.util.*;)解析:解析 Java 中用 import 语句来导入包,但需注意的是 Java 语言中的 java.lang 包是由编译器直接自动导入的,因此,编程时使用该包中的类,可省去;import 导入。使用其他包中的类,必须用 import 导入。44.类是由成员变量和 【9】 组成。(分数:2.00)填空项 1:_ (正确答案:成员方法 或 方法)解析:解析 类是 Java 程序的基本要素,由成员变量和成员方法组成。45.Java 中的线程体是一个线程类的 【10】 方法。(分数:2.00)填空项 1:_ (正确答案:run ())解析:解析 创建线程有两种方法:实现 ja
38、va.lang.Runnable 接口;继承 Thread 类并重写 run ()方法。run ()方法定义了线程体和线程的具体行为。创建线程后,需要调角 start ()方法运行线程。46.异常处理主要用于使系统从故障中恢复,主要包括以下三个方面:提示信息、不产生无效的结果和 【11】 。(分数:2.00)填空项 1:_ (正确答案:释放资源)解析:解析 异常处理的这三个方面都是比较重要和基本的工作,给出异常的基本信息、不产生无效的结果都可以通过 try 和 catch 块来实现,释放资源可以通过 finally 块实现,保证程序的安全性和健壮性。47.PrintStream 类是 【12】
39、 流特有的类,实现了将 Java 基本数据类型转换为字符串表示。(分数:2.00)填空项 1:_ (正确答案:字节输出)解析:解析 PrintStream 类是 FilterOutputStream 类的子类,一般用于 Systemout 和 Systemerr中,在控制台输出标准的字符串。48.下列程序段的输出结果是 【13】 。public class Test void printValue(int m) do System.out.println(“The value is“+m);while (-m10);public static void main (String args) i
40、nt i=10;Test t= new Test();t.printValue(i);(分数:2.00)填空项 1:_ (正确答案:Thevalue is 10)解析:解析 本题考查 do-while 循环的用法。do-while 至少执行一次,在执行完 do 中的内容后,判断while 中的条件是否为 true。如果为 true,就再执行 do 中的内容,然后再进行判断。依次类推,直到while 的判断为 false 时退出循环,执行循环后面的内容。题目中 m 的值为 10,当程序运行到 do-while循环时,程序先执行一次循环然后再作判断,在判断条件-m10 时,其值为 false,退出
41、循环。因此只执行了一次输出操作,输出内容为:The value is 10。49.Swing 允许按自己的要求选择组件的外观和感觉,Swing 是通过 【14】 方法来实现该功能的。(分数:2.00)填空项 1:_ (正确答案:setLookAndFeel ())解析:解析 Swing 中调用 setLookAndFeel ()能设置组件的外观和感觉。50.为了向一个 Applet 传递参数,可以在 HTML 文件的 Applet 标志中使用 PARAM 选项。在 Applet 程序中获取参数时,应使用的方法是 【15】 。(分数:2.00)填空项 1:_ (正确答案:getParameter())解析:解析 Applet 被下载时,在 Applet 的 init()方法中使用 getParameter()方法获取参数。 getParameter()方法定义为:public String getParameter (String name)。getParameter()方法的入口参数是所取参数的名字(必须与param标记中的 name 指示的名字相同),返回值是参数的值。