1、二级 JAVA 笔试 23 及答案解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列各项中不属于变量组成部分的是( )。(分数:2.00)A.变量名B.变量属性C.变量初值D.变量大小2.下列组件中没有选择项的是( )。(分数:2.00)A.ButtonB.CheckBoxC.ListD.Choice3.下面哪些代码在 Java 语言中是合法的? ( )(分数:2.00)A.stringA=“abcdefg“; A-“Cde“;B.stringA=“abcdefg“; A+=“cde“;C.Integer J=new Integer(27)
2、; J-=7;D.Integer J=new Integer(27); J-;4.下面有关接口的说法中正确的是( )。(分数:2.00)A.接口与抽象类是相同的概念B.实现一个接口必须实现接口的所有方法C.接口之间不能有继承关系D.一个类可实现多个接口5.Java 的 Applet 与 Application 的主要区别是( )。(分数:2.00)A.程序代码不同B.程序代码的功能不同C.程序代码段的长度不同D.执行方式不同6.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是( )。(分数:2.00)A.把软件划分成模块B.确定模块之间的调用关系C.确定各个模块的功能D.设计每个
3、模块的伪代码7.下列组件中不能用 addItemListener()方法注册 ItemListener 监听器的是( )。(分数:2.00)A.JButtonB.JCheckBoxC.JRadioButtonD.JTextField8.UDP 允许传输的数据包最大为( )。(分数:2.00)A.8KBB.16KBC.32KBD.64KB9.下列命令中用于 Java 解释命令的是( )。(分数:2.00)A.javaeB.javaC.javadocD.appletviewer10.对于输入输出,在设计和编程时都应该考虑的原则是( )。(分数:2.00)A.对部分输入数据检验其合法性B.不允许默认
4、值C.输入一批数据时,最好使用输入结束标志D.输入数据时,不允许使用自由格式11.下列各数据结构中不属于线性结构的是( )。(分数:2.00)A.线形表B.栈与队列C.线性链表D.二叉树12.有如下程序 public class Sun public static void main(String args ) int a=2,b=1,c=2; if(aB) if(b0) if(c0) c=0; else C+; System.out.println(C) ; 上述程序的运行结果是( )。(分数:2.00)A.0B.1C.2D.313.以下各项特点中,属于线性表的顺序存储结构的是( )。(分数
5、:2.00)A.线性表中所有元素所占的存储空间是不连续的B.线性表的数据元素在存储空间中是随便存放的C.线性表中所有元素所占的存储空间是连续的D.前后件两个元素在存储空间是随便存放的14.二元算术表达式的两个操作数全是 short 类型的数据,则表达式的结果是( )。(分数:2.00)A.shortB.intC.byteD.long15.若有以下定义 int a = 1,2,3,4,5,6,7); char c1 = b,c2 = 2; 则数值不为 2 的表达式是( )。(分数:2.00)A.a1B.d-c1C.a3-c2D.c2-016.下列关于小程序安全性的说法中错误的是( )。(分数:2
6、.00)A.不能读写用户的文件系统B.不能与提供包含小程序的网页的站点之外的 Internet 站点联系C.不能在阅读者的系统上运行任何程序D.能加载部分存储在用户系统上的程序,例如共享库17.数据字典(DD) 是定义以下哪种系统描述工具中的数据的工具? ( )(分数:2.00)A.数据流程图B.系统流程图C.程序流程图D.软件结构图18.下列关于 char 类型的数据的说法中,正确的是( )。(分数:2.00)A./r表示换行符B./n表示回车符C.char 类型在内存中占 16 位D.凡是 Unicode 的字符都可以用单引号括起来作为 char 类型常量19.一个关系数据库文件中的各条记
7、录( )。(分数:2.00)A.前后顺序不能任意颠倒,一定要按照输入的顺序排列B.前后顺序可以任意颠倒,不影响库中数据的关系C.前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同D.前后顺序不能任意颠倒,一定要按照关键字段值的顺序排列20.下列关于链式存储的叙述中正确的是( )。(分数:2.00)A.链式存储结构的空间不可以是不连续的B.数据节点的存储顺序与数据元素之间的逻辑关系必须一致C.链式存储方式只可用于线性结构D.链式存储也可用于非线性结构21.在线程的同步过程中,不建议使用的是( )。(分数:2.00)A.start()B.wait()C.notify()D.stop()
8、22.对于 try 和 catch 子句的排列,下列各项中正确的是( )。(分数:2.00)A.子类异常在前,父类异常其后B.父类异常在前,子类异常其后C.先有子类,其他如果排列都无关D.有继承关系的异常不能在同一个 try 程序段内23.下面程序的输出结果是( )。 public class Sun public static void main(String args ) int a=new int11; int p=new int4; int k=5; for(int i=1;i=10;i+) ai=i; for(int i=1;i=3;i+) pi=ai*i; for(int i=1;
9、i=3;i+) k=k+pi*2; System.out.println(k);; (分数:2.00)A.33B.28C.35D.3724.从对象流中读取对象是使用 ObjectInputStream 类中的方法( )。(分数:2.00)A.readObject()B.readByte()C.readData()D.readlnputObject()25.下列说法中,正确的是( )。(分数:2.00)A.Java 是不区分大小写的,源文件名与程序类名不允许相同B.Java 语言以方法为程序的基本单位C.Applet 是 Java 的一类特殊应用程序,它嵌入 HTML 中随着主页发布到互联网上D
10、.以/开始的为多行注释语句26.下面内容不属于软件危机的是( )。(分数:2.00)A.软件质量难以保证B.软件的成本不断提高C.软件需求增长缓慢D.软件不可维护或维护程度非常低27.构造方法的作用是( )。(分数:2.00)A.复制对象B.初始化对象C.对象赋值D.回收对象28.Java 语言中提供处理不同类型流的类包是( )。(分数:2.00)A.javsq1B.javutilC.javmathD.javio29.使线程放弃当前分得的 CPU 时间,但不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU 时间的方法是( )。(分数:2.00)A.sleep()方法B.suspend
11、()方法C.yield()方法D.wait()方法30.有如下程序 public class Sun public static void main(String args ) int x=0; int n=0; while(xA.1 和 0B.2 和 72C.3 和 50D.4 和 16831.实现下列哪个接口可以对 TextField 对象的事件进行监听和处理? ( )(分数:2.00)A.AetionListenerB.FocusListenerC.MouseMofionListenerD.WindowListener32.下列哪个成员变量声明是正确的? ( )(分数:2.00)A.pu
12、blic protected final iht i;B.abstract class F9.C.private double height;D.double weight33.编译下面源程序文件会得到的文件是( )。 class A1 class A2 public class B public static void main(String args) (分数:2.00)A.只有 class 文件B.只有 A1.class 和 A2.class 文件C.有 A1.class、A2.class 和 class 文件D.编译不成功34.对排序文件的初始状态不作任何要求的排序方法有( )。(分数
13、:2.00)A.直接插入和快速排序B.直接插入和归并排序C.归并和快速排序D.归并和直接选择排序35.下列关于栈的叙述中不正确的是( )。(分数:2.00)A.在栈中能插入数据B.在栈中能删除数据C.栈是先进先出的线性表D.栈是先进后出的线性表二、B填空题/B(总题数:14,分数:28.00)36.对于长度为 n 的线性表,若进行顺序查找,则时间复杂度为U 【1】 /U。(分数:2.00)填空项 1:_37.已知某序列为49,38,65,97,76,13,27),试采用该序列的第 1 个元素为枢轴进行快速排序,则经过 1 趟快速排序之后所得到的序列为U 【2】 /U。(分数:2.00)填空项
14、1:_38.软件生命周期一般可分为以下阶段:问题定义、可行性研究、U 【3】 /U、设计、编码、U【4】 /U、运行与维护。(分数:2.00)填空项 1:_39.在选择运算所得到的结果关系中,所含的元组数不能U 【5】 /U原关系中的元组数。(分数:2.00)填空项 1:_40.Java 语言中用于提供输入/输出的包是U 【6】 /U。(分数:2.00)填空项 1:_41.递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将直接或间接地调用U 【7】 /U的方法。(分数:2.00)填空项 1:_42.程序中可能出现一种情况:多个线程互相等待对方持有的锁,而在得到对方的锁之前都不会释放自
15、己的锁。这就是U 【8】 /U。(分数:2.00)填空项 1:_43.字符类输出流的各个类都是抽象类U 【9】 /U的子类。(分数:2.00)填空项 1:_44.FileChanne1 类为磁盘文件映射入U 【10】 /U提供了一个通道。(分数:2.00)填空项 1:_45.下面的应用程序中有一个组,组内有 4 个单选按钮,请在画线处填入正确的语句使程序能正确运行。 import javax.swing.*; public class OneTeam extends JFrame JRadioButton teams = new JRadioButton3; public OneTeam()
16、super(“One Team“); setSize (140,160); setDefaultCloseOperation(JFrame.EXIT ON CLOSE JPanel pane = new JPanel(); teams0 = new JRadioButton(“red choose“); teamsl = new JRadioButton(“blue choose“); teams2 = new JRadioButton(“green choose“); U【11】 /U; for ( int i = 0;i teams.length;i+) group.add(teamsi)
17、; pane.add(teamsi); setContentPane(pane); public static void main(String arguments OneTeam ot= new OneTeam(); ot.show(); (分数:2.00)填空项 1:_46.MouseEvent 事件可以实现的监听接口是 MouseListener 和U 【12】 /U。(分数:2.00)填空项 1:_47.一个类的定义分为类注释、U 【13】 /U和类体的定义。(分数:2.00)填空项 1:_48.Applet 生命周期包括 Applet 的创建、运行和U 【14】 几个状态。/U(分数
18、:2.00)填空项 1:_49.下列 Applet 当鼠标进入窗口时,在状态栏显示“鼠标已进入”的提示信息。请填写正确的程序在横线处。 import java.awt.*; import java.awt.event.*; public class TestlO extends Applet public void init() addMouseListener( new MouseAdapter() public void mouseEntered( MouseEvent me) U【15】 /U; repaint(); ); (分数:2.00)填空项 1:_二级 JAVA 笔试 23 答案
19、解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列各项中不属于变量组成部分的是( )。(分数:2.00)A.变量名B.变量属性C.变量初值D.变量大小 解析:解析 选项 A、B 和 C 均属于变量的组成部分;选项 D 不是,因为 Java 的数据类型长度都固定,变量的大小并不是组成变量的一部分,而应该是变量的类型,有了变量的类型,变量的大小就能确定了。2.下列组件中没有选择项的是( )。(分数:2.00)A.Button B.CheckBoxC.ListD.Choice解析:解析 本题考查 Java 中常用组件的基本知识。选项 A 正确,B
20、utton 组件是按钮,只能响应点击,组件上没有提供选择项;选项 B 错误,CheckBox 组件为复选框,当然可以有多项选择项:选项 C 错误,List 组件为列表框支持滚动条,可以有多项选择项;选项 D 错误,Choice 组件为选择框,可弹出菜单提供多项选择。故本题答案是 A。3.下面哪些代码在 Java 语言中是合法的? ( )(分数:2.00)A.stringA=“abcdefg“; A-“Cde“;B.stringA=“abcdefg“; A+=“cde“; C.Integer J=new Integer(27); J-=7;D.Integer J=new Integer(27);
21、 J-;解析:解析 该题考查对赋值运算的理解。对于字符串,可以用加号“+”进行连接,而不能用减号“-”。而对于基本类型的类包装所定义的对象都不能再像基本类型那样直接进行赋值运算了,若要进行运算,必须先提取它们的值,然后再进行运算。4.下面有关接口的说法中正确的是( )。(分数:2.00)A.接口与抽象类是相同的概念B.实现一个接口必须实现接口的所有方法 C.接口之间不能有继承关系D.一个类可实现多个接口解析:解析 接口是一种只含有抽象方法或常量的一种特殊的抽象类,但它与抽象类不是相同的概念,它可以继承,一个类可实现多个接口,实现一个接口必须实现接口内的所有方法。由此可知只有 B 选项的描述是正
22、确的。5.Java 的 Applet 与 Application 的主要区别是( )。(分数:2.00)A.程序代码不同B.程序代码的功能不同C.程序代码段的长度不同D.执行方式不同 解析:解析 Applet 与 Application 的主要区别是在执行方式上;Application 以 main()方法为入口点运行,而 Applet 要在浏览器或 appletviewer 中运行,运行过程要比 Application 复杂。6.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是( )。(分数:2.00)A.把软件划分成模块B.确定模块之间的调用关系C.确定各个模块的功能D.设计
23、每个模块的伪代码 解析:解析 概要设计是数据库的总体设计,其目的就是要根据需求规格说明书把软件按照功能划分为多个模块,然后确定每个模块要实现的功能,最后确定模块之间的调用关系。而设计每个模块的伪代码则属于详细设计。所以只有最后一个不属于概要设计范畴。7.下列组件中不能用 addItemListener()方法注册 ItemListener 监听器的是( )。(分数:2.00)A.JButtonB.JCheckBoxC.JRadioButtonD.JTextField 解析:解析 本题考查事件响应中基本组件所能产生事件。选项 A 错误,JButton 能产生项目事件,因此可以用 addItemL
24、istener()方法注册 ItemListener 监听器;选项 B 错误, JCheekBox 也可注册ItemListener 监听器;选项 C 错误,JRadioBuRon 组件也可以;选项 D 正确,JTextField 不能产生项目事件。故本题答案是 D。8.UDP 允许传输的数据包最大为( )。(分数:2.00)A.8KBB.16KBC.32KBD.64KB 解析:解析 UDP 报文的最大长度为 64KB。9.下列命令中用于 Java 解释命令的是( )。(分数:2.00)A.javae B.javaC.javadocD.appletviewer解析:解析 Java 基本命令包括
25、:javac、java、 javadoc、appletviewer、jar、jdb、javah、javap、 extcheck。其中 java 为 Java 语言的解释命令,解释运行 Java 字节码,其格式为:java选项class命令行参数。10.对于输入输出,在设计和编程时都应该考虑的原则是( )。(分数:2.00)A.对部分输入数据检验其合法性B.不允许默认值C.输入一批数据时,最好使用输入结束标志 D.输入数据时,不允许使用自由格式解析:解析 输入输出信息是用户直接关心的,输入输出方式和格式应尽可能方便用户的使用,因为系统能否被用户接受,往往取决于输入输出的风格。好的输入输出风格对所
26、有输入数据检其合法性,允许默认值,并且在输入数据时,允许使用自由格式。11.下列各数据结构中不属于线性结构的是( )。(分数:2.00)A.线形表B.栈与队列C.线性链表D.二叉树 解析:解析 一个线性结构需要满足以下两个条件:一是有且只有一个根节点;二是每个节点最多有一个前件,也最多有一个后件。选项中的线形表、栈与队列、线性链表都满足这两个条件,所以它们都是线性结构,而二叉树虽然只有一个根节点,但它的每个节点可以有两个子树,不满足线性结构的每个节点最多有一个前件,也最多有一个后件这一条件。所以它不是线性结构。12.有如下程序 public class Sun public static vo
27、id main(String args ) int a=2,b=1,c=2; if(aB) if(b0) if(c0) c=0; else C+; System.out.println(C) ; 上述程序的运行结果是( )。(分数:2.00)A.0B.1C.2D.3 解析:解析 本题考查对 if-else 条件语句的理解。该题是 if 语句的多重嵌套结构,首先 a=2,b=1,执行第 1 重 if 条件语句,由于 ab 满足条件,继续执行第 2 重 if 条件语句,b13.以下各项特点中,属于线性表的顺序存储结构的是( )。(分数:2.00)A.线性表中所有元素所占的存储空间是不连续的B.线性
28、表的数据元素在存储空间中是随便存放的C.线性表中所有元素所占的存储空间是连续的 D.前后件两个元素在存储空间是随便存放的解析:解析 线性表的顺序存储结构要求;线性表中所有元素所占的存储空间是连续的,并且线性表的数据元素在存储空间中是按逻辑顺序依次存放的。因此,选项 A、B 是错误的。在线性表的顺序存储结构中,前后件两个元素在存储空间中是紧邻的,因此,选项 D 也是错误的,14.二元算术表达式的两个操作数全是 short 类型的数据,则表达式的结果是( )。(分数:2.00)A.shortB.int C.byteD.long解析:解析 当二元算术表达式的两个操作数全是 short 类型的数据时,
29、整个表达式的结果应该是 int类型,这个规则也适用于 byte 类型。15.若有以下定义 int a = 1,2,3,4,5,6,7); char c1 = b,c2 = 2; 则数值不为 2 的表达式是( )。(分数:2.00)A.a1B.d-c1C.a3-c2D.c2-0 解析:解析 本题考查数组的定义、初始化及其引用,以及对字符 ASCII 码值的熟悉程度。解本题的关键在于熟悉字符的 ASCII 码值。字符在进行数学运算时取其 ASCII 码值,其中b的 ASCII 码值为98,d的 ASCII 码值为 100,字符2的 ASCII 码值为 50。根据以上知识,可知 D 选项中表达式 c
30、2-0 的值为 50。16.下列关于小程序安全性的说法中错误的是( )。(分数:2.00)A.不能读写用户的文件系统B.不能与提供包含小程序的网页的站点之外的 Internet 站点联系C.不能在阅读者的系统上运行任何程序D.能加载部分存储在用户系统上的程序,例如共享库 解析:解析 该题考查对小程序的安全性方面的限制的理解。为了防止有恶意的 Java 程序员编写删除用户文件、从系统中搜集私人信息和违反其他安全规则的小程序,SUN 公司在一开始推出 Applet 小程序时就对安全性这方面做了限制。故本题答案是 D。17.数据字典(DD) 是定义以下哪种系统描述工具中的数据的工具? ( )(分数:
31、2.00)A.数据流程图 B.系统流程图C.程序流程图D.软件结构图解析:解析 本题考查数据字典的作用,数据字典是对数据流程图中出现的被命名的图形元素的确切解释。18.下列关于 char 类型的数据的说法中,正确的是( )。(分数:2.00)A./r表示换行符B./n表示回车符C.char 类型在内存中占 16 位 D.凡是 Unicode 的字符都可以用单引号括起来作为 char 类型常量解析:解析 /r表示回车符,/n表示换行符,不是所有的 Unicode 的字符都可以直接用作 char 类型常量,比如 A 和 B 选项中的字符需要反斜杠做转义才行。C 选项是正确,Java 语言中 cha
32、r 类型的变量在内存中占 16 位。19.一个关系数据库文件中的各条记录( )。(分数:2.00)A.前后顺序不能任意颠倒,一定要按照输入的顺序排列B.前后顺序可以任意颠倒,不影响库中数据的关系 C.前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同D.前后顺序不能任意颠倒,一定要按照关键字段值的顺序排列解析:解析 关系数据库的逻辑性强而物理性弱,因此关系数据库中的各条记录前后顺序可以任意颠倒,不影响库中数据的关系。20.下列关于链式存储的叙述中正确的是( )。(分数:2.00)A.链式存储结构的空间不可以是不连续的B.数据节点的存储顺序与数据元素之间的逻辑关系必须一致C.链式存储
33、方式只可用于线性结构D.链式存储也可用于非线性结构 解析:解析 链式存储结构不同于顺序存储结构,它的存储空间可以是不连续的,并且数据节点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系是由指针域来确定的。链式存储方式可用于线性结构,也可用于非线性结构,在表示复杂的非线性结构时,指针域的个数要多一些。21.在线程的同步过程中,不建议使用的是( )。(分数:2.00)A.start()B.wait()C.notify()D.stop() 解析:解析 在线程的同步过程中,不建议使用的方法有 stop()、suspend()和 resume()。 stop()强行终止线程的运行,容
34、易造成数据的不一致。;suspend()和 resume()这两种方法使得一个进程可以直接控制另外一个进程的执行,容易造成死锁。22.对于 try 和 catch 子句的排列,下列各项中正确的是( )。(分数:2.00)A.子类异常在前,父类异常其后 B.父类异常在前,子类异常其后C.先有子类,其他如果排列都无关D.有继承关系的异常不能在同一个 try 程序段内解析:解析 Java 语言中,在捕获父类异常时对其子类异常也捕获了,根据 try 和 catch 的匹配原则,尽量使用一个父类去捕获其所有子类的异常,所以 A 选项描述的子类异常在前,父类异常其后是正确的。23.下面程序的输出结果是(
35、)。 public class Sun public static void main(String args ) int a=new int11; int p=new int4; int k=5; for(int i=1;i=10;i+) ai=i; for(int i=1;i=3;i+) pi=ai*i; for(int i=1;i=3;i+) k=k+pi*2; System.out.println(k);; (分数:2.00)A.33 B.28C.35D.37解析:解析 本题考查对 for 循环语句和数组的理解。此题中共定义了两个数组,a,p,共用了 3次 for 循环。第 1 个 f
36、or 语句对数组 ai赋值,a1a10=110;第 2 个 for 语句,对数组 pi赋值 p1)=1,p2=4,p3=9;第 3 个 for 语句,计算 k 的值。3 次循环分别得到:5、15、33。故本题答案是 A。24.从对象流中读取对象是使用 ObjectInputStream 类中的方法( )。(分数:2.00)A.readObject() B.readByte()C.readData()D.readlnputObject()解析:解析 从对象流中读取对象是使用 ObjeetlnputStream 类中的 readObiect()方法。25.下列说法中,正确的是( )。(分数:2.0
37、0)A.Java 是不区分大小写的,源文件名与程序类名不允许相同B.Java 语言以方法为程序的基本单位C.Applet 是 Java 的一类特殊应用程序,它嵌入 HTML 中随着主页发布到互联网上 D.以/开始的为多行注释语句解析:解析 Java 语言是区分大小写的,且其源文件名必须与程序类名相同,其扩展名为 java,源文件中最多只能有一个 public 类,其他类的个数不限,所以选项 A 是错误的; B 选项是错误的,Java 语言是以类为程序的基本单元;D 选项是错误的以“/”开始的为单行注释语句,多行注释语句的符号为“/*/”。选项 C 是正确的。26.下面内容不属于软件危机的是(
38、)。(分数:2.00)A.软件质量难以保证B.软件的成本不断提高C.软件需求增长缓慢 D.软件不可维护或维护程度非常低解析:解析 所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。选项A、B、D 都属于软件危机的一种表现,软件危机还包括软件需求的增长得不到满足、软件开发成本和进度无法控制和软件开发生产率的提高赶不上硬件的发展和应用需求的增长。27.构造方法的作用是( )。(分数:2.00)A.复制对象B.初始化对象 C.对象赋值D.回收对象解析:解析 本题考查构造方法的作用。Java 中的每个类都有构造方法,用来初始化该类的一个新对象。构造方法是一种特殊的方法,它具有和类
39、名相同的名称,而且不返回任何数据类型。28.Java 语言中提供处理不同类型流的类包是( )。(分数:2.00)A.javsq1B.javutilC.javmathD.javio 解析:解析 java.io 包封装了不同的类,用于处理不同类型的流,包括字节流、字符流、文件流和对象流等。29.使线程放弃当前分得的 CPU 时间,但不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU 时间的方法是( )。(分数:2.00)A.sleep()方法B.suspend()方法C.yield()方法 D.wait()方法解析:解析 本题考查对线程阻塞概念的理解程度。为了解决对共享存储区的访问冲突,
40、 Java 引入了同步机制。但当多个线程对共享资源访问时,显然同步机制已经不够了,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一时刻准备好了的资源也可能不止 1 个。为了解决这种情况下的访问控制问题,Java 引入了对阻塞机制的支持。 阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),学过操作系统的同学对它一定已经很熟悉了。Java 提供了大量方法来支持阻塞,下面逐一分析。选项 A 错误,sleep()允许指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间内进入阻塞状态,不能得到 CPU 时间,指定的时间一过,线程重新进入可执行状态。典型地,sleep(
41、)被用在等待某个资源就绪的情形;测试发现条件不满足后,让线程阻塞一段时间后重新测试,直到条件满足为止。选项 B 错误,suspend()和 resume()两个方法常配套使用,suspend()使得线程进入阻塞状态,并且不会自动恢复,必须其对应的 resume()被调用,才能使得线程重新进入可执行状态。典型地,suspend()和resume()被用在等待另一个线程产生的结果的情形:测试发现结果还没有产生后,让线程阻塞,另一个线程产生了结果后,调用 resume()使其恢复。 选项 C 正确,yield()使得线程放弃当前分得的 CPU 时间,但是不使线程阻塞,即线程仍处于可执行状态,随时可能
42、再次分得 CPU 时间。调用 yield()的效果等价于调度程序认为该线程已执行了足够的时间从而转到另一个线程。 选项 D 错误,wait()和 notify()两个方法常配套使用,wait()使得线程进入阻塞状态,它有两种形式,一种允许指定以毫秒为单位的一段时间作为参数,另一种没有参数,前者当对应的 notify()被调用或者超出指定。30.有如下程序 public class Sun public static void main(String args ) int x=0; int n=0; while(xA.1 和 0B.2 和 72 C.3 和 50D.4 和 168解析:解析 本题
43、考查对 while 循环语句的理解。本例中使用 while 语句宋计算结果 x,第 1 次循环,x=6,n=1;第 2 次循环,x=72,n=2。故本题答案是 B。31.实现下列哪个接口可以对 TextField 对象的事件进行监听和处理? ( )(分数:2.00)A.AetionListener B.FocusListenerC.MouseMofionListenerD.WindowListener解析:解析 文本框 TextField 可用于编辑单行文本,输入一个字符串,按回车键就会激活一个文本框事件。对 TextField 对象的事件进行监听和处理可以实现接口 ActionListene
44、r 来进行。32.下列哪个成员变量声明是正确的? ( )(分数:2.00)A.public protected final iht i;B.abstract class F9.C.private double height; D.double weight解析:解析 本题考查对成员变量声明的掌握程度。选项 A 错误,成员变量不能同时声明成 public 和protected;选项 B 错误,不是成员变量声明,是类声明;选项 C 正确,声明了一个 double 类型的私有变量 height;选项 D 错误,不能以“”结尾,应用“;”。33.编译下面源程序文件会得到的文件是( )。 class A
45、1 class A2 public class B public static void main(String args) (分数:2.00)A.只有 class 文件B.只有 A1.class 和 A2.class 文件C.有 A1.class、A2.class 和 class 文件 D.编译不成功解析:解析 Java 语言一个源程序中可以含有多个类,每个类编译生成一个字节码文件。此题程序段中有 3 个类,因此在编译时应该有 3 个字节码文件生成,即 A1.class、A2.class 和 B.class。34.对排序文件的初始状态不作任何要求的排序方法有( )。(分数:2.00)A.直接
46、插入和快速排序 B.直接插入和归并排序C.归并和快速排序D.归并和直接选择排序解析:解析 只有归并排序要求待排序文件“部分排序”(把待排序的文件分成若干个子文件,每个子文件内的记录是已排序的)。35.下列关于栈的叙述中不正确的是( )。(分数:2.00)A.在栈中能插入数据B.在栈中能删除数据C.栈是先进先出的线性表 D.栈是先进后出的线性表解析:解析 栈是一种线性表,只不过是一种特殊的线性表。在这种特殊的线性表中,插入和删除运算都只在线性表的一端进行。即在这种线性表中,一端是封闭的,不允许进行插入与删除元素;一端是开口的,允许进行插入与删除元素。选项 A、B 是正确的。栈是一种先进后出的线性
47、表。二、B填空题/B(总题数:14,分数:28.00)36.对于长度为 n 的线性表,若进行顺序查找,则时间复杂度为U 【1】 /U。(分数:2.00)填空项 1:_ (正确答案:O(n))解析:解析 语句的频度指的是该语句重复执行的次数。一个算法中所有语句的频度之和构成了该算法的运行时间。长度为 n 的线性表顺序查找的平均次数为 n/2,则它的时间复杂度是 O(n)。37.已知某序列为49,38,65,97,76,13,27),试采用该序列的第 1 个元素为枢轴进行快速排序,则经过 1 趟快速排序之后所得到的序列为U 【2】 /U。(分数:2.00)填空项 1:_ (正确答案:27 13 38 49 65 97 76)解析:解析 快速排序的的思想是:从线性表中选取一元素,如本题中的 49,将线性表后面小于 46 的元素移到前边,而前面大于 49 的元素移