1、二级 JAVA 笔试-282 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是( )。(分数:2.00)A.选择B.投影C.连接D.并2.在结构化方法中,软件功能分解属于下列软件开发中的哪个阶段? ( )(分数:2.00)A.详细设计B.需求分析C.总体设计D.编程调试3.当对象 obj 调用其类成员函数 init()时,init()的 this 指向的是( )。(分数:2.00)A.对象 objB.init()C.类
2、本身D.其他的对象4.下列对字符数组进行初始化的语句正确的是( )。(分数:2.00)A.char a=“Hello“;B.char a=H,e,1,1,o;C.char a5=“Hello“;D.char a25=“Hello“,“World“;5.下列 Java 布局管理器中,简单地将组件由左到右排列,排满一行,自动移到下一行的布局管理器是( )。(分数:2.00)A.FlowLayoutB.BorderLayoutC.GridLayoutD.BoxLayout6.以下程序段的输出结果是( )。int x=5;dox-;while(!x);(分数:2.00)A.5B.无任何输出C.4D.陷
3、入死循环7.如果在程序中使用 Swing,则小程序应该从哪一个类继承? ( )(分数:2.00)A.java.applet.AppletB.javax.swing.JAppletC.任何一个D.两个都不是8.在关系代数中,对一个关系投影操作以后,新关系的元组个数跟原来关系的元组个数相比( )。(分数:2.00)A.小于B.小于或等于C.等于D.大于9.下面哪个类给出了构件的定义? ( )(分数:2.00)A.java.awt.GraphicsB.java.awt.ContainerC.java.awt.ComponentD.java.awt.Object10.若要查询关于数据库的信息则可以调用
4、下列哪一个方法? ( )(分数:2.00)A.Connection 类的 getMetaData()方法B.DriverManager 类的 getConnection()方法C.Connection 类的 createStatement()方法D.Statement 类的 executeQuely()方法11.使用( )关键字来跳出 try 块和进入 finally 块。(分数:2.00)A.catchB.returnC.whileD.try12.关系数据库的概念模型是( )的集合。(分数:2.00)A.关系模型B.关系模式C.关系子模式D.存储模式13.在下列选项中属于 Java 语言的代
5、码安全检测机制的是( )。(分数:2.00)A.动态链接B.访问权限的检查C.通过接口实现多重继承D.将所有的 Java 应用都看做对象,按类进行封装14.在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( )。(分数:2.00)A.希尔排序B.冒泡排序C.插入排序D.选择排序15.有如下代码段public class OperatorAndExceptionspublic static void main(String args)int i=10,j=15;System.out.println(i=j);String s1=new String(“how are you!“);
6、String s2=new String(“how are you!“);System.out.println(s1=s2);其输出为( )。(分数:2.00)A.true falseB.true trueC.false trueD.false false16.J2ME 平台中负责移动设备本地数据存储的模块是( )。(分数:2.00)A.PPB.PBPC.MIDPD.CDC17.下列各方法中不被建议用于线程同步过程的是( )。(分数:2.00)A.start()B.wait()C.notify()D.resume()18.函数重载是指( )。(分数:2.00)A.两个或两个以上的函数取相同的函
7、数名,但形参的个数或类型不同B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的函数名字不同,但形参的个数或类型相同D.两个以上的函数取相同的函数名,并且函数的返回类型相同19.用整数 10 创建一个 Integer 类的对象,下列各语句中能完成此功能的是( )。(分数:2.00)A.Integer i=new Integer(10);B.Integer i=10;C.int i=10;D.Integer i=Integer(10);20.下列程序的运行结果是( )。public class Sunpublic static void main(String
8、args)int a=1;int b=1;for(int i=1;i=3;i+)a=a+b;b=b+a;System.out.println(a+“ “+b);(分数:2.00)A.66B.5 8C.13 21D.34 5521.下列程序的输出结果为( )。public class Reentrantpublic synchronized void a()b();System.out.println(“here I am,in a()“);public synchronized void b()System.out.println(“here I am,in b()“);public stat
9、ic void main(String args)Reentrant r=new Reentrant();r.a();(分数:2.00)A.here I am,in a()/here I am,in b()B.here I am,in b()/here I am,in a()C.here I am,in a()D.here I am,in b()22.有如下的代码段,当编译和运行时,下列各选项中说法正确的是( )。public class Zpublic static void main(String args)new Z();Z()Z aliasl=this;Z alias2=this;sy
10、nchronized(aliasl) tryalias2.walt();System.out.println(“DONE WAITING“);catch(InterruptedException e) System.out.println(“INTERR UPTED“);catch (Exception e) System.out.println(“OTHER EXCEPTION“);finallySystem.out.println(“FINALLY“);System.out.println(“ALL DONE“);(分数:2.00)A.应用程序编译正常,但是不打印任何数据B.应用程序编译正
11、常,并打印数据“DONE WAITING”C.应用程序编译正常,并打印数据“FINALLY”D.应用程序编译正常,并打印数据“ALL DONE”23.若 x、a、b 和 c 均是 int 型变量,则执行表达式 x=(a=1,b=2)后的结果是( )。(分数:2.00)A.1B.2C.3D.x 无确定值24.下列叙述正确的是( )。(分数:2.00)A.非空循环队列的队尾指针等于排头指针时,也可以进行入队运算B.循环队列为空时可以进行退队运算C.退队运算后队列长度减 1D.入队运算就是将新元素插入到队尾指针指向的位置25.下列叙述不属于线性链表较之线性表顺序存储结构的优点的是( )。(分数:2.
12、00)A.线性链表存储方式简单B.线性链表运算效率高C.线性链表的存储空间易于扩展D.线性链表便于存储空间的动态分配26.如下的代码段中,如果方法 unsafe()正常运行,那么结果是( )。public void example()tryunsafe();System.out.println(“Testl“);catch(SafeException e)System.out.println(“Test 2“);finallySystem.out.println(“Test 3);System.out.println(“Test 4“);(分数:2.00)A.Test 3 Test 4B.Te
13、st1 Test3 Test4C.Test1 Test3D.Test1 Test427.有下列程序段public class funpublic static void main(String args)char b=“Hello,you“;b5 = 0;System.out.println(s);执行此程序后,得到的输出结果是( )。(分数:2.00)A.Hello, youB.Hello0youC.HelloD.028.下列对整型常量定义的解释中正确的是( )。(分数:2.00)A.034 代表八进制的数 1CB.034 代表十进制的数 34C.034 代表十六进制的数 28D.34L 代
14、表值为 34 的 64 位长整数29.若要求尽可能快地对实数数组进行稳定的排序,则应选( )。(分数:2.00)A.快速排序B.堆排序C.归并排序D.基数排序30.设有下列二叉树(如下图所示)(分数:2.00)A.ABDGCEHIFB.DGBAHEICFC.GDBHIEFCAD.ABCDEFGHI31.下列 API 不属于 java.lang.Math 的是( )。(分数:2.00)A.random()B.abs()C.drawLine()D.sin()32.给出下列代码片断:if(x0) System.out.println(“first“);else if(x-3)System.out.p
15、rintln(“second“);elseSystem.out.println(“third“);请问 x 处于什么范围时将打印字符串“second”?( )(分数:2.00)A.x0B.x-3C.x=3D.x=0Icon icon = new ImageIcon(“swing.gif“, “A GIF on a swing“);JLabel label = new JLabel(“Swing!“, icon, Swingconstants. CENTER);contentPane.add(label, BorderLayout. CENTER);(分数:2.00)填空项 1:_48.编写同时
16、具有 Applet 与 Application 特征的程序,具体的方法是:作为 Application 要定义 main()方法,并且把 main()方法所在的类定义为一个 【13】 类,为使该程序成为一个 Applet,main()方法所在的这个类必须继承 Applet 类或 JApplet 类。(分数:2.00)填空项 1:_49.现在有 Java Applet 小程序的源程序文件 MyApplet.java,编译后生成的字节码文件为MyApplet.class,对应的 HTML 文件为 MyApplet.html。查看该小程序的运行结果两种方式:运行命令 【14】 ;直接用浏览器打开 M
17、yApplet.html 文件。(分数:2.00)填空项 1:_50.下列 JApplet 使用重写 paintComponet()方法来绘制图像,请填写正确的代码在横线处。import java.awt.*;import javax.swing.*;public class Test extends JAppletstaic String fileName = “img().gif“;public void init()Container cp = getContentPane();cp.setLayout(new GridLayout(1,1);Image i = getImage(get
18、CodeBase(),fileName);MyImagePanel ip=new MyInmagePanel(i);cp.add(ip);class MyImagePanel extends JPanelImage i;public MyImagePanel(Image img)this.i = img;public void paintComponent(Graphics gg)【15】 ;gg.drawImage(i,20,20,this);(分数:2.00)填空项 1:_二级 JAVA 笔试-282 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70
19、.00)1.如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是( )。(分数:2.00)A.选择B.投影 C.连接D.并解析:解析 本题考查对几种关系代数运算的掌握。其中选择和投影的区别在于:如果将一个关系看作一张表,那么选择操作就是从这张表中选出一些行而丢弃另一些行;而投影操作则是从这张表中选出某些列而丢弃另一些列。如果只对一个关系中的某些属性感兴趣,那么就需要使用投影操作。并操作的结果表示为 RU S,它是一个关系,包括或者在 R 中、或者在 S 中、或者同时在 R 和 S 中的所有元组,新的关系中属性个数多于原来关
20、系中属性个数。连接操作用于将两个关系中的相关元组组合成单个元组。2.在结构化方法中,软件功能分解属于下列软件开发中的哪个阶段? ( )(分数:2.00)A.详细设计B.需求分析C.总体设计 D.编程调试解析:解析 软件系统结构的总体设计包括:基于功能层次结构建立系统、按功能划分模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系和模块间的接口、评估模块划分的质量等方面。详细设计的任务是:在使用程序设计语言编制程序以前,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节;并给予清晰的表达。需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面
21、的期望。需求分析的任务是发现需求、求精、建模和定义需求,通常包括:功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。编程调试的任务是诊断和改正程序中潜在的错误。综上所述,软件功能分解只能发生在总体设计阶段。3.当对象 obj 调用其类成员函数 init()时,init()的 this 指向的是( )。(分数:2.00)A.对象 obj B.init()C.类本身D.其他的对象解析:解析 本题考查关键词 this 的用法。在类中除了可以声明成员变量外,还可以在方法体中声明局部变量,局部变量的作用域只在该方法的内部,当方法返回时,局部
22、变量也就不再存在。此外,如果局部变量的名称和类成员变量的名字相同,类成员变量就会被隐藏。如果方法中确实存在局部变量和类成员变量名字相同的情况,又需要在该方法中改变类成员变量的值,就需要使用 this 关键字。this 用在一个方法中用来引用当前对象,它的值是调用该方法的对象。4.下列对字符数组进行初始化的语句正确的是( )。(分数:2.00)A.char a=“Hello“; B.char a=H,e,1,1,o;C.char a5=“Hello“;D.char a25=“Hello“,“World“;解析:解析 本题考查对字符数组的初始化。A 选项中,数组 a 在定义后紧跟初始化的情况下可省
23、略数组长度,其最终数组长度由所赋字符串常量的长度给定,A 选项是正确;B 选项中, a 是一个二维数组,二维数组也能在定义时被初始化。如果对全部元素都赋初值,则定义数组时第 1 维的大小可以省略,但第2 维的大小不能省略,故 B 选项是错误;C 选项和 D 选项都忽略了字符串的大小要比字符串中的字符数多1 这一点,造成了数组的越界。故本题答案是 A。5.下列 Java 布局管理器中,简单地将组件由左到右排列,排满一行,自动移到下一行的布局管理器是( )。(分数:2.00)A.FlowLayout B.BorderLayoutC.GridLayoutD.BoxLayout解析:解析 本题考查 J
24、ava 中布局管理器的知识。布局管理器中流式布局管理器(FtowLayout)的布局方式简单地将组件由左到右排列,排满一行,自动移到下一行。故本题答案是 A。6.以下程序段的输出结果是( )。int x=5;dox-;while(!x);(分数:2.00)A.5 B.无任何输出C.4D.陷入死循环解析:解析 本题考查循环语句 do-while 语句的执行情况。根据 do-while 循环语句功能特点可得:首先无条件执行循环体,表达式 x-的值为 5,输出为 5,x 的值变为 4,然后检查条件 (!x)为假(false),则循环结束。7.如果在程序中使用 Swing,则小程序应该从哪一个类继承?
25、 ( )(分数:2.00)A.java.applet.AppletB.javax.swing.JApplet C.任何一个D.两个都不是解析:解析 该题考查对 java 包与 javax 包的理解。 java 包是最开始时 JDK1.0 就有的了;而 javax包及其里面的子包都是后来陆续给扩充的, Swing 包是与 AWT 包相对应的关于抽象窗口工具的包,而Japplet 是与 Applet 相对应的编写小程序时所必须要继承的类。故本题答案是 B。8.在关系代数中,对一个关系投影操作以后,新关系的元组个数跟原来关系的元组个数相比( )。(分数:2.00)A.小于B.小于或等于C.等于 D.
26、大于解析:解析 本题考查对投影操作的掌握。投影操作是从表中选出某些列而丢弃另一些列。如果只对一个关系中的某些属性感兴趣,那么就需要使用投影操作在这些属性上投影该关系,而元组个数是指一个表中的行的数目,因此,对一个关系进行投影操作以后,新关系的元组个数跟原来关系的元组个数相等。9.下面哪个类给出了构件的定义? ( )(分数:2.00)A.java.awt.GraphicsB.java.awt.ContainerC.java.awt.Component D.java.awt.Object解析:解析 构件类是由 java.awt.Component 给出的,java.awt.Container 给出
27、的是容器类, java.awt.Object 是构件类的父类。10.若要查询关于数据库的信息则可以调用下列哪一个方法? ( )(分数:2.00)A.Connection 类的 getMetaData()方法 B.DriverManager 类的 getConnection()方法C.Connection 类的 createStatement()方法D.Statement 类的 executeQuely()方法解析:解析 选项 B 的方法返回的是 Connection 类的实例,选项 C 的方法返回的是 Statement 类的实例,选项 D 的方法返回的是 ResultSet 类的实例,只有选
28、项 A 返回的是 Database- MetaData 类的实例,该类包含了数据库本身的信息。11.使用( )关键字来跳出 try 块和进入 finally 块。(分数:2.00)A.catchB.return C.whileD.try解析:解析 本题是对线程机制的考查。选项 A 错误,catch 是用于捕获异常,并运行相应的处理程序;选项 B 正确,finally 语句实际上用于异常之外,也可以使用它在 return、break 或者循环内的continue;选项 C 错误,while 用于循环语句,没有此功能;选项 D 错误,try 也没有此功能。由此可知本题的答案是 B。12.关系数据库
29、的概念模型是( )的集合。(分数:2.00)A.关系模型B.关系模式 C.关系子模式D.存储模式解析:解析 本题考查关系数据库的概念模型。数据库的概念模型体现了数据之间的关系,它是各种数据之间相互关系的集合。关系数据库的概念模型是关系模式的集合。关系子模式是指关系数据库模式中用户所见到的那部分数据模式。13.在下列选项中属于 Java 语言的代码安全检测机制的是( )。(分数:2.00)A.动态链接B.访问权限的检查 C.通过接口实现多重继承D.将所有的 Java 应用都看做对象,按类进行封装解析:解析 动态链接是 JVM 的一个重要特征,所以选项 A 是错误的;接口是用来实现多重继承的一个方
30、法,Java 通过这种方法来提高类继承的灵活性和扩展性,所以选项 C 是错误的:选项 D 错误,用类把Java 的所有应用封装起来,是面向对象程序设计的基本思想:选项 B 正确,访问权限是解释器在解释执行 Java 程序时进行检查的,属于 Java 安全机制。14.在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( )。(分数:2.00)A.希尔排序B.冒泡排序C.插入排序D.选择排序 解析:解析 希尔排序和冒泡排序都属于插入排序,它们通过数据元素的交换来逐步消除线性表中的逆序,所以关键字比较的次数与记录的初始排列次序有关。而选择排序是指扫描整个线性表,从中选出最小的元素,将它交
31、换到表的前面,然后对剩下的字表采用同样的办法,所以关键字比较的次数与记录的初始排列次序无关。15.有如下代码段public class OperatorAndExceptionspublic static void main(String args)int i=10,j=15;System.out.println(i=j);String s1=new String(“how are you!“);String s2=new String(“how are you!“);System.out.println(s1=s2);其输出为( )。(分数:2.00)A.true falseB.true t
32、rueC.false trueD.false false 解析:解析 本题考查比较运算符的使用。比较运算符不仅可以用于基本数据类型的数据之间的比较,还可以用于复合数据类型的数据之间的比较。题中整型数 i 和 j 的值不同,故其 =比较的结果为false。s1 和 s2 的值虽然都是“how are you!”,但是由于它们是不同的对象,因此运算后的结果为false。如果需要比较两个对象的值是否相同,则可以调用 equals()方法。16.J2ME 平台中负责移动设备本地数据存储的模块是( )。(分数:2.00)A.PPB.PBPC.MIDP D.CDC解析:解析 MIDP 为移动设备提供了用户
33、界面、网络连接、本地数据存储和应用管理等要求,它是Profile 模块中负责移动设备的模块,PP、 PBP、CDC 这 3 个模块都是负责嵌入式设备的。17.下列各方法中不被建议用于线程同步过程的是( )。(分数:2.00)A.start()B.wait()C.notify()D.resume() 解析:解析 在线程的同步过程中,不建议使用的有 stop()、suspend()和 resume()。stop()强行终止线程的运行,容易造成数据的不一致; suspend()和 resume()这两种方法使得一个进程可以直接控制另外一个进程的执行,容易造成死锁。18.函数重载是指( )。(分数:2
34、.00)A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的函数名字不同,但形参的个数或类型相同D.两个以上的函数取相同的函数名,并且函数的返回类型相同解析:解析 函数重载指的是两个或两个以上的函数具有相同的函数名,但是形参的个数或类型不同。程序中通过判断主调函数传过来的参数的个数和类型来决定选择调用哪个具体的函数。19.用整数 10 创建一个 Integer 类的对象,下列各语句中能完成此功能的是( )。(分数:2.00)A.Integer i=new Integer(10); B.Intege
35、r i=10;C.int i=10;D.Integer i=Integer(10);解析:解析 Integer 类是 int 类型的包装类,其创建和使用方法和一般的类相似,因此答案为 A。20.下列程序的运行结果是( )。public class Sunpublic static void main(String args)int a=1;int b=1;for(int i=1;i=3;i+)a=a+b;b=b+a;System.out.println(a+“ “+b);(分数:2.00)A.66B.5 8C.13 21 D.34 55解析:解本题考查对 for 循环语句的理解。i=1 时,a
36、=1+1=2,b=1+2=3。i=2 时,a=2+3=5, b=3+5=8。i=3 时,a=5+8=13,b=8+13=21。故本题答案选项是 C。21.下列程序的输出结果为( )。public class Reentrantpublic synchronized void a()b();System.out.println(“here I am,in a()“);public synchronized void b()System.out.println(“here I am,in b()“);public static void main(String args)Reentrant r=n
37、ew Reentrant();r.a();(分数:2.00)A.here I am,in a()/here I am,in b()B.here I am,in b()/here I am,in a() C.here I am,in a()D.here I am,in b()解析:解析 此题程序中类 Reentrant 定义了两个带有 synchronized 的方法,分别是 a()和 b()。在Reentrant 类的 main()方法中,Reentrant 类的实例 r 调用了方法 a(),在 a()中调用 b()。a()的执行过程中,线程的控制将请求并获得 r 的锁,并开始执行 a()方法
38、。由 b()的定义可知,线程获得 r 的对象锁才能运行该方法,而此时 r 的锁已经由该线程获得,根据 Java 对象锁的可重入性,该线程将再次获得 r的锁,并开始运行方法 b()。22.有如下的代码段,当编译和运行时,下列各选项中说法正确的是( )。public class Zpublic static void main(String args)new Z();Z()Z aliasl=this;Z alias2=this;synchronized(aliasl) tryalias2.walt();System.out.println(“DONE WAITING“);catch(Interru
39、ptedException e) System.out.println(“INTERR UPTED“);catch (Exception e) System.out.println(“OTHER EXCEPTION“);finallySystem.out.println(“FINALLY“);System.out.println(“ALL DONE“);(分数:2.00)A.应用程序编译正常,但是不打印任何数据 B.应用程序编译正常,并打印数据“DONE WAITING”C.应用程序编译正常,并打印数据“FINALLY”D.应用程序编译正常,并打印数据“ALL DONE”解析:解析 在 Jav
40、a 中,每一个对象都有锁。任何时候,该锁都至多由一个线程控制。由于 aliasl 与alias2 指向同一对象 Z,在执行第 11 行前,线程拥有对象 z 的锁。在执行完第 11 行后,该线程释放了对象 Z 的锁,进入等待池。但此后没有线程调用对象 Z 的 notify()和 notifyAll()方法,所以该进程一直处于等待状态,没有输出。23.若 x、a、b 和 c 均是 int 型变量,则执行表达式 x=(a=1,b=2)后的结果是( )。(分数:2.00)A.1B.2 C.3D.x 无确定值解析:解析 本题主要考查逗号运算符的运算规则。逗号运算符用于将多个表达式串在一起,逗号运算符的左
41、边总是不返回的,这就是说,逗号右边表达式的值才是整个表达式的值。逗号运算符的结合性为从左到右。由此就可以把表达式理解为 x=b=2。24.下列叙述正确的是( )。(分数:2.00)A.非空循环队列的队尾指针等于排头指针时,也可以进行入队运算B.循环队列为空时可以进行退队运算C.退队运算后队列长度减 1 D.入队运算就是将新元素插入到队尾指针指向的位置解析:解析 非空循环队列的队尾指针等于排头指针时,说明循环队列已满,不能进行入队运算,A 是错误的。循环队列为空时不可以进行退队运算,否则产生“下溢”,B 是错误的。入队运算首先将队尾指针加 1,然后将新元素插入到队尾指针指向的位置,D 是错误的。
42、25.下列叙述不属于线性链表较之线性表顺序存储结构的优点的是( )。(分数:2.00)A.线性链表存储方式简单 B.线性链表运算效率高C.线性链表的存储空间易于扩展D.线性链表便于存储空间的动态分配解析:解析 线性链表存储方式要求每个数据节点由两个部分组成,比线性表的顺序存储结构复杂,A是错误的。在平均情况下线性表的顺序存储结构插入和删除元素需要移动线性表中约一半的元素,效率低。而线性链表只需改变有关节点的指针,效率较高,B 是正确的。线性表的顺序存储存储空间必须是连续的,因此不利于存储空间扩展。线性链表不需要连续的存储空间,存储空间易于扩展,C 是正确的。为保证线性表的存储空间连续且顺序分配
43、,会导致在对某个线性表进行动态分配存储空间时必须要移动其他线性表中的数据元素,不便于存储空间的动态分配,D 是正确的;26.如下的代码段中,如果方法 unsafe()正常运行,那么结果是( )。public void example()tryunsafe();System.out.println(“Testl“);catch(SafeException e)System.out.println(“Test 2“);finallySystem.out.println(“Test 3);System.out.println(“Test 4“);(分数:2.00)A.Test 3 Test 4B.T
44、est1 Test3 Test4 C.Test1 Test3D.Test1 Test4解析:解析 在正常情况下,打印 Test1、Test3、 Test4:在产生可捕获异常时,打印 Test2、Test3、 Test4;在产生不可捕获异常时,打印 Test3,然后终止程序。注意 finally 后面的语句总是被执行。27.有下列程序段public class funpublic static void main(String args)char b=“Hello,you“;b5 = 0;System.out.println(s);执行此程序后,得到的输出结果是( )。(分数:2.00)A.He
45、llo, youB.Hello0youC.Hello D.0解析:解析 本题常见的错误答案是:字符数组 b 初始化后,得 b5=,执行 b5=0 后,用 0 代替b5中的,即可。最后输出整个字符串: Hello0you。下面是正确解答:在 C+语言中规定以字符/0作为字符串结束标志,语句 b5=0 就相当于语句 b5=/0,即在数组 b 的 b5上加了字符串结束标志,故执行该语句后,数组中存放的内容变为 Hello。28.下列对整型常量定义的解释中正确的是( )。(分数:2.00)A.034 代表八进制的数 1CB.034 代表十进制的数 34C.034 代表十六进制的数 28D.34L 代表
46、值为 34 的 64 位长整数 解析:解析 034 代表八进制的数 34,即十进制数 28,十六进制的 1C。34L 表示长整型的数 34(十进制)。29.若要求尽可能快地对实数数组进行稳定的排序,则应选( )。(分数:2.00)A.快速排序B.堆排序C.归并排序 D.基数排序解析:解析 这里要用到的知识几乎都是要记忆的。此类题目可以采用排除法,首先,稳定的排序这里有 C 和 D,其次,D 不适用于实数的排序,因此只可用 C。30.设有下列二叉树(如下图所示)(分数:2.00)A.ABDGCEHIFB.DGBAHEICF C.GDBHIEFCAD.ABCDEFGHI解析:解析 选项 A、D 中
47、,根节点排在最前,因此可以断定不是中序遍历。选项 C 中根节点排在最后,因此也可以断定不是中序遍历。其中选项 A、C 分别为前序遍历和后序遍历的结果。31.下列 API 不属于 java.lang.Math 的是( )。(分数:2.00)A.random()B.abs()C.drawLine() D.sin()解析:解析 选项 A,random()方法是 java.lang.Math 类中提供求随机数的方法;选项 B,abs()方法是java.lang.Math 类提供求绝对值的方法;选项 D,sin()方法是 java.lang.Math 类提供的求正弦函数的方法;方法 drawLine()
48、是 Graphics 类提供的用来画直线的方法。32.给出下列代码片断:if(x0) System.out.println(“first“);else if(x-3)System.out.println(“second“);elseSystem.out.println(“third“);请问 x 处于什么范围时将打印字符串“second”?( )(分数:2.00)A.x0B.x-3C.x=3D.x=0Icon icon = new ImageIcon(“swing.gif“, “A GIF on a swing“);JLabel label = new JLabel(“Swing!“, icon, Swingconstants. CENTER);contentPane.add(label, BorderLayout. CENTER);(分数:2.00)填空项 1:_ (正确答案:JApplet)解析:解析 本题是考查 Swing 组件的使用方法,有几点需要注意。程序的最后一行(contentPane.add(label,Bor- derLayout.CENTER)不是必须的,因为 JApplet 类使用BorderLayout 的一个实例作为其内容窗格的布局管理器,而 BorderLayout 的默认约束条件是BorderLayout.CENTER,所以程序的最后一行不是必