1、计算机二级 JAVA-21及答案解析(总分:73.62,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:60.60)1.自定义表格类中的 model部分应实现的接口是U /U。 A.AbstractTableModel B.JTable C.TableModel D.TableModelable(分数:3.00)A.B.C.D.2.定义如下变量和数组:int i;int x33= 1,2,3,4,5,6,7,8,9;则语句 for(i=0;i3;i+) printf(“%d“,xi2-i);的输出结果是U /U。 A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9(分数
2、:2.00)A.B.C.D.3.下列说法不正确的是U /U。 A.Java语言中,异常处理分为编译异常、运行异常、捕获异常三种 B.捕获异常要求在程序的方法中预先声明 C.运行异常在编程时必须定义 D.以上说法都不对(分数:2.00)A.B.C.D.4.下列程序段执行后的输出结果为U /U。int x=3; int y=10;System. out. println(y%x); A. 0 B. 1 C. 2 D. 3(分数:2.00)A.B.C.D.5.下列叙述中正确的是 A. 在模块化程序设计中,一个模块应尽量多地包括与其他模块联系的信息 B. 在自顶向下、逐步细化的设计过程中,首先应设计解
3、决问题的每一个细节 C. 在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则 D. 在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法(分数:2.00)A.B.C.D.6.线程生命周期中正确的状态是U /U。 A.新建状态、运行状态和终止状态 B.新建状态、运行状态、阻塞状态和终止状态 C.新建状态、可运行状态、运行状态、阻塞状态和终止状态 D.新建状态、可运行状态、运行状态、恢复状态和终止状态(分数:2.00)A.B.C.D.7.有以下程序:main() unsigned a=32768; int b;b=a;printf(“b=%d/n“ ,b);程序执行后输出
4、的结果是U /U。 A.b=32768 B.b=32767 C.b=-32768 D.b=-1(分数:2.00)A.B.C.D.8.定义一个表示 10个值为 null的字符串数组,下面选项正确的是U /U。 AStringa; BString a; Cchara10;DString a=new String10;(分数:2.00)A.B.C.D.9.为判断字符变量 c的值不是数字也不是字母时,应采用下述表达式U /U。 A.c=48|c=57c=65|c=90c=97|c=122 B.!(c=48|c=57c=65|c=90c=97|c=122) C.c=48c=57|c=65c=90|c=9
5、7c=122 D.!(c=48c=57|c=65c=90|c=97c=122)(分数:2.00)A.B.C.D.10.用来实现 Java虚拟机的语言是 A. Java B. C C. C+ D. 汇编(分数:1.00)A.B.C.D.11.用来实现 Java虚拟机的语言是 A. Java B. C C. C+ D. 汇编(分数:1.00)A.B.C.D.12.下面关于注释的添加方法,正确的是U /U。 A. /用于单行注释,/*.*/用于多行注释,/*.*/是 Java所特有的 doc注释 B. /用于多行注释,/*.*/用于多行注释,/*.*/是 Java所特有的 doc注释 C. /用于单
6、行注释,/*.*/也用于单行注释,/*.*/不是 Java所特有的 doc注释 D. /用于多行注释,/*.*/用于多行注释,/*.*/是 Java所特有的 doc注释(分数:1.00)A.B.C.D.13.一个对象的生命周期分为U /U三个阶段。 A.生成、清除和使用 B.使用、生成和清除 C.生成、使用和清除 D.清除、使用和生成(分数:2.00)A.B.C.D.14.下面哪个语句是正确的 U /U A.Object o=new Button(“A“); B.Button b=new Object(“B“); C.Panel p=new Frame(); D.Frame f=new Pan
7、el();(分数:1.00)A.B.C.D.15.for (int x=0,y=0;! x y+)语句执行循环的次数是_。 A.0 B.5 C.6 D.无穷(分数:1.80)A.B.C.D.16.给出下列的不完整的类代码,则下列的哪个语句可以加到横线处? class Person String name,department;int age;public Person( String n ) name = n;public Person( String n,int a ) name = n;age = a;public Person( String n,String d,int a ) _de
8、partment = d; A.Person(n,a); B.this(Person(n,a) ); C.this(n,a); D.this(name,age); (分数:1.00)A.B.C.D.17.线程控制方法中,yield()的作用是U /U。 A.返回当前线程的引用 B.使比其低的优先级线程运行 C.强行终止线程 D.只让给同优先级现成运行(分数:2.00)A.B.C.D.18.下列的哪两种原始类型在使用流时可以互换 A. byte和 boolean B. char和 int C. byte和 char D. String和 char(分数:2.00)A.B.C.D.19.在描述软件
9、的结构和过程中,提出了以下的设计表达工具,其中不正确的说法是 U /U A.图形表达工具:流程图、NS 图等 B.文字表达工具:伪代码、PDL 等 C.表格表达工具:判定表等 D.系统设计表达工具:用于表达软件过程(分数:1.00)A.B.C.D.20.在下列程序的划线处应填入的语句是class Pemon pnvate int a;public class Man extends Person public int b;public static void main(String arg ) Person p = new Person( );Man t = new Man( );int i;
10、_ A.i = w; B.i = b; C.i = p.a; D.i = t.b; (分数:1.00)A.B.C.D.21.线程有哪些基本状态? U /U新建 就绪 休眠阻塞 运行 消亡 A. 、 B. 、 C. 、 D. 、(分数:1.00)A.B.C.D.22.在 Java中,线程是_。 A.分时的 B.抢占式的 C.非抢占式的 D.非分时的(分数:1.80)A.B.C.D.23.算法的时间复杂度是指 A. 执行算法程序所需要的时间 B. 算法程序的长度 C. 算法执行过程中所需要的基本运算次数 D. 算法程序中的指令条数(分数:2.00)A.B.C.D.24.下列代码的执行结果是U /U
11、。public class Testpublic static void main String args)String s1new String(“welcome“);String s2=new String(“welcome“);Systemoutprintln(s1=s2);Systemoutprintln(s1equals(s2); A.false,false B.false,true C.true,true D.true,false (分数:1.00)A.B.C.D.25.关系 R和关系 S的并运算是_。 A.由关系 R和关系 S的所有元组合并组成的集合再删去重复的元组 B.由属于
12、R而不属于 S的所有元组组成的集合 C.由既属于 R又属于 S的元组组成的集合 D.由 R和 S的元组连接组成的集合(分数:2.00)A.B.C.D.26.软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于_。 A.定义阶段 B.开发阶段 C.维护阶段 D.上述三个阶段(分数:1.00)A.B.C.D.27.在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有U /U。 A. 数据无冗余 B. 数据可共享 C. 专门的数据管理软件 D. 特定的数据模型(分数:2.00)A.B.C.D.28.关于 Swing,下列说法正确的是 U /U A. Swing是由非 ja
13、va实现的轻量级构件 B. Swing没有本地代码 C. Swing依赖操作系统的支持 D. Swing在不同平台上表现不一致(分数:2.00)A.B.C.D.29.阅读下列代码public class TestString s=“One World One Dream“;public static void main(String args)System. out. println(s);其运行结果是 A. args B. One World One Dream C. s D. 编译时出错(分数:2.00)A.B.C.D.30.执行下列程序段之后,输出的结果是U /U。public clas
14、s Testpublic static void main(String args) byte a = 2;short b = 3;long c = 4;c=a%b*4%b;System. out. println(c) ; A. 2 B. 1 C. -1 D. -2(分数:2.00)A.B.C.D.31.下列对于严格控制 goto语句的使用理解错误的是U /U。 A. 用一种非结构化的程序设计语言实现一个结构化的构造 B. 若不使用 goto语句会使功能模糊 C. 在某种可以改善而不是损害程序可读性的情况下,可以使用该语句 D. goto语句可以完全不用(分数:2.00)A.B.C.D.32
15、.面向数据流的设计方法可以直接把数据流图映射成软件结构。对于变换流,除了输入模块、变换模块和输出模块外还需要一个U /U。 A.调度模块 B.主控模块 C.平衡模块 D.等价模块(分数:2.00)A.B.C.D.33.下列关于线程的说法中,正确的是 A. 一个线程一旦被创建,就立即开始运行 B. 使用 start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行 C. 当运行状态的线程因为调用了 yield()方法而停止运行,它一定被放在可运行线程队列的前面 D. 当因等待对象锁而被阻塞的线程获得锁后,将直接进入运行状态(分数:2.00)A.B.C.D.34.下列选项中不符合良好程序
16、设计风格的是U /U。 A.源程序要文档化 B.数据说明的次序要规范化 C.避免滥用 goto语句 D.模块设计要保证高耦合、高内聚(分数:2.00)A.B.C.D.35.下列程序执行之后,输出的结果是_。 public class ex4public static void main(String args)int j=0;for(int i=3;i0;i-)j+=i;int x=2;while(xj)x+=1;System.out,print(x); A. 3555 B. 35556666 C. 33453456 D. 345(分数:2.00)A.B.C.D.二、B填空题/B(总题数:1,
17、分数:13.00)以下函数的功能是删除字符串 s中的所有数字字符,请填空。viod dele(char *s) int n=0,i;for(i=0;si;i+)if(U U 9 /U /U)sn+=si;sn=U U 10 /U /U;(分数:13.02)填空项 1:_填空项 1:_(3).Java提供的类库支持 _ 协议,应用程序可通过 URL地址,在访问网络上任何地方的对象时,如同访问本地文件一样简单。(分数:1.86)填空项 1:_(4).查询数据库的标准步骤是:载入 JDBC驱动器、定义连接的网址 URL、建立连接、U U /U /U、执行查询或更新、处理结果、关闭连接。(分数:1.8
18、6)填空项 1:_(5).构件不能独立地显示出来,必须将构件放在一定的U U /U /U中才能显示。(分数:1.86)填空项 1:_(6).下面 Applet在窗口中实现一个不可编辑的 TextField,并且显示“ok”。在横线处填入正确的语句。import java.applet.Applet; import java.awt.t; public class Test extends Applet TextField tf; public void init () setLayout (new GridLayout(1,0); tf=new TextField(“ok“);U U /U /
19、U add(tf); (分数:1.86)填空项 1:_(7).任何一个 Java程序都默认引入了一个包,这个包的名字叫 java._。(分数:1.86)填空项 1:_计算机二级 JAVA-21答案解析(总分:73.62,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:60.60)1.自定义表格类中的 model部分应实现的接口是U /U。 A.AbstractTableModel B.JTable C.TableModel D.TableModelable(分数:3.00)A.B.C. D.解析:解析 本题考查 Swing构件中表格(JTable)。表格是 Swing新增加的构件,
20、主要功能是把数据以二维表格的形式显示出来。依照 MVC的思想,使用表格时最好先生成一个 MyTableModel的类型对象来表示数据,其中有几个方法是一定要重写的,如 getColumnCount()、getRowCount()、getColumnName()、getValueAt()。AbstractTableModel 类的对象负责表格大小的确定(行、列)、内容的填写、赋值、表格单元更新的检测等一切跟表格内容有关的属性及其操作。JTable 类生成的对象以 TableModel为参数,并负责将 TableModel对象中的数据以表格形式显示出来,所以应实现的接口是 TableModel。2
21、.定义如下变量和数组:int i;int x33= 1,2,3,4,5,6,7,8,9;则语句 for(i=0;i3;i+) printf(“%d“,xi2-i);的输出结果是U /U。 A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9(分数:2.00)A.B.C. D.解析:3.下列说法不正确的是U /U。 A.Java语言中,异常处理分为编译异常、运行异常、捕获异常三种 B.捕获异常要求在程序的方法中预先声明 C.运行异常在编程时必须定义 D.以上说法都不对(分数:2.00)A.B. C.D.解析:4.下列程序段执行后的输出结果为U /U。int x=3; int y=10;
22、System. out. println(y%x); A. 0 B. 1 C. 2 D. 3(分数:2.00)A.B. C.D.解析:解析 此题考查%运算符的使用,%运算符的功能是求余运算,10 除以 3的余数为 1,故选 B。5.下列叙述中正确的是 A. 在模块化程序设计中,一个模块应尽量多地包括与其他模块联系的信息 B. 在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节 C. 在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则 D. 在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法(分数:2.00)A.B.C. D.解析:解析 选项 A错误,在
23、模块化设计中,要求将一个大程序按人们能理解的大小规模进行分解,使每个模块都能易于理解,各模块的功能尽量单一,各模块之间的联系尽量的少。 选项 B错误,自顶向下、逐步细化的设计过程土要包括两个方面:将复杂问题的解法分解和细化成由若干模块组成的层次结构;将一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。即在自顶向下、逐步细化的设计过程中,是按照先全局后局部、先整体后细节、先抽象后具体的方法设计程序。选项 D错误,由于在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则,所以,在程序设计过程中,结构化程序设计方法与模块化程序设计方法是要同时采用的。 选
24、项 C为正确答案。6.线程生命周期中正确的状态是U /U。 A.新建状态、运行状态和终止状态 B.新建状态、运行状态、阻塞状态和终止状态 C.新建状态、可运行状态、运行状态、阻塞状态和终止状态 D.新建状态、可运行状态、运行状态、恢复状态和终止状态(分数:2.00)A.B.C. D.解析:7.有以下程序:main() unsigned a=32768; int b;b=a;printf(“b=%d/n“ ,b);程序执行后输出的结果是U /U。 A.b=32768 B.b=32767 C.b=-32768 D.b=-1(分数:2.00)A.B.C. D.解析:8.定义一个表示 10个值为 nu
25、ll的字符串数组,下面选项正确的是U /U。 AStringa; BString a; Cchara10;DString a=new String10;(分数:2.00)A.B.C.D. 解析:解析 本题考查字符串数组变量的声明。选项 A和选项 B的效果是一样的,都是用来定义一个字符串数组,但没有指明数组个数,不满足题目要求;选项 C是一个二维的字符数组,在 C语言中,一个二维的字符数组就可以表示一个一维的字符串数组,而在 Java中,字符 char是基本类型,字符串 String则是以对象的形式来表示的;选项 D正确,它定义了一个含有 10个元素的字符串数组,如果没有给字符串数组赋值,则默认
26、为 null。9.为判断字符变量 c的值不是数字也不是字母时,应采用下述表达式U /U。 A.c=48|c=57c=65|c=90c=97|c=122 B.!(c=48|c=57c=65|c=90c=97|c=122) C.c=48c=57|c=65c=90|c=97c=122 D.!(c=48c=57|c=65c=90|c=97c=122)(分数:2.00)A.B.C.D. 解析:10.用来实现 Java虚拟机的语言是 A. Java B. C C. C+ D. 汇编(分数:1.00)A.B. C.D.解析:解析 本题考查 Java语言的虚拟机。Java 本身的编译器用 Java语言编写,运
27、行系统的虚拟机用C语言实现。Java 语言的执行模式是半编译和半解释型,程序首先由编译器转换为标准字节代码,然后由Java虚拟机去解释执行,字节代码实际上可以看作是虚拟机的机器代码。考生应当理解 Java语言的实现机制,这属于考试重点。正确答案为选项 B。11.用来实现 Java虚拟机的语言是 A. Java B. C C. C+ D. 汇编(分数:1.00)A.B. C.D.解析:解析 本题考查 Java语言的虚拟机。Java 本身的编译器用 Java语言编写,运行系统的虚拟机用C语言实现。Java 语言的执行模式是半编译和半解释型,程序首先由编译器转换为标准字节代码,然后由Java虚拟机去
28、解释执行,字节代码实际上可以看作是虚拟机的机器代码。考生应当理解 Java语言的实现机制,这属于考试重点。正确答案为选项 B。12.下面关于注释的添加方法,正确的是U /U。 A. /用于单行注释,/*.*/用于多行注释,/*.*/是 Java所特有的 doc注释 B. /用于多行注释,/*.*/用于多行注释,/*.*/是 Java所特有的 doc注释 C. /用于单行注释,/*.*/也用于单行注释,/*.*/不是 Java所特有的 doc注释 D. /用于多行注释,/*.*/用于多行注释,/*.*/是 Java所特有的 doc注释(分数:1.00)A. B.C.D.解析:解析 本题考查有关注
29、释的知识。在 Java语言中,有下面 3种注释方式。 /用于单行注释。注释从/开始,终止于行尾。 /*.*/用于多行注释。注释从/*开始,到*/结束,且这种注释不能互相嵌套。 /*.*/是 Java所特有的 doc注释,它以/*开始,到*/结束。这种注释主要是为支持 JDK工具 javadoc而采用的。javadoc 能识别注释中用标记标识的一些特殊变量,并把 doc注释加入它所生成的 HTML文件。13.一个对象的生命周期分为U /U三个阶段。 A.生成、清除和使用 B.使用、生成和清除 C.生成、使用和清除 D.清除、使用和生成(分数:2.00)A.B.C. D.解析:14.下面哪个语句是
30、正确的 U /U A.Object o=new Button(“A“); B.Button b=new Object(“B“); C.Panel p=new Frame(); D.Frame f=new Panel();(分数:1.00)A. B.C.D.解析:15.for (int x=0,y=0;! x y+)语句执行循环的次数是_。 A.0 B.5 C.6 D.无穷(分数:1.80)A.B.C. D.解析:解析 此题是典型的考题。题中 x=0,则!x 永远为真,对于条件表达式!xpublic static void main(String args)System. out. printl
31、n(s);其运行结果是 A. args B. One World One Dream C. s D. 编译时出错(分数:2.00)A.B.C.D. 解析:解析 字符串 s没有被声明成静态的,题中当主函数调用打印函数输出 s的内容时,Test 类还没有被实例化,也就没有字符串常量 s了。可将字符串 s声明为 static类型的,或者在打印字符前先实例化 Test类,再打印这个对象中的字符串。30.执行下列程序段之后,输出的结果是U /U。public class Testpublic static void main(String args) byte a = 2;short b = 3;lon
32、g c = 4;c=a%b*4%b;System. out. println(c) ; A. 2 B. 1 C. -1 D. -2(分数:2.00)A. B.C.D.解析:解析 由于操作数中的 a是 byte类型,b 是 short类型,因此 a和 b按照 int类型进行计算;同时又由于变量 c是 long类型变量,因此所有的操作数都按照 long类型进行运算,结果为 long类型。又由于运算符*和%处于同一优先级别,因此按照从左到右的顺序进行运算,首先 a对 b取模,得到 2,然后乘以 4得 8,最后对 b取模,得到 2。31.下列对于严格控制 goto语句的使用理解错误的是U /U。 A.
33、 用一种非结构化的程序设计语言实现一个结构化的构造 B. 若不使用 goto语句会使功能模糊 C. 在某种可以改善而不是损害程序可读性的情况下,可以使用该语句 D. goto语句可以完全不用(分数:2.00)A.B.C.D. 解析:解析 goto 语句会造成程序的混乱,但在某些地方 goto语句还是需要的,若不使用 goto 语句会使功能模糊。32.面向数据流的设计方法可以直接把数据流图映射成软件结构。对于变换流,除了输入模块、变换模块和输出模块外还需要一个U /U。 A.调度模块 B.主控模块 C.平衡模块 D.等价模块(分数:2.00)A.B. C.D.解析:33.下列关于线程的说法中,正
34、确的是 A. 一个线程一旦被创建,就立即开始运行 B. 使用 start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行 C. 当运行状态的线程因为调用了 yield()方法而停止运行,它一定被放在可运行线程队列的前面 D. 当因等待对象锁而被阻塞的线程获得锁后,将直接进入运行状态(分数:2.00)A.B. C.D.解析:解析 一个线程创建以后并不马上启动,此时线程处于新建状态。所以选项 A错误。yield()方法的功能是线程暂停,让出 CPU,使同优先级的其他线程运行,如果不存在有机会运行的线程,yield()方法将直接返回,线程继续;所以线程调用了 yield()方法还有可能继
35、续为运行状态,所以选项 C错误。当因等待对象锁而被阻塞的线程获得锁后,将进入可运行状态,而不是运行状态,所以选项 D错误。34.下列选项中不符合良好程序设计风格的是U /U。 A.源程序要文档化 B.数据说明的次序要规范化 C.避免滥用 goto语句 D.模块设计要保证高耦合、高内聚(分数:2.00)A.B.C.D. 解析:35.下列程序执行之后,输出的结果是_。 public class ex4public static void main(String args)int j=0;for(int i=3;i0;i-)j+=i;int x=2;while(xj)x+=1;System.out,
36、print(x); A. 3555 B. 35556666 C. 33453456 D. 345(分数:2.00)A.B.C. D.解析:二、B填空题/B(总题数:1,分数:13.00)以下函数的功能是删除字符串 s中的所有数字字符,请填空。viod dele(char *s) int n=0,i;for(i=0;si;i+)if(U U 9 /U /U)sn+=si;sn=U U 10 /U /U;(分数:13.02)填空项 1:_ (正确答案:si0|si9或 !(*(s+i)=0*(s+i)=9)解析:填空项 1:_ (正确答案:/0或 0或 NULL)解析:(3).Java提供的类库支
37、持 _ 协议,应用程序可通过 URL地址,在访问网络上任何地方的对象时,如同访问本地文件一样简单。(分数:1.86)填空项 1:_ (正确答案:TCP/IP)解析:(4).查询数据库的标准步骤是:载入 JDBC驱动器、定义连接的网址 URL、建立连接、U U /U /U、执行查询或更新、处理结果、关闭连接。(分数:1.86)填空项 1:_ (正确答案:建立声明对象)解析:解析 本题考查查询数据库的 7 个标准步骤,除了题目所列的 6点之外,在建立连接之后,执行查询或更新之前要进行声明对象的操作,以使建立的对象用于向数据库发送查询和命令。(5).构件不能独立地显示出来,必须将构件放在一定的U U
38、 /U /U中才能显示。(分数:1.86)填空项 1:_ (正确答案:容器)解析:(6).下面 Applet在窗口中实现一个不可编辑的 TextField,并且显示“ok”。在横线处填入正确的语句。import java.applet.Applet; import java.awt.t; public class Test extends Applet TextField tf; public void init () setLayout (new GridLayout(1,0); tf=new TextField(“ok“);U U /U /U add(tf); (分数:1.86)填空项 1:_ (正确答案:setEditable(false))解析:解析 通过调用 TextField构件的 setEditable(boolean b)方法,可以设置文本区的可编辑属性,参数 b为 false时,文本为不可编辑。(7).任何一个 Java程序都默认引入了一个包,这个包的名字叫 java._。(分数:1.86)填空项 1:_ (正确答案:lang)解析:解析 Java 语言的 java.lang包是编译器自动导入的。所以本题应填 lang。