1、计算机二级 JAVA 分类模拟题 199 及答案解析(总分:57.90,做题时间:90 分钟)一、选择题(总题数:35,分数:57.90)1.下列程序的运行结果是_。 public class Shape public Shape() System.out.println(“shape“); public class Circle extends Shape public Circle() System.out.println(“Circle“); public static void main(String args) Shape d = new Circle() (分数:2.50)A.Sh
2、apeB.CircleC.ShapeCircleD.程序有错误2.下列关于字符流的叙述中,正确的是_。(分数:2.00)A.字符流类 BufferedReader 可以提高字符传送的效率B.字符输入流首先要实现 DataInput 接口C.字节输入流都是 Reader 的子类D.只有字节输入流具有 read()方法,字符输入流不具有该方法3.下列描述中,不是线性表顺序存储结构特征的是_。(分数:1.80)A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系4.String、StingBuffer 都是_类,都不能被继承。(分数:1.00)A.stati
3、cB.abstractC.finalD.Drivate5.下列叙述中正确的是_。(分数:1.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定6.以下叙述中错误的是 _ 。(分数:2.00)A.C 语言是高级语言B.C 语言中的每条可执行语句最终都将被转换成二进制的机器指令C.C 语言产生的目标程序后缀名为 OBJD.C 语言中的函数不可以单独进行编译7.有以下程序: #includestdio.h
4、 #define F(X,Y)(X)*(Y) void main() int a=3,b=4; printf(“%d/n“,F(a-,+b); 程序运行后输出的结果是 _ 。(分数:2.00)A.8B.10C.12D.158.在匹配器(Matcher)类中,用于输入字符串与模式串比较的方法是 _ 。(分数:2.00)A.static boolean matches()B.boolean matcher.find()C.int matcher.start()D.int matcher.end()9.在 E-R 图中,用来表示实体的图形是(分数:2.00)A.矩形B.椭圆形C.菱形D.三角形10.
5、数据库、数据库系统和数据库管理系统之间的关系是(分数:1.00)A.数据库包括数据库系统和数据库管理系统B.数据库系统包括数据库和数据库管理系统C.数据库管理系统包括数据库和数据库系统D.3 者没有明显的包含关系11.在面向对象方法中,不属于“对象”基本特点的是_。(分数:1.00)A.一致性B.分类性C.多态性D.标识唯一性12.有两个关系 R,S 如下: 由关系 R 通过运算得到关系 S,则所使用的运算为_。 R A B C a 3 2 b 0 1 c 2 1 S A B a 3 b 0 c 2 (分数:1.00)A.选择B.投影C.插入D.连接13.下列代码的执行结果是_。 public
6、 class Test public static void main String args) String s1new String(“welcome“); String s2=new String(“welcome“); Systemoutprintln(s1=s2); Systemoutprintln(s1equals(s2); (分数:1.00)A.false,falseB.false,trueC.true,trueD.true,false14.Java 程序结构中,源文件与程序公共类 _ 。(分数:2.00)A.开头字母必须大写B.可以不同C.必须相同D.以上说法都不对15.下列线
7、程状态转换序列,在线程实际运行中可能出现的序列是_。(分数:1.80)A.新建运行阻塞终止B.运行阻塞可运行终止C.可运行运行阻塞运行D.新建可运行运行阻塞可运行16.软件生命周期是指_。(分数:1.80)A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程17.Thread 类的方法中用于修改线程名字的方法是_。(分数:1.80)A.setName()B.reviseName()C.getName()D.checkAccess()18.下列程序执行后,输出的结果是_。 public class Test
8、public static void main(String args) int a=100; if(a100|a100) System.out.println(“a100“); else System.out.println(“a=100“); (分数:2.00)A.a=100B.a100C.a100D.a10019.当检索一个压缩文件时,首先要建立压缩文件输入流对象。该对象_。(分数:1.00)A.以选中的压缩文件为参数B.以 FileInputStream 对象为参数C.以 InputStreamReader 对象为参数D.以 BufferedReader 对象为参数20.下列属于合法的
9、 Java 标识符的是_。(分数:1.80)A._catB.5booksC.+staticD.-3.1415921.下面程序段的输出结果为_。 package test; public class ClassA int x=20; static int y=6; public static void main(String args) ClassB b=new ClassB(); b. go(10); System. out. println(“x=“+b. x); class ClassB int x; void go(int y) ClassA a=new ClassA(); x=a. y
10、; (分数:1.80)A.x=10B.x=20C.x=6D.编译不通过22.在数据库系统中,用户所见的数据模式为 _ 。(分数:2.00)A.概念模式B.外模式C.内模式D.物理模式23.继承是面向对象编程的一个重要特征,它可降低程序的复杂性并使代码_。(分数:1.80)A.可读性好B.可重用C.可跨包访问D.运行更安全24.软件测试目的是_。(分数:1.80)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误25.下列语句中,属于多分支语句的是 _ 。(分数:2.00)A.if 语句B.switch 语句C.do while 语句D.for 语句26.下列方
11、法定义中,正确的是 _ 。(分数:1.00)A.int x(int a,b)B.double x(int a,int b)return(a-b);)int w:w=a-b:C.double x(a,b)D.int x (int a,int b)return breturn a-b;27.JDK 中提供的文档生成器是 _ 。(分数:2.00)A.java.exeB.javap.exeC.javadoc.exeD.javaprof.exe28.下列程序的运行结果是_。 public class Test public static void main(String args) intm=new i
12、nt1,2,3,4,5,6,7,8; int sum=0; for(int i=0;i8;i+) sum+=mi; if(i=3)break; System.out.println(sum); (分数:1.00)A.3B.6C.10D.3629.关系数据库管理系统应实现的专门的关系运算包括_。(分数:2.00)A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表30.阅读下列代码段: abstract class Person public Person(String n) name=n; public_String getDescription(); public
13、 String getName() return name; private String name; 在下画线处应填入的修饰符是_。(分数:1.00)A.staticB.abstractC.protectedD.final31.下列数据结构中,能用二分法进行查找的是_。(分数:2.00)A.顺序存储的有序线性表B.循环链表C.二叉链表D.链式存储的有序线性表32.自定义表格类中的 model 部分应实现的接口是 _ 。(分数:3.00)A.AbstractTableModelB.JTableC.TableModelD.TableModelable33.下面的_关键字通常用来对对象加锁,从而使
14、得对对象的访问是排他的。(分数:2.00)A.serializeB.transientC.synchronizedD.static34.数据字典(DD)所定义的对象包含于_。(分数:1.00)A.数据流图(DFD)B.程序流程图C.软件结构图D.方框图35.执行完语句 int x=new int25;后,则下列哪个说法是正确的?(分数:1.00)A.x24值为 0B.x24值未定义C.x25值为 0D.x0值为空计算机二级 JAVA 分类模拟题 199 答案解析(总分:57.90,做题时间:90 分钟)一、选择题(总题数:35,分数:57.90)1.下列程序的运行结果是_。 public cl
15、ass Shape public Shape() System.out.println(“shape“); public class Circle extends Shape public Circle() System.out.println(“Circle“); public static void main(String args) Shape d = new Circle() (分数:2.50)A.ShapeB.CircleC.ShapeCircle D.程序有错误解析:解析 本题考查初始化的顺序。在一个继承的完整链路中,初始化总会顺着子类找其父类,逐步找到最顶的构造函数,然后从最顶层
16、的构造函数依次执行。因此本题先执行父类的构造函数打印 Shape,然后调用子类的构造函数打印 Circle。2.下列关于字符流的叙述中,正确的是_。(分数:2.00)A.字符流类 BufferedReader 可以提高字符传送的效率 B.字符输入流首先要实现 DataInput 接口C.字节输入流都是 Reader 的子类D.只有字节输入流具有 read()方法,字符输入流不具有该方法解析:解析 在字符流的众多类中,类名中有 buffer 的类,在处理 I/O 时大多具有缓冲功能,可以提高I/O 的传输效率。所以本题中 A 选项说法“字符流类 BufferedReader 可以提高字符传送的效
17、率”是正确的。3.下列描述中,不是线性表顺序存储结构特征的是_。(分数:1.80)A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系 解析:解析 线性表特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此不需要另外开辟空间来保存元素之间的关系。4.String、StingBuffer 都是_类,都不能被继承。(分数:1.00)A.staticB.abstractC.final D.Drivate解析:解析 在 Java 中,字符串是作为对象出现的,由 java.lang.String 和 jav
18、a.lang.StringBuffer定义,分别用来处理长度不变可变字符串,这两类都被定义为 final,final 最终类指明该类不能有子类。因此,本题的正确答案是 C。5.下列叙述中正确的是_。(分数:1.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定 解析:解析 循环队列是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环形空间。循环队列仍然是顺序存储结构,是队列常采用的形式,因此
19、选项 A 错误。在循环队列中,用队尾指针 rear指向队列中的队尾元素,用队头指针 front 指向队列排头元素的前一个位置。循环队列中的元素是动态变化的,每进行一次入队运算,队尾指针就进一;每进行一次出队运算,队头指针就进一。可见由队头指针和队尾指针一起反映队列中元素的动态变化情况,因此选项 B、C 是错误的。从队头指针 front 指向的后一个位置直到队尾指针 rear 指向的位置之间所有的元素均为队列中的元素,因此选项 D 是正确的。6.以下叙述中错误的是 _ 。(分数:2.00)A.C 语言是高级语言B.C 语言中的每条可执行语句最终都将被转换成二进制的机器指令C.C 语言产生的目标程
20、序后缀名为 OBJD.C 语言中的函数不可以单独进行编译 解析:7.有以下程序: #includestdio.h #define F(X,Y)(X)*(Y) void main() int a=3,b=4; printf(“%d/n“,F(a-,+b); 程序运行后输出的结果是 _ 。(分数:2.00)A.8B.10C.12D.15 解析:8.在匹配器(Matcher)类中,用于输入字符串与模式串比较的方法是 _ 。(分数:2.00)A.static boolean matches() B.boolean matcher.find()C.int matcher.start()D.int mat
21、cher.end()解析:解析 本题考查对 Java 中的匹配器 (Matcher)类的理解。Marcher 类用于将一个输入字符串input 和模式串 pattern 相比较。 boolean marcher.find()方法用于寻找下一个模式匹配串;intmatcher.start()方法用于返回匹配串的一个起始索引整数值;int matcher.end()方法用于返回匹配串的一个终止索引整数值。而用于输入字符串与模式串比较的方法是 static boolean matches(),选项A 正确。9.在 E-R 图中,用来表示实体的图形是(分数:2.00)A.矩形 B.椭圆形C.菱形D.三
22、角形解析:解析 在 E-R 图中,用 3 种图框分别表示实体、属性和实体之间的联系,其规定如下:用矩形框表示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名:用菱形框表示实体间的联系,框内标明联系名。所以,选项 A 正确。10.数据库、数据库系统和数据库管理系统之间的关系是(分数:1.00)A.数据库包括数据库系统和数据库管理系统B.数据库系统包括数据库和数据库管理系统 C.数据库管理系统包括数据库和数据库系统D.3 者没有明显的包含关系解析:解析 数据库系统(Database System,简称 DBS)包括数据库(Database,简称 DB)和数据库管理系统(Databas
23、e Management System,简称 DBMS)。11.在面向对象方法中,不属于“对象”基本特点的是_。(分数:1.00)A.一致性 B.分类性C.多态性D.标识唯一性解析:解析 对象的基本特点有:标识唯一性、分类性、多态性、封装性和模块独立性好。标识唯一性是指对象是可区分的;分类性是指可将具有相同属性和操作的对象抽象成类;多态性是指同一个操作可以是不同对象的行为;封装性是指对象的内部对外不可见,在外面不可直接使用对象的处理能力,也不能直接修改其内部状态。12.有两个关系 R,S 如下: 由关系 R 通过运算得到关系 S,则所使用的运算为_。 R A B C a 3 2 b 0 1 c
24、 2 1 S A B a 3 b 0 c 2 (分数:1.00)A.选择B.投影 C.插入D.连接解析:解析 由专门的关系运算:选择、投影、插入、连接的定义可知,本题操作中所使用的运算是投影。13.下列代码的执行结果是_。 public class Test public static void main String args) String s1new String(“welcome“); String s2=new String(“welcome“); Systemoutprintln(s1=s2); Systemoutprintln(s1equals(s2); (分数:1.00)A.f
25、alse,falseB.false,true C.true,trueD.true,false解析:14.Java 程序结构中,源文件与程序公共类 _ 。(分数:2.00)A.开头字母必须大写B.可以不同C.必须相同 D.以上说法都不对解析:15.下列线程状态转换序列,在线程实际运行中可能出现的序列是_。(分数:1.80)A.新建运行阻塞终止B.运行阻塞可运行终止C.可运行运行阻塞运行D.新建可运行运行阻塞可运行 解析:解析 线程状态转换序列如下图所示: 16.软件生命周期是指_。(分数:1.80)A.软件产品从提出、实现、使用维护到停止使用退役的过程 B.软件从需求分析、设计、实现到测试完成的
26、过程C.软件的开发过程D.软件的运行维护过程解析:解析 软件生命周期(SDLC, Systems Development Life Cycle, SDLC)是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。17.Thread 类的方法中用于修改线程名字的方法是_。(分数:1.80)A.setName() B.reviseName()C.getName()D.checkAccess()解析:解析 Thread 类的其他方法有 setName()、getName()、activeCount()和 setDaemon
27、()等。其中,用于修改线程名字的方法是 setName()。18.下列程序执行后,输出的结果是_。 public class Test public static void main(String args) int a=100; if(a100|a100) System.out.println(“a100“); else System.out.println(“a=100“); (分数:2.00)A.a=100 B.a100C.a100D.a100解析:解析 程序中 a=100,在经过判定 a100|a100 时,由于 a 既不小于 100,也不大于 100,所以判定结果为假。程序会走 if
28、 语句的 else 分支,所以输出为“a=100”。19.当检索一个压缩文件时,首先要建立压缩文件输入流对象。该对象_。(分数:1.00)A.以选中的压缩文件为参数B.以 FileInputStream 对象为参数 C.以 InputStreamReader 对象为参数D.以 BufferedReader 对象为参数解析:20.下列属于合法的 Java 标识符的是_。(分数:1.80)A._cat B.5booksC.+staticD.-3.14159解析:解析 本题考查 Java 标识符的命名规则,是考试的重点内容。Java 中标识符的命名规则是标识符以字母、下画线或美元符作为首字符的字符串
29、序列;标识符是区分大小写的;标识符的字符数没有限制。由此可见,Java 中标识符不能以数字开头,所以选项 B 错误,不能以“+”开头,选项 C 错误,不能以“-”开头,选项 D 错误,只有选项 A 是正确答案。21.下面程序段的输出结果为_。 package test; public class ClassA int x=20; static int y=6; public static void main(String args) ClassB b=new ClassB(); b. go(10); System. out. println(“x=“+b. x); class ClassB i
30、nt x; void go(int y) ClassA a=new ClassA(); x=a. y; (分数:1.80)A.x=10B.x=20C.x=6 D.编译不通过解析:解析 本题考查在 Java 中静态变量(类变量)的用法。在题目程序段中生成了一个 static int y=6 类变量,在 ClassA 中调用的 b. go(10),只不过是在 ClassB 中的一个局部变量,通过调用 ClassB 中的 go 方法可以生成一个 ClassA 对象,并给这个新生成的对象赋以 ClassA 中的类变量 y 的值。从 main()方法作为入口执行程序,首先生成一个 ClassB 的对象,
31、然后 b. go(10)会调用 ClassA,会给 x 和 y 赋值,x=a. y 后,x 值为 6,再返回去执行 System. out. println(“x=“+b. x)语句,输出为 x=6,可见,正确答案为选项 C。22.在数据库系统中,用户所见的数据模式为 _ 。(分数:2.00)A.概念模式B.外模式 C.内模式D.物理模式解析:23.继承是面向对象编程的一个重要特征,它可降低程序的复杂性并使代码_。(分数:1.80)A.可读性好B.可重用 C.可跨包访问D.运行更安全解析:解析 继承性是面向对象方法的一个重要基本特性,它使代码可重用,可降低程序复杂性。对一个类的继承是指在现有类
32、(父类)的基础上构建一个新类(子类),子类重用(继承)了父类的方法和状态,同时还可以向新类中增添新的方法和状态。24.软件测试目的是_。(分数:1.80)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误 解析:解析 软件测试的目的主要是在于发现软件错误,希望在软件开发生命周期内尽可能早地发现尽可能多的 bug。25.下列语句中,属于多分支语句的是 _ 。(分数:2.00)A.if 语句B.switch 语句 C.do while 语句D.for 语句解析:26.下列方法定义中,正确的是 _ 。(分数:1.00)A.int x(int a,b)B.double
33、 x(int a,int b)return(a-b);)int w:w=a-b:C.double x(a,b)D.int x (int a,int b)return breturn a-b; 解析:27.JDK 中提供的文档生成器是 _ 。(分数:2.00)A.java.exeB.javap.exeC.javadoc.exe D.javaprof.exe解析:解析 java.exe:Java 解释器,执行字节码程序。javap.exe:Java 类分解器,对.class 文件提供字节代码的反汇编。javaprof.exe:Java 剖析工具,提供解释剖析信息。28.下列程序的运行结果是_。 p
34、ublic class Test public static void main(String args) intm=new int1,2,3,4,5,6,7,8; int sum=0; for(int i=0;i8;i+) sum+=mi; if(i=3)break; System.out.println(sum); (分数:1.00)A.3B.6C.10 D.36解析:解析 该程序的功能是将 m 数组中的前四个数相加,将和保存在 sum 中,最后输出 sum 的值。因为程序中 for 循环停止的条件有两个,一个是当 i8 的时候,另一个是当 i=3 的时候,即运行到 m 数组中第四个值的时
35、候,可以跳出 for 循环。程序执行的是后者,所以输出的结果是 10。29.关系数据库管理系统应实现的专门的关系运算包括_。(分数:2.00)A.排序、索引、统计B.选择、投影、连接 C.关联、更新、排序D.显示、打印、制表解析:解析 关系数据库建立在关系数据模型的基础上,具有严格的数学理论基础。关系数据库对数据的操作除了集合代数的并、交、差等运算之外,还定义了一组专门的关系运算:选择、连接和投影。关系运算的特点是参与运算的对象都是表。30.阅读下列代码段: abstract class Person public Person(String n) name=n; public_String
36、getDescription(); public String getName() return name; private String name; 在下画线处应填入的修饰符是_。(分数:1.00)A.staticB.abstract C.protectedD.final解析:解析 抽象类没有实现的方法,不能实例化。程序中 Person 是一个抽象类,因此 String getDescrtption 方法也是抽象的,所以用 abstract 修饰。因此,本题的正确答案是 B。31.下列数据结构中,能用二分法进行查找的是_。(分数:2.00)A.顺序存储的有序线性表 B.循环链表C.二叉链表D
37、.链式存储的有序线性表解析:解析 二分法查找只用于顺序存储的有序线性表,而顺序查找用于顺序存储的非有序线性表和线性链表。32.自定义表格类中的 model 部分应实现的接口是 _ 。(分数:3.00)A.AbstractTableModelB.JTableC.TableModel D.TableModelable解析:解析 本题考查 Swing 构件中表格(JTable)。表格是 Swing 新增加的构件,主要功能是把数据以二维表格的形式显示出来。依照 MVC 的思想,使用表格时最好先生成一个 MyTableModel 的类型对象来表示数据,其中有几个方法是一定要重写的,如 getColumn
38、Count()、getRowCount()、getColumnName()、getValueAt()。AbstractTableModel 类的对象负责表格大小的确定(行、列)、内容的填写、赋值、表格单元更新的检测等一切跟表格内容有关的属性及其操作。JTable 类生成的对象以 TableModel 为参数,并负责将 TableModel 对象中的数据以表格形式显示出来,所以应实现的接口是 TableModel。33.下面的_关键字通常用来对对象加锁,从而使得对对象的访问是排他的。(分数:2.00)A.serializeB.transientC.synchronized D.static解析:
39、解析 本题考查 Java 中对象加锁的概念。Java 是多线程的语言,多个线程可以“同时“访问同一数据区,而在处理某些数据时不希望其他的线程修改那些数据的值或者某些操作是不可打断的,要做到这个,可以使用 synchronized 关键字声明这一点。34.数据字典(DD)所定义的对象包含于_。(分数:1.00)A.数据流图(DFD) B.程序流程图C.软件结构图D.方框图解析:解析 数据字典用于对数据流图中出现的被命名的图形元素进行确切地解释,是结构化分析中使用的工具。35.执行完语句 int x=new int25;后,则下列哪个说法是正确的?(分数:1.00)A.x24值为 0 B.x24值未定义C.x25值为 0D.x0值为空解析: