1、二级 JAVA 笔试-269 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.以下数据结构中不属于线性数据结构的是(分数:2.00)A.队列B.线性表C.二叉树D.栈2.下列选项默认的布局管理器不是 BorderLayout 的是(分数:2.00)A.WindowB.PanelC.FrameD.Dialog3.下列内部类的正确用途是btnnaddActionListener(new /注册监听器 ActionListener()public void actionPerformed(ActionEvent event)String s=in
2、put.getText();output.setText(“Hello“+s+“,Welcome You!“););(分数:2.00)A.用于访问外部类的数据B.用于进行事件处理C.隐藏起来不被同一包中的其他类所见D.生成事件适配器4.在下面附属类方法中的下划线处应填入的正确参数是public void writeData(_)throws IOExceptionGregorianCalendar calendar=new GregorianCalendar();calendar.setTime(hireDay);out.println(name+“|“+salary+“|“+calendar
3、.get(Calendar.YEAR)+“|“+(calendar.get(Calendar.MQNTH)+1)+“|“+calendar.get(Calendar.DAY_OF_MONTH);(分数:2.00)A.EmployeeeB.“employee.dat“C.PrintWriter outD.BufferedWriter5.用树形结构来表示实体之间联系的模型称为(分数:2.00)A.关系模型B.层次模型C.网状模型D.数据模型6.当启动 Applet 程序时,首先调用的方法是(分数:2.00)A.stop()B.init()C.start()D.destroy()7.下列代表十六进制
4、整数的是(分数:2.00)A.0XA6B.1234LC.-840D.01448.在 Java 中,用 package 语句说明一个包时,该包的层次结构必须是(分数:2.00)A.与文件的结构相同B.与文件目录的层次相同C.与文件类型相同D.与文件大小相同9.下列属于合法的 Java 标识符是(分数:2.00)A.“ABC“B.&5678C.+rriwoD.saler10.算法的空间复杂度是指(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间11.下列模式中,能够给出数据库物理存储结构与物理存取方法的是(分数:2.00)A.内
5、模式B.外模式C.概念模式D.逻辑模式12.执行下面程序后输出的正确结果是public class Testpublic static void main(String args)byte x=3,y=4;long r=80L;Systemoutprint(r/y);Systemoutprint(“,“);Systemoutprint(x/y);(分数:2.00)A.20.0,1B.20.0,1.0C.20,0D.20,1.013.下面哪个不是 InputStream 类中的方法?(分数:2.00)A.int read(byteDB.void flush()C.void close()D.in
6、t available()14.下面的程序执行后,屏幕上显示的应是public class Exampublic static void main(Stringargs)char char1=t,e,s,t;char char2=t,e,S,t,1;String s1=new String(char1);String s2=new String(char2,0,4);System.out.println(s1equals(s2);(分数:2.00)A.trueB.falseC.testD.编译错误15.Swing 构件必须添加到 Swing 顶层容器相关的(分数:2.00)A.选项板上B.复选
7、框内C.内容面板上D.分隔板上16.对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是(分数:2.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/217.在 Java Applet 程序中,如果对发生的事件做出响应和处理的时候,应该使用下列哪个语句(分数:2.00)A.import java.awt.event.*;B.import java.io.*;C.import java.awt.*;D.import java.applet.*;18.下面属于面向对象语言的是(分数:2.00)A.Java 语言B.机器语言C.C
8、 语言D.汇编语言19.下列程序中,若从键盘中输入的是大写字母 C,则程序输出的结果是import java.io.*;public class Exampublic static void main(String args)int ch=0;System.out.println(“输入一个字符:“);trych=System.in.read();char ch_A=A,ch_Z=Z;int delta_c=(int)ch_A+(int)ch_Z-ch;System.out.println(“编码后的字符为:“+(char)delta_c);catch(IOException e)e.prin
9、tStackTrace();(分数:2.00)A.CB.YC.XD.字母 C 的 ASCII 码的整型值20.下列关于 Applet 的说法,正确的是(分数:2.00)A.它们能读写用户的文件系统B.它们能与提供包含小程序的网页的站点之内的 Internet 站点联系C.它们能在阅读者的系统上运行任何程序D.它们能加载存储在用户系统上的程序21.为了使模块尽可能独立,要求(分数:2.00)A.模块的内聚程序要尽量高,且各模块间的耦合程度要尽量强B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的
10、耦合程度要尽量强22.设 x=1,y=2 和 z=3,则表达式 y+=z(/+x 的值是(分数:2.00)A.3B.3.5C.4D.4.523.下列叙述中正确的是(分数:2.00)A.黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征B.黑箱(盒)测试方法主要考虑程序的内部结构和内部特征C.白箱(盒)测试不考虑程序内部的逻辑结构D.上述三种说法都不对24.下列关于 Java 多线程并发控制机制的叙述中,错误的是(分数:2.00)A.Java 中对共享数据操作的并发控制是采用加锁技术B.线程之间的交互,提倡采用 suspend()/resume()方法C.共享数据的访问权限都必须定义为 pri
11、vateD.Java 中没有提供检测与避免死锁的专门机制,但应用程序员可以采用某些策略防止死锁的发生25.调用线程的下列方法,不会改变该线程在生命周期中状态的方法是(分数:2.00)A.yeild()B.wait()C.sleep()D.isAlive()26.能够支持 javadoc 命令的注释语句是(分数:2.00)A./*/B./*/C./D./*/27.下列数组 a 中,版本较新的能在程序运行时动态调整大小的是(分数:2.00)A.int aB.String aC.a=new ArrayList()D.a=new Array()28.下列表达式中正确的是(分数:2.00)A.5+B.(
12、a+b)+C.+(a+b)D.+x29.下面对对象概念描述错误的是(分数:2.00)A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通讯靠消息传递D.操作是对象的动态属性30.当一个应用程序的所有非守护线程终止运行时,但仍然有守护线程在运行,应用程序将(分数:2.00)A.运行B.阻塞C.终止D.休眠31.数据库设计的根本目标是要解决(分数:2.00)A.数据共享问题B.数据安全问题C.大量数据存储问题D.简化数据维护32.类 Panel 默认的布局管理器是(分数:2.00)A.GridLayoutB.BorderLayoutC.FlowLayoutD.CardLayout3
13、3.程序设计方法要求在程序设计过程中(分数:2.00)A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释D.以上三种说法都不对34.下列说法正确的是(分数:2.00)A.类 FilelnputStream 和 FileOutputStream 用来进行文件 I/O 处理,由它们所提供的方法可以打开本地主机上的文件,并进行顺序的读/写B.通过类 File 的实例或者一个表示文件名称的字符串可以生成文件输入/输出流,
14、在流对象生成的同时,文件被打开,但还不能进行文件读/写C.对于 InputStream 和 OutputStream 来说,它们的实例都是是非顺序访问流,即只能进行顺序的读/写D.当从标准输入流读取数据时,从键盘输入的数据直接输入到程序中35.下列有关 Java 语言的叙述中,正确的是(分数:2.00)A.Java 是不区分大小写的B.源文件名与 public 类型的类名必须相同C.源文件其扩展名为.jarD.源文件中 public 类的数目不限二、填空题(总题数:15,分数:30.00)36.某二叉树中度为 2 的结点有 18 个,则该二叉树中有 1 个叶子结点。(分数:2.00)填空项 1
15、:_37.数据的逻辑结构在计算机存储空间中的存放形式称为数据的 1。(分数:2.00)填空项 1:_38.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为 1。(分数:2.00)填空项 1:_39.在关系运算中, 1 运算是对两个具有公共属性的关系所进行的运算。(分数:2.00)填空项 1:_40.关系数据库管理系统能实现的专门关系运算包括选择、连接和 1。(分数:2.00)填空项 1:_41.Java 语言具有可移植性、高性能、健壮性、安全性和独立于体系结构的 1 特点。(分数:2.00)填空项 1:_42.下面程序段的输出结果是_。public class Testpub
16、lic static void main(String args)int i=1;switch (i) caseO:Systemoutprintln(0“);break;case 1:Systemoutprintln(“1“);case 2:Systemoutprintln(“2“);break;default:Systemoutprintln(“default“);(分数:2.00)填空项 1:_43.在运行时,由 java 解释器自动引入,而不用 import 语句引入的包是_。(分数:2.00)填空项 1:_44.一个具体的线程是由 1、代码和数据组成。(分数:2.00)填空项 1:_4
17、5.接口可以看作是仅容纳_、常量,而又不能直接生成对象的特殊抽象类。(分数:2.00)填空项 1:_46.Java 语言的循环语句包括 for 语句、do-while 语句和_语句。(分数:2.00)填空项 1:_47.下面程序段是创建一个 Date 类的对象并把它串行化保存到文件中,该对象表示的是运行时刻的日期及时间,请将程序补充完整。import java.util*;import javaio*;public class SerializeDateDate d;SerializeDate()d=new Date();tryFileOutputStream f=newFileOutputS
18、tream(“date.ser“);ObjectOutputStream s=new ObjectOutputStream(f);_f.close();catch(IOException e)eprintStackTrace();public static void main(String args)SerializeDate b=new SerializeDate();Systemoutprintln(“The saved date is:“+bdtoString();(分数:2.00)填空项 1:_48.创建一个显示“选项”的菜单项对象 mi 的正确语句是 1。(分数:2.00)填空项 1
19、:_49.所有由 Container 派生的类称为_。(分数:2.00)填空项 1:_50.请写出下面程序的运行结果:public class Test extends TTpublic static void main(String args)Test t=new Test(“Tom.“);public Test(String s)super(S);Systemoutprint(“How are you?“);public Test()this(“I am Jack“);class TTpublic TT()Systemoutprint(“Hi!“);public TT(String s)t
20、his();Systemoutprint(“I am“ +s);结果:_。(分数:2.00)填空项 1:_二级 JAVA 笔试-269 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.以下数据结构中不属于线性数据结构的是(分数:2.00)A.队列B.线性表C.二叉树 D.栈解析:解析 所谓的线性结构是指:如果一个非空的数据结构满足下列两个条件,即有且只有一个根结点;每一个结点最多有一个前驱,也最多有一个后继。同时满足两个条件的有队列、线性表和栈,而二叉树的结点可能存在两个后继,所以不是线性结构。2.下列选项默认的布局管理器不是 BorderL
21、ayout 的是(分数:2.00)A.WindowB.Panel C.FrameD.Dialog解析:解析 本题考查 Java 中的布局管理器。Panel 和 Applet 默认的布局管理器是 FlowLayout,构件在容器中放置规律是从上到下、从左到右进行放置;BorderLayout 是 Window、Frame 和 Dialog 的默认布局管理器,在 BorderLayout 布局管理器中构件分成 5 个区域 North、South、East、 West 和 Center,每个区域只能放置一个构件。考生应注意区分各个布局管理器的区别和联系,各个布局管理器的特点。3.下列内部类的正确用途
22、是btnnaddActionListener(new /注册监听器 ActionListener()public void actionPerformed(ActionEvent event)String s=input.getText();output.setText(“Hello“+s+“,Welcome You!“););(分数:2.00)A.用于访问外部类的数据B.用于进行事件处理 C.隐藏起来不被同一包中的其他类所见D.生成事件适配器解析:解析 本题考查 Java 语言内部类的概念。 内部类是在一个类的内部嵌套定义的类,一般是用来生成事件适配器,可以定义多个内部类去继承不同事件适配器
23、类,使事件处理很方便。在本题中,内部类并不是用来生成事件适配器,而是实现事件处理。btnnaddActionListener(new ActionListener()语句是注册监听器进行授权,该方法的参数是事件处理者对象。public void actionPerformed(ACtionEvent event)语句是系统产生的 ActionEvent 事件对象被当作参数传递给该方法,本接口中只有一个方法,因此事件发生时,系统会自动调用本方法,编写程序时把代码写在这个方法里即可。比如,本题中 String s=inputgetText()语句就是获得输入的字符串,然后使用outputsetTe
24、xt(“Hello“+s+“,Welcome You!“)语句实现输出。4.在下面附属类方法中的下划线处应填入的正确参数是public void writeData(_)throws IOExceptionGregorianCalendar calendar=new GregorianCalendar();calendar.setTime(hireDay);out.println(name+“|“+salary+“|“+calendar.get(Calendar.YEAR)+“|“+(calendar.get(Calendar.MQNTH)+1)+“|“+calendar.get(Calend
25、ar.DAY_OF_MONTH);(分数:2.00)A.EmployeeeB.“employee.dat“C.PrintWriter out D.BufferedWriter解析:解析 本题考查考生对附属类的掌握。题目看起来很难,其实不用去理解程序即可回答,按照Java 中的语法规则,只有选项 C 满足题目。在题目中出现了“out“变量,只有选项 C 中“PrintWriter out“有该变量。选项 A 只是用来定义一个数组,选项 B 是一个常量,不能用在这里,选项 D 中“BufferedWriter“后缺少参数。这个题目考点有些含糊,容易让考生莫名其妙,如果将程序整个给出也许更好一些,了
26、解即可,本题的关键是明白附属类的概念。5.用树形结构来表示实体之间联系的模型称为(分数:2.00)A.关系模型B.层次模型 C.网状模型D.数据模型解析:解析 在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统 (DBMS)也不同。目前常用的数据模型有 3 种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。所以,本题的正确答案是 B。6.当启动 Applet 程序时,首先调用的方法是(分数:2.00)A.stop()B.init() C.start()D.destroy()解析
27、:解析 本题考查 Applet 程序的运行方式。在 Applet 运行时,首先由浏览器调用 init()方法,所以选项 B 正确。初始化完成后,将调用 start()方法时 Applet 成为激活状态。当 Applet 被覆盖时,可用stop()方法停止线程。关闭浏览器时调用 destroy(),彻底终止 Applet,从内存中卸载并释放该 Applet的所有资源。Applet 的生命周期及其运行方式是考试重点,应该牢记。7.下列代表十六进制整数的是(分数:2.00)A.0XA6 B.1234LC.-840D.0144解析:解析 本题考查 Java 语言中的整型常量。题目不难,但属于学习程序设
28、计语言的基础,考生应该有所了解。整型常量有 3 种书写格式:十进制整数、八进制整数和十六进制整数。十六进制整数以 0x 或OX 开头,如 OX123 表示十进制数 291。选项 A 表示的是十六进制整数,选项 B 是 long 类型整型常量,选项 C 是十进制整数,选项 D 是八进制整数,因此选项 A 为本题正确选项。8.在 Java 中,用 package 语句说明一个包时,该包的层次结构必须是(分数:2.00)A.与文件的结构相同B.与文件目录的层次相同 C.与文件类型相同D.与文件大小相同解析:解析 本题考查 Java 包的概念。Java 采用包来管理类名空间,为编程提供一种命名机制,也
29、是一种可见性限制机制。定义一个包要用 package 关键字,用 package 语句说明一个包时,该包的层次结构必须与文件目录的层次相同。否则,在编译时可能出现查找不到的问题,所以选项 B 正确。9.下列属于合法的 Java 标识符是(分数:2.00)A.“ABC“B.&5678C.+rriwoD.saler 解析:解析 本题考查 Java 语言中的整型常量。题目不难,但属于学习程序设计语言的基础,应该有所了解。整型常量有 3 种书写格式:十进制整数,如 156, -230,345;八进制整数:以 0 开头,如 012 表示十进制的 10;十六进制整数:以 0x 或 OX 开头,如 0X12
30、3 表示十进制数 291。由此可见,选项 A 表示的是十六进制整数,选项 B 不是整数形式,选项 C 是十进制整数,选项 D 是八进制整数,为本题正确选项。Java 标识符的命名规则。历次考试都有涉及,应该重点掌握。Java 中标识符的命名规则是:标识符以字母、下划线、美元符作为首字符的字符串序列;标识符是区分大小写的;标识符的字符数没有限制。由此可见 Java 中标识符不能以“开头,所以选项 A 错误,不能以“&”开头,选项B 错误,不能以“+”开头,选项 C 错误,只有选项 D 是正确答案。10.算法的空间复杂度是指(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所
31、占的存储空间D.算法执行过程中所需要的存储空间 解析:解析 算法的空间复杂度指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。正确答案为D。11.下列模式中,能够给出数据库物理存储结构与物理存取方法的是(分数:2.00)A.内模式 B.外模式C.概念模式D.逻辑模式解析:解析 能够给出数据库物理存储结构与物理存取方法的是内模式。外模式是用户的数据视图,也就是用户所见到的数据模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。没有逻辑模式这一说法。正确答案为 A。12.执行下面程
32、序后输出的正确结果是public class Testpublic static void main(String args)byte x=3,y=4;long r=80L;Systemoutprint(r/y);Systemoutprint(“,“);Systemoutprint(x/y);(分数:2.00)A.20.0,1B.20.0,1.0C.20,0 D.20,1.0解析:解析 本题考查 Java 语言的二元运算符的使用。Java 中的二元运算符适用于所有数值型数据类型,包括整型和浮点型。但考生需要注意,如果两个操作数全为整型,那么,只要其中一个为 long 型,则表达式结果为 lon
33、g 型;其他情况下,即使两个操作数全是 byte 或 short 型,表达式结果也是 int 型;如果操作数为浮点型,那么只要其中一个为 double 型,表达式结果就是 double 型;只有两个操作数全是 float 型或其中一个是 float 型而另外一个是整型时,表达式结果是 float 型。所以选项 C 为正确答案。考生如果理解了 L 的含义,就能很容易回答。考生务必注意操作数类型不同时,运算结果的类型,同时注意当“/”和“%”运算中除数为 0 时会产生异常。13.下面哪个不是 InputStream 类中的方法?(分数:2.00)A.int read(byteDB.void flu
34、sh() C.void close()D.int available()解析:解析 本题考查 InputStream,类中的方法。InputStream 类中包括的主要方法有: int read(byte),该方法从输入流中读多个字节,存入字节数组;void close()方法用来关闭输入流,并释放相关资源:int available()方法返回输入流中可读字节数;long skip(long n)方法从输入流中最多向后跳 n 个字节,返回实际跳过字节数。还有其他方法,都应该有所了解,选项 B 中 void flush()并不属于 InputStream 类中的方法。不仅要记住有哪些方法,也要
35、理解其作用,并用于实际编写程序中。14.下面的程序执行后,屏幕上显示的应是public class Exampublic static void main(Stringargs)char char1=t,e,s,t;char char2=t,e,S,t,1;String s1=new String(char1);String s2=new String(char2,0,4);System.out.println(s1equals(s2);(分数:2.00)A.true B.falseC.testD.编译错误解析:解析 首先可以通过字符数组来生成一个字符串对象:String(charvalue)
36、和 String(charvalue,int startIndex,int numChars),其中,startIndex 指定字符串在数组中的起始下标, numChars 表示字符个数。然后再测试字符串是否相等,可调用 equals()方法,两个字符串相等则返回 true,否则返回 false。题目中 s1 和 s2 都是“test”,所以最后返回是 true,选项 A 正确。15.Swing 构件必须添加到 Swing 顶层容器相关的(分数:2.00)A.选项板上B.复选框内C.内容面板上 D.分隔板上解析:解析 本题考查 Swing 构件的相关概念。与 AWT 构件不同,Swing 构件
37、不能直接添加到顶层容器中,它必须添加到一个与 Swing 顶层容器相关联的内容面板(content pane)上。内容面板是顶层容器包含的一个普通容器,它是一个轻量级构件。16.对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是(分数:2.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/2 解析:解析 假设线性表的长度为 n,在最坏情况下,冒泡排序和快速排序需要的比较次数为 n(n-1)/2。由此可见,选项 D 正确。17.在 Java Applet 程序中,如果对发生的事件做出响应和处理的时候,应该使用下列哪个语句(分
38、数:2.00)A.import java.awt.event.*; B.import java.io.*;C.import java.awt.*;D.import java.applet.*;解析:解析 本题考查对 java 常用的各种包所包含的一些类的基本功能的理解。 java.awt 包是抽象窗口工具包,里面包括各种容器、组件,窗口布局管理器以及一些常用的类如 Color、 Font 等,选项 A 满足题意。而 javaapplet 包里面包括了小程序执行时必须要重载的一个类 Applet,也就只有这一个类,选项 D 错误。javaio 包主要是提供一些输入/输出类的,选项 B 不满足题意
39、。 javaawtevent 包就包含了一些能够对事件做出响应和处理的一些标准类,选项 D 不满足题意。18.下面属于面向对象语言的是(分数:2.00)A.Java 语言 B.机器语言C.C 语言D.汇编语言解析:解析 本题考查 Java 语言的特点。Java 语言是面向对象的,将客观世界看成由各种对象组成。机器语言是计算机实际处理时使用的语言,把客观世界都看成由 0 和 1 组成。过去的高级语言大多数是面向过程的,比如 c 语言等,它们是通过数据结构与算法来描述客观世界。汇编语言属于低级语言。考生应注意区分各种语言的区别。本题正确答案为选项 A。19.下列程序中,若从键盘中输入的是大写字母
40、C,则程序输出的结果是import java.io.*;public class Exampublic static void main(String args)int ch=0;System.out.println(“输入一个字符:“);trych=System.in.read();char ch_A=A,ch_Z=Z;int delta_c=(int)ch_A+(int)ch_Z-ch;System.out.println(“编码后的字符为:“+(char)delta_c);catch(IOException e)e.printStackTrace();(分数:2.00)A.CB.YC.X
41、 D.字母 C 的 ASCII 码的整型值解析:解析 本题考查考生阅读 Java 程序的能力。当使用 ch=Systeminread()语句从键盘读入大写字母 C 赋给 ch,此时 ch 值为 67,也就是字母 C 的 ASCII 值。语句(int)ch A+(int)ch Z-ch 结果为88,ASCII 码中的 88 相当于字母 X,所以输出为 X,选项 C 正确。20.下列关于 Applet 的说法,正确的是(分数:2.00)A.它们能读写用户的文件系统B.它们能与提供包含小程序的网页的站点之内的 Internet 站点联系 C.它们能在阅读者的系统上运行任何程序D.它们能加载存储在用户
42、系统上的程序解析:解析 本题考查 Java 小程序安全限制的概念。因为 Java 小程序运行在 Web 用户的系统上,所以对小程序所能完成的工作有一些严格的限制。它们不能读写用户的文件系统,选项 A 说法错误。它们不能与提供包含小程序的网页的站点之外的 Internet 站点联系,选项 B 说法正确。它们不能在阅读者的系统上运行任何程序,选项 C 说法错误。它们不能加载存储在用户系统上的程序,如可执行程序和共享库。所有这些规则适用于运行在浏览器下的 Java 小程序,选项 D 说法错误。21.为了使模块尽可能独立,要求(分数:2.00)A.模块的内聚程序要尽量高,且各模块间的耦合程度要尽量强B
43、.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强解析:解析 系统设计的质量主要反映在模块的独立性上。评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。综上所述,选项 B 的答案正确。22.设 x=1,y=2 和 z=3,则表达式 y+=z(/+x 的值是(分数:2.00)A.3B.3.5 C.4D.4.5解析:解
44、析 本题考查对运算符优先级的理解。赋值运算总是等号右边的运算优先于等号左边的运算。op+(op-)表示先取操作数的值 op,然后再对它进行加 1(减 1)操作;而+op (-op)表示先将操作数的值加 1(减 1),然后再取值。z(=3,+x=2,本题的表达式相当于: y=2+3/(1+1),结果为 3.5。23.下列叙述中正确的是(分数:2.00)A.黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征 B.黑箱(盒)测试方法主要考虑程序的内部结构和内部特征C.白箱(盒)测试不考虑程序内部的逻辑结构D.上述三种说法都不对解析:解析 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程
45、序功能导出测试用例,选项 A 是正确的,选项 B 错误。白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,选项 C 错误。正确答案为 A。24.下列关于 Java 多线程并发控制机制的叙述中,错误的是(分数:2.00)A.Java 中对共享数据操作的并发控制是采用加锁技术B.线程之间的交互,提倡采用 suspend()/resume()方法 C.共享数据的访问权限都必须定义为 privateD.Java 中没有提供检测与避免死锁的专门机制,但应用程序员可以采用某些策略防止死锁的发生解析:解析 本题考查多线程的并发控制机制。Java 中对共享数据操作的并发控制采用传统的封锁技术,也就是给对象
46、加锁,选项 A 说法正确。线程之间的交互,提倡采用 wait()和 notify()方法,这两个方法是 javalangobject 类的方法,是实现线程通信的两个方法,不提倡使用 suspend()和 resume()方法,它们容易造成死锁,所以选项 B 说法错误。共享数据的访问权限都必须定义为 private,不能为 public或其他,选项 C 说法正确。Java 中没有提供检测与避免死锁的专门机制,因此完全由程序进行控制,应用程序员可以采用某些策略防止死锁的发生,选项 D 说法正确。25.调用线程的下列方法,不会改变该线程在生命周期中状态的方法是(分数:2.00)A.yeild()B.
47、wait()C.sleep()D.isAlive() 解析:解析 本题考查线程的概念。调用线程的 sleep()方法、yeild()方法和 wait()方法都会将线程阻塞,而 isAlive()是用来测试线程,以确定线程是否活着。该方法如果返回 true,则意味着线程已经启动,但还没有结束,并不影响线程的生命周期,所以选项 D 正确。26.能够支持 javadoc 命令的注释语句是(分数:2.00)A./*/B./*/C./D./*/ 解析:解析 本题考查 Java 中的注释语句。注释是程序设计的重要组成部分,应熟练掌握。Java 中有三类注释语句:文档注释/*/,被 javadoc 处理,可
48、以建立类的一个外部说明性文件,所以本题正确答案是选项 D;C 语言注释风格 /*/,用于去掉当前不再使用但仍想保留的代码等;单行注释/,格式上要求注释符/后必须紧跟一个空格,然后才是注释信息。27.下列数组 a 中,版本较新的能在程序运行时动态调整大小的是(分数:2.00)A.int aB.String aC.a=new ArrayList() D.a=new Array()解析:解析 本题考查数组的概念。数组的定义与初始化是考试重点,也是比较容易出错的地方,应该灵活掌握。动态初始化需要使用 new 操作符来分配内存空间,既可以在声明时初始化,也可以在声明以后初始化。声明时初始化:类型数组名=new 类型数组长度;声明后初始化:类型数组名