1、二级 JAVA 笔试 75 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列叙述中错误的是(分数:2.00)A.在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统B.在数据库设计的过程中,概念结构设计与具体的数据库管理系统有关C.在数据库设计的过程中,逻辑结构设计与具体的数据库管理系统有关D.在数据库设计的过程中,物理结构设计依赖于具体的计算机系统2.下列的哪两种原始类型在使用流时可以互换(分数:2.00)A.byte 和 booleanB.char 和 intC.byte 和 charD.String 和 char3.下
2、列组件不能添加进 Frame 主窗口的是(分数:2.00)A.PanelB.CheckBoxC.DialogD.Choice4.下列不属于虚拟机执行过程的特点的是(分数:2.00)A.多线程B.动态连接C.异常处理D.代码安全检查5.设 x=1,y=2 和 z=3,则表达式 y+=z-/+x 的值是(分数:2.00)A.3B.35C.4D.456.下面程序段的输出结果为 public class Test public static void main(String args) boolean a,b,c; a=(3A.a=true b=false b=true c=falseB.a=true
3、 b=false b=true c=trueC.a=true b=true b=tree c=falseD.a=false b=false b=tree c=false7.下列关于 Applet 的说法,正确的是(分数:2.00)A.它们能读写用户的文件系统B.它们能与提供包含小程序的网页的站点之内的 Internet 站点联系C.它们能在阅读者的系统上运行任何程序D.它们能加载存储在用户系统上的程序8.下面程序段的输出结果是 public class Test public static void main(String args) inta=new int11; intp=new int4
4、; int k=5; for(int i=1;i=10)break; if(b%2=1) b+=2; continue; Systemoutprintln(a) ; (分数:2.00)A.5B.6C.7D.10128.下列选项成员变量声明正确的是(分数:2.00)A.public protected final int i;B.abstract class F1C.private double height;D.double weight29.下列方法中能完成主类实例初始化工作的是(分数:2.00)A.start()B.stop()C.init()D.paint()30.当一个应用程序的所有非
5、守护线程终止运行时,但仍然有守护线程在运行,应用程序将(分数:2.00)A.运行B.阻塞C.终止D.休眠31.用树形结构来表示实体之间联系的模型称为(分数:2.00)A.关系模型B.层次模型C.网状模型D.数据模型32.下列 java 组件中,不属于容器的是(分数:2.00)A.PanelB.WindowC.FrameD.Label33.下列叙述中正确的是(分数:2.00)A.黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征B.黑箱(盒)测试方法主要考虑程序的内部结构和内部特征C.白箱(盒)测试不考虑程序内部的逻辑结构D.上述三种说法都不对34.设树 T 的度为 4,其中度为 1,2,3,
6、4 的结点个数分别为 4,2,1,1。则 T 中的叶子结点数为(分数:2.00)A.5B.6C.7D.835.下列说法正确的是(分数:2.00)A.类 FilelnputStream 和 FileOutputStream 用宋进行文件 I/O 处理,由它们所提供的方法可以打开本地主机上的文件,并进行顺序的读/写B.通过类 File 的实例或者一个表示文件名称的字符串可以生成文件输入/输出流,在流对象生成的同时,文件被打开,但还不能进行文件读/写C.对于 InputStream 和 OutputStream 来说,它们的实例都是是非顺序访问流,即只能进行顺序的读/写D.当从标准输入流读取数据时,
7、从键盘输入的数据直接输入到程序中二、B填空题/B(总题数:15,分数:30.00)36.在一个容量为 25 的循环队列中,若头指针 from=16,尾指针 rear=9,则该循环队列中共有U 【1】 /U,个元素。(分数:2.00)填空项 1:_37.在面向对象方法中,属性与操作相似的一组对象称为U 【2】 /U。(分数:2.00)填空项 1:_38.Jackson 方法是一种面向U 【3】 /U的结构化方法。(分数:2.00)填空项 1:_39.一个项目具有一个项目主管,一个项目主管可管理多个项目。则实体集“项目主管”与实体集“项目”的联系属于 【4】 的联系。(分数:2.00)填空项 1:
8、_40.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改,称为U 【5】 /U(分数:2.00)填空项 1:_41.Java 中的方法的参数传递是U 【6】 /U调用。(分数:2.00)填空项 1:_42.Java 语言中如果要使用某个包中的类时,需要使用上U 【7】 /U导入。(分数:2.00)填空项 1:_43.执行下面的程序段,输出结果为U 【8】 /U public class Q public static void main(String argv int anar=new int 5; Systemoutpri
9、ntln(anar0; (分数:2.00)填空项 1:_44.一个具体的线程是由上U 【9】 /U、代码和数据组成。(分数:2.00)填空项 1:_45.使得线程放弃当前分得的 CPU 时间,但不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU 时间的方法是U 【10】 /U。(分数:2.00)填空项 1:_46.关于文件名的处理中,测试当前文件是否目录用U 【11】 /U函数。(分数:2.00)填空项 1:_47.sum 的值为 0,则 result=sum=0?1:num/sum 的值为U 【12】 /U。(分数:2.00)填空项 1:_48.下面程序段是从对象流中读取对象,请将
10、程序补充完整。 import javautil*; import javaio*; public class UnSerializaDate Date d=null; UnSerializaDate() try FilelnputStream f=new FilelnputStream(“dateser“); ObjectlnputStream S=new ObjectlnputStream(f); U【13】 /U fclose(); catch(Exception e) eprintStackTrace(); public static void main(String args) UnS
11、erializaDate a=new UnSerializaDate(); Systemoutprintln(“The date read is:“+adtoString(); )(分数:2.00)填空项 1:_49.一个类只有实现了U 【14】 /U接口,它的对象才是可串行化的。(分数:2.00)填空项 1:_50.请将程序补充完整。 import javaawt*; public class FirstFrame extends Frame public static void main(String args) FirstFrame fr=new FirstFrame(“First co
12、ntainer!“); frsetSize(240,240); frsetBackground(Coloryellow); U 【15】 /U public FirstFrame(Strings str) superstr); )(分数:2.00)填空项 1:_二级 JAVA 笔试 75 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列叙述中错误的是(分数:2.00)A.在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统B.在数据库设计的过程中,概念结构设计与具体的数据库管理系统有关 C.在数据库设计的过程中,逻辑结构设计与
13、具体的数据库管理系统有关D.在数据库设计的过程中,物理结构设计依赖于具体的计算机系统解析:解析数据库设计主要分四个步骤:需求分析,概念结构设计,逻辑结构设计,物理结构设计。选项 B 错误,应为所选,因为概念结构设计在需求分析的基础上对客观世界做抽象,独立于数据库的逻辑结构,也独立于具体的数据库管理系统,即与具体的数据库管理系统无关。2.下列的哪两种原始类型在使用流时可以互换(分数:2.00)A.byte 和 booleanB.char 和 int C.byte 和 charD.String 和 char解析:解析本题考查 Java 语言中字节类型的概念。在 Java 语言中,byte 是字节类
14、型,用一个字节表示;boolean 是布尔类型,用 true 和 false 表示,它们的表示方法并不一样,也不提供它们之间的转换,选项 A 错误。Java 内部用整数宋表示 char,通常可以在方法调用和其他语句中互换使用 char 和 int,选项 B 正确。char 用两个字节表示, byte 字节类型用一个字节表示,Java 内部也不允许互换使用它们,选项 C 错误。String 在 Java 语言中是一个类,它提供对字符串的一系列操作,而 char 是 Java 语言中的一个基本类型,它不是一个类,两者有本质的区别,故而它们是不能互换使用的,选项 D 错误。需要注意的是,在 Java
15、 语言中提供的类都是以大写字母开头,基本类型都用小写字母表示。3.下列组件不能添加进 Frame 主窗口的是(分数:2.00)A.PanelB.CheckBoxC.Dialog D.Choice解析:解析本题考查,java 组件中容器的基本知识。选项 A 错误,Panel 组件是容器,可以添加到Frame 窗口。选项 B 错误,CheckBox 组件是复选框组件,可以添加到 Frame 窗口。选项 C 正确,Dialog继承自 Window,Windows 类型(或子类)的对象不能包含在其他容器中。选项 D 错误,Choice 组件是选择框组件,可以添加到 Frame 窗口。4.下列不属于虚拟
16、机执行过程的特点的是(分数:2.00)A.多线程B.动态连接C.异常处理D.代码安全检查 解析:解析本题考查虚拟机执行过程的特点。Java 虚拟机是编译器生成的字节码,不用考虑具体的硬件环境,实现一次编写,随处运行,实现其可移植性。虚拟机执行过程的特点有:多线程、动态连接、异常处理。代码安全检查是 Java 语言的一个突出特点,但不属于虚拟机执行过程特点。5.设 x=1,y=2 和 z=3,则表达式 y+=z-/+x 的值是(分数:2.00)A.3B.35 C.4D.45解析:解析本题考查对运算符优先级的理解。赋值运算总是等号右边的运算优先于等号左边的运算。op+(op-)表示先取操作数的值
17、op,然后再对它进行加 1(减 1)操作:而+op(-op)表示先将操作数的值加 1(减 1),然后再取值。Z-=3,+x=2,本题的表达式相当于:y=2+3/(1+1),结果为 35。6.下面程序段的输出结果为 public class Test public static void main(String args) boolean a,b,c; a=(3A.a=true b=false b=true c=falseB.a=true b=false b=true c=trueC.a=true b=true b=tree c=false D.a=false b=false b=tree c=
18、false解析:解析本题考查关系运算符,也叫逻辑右移,用于将一个数的各二进制位全部无符号右移若干位,与运算符 不同的是左补 0,而则是最高位移入原来高位的值。在本题中,8 的二进制表示是 1000,右移两位后变成了 0100,对应的十进制数是 4。可见,正确答案为选项 D。26.下述关于数据库系统的叙述中正确的是(分数:2.00)A.数据库系统减少了数据冗余 B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据解析:解析数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并
19、发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项 A 正确,选项 B 错误。 在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项 C 错误。数据库系统比文件系统能管理更多的数据,并非数据库系统的特点,选项 D 错误。本题正确答案是 A。27.下面程序段的输出结果是 public class Test public static void main(String args) int a,b; for(a=
20、1,b=1;a=10)break; if(b%2=1) b+=2; continue; Systemoutprintln(a) ; (分数:2.00)A.5B.6 C.7D.101解析:解析本题考查 for 循环和订语句的嵌套以及 break 语句和 continue 语句的用法。第 1 个 if 语句的意义为:当 b=10 时退出 for 循环,第 2 个 if 语句的意义为:如果 b%2=1,则 b 的值加 2 并退出本次循环。本程序当 b 的值分别为 1、3、5、7 和 9 的时候执行 5 次循环,此时 a=5,b=9,当执行第 6 次循环时,a 的值为 6 但 b=11,所以退出循环,
21、程序结束。28.下列选项成员变量声明正确的是(分数:2.00)A.public protected final int i;B.abstract class F1C.private double height; D.double weight解析:解析本题考查对成员变量的声明。成员变量的声明格式位:修饰符 type 变量名;其中 type 可以是 java 语言中的任意数据类型,而修饰符可以是 public、protected, private,static,final,transient,volatile 等。选项 A 错误,成员变量不能同时声明成 public 和protected。选项
22、B 是类的声明格式,并不是成员变量的声明。成员变量声明应以“;”结尾,选项 D 错误。选项 C 声明了一个私有的 double 型成员变量,为正确答案。29.下列方法中能完成主类实例初始化工作的是(分数:2.00)A.start()B.stop()C.init() D.paint()解析:解析本题考查对 Applet 必须要重载的几个方法的理解。选项 A 错误,start()方法使得程序从初始态进入运行态,当浏览器从图标状态恢复为窗口时,或者当用户离开包含 Applet 的主页后又再返回时,系统都会自动再执行一遍 start()方法。选项 B 错误,stop()方法是和 start()方法相对
23、应的,当浏览器变成图标或者是用户离开 Applet 所在页面时,浏览器都会调用 stop()方法,该方法也是可以被多次调用的。选项 C 正确,当创建 JavaApplet 且第一次使用支持 Java 的浏览器载入该 Applet 时,就会执行 init()方法,通常在这方法中执行一次性的初始化操作。选项 D 错误,paint()方法是画图时必须要重载的方法。30.当一个应用程序的所有非守护线程终止运行时,但仍然有守护线程在运行,应用程序将(分数:2.00)A.运行B.阻塞C.终止 D.休眠解析:解析本题考查线程的机制。守护线程是一类特殊的线程,它和普通线程的区别在于它并不是应用程序的核心部分,
24、当一个应用程序的所有非守护线程终止运行时,即使仍然有守护线程在运行,应用程序也将终止;反之,只要有一个非守护线程在运行,应用程序就不会终止。守护线程一般被用于在后台为其他线程提供服务。可以通过调用方法 isDaemon()来判断一个线程是否是守护线程,也可以调用方法 setDaemon()来将一个线程设为守护线程。31.用树形结构来表示实体之间联系的模型称为(分数:2.00)A.关系模型B.层次模型 C.网状模型D.数据模型解析:解析在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有 3 种:层次模型、网状模型和关系模型。在层次模型中,实体之间
25、的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。所以,本题的正确答案是 B。32.下列 java 组件中,不属于容器的是(分数:2.00)A.PanelB.WindowC.FrameD.Label 解析:解析本题考查对java 组件中容器的基本知识的理解。选项 A 错误,Panel 类派生自容器类Container,属于容器的一种。选项 B 错误,Window 类也派生自容器类 Container,也属于容器的一种。选项 C 错误,Frame 类派生自 Window 类,也是一种容器。选项 D 正确,Label 组件是标签组件,不属于容器。
26、故本题答案选项是 D。33.下列叙述中正确的是(分数:2.00)A.黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征 B.黑箱(盒)测试方法主要考虑程序的内部结构和内部特征C.白箱(盒)测试不考虑程序内部的逻辑结构D.上述三种说法都不对解析:解析黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例,选项 A 是正确的,选项 B 错误。白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,选项 C 错误。正确答案为 A34.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1。则 T 中的叶子结点数为(分数:2.00)A.5B.6C.7D
27、.8 解析:解析根据给定的条件,在树中,各结点的分支总数为:4*1+2*2+1*3+4*1=15;树中的总结点数为;15(各结点的分支总数)+1(根结点)16;非叶子结点总数为: 4+2+1+1=8。因此,叶子结点数为 16(总结点数)-8(非叶子结点总数)=8。因此,本题的正确答案为 D。35.下列说法正确的是(分数:2.00)A.类 FilelnputStream 和 FileOutputStream 用宋进行文件 I/O 处理,由它们所提供的方法可以打开本地主机上的文件,并进行顺序的读/写 B.通过类 File 的实例或者一个表示文件名称的字符串可以生成文件输入/输出流,在流对象生成的同
28、时,文件被打开,但还不能进行文件读/写C.对于 InputStream 和 OutputStream 来说,它们的实例都是是非顺序访问流,即只能进行顺序的读/写D.当从标准输入流读取数据时,从键盘输入的数据直接输入到程序中解析:解析本题是考查对文件输入、输出流的理解。通过类 File 的实例或者一个表示文件名称的字符串可以生成文件输入/输出流,在流对象生成的同时,文件被打开,然后就可以进行文件读/写,选项 B 说法错误。对于 InputStream 和 OutoutStream 来说,它们的实例都是顺序访问流,即只能进行顺序的读/写,选项 C 说法错误。当从标准输入流读取数据时,从键盘输入的数
29、据被缓冲,按回车键时,程序才会得到输入数据,选项 D 说法错误。二、B填空题/B(总题数:15,分数:30.00)36.在一个容量为 25 的循环队列中,若头指针 from=16,尾指针 rear=9,则该循环队列中共有U 【1】 /U,个元素。(分数:2.00)填空项 1:_ (正确答案:18)解析:解析 设循环队列的容量为 n。若 rearfront,则循环队列中的元素个数为 rear-front;若 rear37.在面向对象方法中,属性与操作相似的一组对象称为U 【2】 /U。(分数:2.00)填空项 1:_ (正确答案:类)解析:解析 在面向对象方法中,类描述的是具有相似性质的一组对象
30、。所以,属性与操作相似的一组对象称为类。38.Jackson 方法是一种面向U 【3】 /U的结构化方法。(分数:2.00)填空项 1:_ (正确答案:数据结构)解析:解析 Jackson 方法是一种面向数据结构的结构化方法。39.一个项目具有一个项目主管,一个项目主管可管理多个项目。则实体集“项目主管”与实体集“项目”的联系属于 【4】 的联系。(分数:2.00)填空项 1:_ (正确答案:一对多)解析:解析 实体集“项目主管”与实体集“项目”的联系属于一对多的联系。40.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改,
31、称为U 【5】 /U(分数:2.00)填空项 1:_ (正确答案:物理独立性)解析:解析 逻辑独立性是指,由于数据的局部逻辑结构与总体逻辑结构之间也由系统提供映像,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。物理独立性是指,由于数据的存储结构与逻辑结构之间由系统提供映像,使得当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改。41.Java 中的方法的参数传递是U 【6】 /U调用。(分数:2.00)填空项 1:_ (正确答案:传值)解析:解析 本题考查 Java 中方法的参数传递。Java 中的方法的参数传
32、递是传值调用,而不是地址调用,方法不能改变参数值,但可以改变变量值,两个对象之间的参数字段不能相互交换。42.Java 语言中如果要使用某个包中的类时,需要使用上U 【7】 /U导入。(分数:2.00)填空项 1:_ (正确答案:import)解析:解析 本题考查包的导入和使用。首先用 package 语句说明一个包,该包的层次结构必须与文件目录的层次相同,否则,在编译时可能出现找不到包的问题。Java 语言中 javalang 包是编译器自动导入,其他包中的类必须用 import 导入。43.执行下面的程序段,输出结果为U 【8】 /U public class Q public stati
33、c void main(String argv int anar=new int 5; Systemoutprintln(anar0; (分数:2.00)填空项 1:_ (正确答案:0)解析:解析 本题考查 Java 中数组的定义和初始化。在该方法里定义并动态初始化了一个整型数组anar,由于没有赋初值,系统给默认的初始值是数组中的每个元素全部为零。所以输出数组中的第一个元素 anar0时, 自然也是等于零。44.一个具体的线程是由上U 【9】 /U、代码和数据组成。(分数:2.00)填空项 1:_ (正确答案:虚拟的 CPU)解析:解析 本题考查线程的概念。一个具体的线程是由虚拟的 CPU、
34、代码和数据组成。其中代码与数据构成了线程体,线程的行为由线程体决定。虚拟的 CPU 是在创建线程时自动封装进 Thread 类的实例中。45.使得线程放弃当前分得的 CPU 时间,但不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU 时间的方法是U 【10】 /U。(分数:2.00)填空项 1:_ (正确答案:yield())解析:解析 本题考查线程阻塞的概念。yield()方法使得线程放弃当前分得的 CPU 时间,但是不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得 CPU 时间。调用 yield()的效果等价于,调度程序认为该线程已执行了足够的时间从而转到另一个线程。46.
35、关于文件名的处理中,测试当前文件是否目录用U 【11】 /U函数。(分数:2.00)填空项 1:_ (正确答案:boolean lsDirectory())解析:解析 本题考查考生对文件类中提供的一些基本函数的掌握和应用能力。 IsDirectory()方法是检测本 File 对象所代表的是否一个目录。如果存在并且是一个目录则返回 true;否则为 false。47.sum 的值为 0,则 result=sum=0?1:num/sum 的值为U 【12】 /U。(分数:2.00)填空项 1:_ (正确答案:1)解析:解析 本题考查条件运算符“?”的用法。该运算符是三元运算符,一般形式为:表达式
36、?语句1:语句 2,其中,表达式的值为一个布尔值,如果这个值为 true,就执行语句 1,否则执行语句 2。此外语句 1 和语句 2 需要返回相同的数据类型,而且该类型不能是 void。本题中 sum:0 成立,故值为 1。48.下面程序段是从对象流中读取对象,请将程序补充完整。 import javautil*; import javaio*; public class UnSerializaDate Date d=null; UnSerializaDate() try FilelnputStream f=new FilelnputStream(“dateser“); Objectlnput
37、Stream S=new ObjectlnputStream(f); U【13】 /U fclose(); catch(Exception e) eprintStackTrace(); public static void main(String args) UnSerializaDate a=new UnSerializaDate(); Systemoutprintln(“The date read is:“+adtoString(); )(分数:2.00)填空项 1:_ (正确答案:d=(Date)sreadObject();)解析:解析 本题考查对象流的读取。对象输入流 Objectln
38、putStream 的对象 s 是以一个文件输入流为基础构造的。程序中使用 ObjectInputStream 的 readObject()方法从对象流 s 中读取 Date 类型的对象。读该对象时要按照它们写入的顺序读取。因为 readObject()返回的是 Obiect 类型的对象,所以程序中使用了强制类型转化,将所读取对象的类型转换为 Date 类型。49.一个类只有实现了U 【14】 /U接口,它的对象才是可串行化的。(分数:2.00)填空项 1:_ (正确答案:Seralizable)解析:解析 本题考查串行化的概念。一个类只有实现了 Serializable 接口,它的对象才是可
39、串行化的。因此如果要串行化某些类的对象,这些类就必须实现 Serializable 接口。实际上,Serializable 是一个空接口,它的目的只是简单地标识一个类的对象可以被串行化。50.请将程序补充完整。 import javaawt*; public class FirstFrame extends Frame public static void main(String args) FirstFrame fr=new FirstFrame(“First container!“); frsetSize(240,240); frsetBackground(Coloryellow); U 【15】 /U public FirstFrame(Strings str) superstr); )(分数:2.00)填空项 1:_ (正确答案:frsetVisible(true);)解析:解析 本题考查容器的概念。题目所给程序段的容器是一个窗口,窗口中并没有放置其他构件,由于默认为不可见,因此需要调用 setVisible(true)来设置窗口为可见的。需要注意题目程序只是生成一个窗口,但是并不能响应用户的操作,即使是单击窗口右上角的“关闭”按钮,也不能关闭窗口。