1、计算机二级 JAVA-16 及答案解析(总分:72.72,做题时间:90 分钟)一、B选择题/B(总题数:1,分数:48.80)为了使 SOS 包中的所有类在当前程序巾可见,可以使用的语句是A) import sos*;B) package sos*;C) sosimport; D) sospackage; A. ij B. ijk C. ijkl D. ijklm (分数:48.72)A.B.C.D.A.B.C.D.(3).下列情况中,不会使线程返回所持有的对象锁的是 A. 当 synchronized()语句块执行完毕 B. 当调用了线程的 suspend()方法 C. 当在 synchr
2、onized()语句块中出现异常(Exception) D. 当持有锁的线程调用该对象的 wait()方法(分数:1.74)A.B.C.D.(4).Java 语言是U /U。 A.区分大小写的 B.不完全区分大小写 C.完全不区分大小写 D.以上说法都不对 (分数:1.74)A.B.C.D.(5).设 a=8,则表达式 a2:的值是U /U A.1 B.2 C.3 D.4(分数:1.74)A.B.C.D.(6).下列说法中,正确的是U /U。 A.类是变量和方法的集合体 B.数组是无序数据的集合 C.抽象类可以实例化 D.类成员数据必须是共有的(分数:1.74)A.B.C.D.(7).有以下程
3、序:void main()int a33,*p,i;p=a00;for(i=0;i9;i+) pi=i;for(i=0;i3;i+)printf(“%d“,a1i);程序运行后输出的结果是U /U。 A.012 B.123 C.234 D.345(分数:1.74)A.B.C.D.(8).下列各项中不属于 AWT 提供的图形图像工具的是U /U。 A. 形状 B. 按钮 C. 颜色 D. 字体(分数:1.74)A.B.C.D.(9).下列叙述中,不属于软件需求规格说明书的作用的是U /U。 A.便于用户、开发人员进行理解和交流 B.反映出用户问题的结构,可以作为软件开发工作的基础和依据 C.作为
4、确认测试和验收的依据 D.便于开发人员进行需求分析(分数:1.74)A.B.C.D.(10).下列关于修饰符混用的说法,错误的是U /U。 A.abstract 不能与 final 并列修饰同一个类 B.abstract 类中不可以有 private 的成员 C.abstract 方法必须在 abstract 类中 D.static 方法中能处理非 static 的属性(分数:1.74)A.B.C.D.(11).字符型变量以 char 类型表示,表示范围是U /U。 A.065536 B.065535 C.032768 D.032767 (分数:1.74)A.B.C.D.(12).提供 sho
5、wDocument()方法,使 Applet 能够请求浏览器访问特定 URL 的类是( )。 A.Applet B.AppletContext C.JApplet D.URL(分数:1.74)A.B.C.D.(13).Java 语言中,下列标识符错误的是 U /U A.n B.$_yi C._ner D.uNiT(分数:1.74)A.B.C.D.(14).下面哪一个不是 InputStream 类中的方法?_ A. int read(byte) B. void flush() C. void close() D. int available()(分数:1.74)A.B.C.D.(15).下列程
6、序运行后的输出结果是U /U。public class Sunpublic static void main(String args)int a,b;a=0;b=0;for(int m=1;m=10;m+)a=a+1;b=0;for(int j=1;j=10;j+)a=a+1;b=b+2;System.out.println(a+“,“+b); A. 10,20 B. 20,110 C. 110,20 D. 200,110(分数:1.74)A.B.C.D.(16).下列描述中不正确的一项是_。 A.Java 不支持多线程 B.一个 Java 源程序中不允许有多个公共类 C.Java 通过接口支
7、持多重继承 D.Java 程序可以划分为两大类:Application 和 Applet(分数:1.74)A.B.C.D.(17).对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 U /U。 A. 冒泡排序为 n/2 B. 冒泡排序为 n C. 快速排序为 n D. 快速排序为 n (n-1)/2(分数:1.74)A.B.C.D.(18).软件详细设计产生的图如右。该图是U /U。(分数:1.74)A.B.C.D.(19).以下程序运行后输出的结果是U /U。#include stdio.hmain() int i;for(i=1;i=5;i+)switch (
8、1%5) case 0:printf“*“);break;case 1:printf(“#“);break;default:printf(“/n“);case 2:printf(“); A.# * * B.# * * C.# D. #(分数:1.74)A.B.C.D.(20).Java 字节码的解释执行方式是_。 A.一次解释完整代码 B.不需要解释 C.每次编译解释并执行一小段代码来完成 D.每次解释并执行一小段代码来完成(分数:1.74)A.B.C.D.(21).查找随机文件的记录时,应使用的方法是 A. readInt() B. readBytes(int n) C. seek(long
9、 l) D. readDouble()(分数:1.74)A.B.C.D.(22).下列不属于逻辑运算符的是_。 A.! B.| C.p=a00;for(i=0;i9;i+) pi=i;for(i=0;i3;i+)printf(“%d“,a1i);程序运行后输出的结果是U /U。 A.012 B.123 C.234 D.345(分数:1.74)A.B.C.D. 解析:(8).下列各项中不属于 AWT 提供的图形图像工具的是U /U。 A. 形状 B. 按钮 C. 颜色 D. 字体(分数:1.74)A.B. C.D.解析:解析 图形图像工具是 AWT 提供的一个重要功能,具体包括了形状、颜色和字体
10、,属于用户界面构件。(9).下列叙述中,不属于软件需求规格说明书的作用的是U /U。 A.便于用户、开发人员进行理解和交流 B.反映出用户问题的结构,可以作为软件开发工作的基础和依据 C.作为确认测试和验收的依据 D.便于开发人员进行需求分析(分数:1.74)A.B.C.D. 解析:(10).下列关于修饰符混用的说法,错误的是U /U。 A.abstract 不能与 final 并列修饰同一个类 B.abstract 类中不可以有 private 的成员 C.abstract 方法必须在 abstract 类中 D.static 方法中能处理非 static 的属性(分数:1.74)A.B.C
11、.D. 解析:(11).字符型变量以 char 类型表示,表示范围是U /U。 A.065536 B.065535 C.032768 D.032767 (分数:1.74)A.B. C.D.解析:(12).提供 showDocument()方法,使 Applet 能够请求浏览器访问特定 URL 的类是( )。 A.Applet B.AppletContext C.JApplet D.URL(分数:1.74)A.B. C.D.解析:解析 AppletContext 类是一个接口类,Applet 通过 AppletContext 接口与环境进行通信。可以利用这个类从 Applet 环境获取信息,而这
12、个环境一般是指浏览器。Applet 使用 AppletContext 类的showDocument()方法可以通知浏览器在指定窗口中显示另一个 URL 的内容。因此,本题的正确答案是 B。(13).Java 语言中,下列标识符错误的是 U /U A.n B.$_yi C._ner D.uNiT(分数:1.74)A.B. C.D.解析:(14).下面哪一个不是 InputStream 类中的方法?_ A. int read(byte) B. void flush() C. void close() D. int available()(分数:1.74)A.B. C.D.解析:解析 InputSt
13、ream 类所包括的主要方法有 public int read(byte b) throws IOException、long skip(long n)、public int available() throws IOException 和 public void close() throws IOException。选项 B 中的 void flush()方法并不属于 InputStream 类中的方法。(15).下列程序运行后的输出结果是U /U。public class Sunpublic static void main(String args)int a,b;a=0;b=0;for(
14、int m=1;m=10;m+)a=a+1;b=0;for(int j=1;j=10;j+)a=a+1;b=b+2;System.out.println(a+“,“+b); A. 10,20 B. 20,110 C. 110,20 D. 200,110(分数:1.74)A.B.C. D.解析:解析 本题考查对 for 循环语句理解。本题是两重 for 循环,第 1 重循环是将 a 的值加 1,b 清零,第 2 重循环是将 a 的值加 1, b 的值加 2,第 1 重和第二重循环都是 10 次,每次 a 的值增加 11,执行 10次所以 a 的值为 110;由于第 1 个 for 循环将 b 赋
15、 0,所以 b 的值只是最后一次循环的值,即 20。故本题答案是 C。(16).下列描述中不正确的一项是_。 A.Java 不支持多线程 B.一个 Java 源程序中不允许有多个公共类 C.Java 通过接口支持多重继承 D.Java 程序可以划分为两大类:Application 和 Applet(分数:1.74)A. B.C.D.解析:(17).对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 U /U。 A. 冒泡排序为 n/2 B. 冒泡排序为 n C. 快速排序为 n D. 快速排序为 n (n-1)/2(分数:1.74)A.B.C.D. 解析:解析 对于
16、长度为 n 的线性表,在最坏情况下,冒泡排序需要经过 n(n-1)/2 次比较。快速排序法最坏情况下的比较次数也是 n(n-1)/2。(18).软件详细设计产生的图如右。该图是U /U。(分数:1.74)A.B.C. D.解析:解析 N-S 图(也称为盒图或 CHAPIN 图)和 PAD(问题分析图)及 PFD(程序流程图)是详细设计阶段的常用工具,E-R 图即实体-联系图是数据库设计的常用工具。从题中图可以看出该图属于程序流程图。(19).以下程序运行后输出的结果是U /U。#include stdio.hmain() int i;for(i=1;i=5;i+)switch (1%5) ca
17、se 0:printf“*“);break;case 1:printf(“#“);break;default:printf(“/n“);case 2:printf(“); A.# * * B.# * * C.# D. #(分数:1.74)A.B.C. D.解析:(20).Java 字节码的解释执行方式是_。 A.一次解释完整代码 B.不需要解释 C.每次编译解释并执行一小段代码来完成 D.每次解释并执行一小段代码来完成(分数:1.74)A.B.C.D. 解析:(21).查找随机文件的记录时,应使用的方法是 A. readInt() B. readBytes(int n) C. seek(lon
18、g l) D. readDouble()(分数:1.74)A.B.C. D.解析:解析 本题考查随机文件流的相关方法。RandomAccessFile 中主要包含的方法有:length()方法用来求随机文件的字节长度; seek(long pos)方法用来对随机文件记录的查找,所以选项 C 正确;close()方法用来将随机文件资源关闭;readDouble()是对随机文件浮点数的读取; readInt()是对随机文件整数的读取;readChar()是对随机文件字符变量的读取;skipBytes(int n)是随机文件字节的读取。(22).下列不属于逻辑运算符的是_。 A.! B.| C.&
19、D.|(分数:1.74)A.B.C.D. 解析:解析 !是逻辑非,|是逻辑或,&是逻辑与,|是按位或。(23).下列关于链式存储结构的叙述中,不正确的是_。 A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构 B.逻辑上相邻的结点物理上不必相邻 C.可以通过计算确定第 i 个结点的存储地址 D.插入、删除运算操作方便,不必移动结点(分数:1.74)A.B.C. D.解析:解析 链式存储结构的主要特点有:结点中除自身信息外,还有表示链接信息的指针域,因此存储密度小、存储空间利用率低;逻辑上相邻的结点物理上不必相邻;插入、删除操作灵活方便。线性存储结构可以通过计算确定第 i 个结点的存
20、储地址,但链式存储结构不能。(24).下列关于队列的叙述中,正确的是_。 A. 在队列中只能插入数据 B. 在队列中只能删除数据 C. 队列是先进先出的线性表 D. 队列是先进后出的线性表(分数:1.74)A.B.C. D.解析:解析 队列是指允许在一端进行插入而在另一端进行删除的线性表。队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则。在队列中,队尾指针与队首指针共同反映队列中元素动态变化的情况。(25).下列代码的执行结果是U /U。public class test5public static void main (String args)String s1=n
21、ew String(“hello“);String s2=new String(“hello“);System.out.prim(s1=s2);System.out.print(“,“);System.out.println(s1.equals(s2); A.true,false B.true,true C.false,true D.false,false(分数:1.74)A.B.C. D.解析:(26).下面对对象概念的描述中,错误的是_。 A. 任何对象都必须有继承性 B. 对象是属性和方法的封装体 C. 对象间的通信靠消息传递 D. 操作是对象的动态属性(分数:1.74)A. B.C.D
22、.解析:解析 对象可以执行的操作表示其动态行为,在面向对象分析与设计中,通常把对象的操作也称为方法或服务。属性在设计对象时确定,一般只能通过执行对象的操作来改变。对象有一些基本特点:标识唯一性,分类性,多态性,封装性,模块独立性好。而继承是使用已有的类定义作为基础来建立新类的技术。(27).以下不属于数据库系统模型的是U /U。 A.选择型数据库系统 B.关系型数据库系统 C.层次型数据库系统 D.网状型数据库系统(分数:1.74)A. B.C.D.解析:(28).下列关于 Java 多线程并发控制机制的叙述中,错误的是U /U。 A.Java 中对共享数据操作的并发控制是采用加锁技术 B.线
23、程之间的交互,提倡采用 suspend()/resume()方法 C.共享数据的访问权限都必须定义为 private D.Java 中没有提供检测与避免死锁的专门机制,但应用程序员可以采用某些策略防止死锁的发生(分数:1.74)A.B. C.D.解析:二、B填空题/B(总题数:15,分数:24.00)1.问题处理方案的正确而完整的描述称为 1。(分数:2.00)填空项 1:_ (正确答案:算法 或 程序 或 流程图)解析:解析 算法是问题处理方案正确而完整的描述。2.根据程序的构成和运行环境的不同,Java 源程序分为两类,即_程序和_程序。(分数:1.00)填空项 1:_ (正确答案:Jav
24、aApplication JavaApplet)解析:3.若声明“char a15=“Windows-9x”;”,语句“printf(“%s“,a+8);”的输出结果为 1 。(分数:1.00)填空项 1:_ (正确答案:9x)解析:4.对二进制数进行算术右移的运算符是 1。(分数:2.00)填空项 1:_ (正确答案:)解析:解析 Java 中符号“”为算术右移运算符,有符号。右边超出截掉,左边补上符号位;运算符“”为逻辑右移运算符,无符号,左边高位补 0。算术右移,顾名思义,右移时须要带符号,而逻辑右移直接在高位补 0 即可。5.使用 Swing 编写 Applet,则该 Applet 的
25、主类应该定义为U U /U /U类的子类。(分数:2.00)填空项 1:_ (正确答案:JApplet)解析:6.字符常量是用单撇号括起来的一个字符,用双撇号括起来的是 1。(分数:1.00)填空项 1:_ (正确答案:字符串)解析:7.Java 语言用 1 进行解释执行。(分数:2.00)填空项 1:_ (正确答案:字节码)解析:解析 Java 语言用字节码进行解释执行,它本身带有许多编译时产生的信息,可使其连接过程更简单。8.算术运算符的优先级按下面次序排列:+和-的级别最高,然后是U U /U /U和/以及,而+和-的级别最低。(分数:2.00)填空项 1:_ (正确答案:*)解析:解析
26、 本题考查运算符的优先级,需要考生牢记。9.使得线程放弃当前分得的 CPU 时间,但不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU 时间的方法是 1。(分数:2.00)填空项 1:_ (正确答案:yield())解析:解析 本题考查线程阻塞的概念。yield()方法使得线程放弃当前分得的 CPU 时间,但是不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得 CPU 时间。调用 yield()的效果等价于调度程序认为该线程已执行了足够的时间从而转到另一个线程。10.对话框(Dialog)是 1 类的子类。(分数:1.00)填空项 1:_ (正确答案:Window)解析:11.栈
27、和队列通常采用的存储结构是U U /U/U。(分数:1.00)填空项 1:_ (正确答案:【1】链式存储和顺序存储)解析:解析 考查考生对数据结构基本知识的了解。 【解题要点】栈和队列都属于线性表,它们一般采用顺序存储结构,也可以对它们采用链式存储结构。 【考点链接】栈、数组、表采用的存储结构,各种存储结构的定义和区别。12.耦合和内聚是评价模块独立性的两个主要标准,其中 1 反映了模块内各成分之间的联系。(分数:2.00)填空项 1:_ (正确答案:内聚)解析:解析 耦合是指模块之间的关联程度,而内聚是指模块内各成分之间的联系。13.使用 BufferOutputStream 时,数据首先写
28、到U U /U /U,直到写满才将数据写入输出流。(分数:2.00)填空项 1:_ (正确答案:缓冲区)解析:解析 使用缓冲区机制提高了输出流的工作效率,当数据写入缓冲区的时候,可以让输出流有充分的时间处理输出,等到缓冲区写满了,再执行新的输出,减少了内存和外设的访问次数,从而提高了访问效率。14.有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号, 1,成绩)。(分数:2.00)填空项 1:_ (正确答案:课号)解析:解析 由于两个关系模式的键分别是
29、学号和课号,所以关系模式选课可定义为:选课(学号,课号,成绩)。15.下面程序执行的结果应是 1。 class Test2 public static void main(String args) int i=2,j=1; byte k=(byte)(i+j); System.out.println(k); (分数:1.00)填空项 1:_ (正确答案:3)解析:解析 考查数据类型的强制转换用法。 解题要点 将较长的数据类型转换成较短的数据类型,只能用强制类型转换,通常都用赋值语句来实现,在要求强制转换的变量名前面用()括上所要强制转换的类型符。 考点链接 强制转换会使精度降低,如题目中 k 的精度明显降为 8 位 bit。