1、计算机二级 JAVA-9 及答案解析(总分:84.80,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:58.80)1.下面_可用于处理 Unicode 码。 A.Writer B.BufferedReader C.ByteArraylnputStream D.PipedlnputStream(分数:2.00)A.B.C.D.2.下面程序执行后,屏幕上显示的应是U /U。public class Testpublic static void main(String args)char ch1=B,e,i,j,i,n,g;char ch2=B,e,i,j,i,n,g,2,0,0,8;
2、String s1 = new String(ch1);String s2 = new String(ch2, 0, 7);System. out. println(sl. equals(s2); A. true B. false C. Beijing D. 编译错误(分数:2.00)A.B.C.D.3.下列有关线程的叙述U /U是正确的。 A.一旦一个线程被创建,它就立即开始运行 B.调用 start( )方法可以使一个线程成为可运行的,但是它不一定立即开始运行 C.主线程不具有默认优先级 D.Java 中线程的优先级从低到高以整数 09 表示 (分数:1.00)A.B.C.D.4.部分定制
3、串行化的方法是U /U。 A. readObject()和 defaultReadObject() B. defauhWriteObject()和 dafauhReadObject() C. writeObject()和 readObject() D. writeObject()和 defauhWriteObject()(分数:2.00)A.B.C.D.5.在 Java 类库中,提供构建和管理用户图形界面功能,封装抽象窗口的包是U /U。 A.javautil 包 B.javabean 包 C.javaawt 包 D.javarmi 包 (分数:1.00)A.B.C.D.6.下列 java 组
4、件中,不属于容器的是U /U。 A.Panel B.Window C.Frame D.Label(分数:2.00)A.B.C.D.7.以下程序的输出结果是U /U。void fun(int x,int y,int z)z=x*x+y*y;void main()int a=31:fun(5,2,a);printf(“%d“,a), A.0 B.29 C.31 D.无定值(分数:2.00)A.B.C.D.8.下列方法中,不属于 Throwable 类的方法是U /U。 A.printMessage B.getMessage C.toString D.fillStackTrace(分数:2.00)A
5、.B.C.D.9.在关系数据库模型中,通常可以把外码所在的关系称为U /U。 A.被参照关系 B.参照关系 C.主码 D.主关系(分数:2.00)A.B.C.D.10.下列关于数据库设计的叙述中,正确的是_。 A.在需求分析阶段建立数据字典 B.在概念设计阶段建立数据字典 C.在逻辑设计阶段建立数据字典 D.在物理设计阶段建立数据字典(分数:2.00)A.B.C.D.11.数据结构中,与所使用的计算机无关的是数据的U /U。 A.存储结构 B.物理结构 C.逻辑结构 D.物理和存储结构(分数:2.00)A.B.C.D.12.一些重要的程序语言(如 C 语言和 Pascal 语言)允许过程的递归
6、调用。而实现递归调用中的存储分配通常用U /U。 A.栈 B.堆 C.数组 D.链表 (分数:1.00)A.B.C.D.13.下列选项中,列出用于定义类成员的访问控制权的一组保留字是U /U。 A.class.float.double.public B.fioat.Boolean.int,long C.char.extends.float.double D.public.private.protected(分数:2.00)A.B.C.D.14.按照 Java 的标识符命名规则,下列表示一个类的标识符正确的是U /U。 A.Helloworld B.HelloWorld C.helloworld
7、 D.helloWorld(分数:2.00)A.B.C.D.15.下列各项中不属于 AWT 提供的图形图像工具的是U /U。 A.形状 B. 按钮 C. 颜色 D. 字体(分数:2.00)A.B.C.D.16.下列选项成员变量声明正确的是U /U。 A.public protected final int i; B.abstract class F1.) C.private double height; D.double weight(分数:2.00)A.B.C.D.17.已知如下代码:boolean m=true;if(m=false)System.out.prinfln(“False“);
8、elseSystem.out.println(“True“); A.False B.True C.None D.An error will occur when running(分数:2.00)A.B.C.D.18.在 Java 语言的下列哪个包是编译器自动导入的? A. java.lang B. java.awt C. java.io D. java.applet(分数:2.00)A.B.C.D.19.下列程序的执行结果为U /U。public class c3public static void main(String args)int i=13, j=10;if(i-j)i+;else
9、j-;System.out.println(i+“/t“+j); A. 13 10 B. 12 11 C. 11 11 D. 12 12(分数:1.00)A.B.C.D.20.下列代码的执行结果是U /U。public class Testpublic static void main(String args )int a =4,b=6,c=8;String s =“abc“;System.out.println(a+b+s+c);System.out.println(); A. ababcc B. 464688 C. 46abc8 D. 10abc8(分数:1.00)A.B.C.D.21.检
10、查软件产品是否符合需求定义的过程称为 A.确认测试 B.集成测试 C.验证测试 D.验收测试 (分数:1.00)A.B.C.D.22.在描述软件的结构和过程中,提出了以下的设计表达工具,其中不正确的说法是 U /U A.图形表达工具:流程图、NS 图等 B.文字表达工具:伪代码、PDL 等 C.表格表达工具:判定表等 D.系统设计表达工具:用于表达软件过程(分数:1.00)A.B.C.D.23.下列程序的功能是将一个整数数组写入二进制文件,在程序的下画线处应填入的选项是U /U。import java.io.*;public class XieShuzupublic static void m
11、ain(Stringa)intmyArray=(10,20,30,40);tryDataOutputStream dos=new DataOutputStream(newFileOutput Stream(“ints.dat“);for(int i=0;imyArray.length;i+)dos._(myArrayi);dos.close();System.out.println(“已经将整数数组写入二进制文件:ints.dat“);catch(IOException ioe)System.out.println(“IO Excepr_on“); A.writeArray B.writeBy
12、te C.writeInt D.writeDouble(分数:2.00)A.B.C.D.24.下列循环执行的次数为U /U。int y=2,x=4;while(-x!=x/y) A. 1 B. 2 C. 3 D. 0(分数:1.00)A.B.C.D.25.执行下列程序之后,变量 n 的值为_。public class Testpublic static void main(String args)int y=2;int z=3;int n=4;n=n+-y*z/n;System.out.println(n); A. 3 B. -1 C. -12 D. -3(分数:2.00)A.B.C.D.26
13、.如下程序的输出结果是( )。public class Testvoid printValue(int m)do System.out.println(“The value is“+m);while(-m 10 )public static void main(String args)int i=10;Test t= new Test();t.printValue(i); A. The value is 8 B. The value is 9 C. The value is 10 D. The value is 11(分数:2.00)A.B.C.D.27.结构化程序设计所规定的三种基本控制结构
14、是 U /U A. 输入、处理、输出 B. 树形、网形、环形 C. 顺序、选择、循环 D. 主程序、子程序、函数(分数:2.00)A.B.C.D.28.数据报通信协议 UDP 把每个传输的数据大小控制在下列哪一项之内 A. 8KB B. 16KB C. 64KB D. 128KB(分数:1.00)A.B.C.D.29.软件测试方法中属于静态测试方法的是U /U。 A. 黑盒测试 B. 逻辑覆盖 C. 错误推测 D. )人工检测(分数:1.00)A.B.C.D.30.Java 程序的执行过程中用到一套 JDK 工具,其中 java.exe 是指U /U。 A.Java 文档生成器 B.Java
15、解释器 C.Java 编译器 D.Java 类分解器(分数:2.00)A.B.C.D.31.下面的程序执行后,屏幕上显示的应是U /U。Pubhc class Exampublic static void main(String args)charchar1=t,e,s,t;charchat2=t,e,s,t,1Sbing s1=new String(char1);String s2=new String(char2,0,4);System.out.println(s1.equals(s2); A.true B.false C.test D.编译错误(分数:2.00)A.B.C.D.32.若特
16、快订单是一种订单,则特快订单类和订单类的关系是U /U。 A.使用关系 B.包含关系 C.继承关系 D.无关系(分数:2.00)A.B.C.D.33.在对象流中,对象的传送首先要将所传送的对象串行化,也就是实现 Serializable 接口。下列代码中必须实现 Serializable 接口的类是_。ObjectInput in=new ObjectInputStream(new FileInputStream(“employee. dat“);EmployeenewStaff=(Employee1in. readobject(); A.Employee B.Input C.Staff D.
17、Stream(分数:0.80)A.B.C.D.34.下列程序的运行结果是U /U。Public class sunPublic static void main(String args)int x=4,y=0;if(Math.pow(x,2)=16)y=x;if(Math.pow(x,2)15)y=1/x;if(Math.pow(x,2)15)y=(int)Math.pow(x,2)+1;system.out.println(y); A.4 B.17 C.18 D.0.25(分数:2.00)A.B.C.D.35.Java 用( )来实现 goto 语句所特有的一些功能。 A. default
18、B. return C. break D. continue(分数:2.00)A.B.C.D.二、B填空题/B(总题数:15,分数:26.00)36.关于文件名的处理中,测试当前文件是否目录用U U /U /U函数。(分数:1.00)填空项 1:_37.下面是用户程序对 Applet 类中方法 paint ()的重新定义,根据程序功能,在指定的空白处填上适当的语句或语法成分。 public void paint (Graphics g) gU U /U /U(“你好!”,10,20);(分数:2.00)填空项 1:_38.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、 1 和
19、选择排序。(分数:2.00)填空项 1:_39.“流”(stream)可以看作是一个流动的 1 缓冲区。(分数:2.00)填空项 1:_40.下面程序的功能是创建一个显示 5 个“Hello!”的线程并启动运行。请将程序补充完整。 public class ThreadTest extends Thread public static void main(String args) ThreadTest t=new _; t.start(); public void run() int i=0; while(true) System.out.println(“Hello!“); if(i+=4)
20、break; (分数:2.00)填空项 1:_41.在最坏情况下,冒泡排序的时间复杂度为 1。(分数:2.00)填空项 1:_42.在需要自定义 Swing 构件的时候,首先要确定使用哪种构件作为所定制构件的U U /U /U,建议继承 JPanel 类或更具体的 Swing 构件类。(分数:2.00)填空项 1:_43.在关系运算中, 1 运算是在给定关系的某些域上进行的运算。(分数:2.00)填空项 1:_44.以下函数的功能是计算 s=1+1/2!+1/3!+1/n!,请填空。 double fun(int n) double s=0.0,fac=1.0;int i,n=10; for(
21、i=1;i=n;i+) fac=fac/_; s=s+fac; printf(“%d“,s); (分数:1.00)填空项 1:_45.以下 sstrcpy()函数实现字符串复制,即将 t 所指字符串复制到 s 所指向内存空间中,形成一个新的字符串 s。请填空。 void sstrcpy(char *s,char *t) while(*s+=_); main() char str1100,str2=“abcdefgh“; sstrcpy(str1,str2); printf(“%s/n“,str1); (分数:2.00)填空项 1:_46.所有由 Container 派生的类称为U U /U /
22、U。(分数:1.00)填空项 1:_47.在 Java 语言中,类按照程序设计所需要的常用方法和接口封装成U U /U /U。(分数:2.00)填空项 1:_48.对二进制进行算术右移的运算符是 1。(分数:2.00)填空项 1:_49.下列是一个 Java Applet 程序,填空使它的功能为计算数组下标为偶数的各元素的和。 import java.applet.*; import java.awt*; public class Testww extends Applet public void paint(Graphics g) int a=1,3,5,7,9,10; int total=
23、0; float ave; for(int i=0;ialength;U U /U/U) total+=ai; g.drawstring(“Total of array elements:=“+total,25,25); (分数:1.00)填空项 1:_50.在长度为 n 的有序线性表中进行二分查找,所需要的比较次数为 1。(分数:2.00)填空项 1:_计算机二级 JAVA-9 答案解析(总分:84.80,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:58.80)1.下面_可用于处理 Unicode 码。 A.Writer B.BufferedReader C.ByteArra
24、ylnputStream D.PipedlnputStream(分数:2.00)A.B. C.D.解析:2.下面程序执行后,屏幕上显示的应是U /U。public class Testpublic static void main(String args)char ch1=B,e,i,j,i,n,g;char ch2=B,e,i,j,i,n,g,2,0,0,8;String s1 = new String(ch1);String s2 = new String(ch2, 0, 7);System. out. println(sl. equals(s2); A. true B. false C.
25、 Beijing D. 编译错误(分数:2.00)A. B.C.D.解析:解析 首先可以通过字符数组来生成一个字符串对象: String(char value); String(char valne, int startIndex, int numChars);其中,startlndex 指定字符串在数组中的起始下标,numChars 表示字符个数。 然后再测试字符串是否相等,可调用 equals()方法,两串相等则返回 true,否则返回 false。3.下列有关线程的叙述U /U是正确的。 A.一旦一个线程被创建,它就立即开始运行 B.调用 start( )方法可以使一个线程成为可运行的,
26、但是它不一定立即开始运行 C.主线程不具有默认优先级 D.Java 中线程的优先级从低到高以整数 09 表示 (分数:1.00)A.B. C.D.解析:4.部分定制串行化的方法是U /U。 A. readObject()和 defaultReadObject() B. defauhWriteObject()和 dafauhReadObject() C. writeObject()和 readObject() D. writeObject()和 defauhWriteObject()(分数:2.00)A.B.C. D.解析:解析 在对象的串行化中,根据其串行化的彻底性可以分为部分定制串行化和完全
27、定制串行化两种。前者定制输出串行化类本身定义的数据,而后者定制输出串行化类中所有的数据,包括串行化本身和其父类定义的数据。部分串行化的实现依赖于串行化类中定义的两个方法: writeObject()方法和readObject()方法。完全定制串行化的实现依赖于 Externalizable 接口,该接口可以对对象串行化的过程进行完全、显式的控制,除了对象所属类标识,它将定制输出串行化类所有的数据。5.在 Java 类库中,提供构建和管理用户图形界面功能,封装抽象窗口的包是U /U。 A.javautil 包 B.javabean 包 C.javaawt 包 D.javarmi 包 (分数:1.
28、00)A.B.C. D.解析:6.下列 java 组件中,不属于容器的是U /U。 A.Panel B.Window C.Frame D.Label(分数:2.00)A.B.C.D. 解析:7.以下程序的输出结果是U /U。void fun(int x,int y,int z)z=x*x+y*y;void main()int a=31:fun(5,2,a);printf(“%d“,a), A.0 B.29 C.31 D.无定值(分数:2.00)A.B.C. D.解析:8.下列方法中,不属于 Throwable 类的方法是U /U。 A.printMessage B.getMessage C.t
29、oString D.fillStackTrace(分数:2.00)A.B.C. D.解析:解析 toString 是 Object 类的方法,所有类都从 Object 类继承。9.在关系数据库模型中,通常可以把外码所在的关系称为U /U。 A.被参照关系 B.参照关系 C.主码 D.主关系(分数:2.00)A.B. C.D.解析:10.下列关于数据库设计的叙述中,正确的是_。 A.在需求分析阶段建立数据字典 B.在概念设计阶段建立数据字典 C.在逻辑设计阶段建立数据字典 D.在物理设计阶段建立数据字典(分数:2.00)A. B.C.D.解析:数据字典的最重要的作用是作为分析阶段的工具。11.数
30、据结构中,与所使用的计算机无关的是数据的U /U。 A.存储结构 B.物理结构 C.逻辑结构 D.物理和存储结构(分数:2.00)A.B.C. D.解析:12.一些重要的程序语言(如 C 语言和 Pascal 语言)允许过程的递归调用。而实现递归调用中的存储分配通常用U /U。 A.栈 B.堆 C.数组 D.链表 (分数:1.00)A. B.C.D.解析:13.下列选项中,列出用于定义类成员的访问控制权的一组保留字是U /U。 A.class.float.double.public B.fioat.Boolean.int,long C.char.extends.float.double D.p
31、ublic.private.protected(分数:2.00)A.B.C.D. 解析:14.按照 Java 的标识符命名规则,下列表示一个类的标识符正确的是U /U。 A.Helloworld B.HelloWorld C.helloworld D.helloWorld(分数:2.00)A.B. C.D.解析:解析 本题考查 Java 类名的命名规则。类名与接口名都采用完整的英文描述,并且所有单词的第一个字母大写;包采用完整的英文描述符,都是由小写字母组成的;类的变量采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写;常量名全部采用大写字母,单词之间用下画线分隔。应该掌握命名规则,
32、不仅因为它是考试重点,同时也是养成良好编程习惯的基础。15.下列各项中不属于 AWT 提供的图形图像工具的是U /U。 A.形状 B. 按钮 C. 颜色 D. 字体(分数:2.00)A.B. C.D.解析:解析 图形图像工具是 AWT 提供的一个重要功能,具体包括厂形状、颜色和字体,属于用户界面构件。16.下列选项成员变量声明正确的是U /U。 A.public protected final int i; B.abstract class F1.) C.private double height; D.double weight(分数:2.00)A.B.C. D.解析:解析 本题考查对成员变
33、量的声明。成员变量的声明格式为:修饰符 type 变量名;其中 type 可以是 java 语言中的任意数据类型,而修饰符可以是public、protected,private,static,final,transient,volatile 等。选项 A 错误,成员变量不能同时声明成 public 和 protected。选项 B 是类的声明格式,并不是成员变量的声明。成员变量声明应以“;“结尾,选项 D 错误。选项 C 声明了一个私有的 double 型成员变量,为正确答案。17.已知如下代码:boolean m=true;if(m=false)System.out.prinfln(“Fal
34、se“);elseSystem.out.println(“True“); A.False B.True C.None D.An error will occur when running(分数:2.00)A.B. C.D.解析:18.在 Java 语言的下列哪个包是编译器自动导入的? A. java.lang B. java.awt C. java.io D. java.applet(分数:2.00)A. B.C.D.解析:解析 Java 语言的 java.lang 包是编译器自动导入的。因此,编程时使用该包中的类,可省去import 导入。但使用其他包中的类,必须用 import 导入。19
35、.下列程序的执行结果为U /U。public class c3public static void main(String args)int i=13, j=10;if(i-j)i+;else j-;System.out.println(i+“/t“+j); A. 13 10 B. 12 11 C. 11 11 D. 12 12(分数:1.00)A. B.C.D.解析:解析 程序是由 if-else 语句构成的流程,分析判断条件,变量 i 和 j 做比较,得到条件表达式的值为 true,然后执行 i-1,现在变量 i 的值为 12,而 j 的值为 10;由于条件表达式为 true,则执行i+,
36、因此 i 的值为 13,并跳过 else 子句块,循环控制语句执行完毕,这时变量 i 和 j 的值分别为 13 和10。20.下列代码的执行结果是U /U。public class Testpublic static void main(String args )int a =4,b=6,c=8;String s =“abc“;System.out.println(a+b+s+c);System.out.println(); A. ababcc B. 464688 C. 46abc8 D. 10abc8(分数:1.00)A.B.C.D. 解析:解析 Java 语言对+运算符进行了扩展,使它能够
37、进行字符串的链接。但是一般说来,如果+运算符的第一个操作数是字符串,则 Java 系统会自动将后续的操作数类型转换成为字符串类型,然后再进行连接:如果 +运算符的第一个操作数不是字符串,则运算结果由后续的操作数决定。21.检查软件产品是否符合需求定义的过程称为 A.确认测试 B.集成测试 C.验证测试 D.验收测试 (分数:1.00)A. B.C.D.解析:解析:确认测试的任务是验证软件的功能和性能,以及其他特性是否满 足需求规格说明中确定的各种需求;集成测试的主要目的是发现与接口有关的错误22.在描述软件的结构和过程中,提出了以下的设计表达工具,其中不正确的说法是 U /U A.图形表达工具
38、:流程图、NS 图等 B.文字表达工具:伪代码、PDL 等 C.表格表达工具:判定表等 D.系统设计表达工具:用于表达软件过程(分数:1.00)A.B.C.D. 解析:23.下列程序的功能是将一个整数数组写入二进制文件,在程序的下画线处应填入的选项是U /U。import java.io.*;public class XieShuzupublic static void main(Stringa)intmyArray=(10,20,30,40);tryDataOutputStream dos=new DataOutputStream(newFileOutput Stream(“ints.dat
39、“);for(int i=0;imyArray.length;i+)dos._(myArrayi);dos.close();System.out.println(“已经将整数数组写入二进制文件:ints.dat“);catch(IOException ioe)System.out.println(“IO Excepr_on“); A.writeArray B.writeByte C.writeInt D.writeDouble(分数:2.00)A.B.C. D.解析:解析 向流中写入整数数组,用 WrinteInt 方法。24.下列循环执行的次数为U /U。int y=2,x=4;while(
40、-x!=x/y) A. 1 B. 2 C. 3 D. 0(分数:1.00)A.B.C. D.解析:解析 首先判断终止条件,执行-X 之后, x=3,x/y=1,满足条件,执行第 1 次循环;再判断终止条件,执行-x 之后,x=2,x/y=1,满足条件,执行第 2 次循环;依此类推可知一共执行了 3 次循环。25.执行下列程序之后,变量 n 的值为_。public class Testpublic static void main(String args)int y=2;int z=3;int n=4;n=n+-y*z/n;System.out.println(n); A. 3 B. -1 C.
41、 -12 D. -3(分数:2.00)A. B.C.D.解析:解析 程序段 main( )方法中的前 3 行是基本的赋值语句,第 4 行是算术运算语句,此语句的执行过程是:首先对 y 取负值,得到-2,然后乘以 z 得到-6,再除以 n 得到-1,最后和 n 做加法得到 3,从而根据赋值运算将 3 赋值给变量 n。26.如下程序的输出结果是( )。public class Testvoid printValue(int m)do System.out.println(“The value is“+m);while(-m 10 )public static void main(String ar
42、gs)int i=10;Test t= new Test();t.printValue(i); A. The value is 8 B. The value is 9 C. The value is 10 D. The value is 11(分数:2.00)A.B.C. D.解析:解析 此题考查的是 do-while 循环和“-”操作符的知识。do while 最少执行一次,在执行完do 中的内容后,判断 while 中的条件是否为 true。如果为 true,就再执行 do 中的内容,然后再进行判断。以此类推,直到 while 的判断为 false 时退出循环,执行循环后面的内容。而“-“
43、操作符的规则是,变量右边的“-“将先进行运算,然后才使变量的值减一。而在变量左边的“-“,则先将变量的值减一再运算。 本程序中 I 的值为 10,当程序运行到 do-while 循环时,程序先执行一次循环后然后再做判断,因此选 C。27.结构化程序设计所规定的三种基本控制结构是 U /U A. 输入、处理、输出 B. 树形、网形、环形 C. 顺序、选择、循环 D. 主程序、子程序、函数(分数:2.00)A.B.C. D.解析:解析 顺序结构、选择结构和循环结构(或重复结构)是结构化程序设计的 3 种基本结构。28.数据报通信协议 UDP 把每个传输的数据大小控制在下列哪一项之内 A. 8KB
44、B. 16KB C. 64KB D. 128KB(分数:1.00)A.B.C. D.解析:解析 本题考查数据报通信的协议 UDP。UDP 协议对每个数据报是一个独立的信息传输单位的大小限定,UDP 协议对传输数据的大小有限制,在 64KB 之内。正确答案为选项 C。它的传输不可靠,但操作简单,因此,适用于广播式的重复传输、时钟器的传输、ping 命令的传输等。29.软件测试方法中属于静态测试方法的是U /U。 A. 黑盒测试 B. 逻辑覆盖 C. 错误推测 D. )人工检测(分数:1.00)A.B.C.D. 解析:解析 软件测试若是从是否需要执行被测试软件的角度划分,可以分为静态测试和动态测试。若按照功能划分,可以分为黑盒测试和白盒测试。静态测试可以是人工进行,充分发挥