1、二级 JAVA 笔试 314 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列说法中,错误的是( )。(分数:2.00)A.Java 的数据类型必须通过常量来实例化后才可使用B.Java 中的常量和变量一样也有各种类型C.Java 中的变量由变量名、变量类型、变量属性、变量初始值组成D.Java 中的变量分为两大类型:基本类型和复合类型2.软件调试的目的是( )。(分数:2.00)A.改善软件的性能B.改正错误C.发现错误D.验证软件的正确性3.下面代码的执行结果是( )。 public class test public sta
2、tic void main (String args) float m=5.0f; int n4; System.out.println(+m)*(n-); (分数:2.00)A.20.0B.20C.24.0D.244.下列说法中,错误的是( )。(分数:2.00)A.线程就是程序B.线程是一个程序的单个执行流C.多线程是指一个程序的多个执行流D.多线程用于实现开发5.软件是指( )。(分数:2.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据和相关文档的集合6.下列说法中错误的是( )。(分数:2.00)A.可串行化的类必须实现 Serializable 接口B.可串行化的类中的
3、静态变量可以不被串行化C.private 数据访问权限能够限制数据不被串行化D.对象串行化使用 Java 语言提供的默认机制7.调用线程的下列方法中,不能使线程暂停的方法是( )。(分数:2.00)A.sleep()B.yield()C.stop()D.join()8.下面不属于条件语句关键字的是( )。(分数:2.00)A.elseB.switchC.whileD.if9.下列叙述中正确的是( )。(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库技术的根本目标是要解决数据的共享问题C.数据库管理系统就是数据库系统D.以上三种说法都不对10.下列关于 equal
4、s()方法和=运算符的说法,不正确的是( )。(分数:2.00)A.equals()方法可以用来比较复合数据类型的数值是否相等B.=运算符可以用来比较简单数据类型的数据值是否相同C.=运算符和 equals()方法的功能一样,可以相互替换D.=运算符和 equals()方法的功能不一样,不可以相互替换11.下列叙述中正确的是( )。(分数:2.00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对12.下列叙述中,不符合良好程序设计风格的是( )。(分数:2.00)A.程序的效率第一,清晰第二B.程
5、序的可读性好C.程序中有必要的注释D.输入数据前要有提示信息13.一个 int 类型变量和一个 byte 类型的常量做加法,结果是( )类型。(分数:2.00)A.intB.byteC.charD.无法计算14.在面向对象方法中,实现信息隐蔽是依靠( )。(分数:2.00)A.对象的继承B.对象的多态C.对象的封装D.对象的分类15.下列( )选项操作是 Applet 可以做的。(分数:2.00)A.访问客户端系统的一部分信息B.访问客户端的文件系统C.在客户端调用本地动态链接库D.在客户端访问电子邮件地址16.冒泡排序在最坏情况下的比较次数是( )。(分数:2.00)A.n(n+1)/2B.
6、nlog2nC.n(n-1)/2D.n/217.下列叙述中正确的是( )。(分数:2.00)A.数据的逻辑结构与存储结构必定是一一对应的B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D.以上三种说法都不对18.下列关于构造方法的特点,不正确的说法是( )。(分数:2.00)A.构造方法名与类名必须相同B.构造方法是给对象赋初值,无返回值,所以返回类型为 voidC.构造方法不能被程序调用D.构造方法可以重载19.如果局部变量与实例变量同名,那么如何在局部变量的作用域内引用实例变量?( )(分
7、数:2.00)A.无法引用,必须更名使两者名字不同B.在实例变量前加关键字 this,使用 this 访问该实例变量C.在实例变量前加关键字 superD.不影响,系统可以自己区分20.下面说法中正确的是( )。(分数:2.00)A.Java 程序不需编译也可直接执行B.Java 程序经过编译后的字节代码仍然是 ASCII 文件C.Java 程序经过编译后的字节代码是二进制文件,可以在操作系统上直接执行D.Java 程序经过编译后的字节代码是二进制文件,可以在 Java 虚拟机上执行21.Frame 默认的布局管理器是( )。(分数:2.00)A.FlowLayoutB.BorderLayou
8、tC.GridLayoutD.CardLayout22.Java 语言中,负责并发管理的机制是( )。(分数:2.00)A.垃圾回收B.虚拟机C.代码安全D.多线程23.获取一个不包含路径的文件名的方法为( )。(分数:2.00)A.String getAbsolutePath();B.String getParent();C.String getName();D.String getPath();24.可以在 for 循环初始化部分声明一个变量,其作用域是( )。(分数:2.00)A.整个 for 循环B.for 循环后的所有部分C.for 循环所在的代码块D.全部代码25.如果要创建一个带
9、图形用户界面的小程序,应覆盖方法( ),创建界面组件并将其加入到小程序中。(分数:2.00)A.paint(GraphicB.start()C.stop()D.init()26.下面关于数组定义语句不正确的是( )。(分数:2.00)A.int a1,a2;B.int a0=1,2,3,4,5;C.double d=new double8;D.float f =new 2.Of,3.5f,5.6f,7.8f;27.下列关于 Java 语言简单数据类型的说法中,错误的是( )。(分数:2.00)A.float 类型占内存少,运算快B.float 类型占内存少,但是运算速度比不上 double 类
10、型C.double 类型精度高于 float 类型D.double 类型在计算机的内存中占 64 位28.下面关于 Applet 的说法正确的是( )。(分数:2.00)A.Applet 也需要 main 方法B.Applet 继承自 javawApplet 或 javaswinJAppletC.Applet 能访问本地文件D.Applet 程序不需要编译29.下列不属于 FileInputStream 输入流的 read()成员函数的是( )。(分数:2.00)A.int read (byte b,int offset,int leB.int read (int linC.int read
11、()D.int read (byte b)30.下列叙述中正确的是( )。(分数:2.00)A.为了建立一个关系,首先要构造数据的逻辑关系B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项C.一个关系的属性名表称为关系模式D.一个关系可以包括多个二维表31.在读字符文件 emplyee.dat 时,使用该文件作为参数的类是( )。(分数:2.00)A.BufferReaderB.DataInputStreamC.DataOutputStreamD.FileInputStream32.下列运算符中,与+具有相同优先级的是( )。(分数:2.00)A.*B./C.%D.-33.下列说法正
12、确的是( )。(分数:2.00)A.javlanInteger 是接口B.javlanRunnable 是类C.Double 对象在 javlang 包中D.Double 对象在 javlanObject 包中34.下列关于字符串的叙述错误的是( )。(分数:2.00)A.创建 String 类的字符串对象后,字符串所代表的内容根据情况可改变B.字符串可以使用 javlanString 和 javlanStringBuffer 来定义C.StringBuffer 用来处理长度可变的字符串D.在 Java 语言中,字符串是作为对象来处理的35.一棵二叉树中共有 70 个叶子结点与 80 个度为
13、1 的结点,则该二叉树中的总结点数为( )。(分数:2.00)A.219B.221C.229D.231二、B填空题/B(总题数:15,分数:30.00)36.软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是U 【1】 /U。(分数:2.00)填空项 1:_37.在两种基本测试方法中,U 【2】 /U测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。(分数:2.00)填空项 1:_38.线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的U 【3】 /U存储结构。(分数:2.00)填空项 1:_39.对下
14、列二叉树进行中序遍历的结果为U 【4】 /U。 (分数:2.00)填空项 1:_40.在 E-R 图中矩形表示U 【5】 /U。(分数:2.00)填空项 1:_41.在 Java 语言中,类按照程序设计所需要的常用U 【6】 /U和接口封装成包。(分数:2.00)填空项 1:_42.U【7】 /U属性是专门定义常值变量的保留字。(分数:2.00)填空项 1:_43.跳转语句包括U 【8】 /U、continue 语句和 return 语句。(分数:2.00)填空项 1:_44.Java 对 I/0 访问提供了同步处理机制,这就是U 【9】 /U。(分数:2.00)填空项 1:_45.Java
15、语言是一种半编译和半解释型语言,经过编译后的 Java 程序由U 【10】 /U去解释执行。(分数:2.00)填空项 1:_46.Java 中的 Externalizable 接口,可以实现U 【11】 /U定制串行化。(分数:2.00)填空项 1:_47.U【12】 /U布局管理器可以使多个构件共享同一个显示空间。(分数:2.00)填空项 1:_48.组件不能独立地显示出来,必须将组件放在U 【13】 /U中才能显示。(分数:2.00)填空项 1:_49.Swing 构件从功能上位于顶层容器的包括:JFrame、JApplet、U 【14】 /U和 JWindow。(分数:2.00)填空项
16、1:_50.Applet 与 Application 的主要区别在于执行方式上:Application 以 main()方法为入口点运行,而Applet 要在U 【15】 /U或 appletviewer 中运行。(分数:2.00)填空项 1:_二级 JAVA 笔试 314 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列说法中,错误的是( )。(分数:2.00)A.Java 的数据类型必须通过常量来实例化后才可使用 B.Java 中的常量和变量一样也有各种类型C.Java 中的变量由变量名、变量类型、变量属性、变量初始值组成D.J
17、ava 中的变量分为两大类型:基本类型和复合类型解析:解析 Java 的数据类型必须实例化后才能使用,但是通过变量也可实例化,而不是必须要常量才能实例化。2.软件调试的目的是( )。(分数:2.00)A.改善软件的性能B.改正错误 C.发现错误D.验证软件的正确性解析:解析 软件调试的核心目的是改正软件中存在的错误。3.下面代码的执行结果是( )。 public class test public static void main (String args) float m=5.0f; int n4; System.out.println(+m)*(n-); (分数:2.00)A.20.0B.
18、20C.24.0 D.24解析:解析 本题考查自增(自减)运算和类型的自动转换。由于+m 表达式中+在变量之前,所以先对m 进行自增运算,将 m 加上 1.0,再将 m 的值作为表达式+m 的值,即(+m)的值是 6.0;而在 n-表达式中,-在变量 n 之后,所以先取变量 n 的值作为表达式的值,变量 n 再自减,即 (n-)的值是 4,然后作6.0*4 运算,此时整数 4 会自动转换为实型数据再参与运算,所以结果是 24.0 而不是 24。故选 C。4.下列说法中,错误的是( )。(分数:2.00)A.线程就是程序 B.线程是一个程序的单个执行流C.多线程是指一个程序的多个执行流D.多线程
19、用于实现开发解析:解析 将一个程序转换成为多个独立运行的子任务,每个子任务就是一个线程。线程是程序的一个执行流,它是一个以 CPU 为主体的行为。在 Java 中,线程的模型就是一个 CPU、程序代码和数据的封装体。5.软件是指( )。(分数:2.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据和相关文档的集合 解析:解析 软件是程序、数据和相关文档的集合。6.下列说法中错误的是( )。(分数:2.00)A.可串行化的类必须实现 Serializable 接口B.可串行化的类中的静态变量可以不被串行化C.private 数据访问权限能够限制数据不被串行化 D.对象串行化使用 Jav
20、a 语言提供的默认机制解析:解析 一般的数据访问权限,如 public、protected、package 或 private 等,对数据的串行化没有影响,只有 static 和 transient 关键字修饰的数据才可以不被串行化。7.调用线程的下列方法中,不能使线程暂停的方法是( )。(分数:2.00)A.sleep()B.yield()C.stop() D.join()解析:解析 sleep()方法的功能是使线程暂停,让出 CPU,使更低优先级的线程运行;yield()方法的功能是使线程暂停,让出 CPU,使同优先级的其他线程运行;join()方法的功能是使当前线程暂停,等待到某线程类对
21、象运行结束;stop()方法的进程是强行中止线程运行。8.下面不属于条件语句关键字的是( )。(分数:2.00)A.elseB.switchC.while D.if解析:解析 条件语句主要由 if-else 结构和 switch 多分支语句,while 属于循环语句的关键字。9.下列叙述中正确的是( )。(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库技术的根本目标是要解决数据的共享问题 C.数据库管理系统就是数据库系统D.以上三种说法都不对解析:解析 一个数据库系统是由操作系统、数据库管理系统和应用程序在一定的硬件支持下构成的。所以,数据库系统不仅指数据库本身
22、,也不仅是指数据库管理系统,而是指计算机系统中引进数据库以后的系统,故选项 A 和 C 都是错误的。数据库技术的根本目标是要解决数据的共享问题,因此,选项 B 正确。10.下列关于 equals()方法和=运算符的说法,不正确的是( )。(分数:2.00)A.equals()方法可以用来比较复合数据类型的数值是否相等B.=运算符可以用来比较简单数据类型的数据值是否相同C.=运算符和 equals()方法的功能一样,可以相互替换 D.=运算符和 equals()方法的功能不一样,不可以相互替换解析:解析 =运算符一般适合简单数据类型之间的比较,而 equals()方法一般用于比较复合类型的数据,
23、两者不可以相互替换。11.下列叙述中正确的是( )。(分数:2.00)A.程序执行的效率与数据的存储结构密切相关 B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对解析:解析 程序执行的效率与算法和计算对象(数据)的存储结构密切相关。12.下列叙述中,不符合良好程序设计风格的是( )。(分数:2.00)A.程序的效率第一,清晰第二 B.程序的可读性好C.程序中有必要的注释D.输入数据前要有提示信息解析:解析 选项 B、C、D 都属于良好程序设计风格的内容,选项 A 与程序良好设计风格相悖。13.一个 int 类型变量和一个 byte 类型的常
24、量做加法,结果是( )类型。(分数:2.00)A.int B.byteC.charD.无法计算解析:解析 int 类型常量和 byte 类型常量做加法,首先 byte 类型常量自动转换为 int 类型,因此最后的结果应该是 int 类型的数值。14.在面向对象方法中,实现信息隐蔽是依靠( )。(分数:2.00)A.对象的继承B.对象的多态C.对象的封装 D.对象的分类解析:解析 在面向对象方法中,实现信息隐蔽的技术是对对象的封装。15.下列( )选项操作是 Applet 可以做的。(分数:2.00)A.访问客户端系统的一部分信息 B.访问客户端的文件系统C.在客户端调用本地动态链接库D.在客户
25、端访问电子邮件地址解析:解析 Applet 在客户端运行时,受到安全限制,除了一部分系统信息之外的敏感信息都不可以访问,比如电子邮件地址、文件系统和动态链接库都不能直接访问。16.冒泡排序在最坏情况下的比较次数是( )。(分数:2.00)A.n(n+1)/2B.nlog2nC.n(n-1)/2 D.n/2解析:解析 n 个数据的冒泡排序需要进行 n-1 趟排序,速度较慢,最坏情况下的比较次数为 n(n-1)/2。17.下列叙述中正确的是( )。(分数:2.00)A.数据的逻辑结构与存储结构必定是一一对应的B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C.程序设计语
26、言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构 D.以上三种说法都不对解析:解析 一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,所以,数据的逻辑结构与存储结构不一定是一一对应的,故选项 A 错误。虽然计算机的存储空间是向量式的存储结构,但由于一种数据的逻辑结构根据需要可以表示成多种存储结构(例如,线性链表是线性表的链式存储结构。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的),因此,数据的存储结构不一定是线性结构,选项 B 的说法错误。虽然程序设计语言中的数组一般是顺序存储结构,但是,利用数组也能处理非线性结构。例如,满二叉树与完全二叉树是非线性
27、结构,但可以按层序进行顺序存储,即利用程序设计语言中的数组来存储。故选项 C 错误。18.下列关于构造方法的特点,不正确的说法是( )。(分数:2.00)A.构造方法名与类名必须相同B.构造方法是给对象赋初值,无返回值,所以返回类型为 void C.构造方法不能被程序调用D.构造方法可以重载解析:解析 选项 A,构造方法名与类名必须相同,这是正确说法;构造方法不能被程序调用,只能通过 new 自动调用,选项 C 正确;构造方法可以重载实现不同的初始化方法,调用时按参数决定调用哪个方法,选项 D 也正确;选项 B 的前半部分正确:构造方法是给对象赋初值,无返回值,但后半部分不正确:构造方法虽然没
28、有返回值,但不用 void 来声明。19.如果局部变量与实例变量同名,那么如何在局部变量的作用域内引用实例变量?( )(分数:2.00)A.无法引用,必须更名使两者名字不同B.在实例变量前加关键字 this,使用 this 访问该实例变量 C.在实例变量前加关键字 superD.不影响,系统可以自己区分解析:解析 关键字 this 表示当前对象。20.下面说法中正确的是( )。(分数:2.00)A.Java 程序不需编译也可直接执行B.Java 程序经过编译后的字节代码仍然是 ASCII 文件C.Java 程序经过编译后的字节代码是二进制文件,可以在操作系统上直接执行D.Java 程序经过编译
29、后的字节代码是二进制文件,可以在 Java 虚拟机上执行 解析:解析 Java 语言的执行模式是半编译和半解释型,未经编译的 Java 程序不能直接执行。 Java 程序编过编译后的字节代码是二进制文件,但不能直接在操作系统上执行,它可看作虚拟机的机器码,由Java 虚拟机解释执行。21.Frame 默认的布局管理器是( )。(分数:2.00)A.FlowLayoutB.BorderLayout C.GridLayoutD.CardLayout解析:解析 FlowLayout 是 Pane 和 Applet 的默认布局管理器,构件在容器中从上到下、从左到右进行放置;BorderLayout 是
30、 Window、Frame 和 Dialog 的默认布局管理器,在 BorderLayout 布局管理器中,构件分成 5 个区域,每个区域只能放置一个构件;GridLayout 使容器中各个构件呈网状布局,平均占据容器的空间;CardLayout 把容器分成许多层,每层只能放置一个构件。22.Java 语言中,负责并发管理的机制是( )。(分数:2.00)A.垃圾回收B.虚拟机C.代码安全D.多线程 解析:解析 多线程是 Java 程序的并发机制,它能同步共享、处理不同的事件。多线程技术容易实现网上实时交互,为解决网上大数量的客户访问提供技术基础。23.获取一个不包含路径的文件名的方法为( )
31、。(分数:2.00)A.String getAbsolutePath();B.String getParent();C.String getName(); D.String getPath();解析:解析 创建了一个文件对象后,可以使用以下成员函数来获得文件相关信息。其中对文件名提供的方法有:String getname();获取一个不包含路径的文件名,String getPath();获取文件路径名字符串,String getAbsolutePath(),获取文件绝对路径,String getParent();获取文件上一级的路径名。24.可以在 for 循环初始化部分声明一个变量,其作用域
32、是( )。(分数:2.00)A.整个 for 循环 B.for 循环后的所有部分C.for 循环所在的代码块D.全部代码解析:解析 在 for 循环初始化部分声明的变量的作用域是整个 for 循环,退出 for 循环后,变量消失。25.如果要创建一个带图形用户界面的小程序,应覆盖方法( ),创建界面组件并将其加入到小程序中。(分数:2.00)A.paint(GraphicB.start()C.stop()D.init() 解析:解析 Applet 运行时,首先由浏览器调用 init()方法,通知该 Applet 已被加载到浏览中,使 Applet 执行一些基本初始化。该方法经常被重写,以实现设
33、置布局管理器、数据初始化、放置一些构件等功能。26.下面关于数组定义语句不正确的是( )。(分数:2.00)A.int a1,a2;B.int a0=1,2,3,4,5;C.double d=new double8;D.float f =new 2.Of,3.5f,5.6f,7.8f; 解析:解析 在 Java 中定义并创建一个数组对象的语句格式为: arrayName=newtypearraySize; 而选项 D 中,把定义创建数组对象和静态初始化数组对象混为一谈,所以是错误的。27.下列关于 Java 语言简单数据类型的说法中,错误的是( )。(分数:2.00)A.float 类型占内存
34、少,运算快B.float 类型占内存少,但是运算速度比不上 double 类型 C.double 类型精度高于 float 类型D.double 类型在计算机的内存中占 64 位解析:解析 由于 Java 语言中的 float 类型占内存较少,只占存储的 32 位,比 double 类型的 64 位少,因此,运算速度比 double 类型快。28.下面关于 Applet 的说法正确的是( )。(分数:2.00)A.Applet 也需要 main 方法B.Applet 继承自 javawApplet 或 javaswinJApplet C.Applet 能访问本地文件D.Applet 程序不需要
35、编译解析:解析 JavaApplet 的字节码文件必须嵌入 HTML 的文件中并由负责解释 HTML 文件的 WWW 浏览器充当解释器来解释运行。因此 Applet 不需要 main 方法,但必须继承 java.awt.Applet 类或javax.swing.JApplet,因为这两个类实现了 Applet 程序与浏览器的通信。29.下列不属于 FileInputStream 输入流的 read()成员函数的是( )。(分数:2.00)A.int read (byte b,int offset,int leB.int read (int lin C.int read ()D.int read
36、 (byte b)解析:解析 打开 FileInputStream 输入流,就可以从里面读取信息。read()成员函数有以下几种:int read();int read (byte b)和 int read (byte b,int offset,int len)。30.下列叙述中正确的是( )。(分数:2.00)A.为了建立一个关系,首先要构造数据的逻辑关系B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项C.一个关系的属性名表称为关系模式 D.一个关系可以包括多个二维表解析:解析 在格式化模型中,要事先根据应用的需要,确定数据之间的逻辑关系,即先对数据进行结构化。在关系模型中,不需
37、要事先构造数据的逻辑关系,只要将数据按照一定的关系存入计算机,也就是建立关系。所以选项 A 错误。对于一个表示关系的二维表,其最基本的要求是表中元组的每一个分量必须是不可分的数据项,即不允许表中再有表。所以,选项 B、D 说法是错误的。一个关系的属性名表称为关系模式,也就是二维表的表框架,相当于记录型。因此,选项 C 说法正确。31.在读字符文件 emplyee.dat 时,使用该文件作为参数的类是( )。(分数:2.00)A.BufferReaderB.DataInputStreamC.DataOutputStreamD.FileInputStream 解析:解析 字节输入流继承自 Inpu
38、tSteam 类,并且使用 DataInputStream 实现 DataInput 接口。编程时的步骤如下:字节数据的来源(二进制文件)作为 FileInputStream 的构造方法的参数,实例化一个FileInputStream 对象;FileInputStream 对象作为 DataInputStream 的构造方法的参数;然后就可以使用 InputStream 类中的方法,进行字节输入流的操作。32.下列运算符中,与+具有相同优先级的是( )。(分数:2.00)A.*B./C.%D.- 解析:解析 运算符+有两种情况,一种是一元加,这时它的优先级高于*、/和%;另一种是二元加,这时它
39、的优先级低于*、/和%,这里*、/和%具有相同的优先级。但是对于运算符而言,无论是一元还是二元,它的优先级都和+运算符相同。33.下列说法正确的是( )。(分数:2.00)A.javlanInteger 是接口B.javlanRunnable 是类C.Double 对象在 javlang 包中 D.Double 对象在 javlanObject 包中解析:解析 Java.lang 包封装所有编程应用的基本类,如 Object、Integer、Double、Runnable 等。34.下列关于字符串的叙述错误的是( )。(分数:2.00)A.创建 String 类的字符串对象后,字符串所代表的内
40、容根据情况可改变 B.字符串可以使用 javlanString 和 javlanStringBuffer 来定义C.StringBuffer 用来处理长度可变的字符串D.在 Java 语言中,字符串是作为对象来处理的解析:解析 String 类是 Java 中的常量类,一旦用 String 创建了一个字符串对象,该字符串所代表的文本就不能改变了。35.一棵二叉树中共有 70 个叶子结点与 80 个度为 1 的结点,则该二叉树中的总结点数为( )。(分数:2.00)A.219 B.221C.229D.231解析:解析 在任意一棵二叉树中,度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个
41、。由于本题中的二叉树共有 70 个叶子结点,因此有 69 个度为 2 的结点。 该二叉树中的总结点数=度为 2 的结点数+度为 1 的结点数+叶子结点数=69+80+70=219。二、B填空题/B(总题数:15,分数:30.00)36.软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是U 【1】 /U。(分数:2.00)填空项 1:_ (正确答案:无歧义性)解析:解析 软件需求规格说明书的核心内容是对软件应该解决的问题及对应数据流进行准确描述,但不得对问题的理解产生歧义(即不同人有不同理解),实现方法是数据字典;其次才是做到对问题描述的完整性、正确性、可
42、验证性、可修改性等。37.在两种基本测试方法中,U 【2】 /U测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。(分数:2.00)填空项 1:_ (正确答案:白盒测试)解析:解析 测试方法分为白盒测试和黑盒测试。白盒测试是开放性测试,即通过设计的测试用例,走完算法中的每一个分支(即路径),检查软件的正确性,核心是了解软件实现其功能的具体步骤和方法;黑盒测试是封闭性测试,即通过设计的测试用例,不关心软件的具体实现步骤和方法,用得到的结果与意料中需要的结果进行比较,如果相同则正确,否则错误。38.线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列
43、的U 【3】 /U存储结构。(分数:2.00)填空项 1:_ (正确答案:顺序)解析:解析 循环队列是队列的一种顺序存储结构。39.对下列二叉树进行中序遍历的结果为U 【4】 /U。 (分数:2.00)填空项 1:_ (正确答案:ACBDFEHGP)解析:解析 按照中序遍历的算法规则先遍历左子树,再访问根结点,最后遍历右子树。40.在 E-R 图中矩形表示U 【5】 /U。(分数:2.00)填空项 1:_ (正确答案:实体集)解析:解析 E-R 图为实体联系图,提供了表示实体型、属性和联系的方法,是用来描述现实世界的概念模型。构成 E-R 图的基本要素是实体型、属性和联系,其表示方法为: 实体
44、型:用矩形表示,矩形框内写明实体名; 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来; 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1: 1、1: n 或 m: n)。41.在 Java 语言中,类按照程序设计所需要的常用U 【6】 /U和接口封装成包。(分数:2.00)填空项 1:_ (正确答案:方法)解析:解析 将具有相同属性的对象抽象成类,在类中定义对象的各种共同属性和方法,然后对这些类进行分类并封装成包,包中还可以包含其他的包,从而生成一个树型的类结构定义。42.U【7】 /U属性是专门定义常值变量的保留字。(分数:2.
45、00)填空项 1:_ (正确答案:final)解析:解析 final 属性是专门定义常值变量的保留字,说明该变量赋值以后永不改变,变量初值是该变量的默认值。43.跳转语句包括U 【8】 /U、continue 语句和 return 语句。(分数:2.00)填空项 1:_ (正确答案:break 语句)解析:解析 reak 语句和 continue 语句是用来控制循环的流程的语句,而 return 语句一般用在方法的最后,用于方法调用的返回。44.Java 对 I/0 访问提供了同步处理机制,这就是U 【9】 /U。(分数:2.00)填空项 1:_ (正确答案:过滤流)解析:解析 FilterI
46、nputStream 和 FilterOutputStream 抽象类及其子类是过滤流类,它们保证某 I/O流同时只能被一个线程访问,从而为 Java 对 I/O 的同步处理机制提供保障。使用过滤流时先把过滤流连接到某个 I/O 流上,再通过构造方法的参数指定连接的 I/O 流。45.Java 语言是一种半编译和半解释型语言,经过编译后的 Java 程序由U 【10】 /U去解释执行。(分数:2.00)填空项 1:_ (正确答案:Java 虚拟机 或 JVM)解析:解析 Java 语言的执行模式是半编译和半解释型。编写好的 Java 源程序首先由编译器转换为标准字节代码,然后由 Java 虚拟
47、机去解释执行。46.Java 中的 Externalizable 接口,可以实现U 【11】 /U定制串行化。(分数:2.00)填空项 1:_ (正确答案:完全)解析:解析 在对象的串行化中,根据其串行化的彻底性可以分为部分定制串行化和完全定制串行化两种。前者定制输出串行化类本身定义的数据,而后者定制输出串行化类中所有的数据,包括串行化本身和其父类定义的数据。部分串行化的实现依赖于串行化类中定义的两个方法: writeObject()方法和readObject()方法。完全定制串行化的实现依赖于 Extemalizable 接口,该接口可以对对象串行化的过程进行完全、显式的控制,除了对象所属类标