【计算机二级Java语言】卷005
选择题
公共知识
【1】下列叙述中正确的是()。
线性链式存储结构中每个结点都由数据域与指针域两部分组成, 增加了存储空间, 所以一般要多于顺序存储结构。
【2】下列叙述中正确的是()。
栈是一种先进后出的线性表, 队列是一种先进先出的线性表, 栈与队列都是线性结构。
【3】软件测试的目的是()。
软件测试是为了发现错误而执行程序的过程, 测试要以查找错误为中心, 而不是为了演示软件的正确功能。
不是为了评估软件或改正错误。
不是为了评估软件或改正错误。
【4】在软件开发中, 需求分析阶段产生的主要文档是()。
需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。
所以选择D。
所以选择D。
【5】软件生命周期是指()。
通常, 将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
也就是说, 软件产品从考虑其概念开始, 到该软件产品不能使用为止的整个时期都属于软件生命周期。
也就是说, 软件产品从考虑其概念开始, 到该软件产品不能使用为止的整个时期都属于软件生命周期。
【6】面向对象方法中, 继承是指()。
继承是面向对象的方法的一个主要特征, 是使用已有的类的定义作为基础建立新类的定义技术。
广义的说, 继承是指能够直接获得已有的性质和特征, 而不必重复定义它们, 所以说继承是指类之间共享属性和操作的机制。
广义的说, 继承是指能够直接获得已有的性质和特征, 而不必重复定义它们, 所以说继承是指类之间共享属性和操作的机制。
【7】层次型、网状型和关系型数据库划分原则是()。
层次模型的基本结构是树形结构, 网状模型是一个不加任何条件限制的无向图, 关系模型采用二维表来表示, 所以三种数据库的划分原则是数据之间的联系方式。
【8】一个工作人员可以使用多台计算机, 而一台计算机可被多个人使用, 则实体工作人员与实体计算机之间的联系是()。
因为一个人可以操作多个计算机, 而一台计算机又可以被多个人使用, 所以两个实体之间是多对多的关系。
【9】数据库设计中反映用户对数据要求的模式是()。
数据库系统的三级模式是概念模式、外模式和内模式。
概念模式是数据库系统中全局数据逻辑结构的描述, 是全体用户公共数据视图。
外模式也称子模式或用户模式, 它是用户的数据视图, 给出了每个用户的局部数据描述, 所以选择C。
内模式又称物理模式, 它给出了数据库物理存储结构与物理存取方法。
概念模式是数据库系统中全局数据逻辑结构的描述, 是全体用户公共数据视图。
外模式也称子模式或用户模式, 它是用户的数据视图, 给出了每个用户的局部数据描述, 所以选择C。
内模式又称物理模式, 它给出了数据库物理存储结构与物理存取方法。
【10】有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是()。
则由关系R和S得到关系T的操作是()。
关系T中的元组是R关系中有而S关系中没有的元组的集合, 所以进行的是差的运算。
专业知识
【11】下列关于Java语言特点的叙述中, 错误的是
Java是新一代编程语言, 具有很多特点。
简单易学、利用面向对象技术、分布式计算、健壮性、安全性、跨平台(即体系结构中立)、可移植性、解释执行、高性能、多线程和动态性。
本题答案为B选项。
简单易学、利用面向对象技术、分布式计算、健壮性、安全性、跨平台(即体系结构中立)、可移植性、解释执行、高性能、多线程和动态性。
本题答案为B选项。
【12】下列关于Java源程序结构的论述中, 正确的是
一个文件的public类最多可以有一个, 但是可以包含多个import语句。
包含的接口定义也可以有多个, 包含的class类可以有多个。
本题答案为B选项。
包含的接口定义也可以有多个, 包含的class类可以有多个。
本题答案为B选项。
【13】Java的反汇编命令是
Javap命令是java反汇编命令, javac命令是java语言编译器, jdb是基于文本和命令行的调试工具, java命令是Java解释器。
选项A正确, 本题答案为A。
选项A正确, 本题答案为A。
【14】下列语句执行后的输出结果是
int i = 2, j = 6;
System.out.println((i + 5) > j);
表达式"i+5=7"等于"7>6"返回值为true。
本题答案为C选项。
本题答案为C选项。
【15】下列语句执行后的输出结果是
int i = 2, j = 4;
boolean k;
k = (i++) > 0 && (++j - 4) < 0;
System.out.println(i * j);
后置"++"表示先参与运算再自身+1;
前置"++"表示先自身+1再参与运算。
逻辑运算符"&&"在运算过程中会发生短路。
当遇到false时, 后面的表达式不参与运算。
在程序中, i++ = 2大于0, i自增1后等于3。
因为表达式"( i++ ) > 0"为true, 继续运算逻辑运算符"&&"后面的式子, 此时j自增为5。
题目要求打印"i*j"表达式的值, 程序输出为15。
本题答案为D选项。
逻辑运算符"&&"在运算过程中会发生短路。
当遇到false时, 后面的表达式不参与运算。
在程序中, i++ = 2大于0, i自增1后等于3。
因为表达式"( i++ ) > 0"为true, 继续运算逻辑运算符"&&"后面的式子, 此时j自增为5。
题目要求打印"i*j"表达式的值, 程序输出为15。
本题答案为D选项。
【16】下列运算符中, 优先级最高的是
在Java中运算的优先级参照
。
本题答案为D选项。
【17】下列程序的运行结果是
public class Test {
public static void main(String[] args) {
int a = 3;
double b = 3.5;
int k = (int) b;
if (a == k)
System.out.println("0");
else if (a > k)
System.out.println("1");
else
System.out.println("2");
}
}
double型数据强转为int型数据会丢失精度。
变量b转为int类型结果为3, k = 3; 因为k = 3, a = 3, 所以表达式"a==k"为true, 执行if后面的语句, 输出0。
本题答案为B选项。
变量b转为int类型结果为3, k = 3; 因为k = 3, a = 3, 所以表达式"a==k"为true, 执行if后面的语句, 输出0。
本题答案为B选项。
【18】switch (expression)
语句中, 表达式expression不允许的类型是
switch语句中表达式expression只能是下面这几种数据类型:int、byte、short和char。
在JDK1.7之后还支持String类型。
如果比较的数据类型是double和boolean型, 则不能使用 switch结构。
选项C不满足条件。
本题答案为C选项。
在JDK1.7之后还支持String类型。
如果比较的数据类型是double和boolean型, 则不能使用 switch结构。
选项C不满足条件。
本题答案为C选项。
【19】下列程序的运行结果是
public class Test {
public static void main(String[] args) {
int i = 1;
while (i < 7) {
if (i % 2 == 0)
System.out.print(i);
i++;
}
}
}
运算符"%"为取余操作。
本题中i % 2 == 0, i只要是偶数就会满足条件, 并打印i的值。
while循环中, i的最大值为6, 有2, 4, 6三个偶数。
本题答案为C选项。
本题中i % 2 == 0, i只要是偶数就会满足条件, 并打印i的值。
while循环中, i的最大值为6, 有2, 4, 6三个偶数。
本题答案为C选项。
【20】下列程序的运行结果是
public class Test {
public static void main(String[] args) {
int count = 0;
for (int i = 1; i < 5; i += 2)
for (int j = 1; j <= 10; j += 3)
count++;
System.out.print(count);
}
}
本题考查嵌套循环的应用, 第一层for循环执行2次, 第二层循环执行4次。
内循环一共循环8次。
每次循环自增变量count的值。
循环结束后count的值为8。
本题答案为B选项。
内循环一共循环8次。
每次循环自增变量count的值。
循环结束后count的值为8。
本题答案为B选项。
【21】继承是面向对象程序设计的一个重要特征, 它可降低程序的复杂性并使代码
继承性是面向对象方法的一个重要基本特性, 它使代码可重用, 可降低程序复杂性。
继承是指在现有类(父类)的基础上构建一个新类(子类), 子类重用(继承)了父类的方法和状态, 同时还可以向新类中增添新的方法和状态。
本题答案为B选项。
继承是指在现有类(父类)的基础上构建一个新类(子类), 子类重用(继承)了父类的方法和状态, 同时还可以向新类中增添新的方法和状态。
本题答案为B选项。
【22】阅读下列代码段
abstract class Person {
public Person(String n) {
name = n;
}
public ________ String getDescription();
public String getName() {
return name;
}
private String name;
}
在下划线处应填入的修饰符是
getDescription()只有方法名, 没有方法体, 属于抽象方法。
抽象方法用关键字abstract修饰。
本题答案为B选项。
抽象方法用关键字abstract修饰。
本题答案为B选项。
【23】Java中所有类的父类是
java中, Object类是所有类的父类。
本题答案为D选项。
本题答案为D选项。
【24】下列程序的运行结果
public class Test {
String s = "One World One Dream";
public static void main(String[] args) {
System.out.println(s);
}
}
s不属于静态变量, 访问时不能直接调用, 需用对象的引用进行访问, 程序编译时出错。
本题答案为D选项。
本题答案为D选项。
【25】用于在子类中调用被重写父类方法的关键字是
this调用本类相关的构造函数, super调用父类相关构造方法。
本题答案为B选项。
本题答案为B选项。
【26】阅读下列程序片段
public void test() {
try {
sayHello();
System.out.println("Hello");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("ArrayIndexOutOfBoundsException ");
} catch (Exception e) {
System.out.println("Exception ");
} finally {
System.out.println("finally");
}
}
如果sayHello()方法正常运行, 则test()方法的运行结果将是
sayHello()方法正常运行, try模块输出"Hello", 接着执行finally模块, 无论异常是否存在, 此模块都会执行, 输出"finally"。
本题答案为A选项。
本题答案为A选项。
【27】下列程序的运行结果
public class ConcatTest {
public static void main(String[] args) {
String str1 = "abc";
String str2 = "ABC";
String str3 = str1.concat(str2);
System.out.println(str3);
}
}
本题考查字符串的使用。
String类提供concat()方法, 该方法将当前字符串对象与指定str字符串相连。
表达式str1.concat(str2)的结果为"abcABC"。
本题的答案为C选项。
String类提供concat()方法, 该方法将当前字符串对象与指定str字符串相连。
表达式str1.concat(str2)的结果为"abcABC"。
本题的答案为C选项。
【28】下列程序的运行结果
public class Arrays {
public static void main(String[] args) {
int[] a = new int[5];
for (int i = 0; i < a.length; i = i + 1) {
a[i] = 10 + i;
}
for (int i = 0; i < a.length; i = i + 1) {
System.out.print(a[i] + " ");
}
String[] s = { "Frank", "Bob", "Jim" };
for (int i = 0; i < s.length; i = i + 1) {
System.out.print(s[i] + " ");
}
s[2] = "Mike";
System.out.print(s[2]);
}
}
第一个for循环对整型数组a赋值时从"10+0"开始, 直到"10+4", 共5个数。
第二个for循环直接将字符串数组内容依次打印出来, 循环结束后对s[2]重新赋值为"Mike", 故再次打印s[2]时输出"Mike"。
本题答案为C选项。
第二个for循环直接将字符串数组内容依次打印出来, 循环结束后对s[2]重新赋值为"Mike", 故再次打印s[2]时输出"Mike"。
本题答案为C选项。
【29】下列代码的功能是向文件score.dat中写入对象。在下划线处应填入的是
ObjectOutputStream out = new ObjectOutputStream(new ____________("score.dat"));
out.writeObject(fenshu);
out.close();
类ObjeetOutputStream是将一个对象写到一个流中, 其原型为public ObjectOutputStream(OutputStream out), 即参数为一个输出流对象。
显然, 在空白处新建了一个输出流的对象。
"score.dat"是一个文件名。
本题的意思为将对象写入一个文件输出流。
public FileOutputStream(String name), 创建一个输出文件流。
本体答案为C选项。
显然, 在空白处新建了一个输出流的对象。
"score.dat"是一个文件名。
本题的意思为将对象写入一个文件输出流。
public FileOutputStream(String name), 创建一个输出文件流。
本体答案为C选项。
【30】Java中的抽象类Reader和Writer所处理的流是
Reader / Writer所处理的流是字符流, Inputstream / OutputStream的处理对象是字节流。
本题答案为D选项。
本题答案为D选项。
【31】下列不属于接口WindowListener的方法是
接口WindowListener包括以下方法:windowActivated、windowDeactivated、windowClosing、windowClosed、windowIconified、windowDeiconified、windowOpened方法。
本题答案为C选项。
本题答案为C选项。
【32】在下列程序的空白处, 应填入的正确选项是
import java.io.*;
public class ObjectStreamTest {
public static void main(String[] args)throws IOException {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("serial.bin"));
java.util.Date d = new java.util.Date();
oos.____________(d);
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("serial.bin"));
try {
java.util.Date restoredDate = (java.util.Date)ois.readObject();
System.out.println("read Object back from serial.bin file: " + restoredDate);
} catch (ClassNotFoundException cnf) {
System.out.println("class not found");
}
}
}
本题考查的是输入/输出及文件操作, writeObject()方法直接写入对象。
本题答案为D选项。
本题答案为D选项。
【33】下列包中, 包含JOptionPane类的是
Swing中提供了J0ptionPane类来实现类似Windows平台下的MessageBox的功能。
利用JOptionPane类中的各个static方法来生成各种标准的对话框, 实现显示信息、提出问题、警告、用户输入参数等功能, 且这些对话框都是模式对话框。
本题答案为A选项。
利用JOptionPane类中的各个static方法来生成各种标准的对话框, 实现显示信息、提出问题、警告、用户输入参数等功能, 且这些对话框都是模式对话框。
本题答案为A选项。
【34】下列程序中需要对Employee的对象进行存储, 下划线处应填入的正确选项是
class Employee implements __________ {
……
}
本题考查对象的序列化。
如果想保存程序中的对象, 以便在该程序的后运行中使用, 可以使用对象的序列化。
一个类只有实现了Serialiazable接口, 才是可序列化的。
如果要序列化某些类的对象, 这些类就必须实现 Serialiazable接口。
本题的答案为B选项。
如果想保存程序中的对象, 以便在该程序的后运行中使用, 可以使用对象的序列化。
一个类只有实现了Serialiazable接口, 才是可序列化的。
如果要序列化某些类的对象, 这些类就必须实现 Serialiazable接口。
本题的答案为B选项。
【35】在下列Java语言的包中, 提供图形界面构件的包是
java.io包向程序提供文件输入/输出操作的类;
javax.swing包提供构建和管理应用程序的图形界面的轻量级构件;
java.net包向程序提供执行网络通信应用及URL处理的类;
java.rmi包向程序提供远程方法调用所需的类。
本题答案为B选项。
本题答案为B选项。
【36】Java API中支持线程的类或接口是
I.java.lang.Thread
II.java.lang.Runnable
III.java.lang.ThreadGroup
IV.java.io.Serializable
I.java.lang.Thread
II.java.lang.Runnable
III.java.lang.ThreadGroup
IV.java.io.Serializable
java.lang.Thread类和java.lang.Runnable是创建线程的两个方法, 分别是实现Thread类和继承Runnable接口。
ThreadGroup类是管理一组线程的类。
Serializable是序列化, 将一个对象的状态保存起来, 在适当的时候再获得, 它不支持线程。
本题答案为B选项。
ThreadGroup类是管理一组线程的类。
Serializable是序列化, 将一个对象的状态保存起来, 在适当的时候再获得, 它不支持线程。
本题答案为B选项。
【37】阅读下面程序
public class Test2 ___________ {
public static void main(String[] args) {
Thread t = new Test2();
t.start();
}
public void run() {
System.out.println("How are you.");
}
}
在程序下划线处填入正确选项是
创建线程有两种方法:实现java.lang.Runnable接口和继承Thread类并重写run()方法。
本程序通过Thread t = new Test2(); 可以看出是通过继承Thread类来创建进程。
本题答案为A选项。
本程序通过Thread t = new Test2(); 可以看出是通过继承Thread类来创建进程。
本题答案为A选项。
【38】请阅读下列程序
public class ThreadTest {
public static void main(String[] args)throws Exception {
int i = 0;
Hello t = new Hello();
_____________________;
while (true) {
System.out.println("Good Morning" + i++);
if (i == 2 && t.isAlive()) {
System.out.println("Main waiting for Hello!");
t.join();
//等待t运行结束
}
if (i == 5)
break;
}
}
}
class Hello extends Thread {
int i;
public void run() {
while (true) {
System.out.println("Hello" + i++);
if (i == 5)
break;
}
}
}
为使该程序正确执行, 下划线处的语句应是
启动线程用start()方法。
本题答案为D选项。
本题答案为D选项。
【39】在多线程并发程序设计中, 能够给对象x加锁的语句是
Java平台将每个由synchronized(Object)语句指定的对象设置一个锁, 称为对象锁。
Java中的对象锁是一种独占的排他锁。
本题答案为C选项。
Java中的对象锁是一种独占的排他锁。
本题答案为C选项。
【40】下列叙述中, 错误的是
Swing的事件处理机制继续沿用AWT的事件处理机制。
事件处理机制中仍旧包含三种角色:事件源、事件和事件处理者(事件监听程序)。
事件源就是Swing的各种构件, 与之对应的就是事件监听器接口。
选项D说法错误, 本题答案为D选项。
事件处理机制中仍旧包含三种角色:事件源、事件和事件处理者(事件监听程序)。
事件源就是Swing的各种构件, 与之对应的就是事件监听器接口。
选项D说法错误, 本题答案为D选项。
编程题
【41】在考生文件夹中存有文件名为Java_1.java的文件, 该程序是不完整的, 请在注释行"//**********Found**********"下一行语句的下划线地方填入正确内容, 然后删除下划线, 请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下, 不得改变原有文件的文件名。
程序的功能是在给定球的半径时计算出球的体积。当程序运行时, 在命令屏幕上给出程序功能提示, 并显示输入半径的窗口:
根据考生输入球半径的值计算体积, 并在命令屏幕上显示结果。
程序的功能是在给定球的半径时计算出球的体积。当程序运行时, 在命令屏幕上给出程序功能提示, 并显示输入半径的窗口:
根据考生输入球半径的值计算体积, 并在命令屏幕上显示结果。
(1) javax
(2) static
(3) input
本题考查:java包的导入、main()函数语法以及数据类型转换。
(1) swing是java的扩展程序包之一, javax中存储的都是扩展程序包。
(2) java中程序的main方法为:public static void main(String[] args) { } 。
(3) 将字符串类型转为double类型, Double引用类型提供parseDouble(String str)方法, 本程序要求在窗口中输入的字符串转为double类型。
(1) swing是java的扩展程序包之一, javax中存储的都是扩展程序包。
(2) java中程序的main方法为:public static void main(String[] args) { } 。
(3) 将字符串类型转为double类型, Double引用类型提供parseDouble(String str)方法, 本程序要求在窗口中输入的字符串转为double类型。
【42】在考生文件夹中存有文件名为Java_2.java的文件, 该程序是不完整的, 请在注释行"//**********Found**********"下一行语句的下划线地方填入正确内容, 然后删除下划线, 请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下, 不得改变原有文件的文件名。
程序的功能是:定义了一个简单的线程, 可以对其名称进行设置。该程序运行时的输出结果如下:
Running the Testing_Thread:
-- - 0-- - Testing_Thread
-- - 1-- - Testing_Thread
-- - 2-- - Testing_Thread
-- - 3-- - Testing_Thread
-- - 4-- - Testing_Thread
程序的功能是:定义了一个简单的线程, 可以对其名称进行设置。该程序运行时的输出结果如下:
Running the Testing_Thread:
-- - 0-- - Testing_Thread
-- - 1-- - Testing_Thread
-- - 2-- - Testing_Thread
-- - 3-- - Testing_Thread
-- - 4-- - Testing_Thread
(1) t.start()
(2) Thread
(3) setName(str)
(4) run
(5) catch
本题考查:线程类的定义、线程的启动运行以及异常的捕获。
(1) java中启动线程用start()方法, 根据本程序中的 Thread t = new SimpleThread("Testing_Thread"); 启动线程用t.start()。
(2) 实现线程的方式有两种:继承Thread类、实现Runnable接口。
这里是继承Thread类。
(3) 设置线程名的方法为:setName(String str), 将线程名设置为想要的名称。
(4) 覆写run()方法, 作为线程 的操作主体 。
(5) 处理异常的方式, 程序中处理方式为try catch语句, catch中处理捕获的异常。
(1) java中启动线程用start()方法, 根据本程序中的 Thread t = new SimpleThread("Testing_Thread"); 启动线程用t.start()。
(2) 实现线程的方式有两种:继承Thread类、实现Runnable接口。
这里是继承Thread类。
(3) 设置线程名的方法为:setName(String str), 将线程名设置为想要的名称。
(4) 覆写run()方法, 作为线程 的操作主体 。
(5) 处理异常的方式, 程序中处理方式为try catch语句, catch中处理捕获的异常。
【43】在考生文件夹中存有文件名为Java_3.java的文件, 该程序是不完整的, 请在注释行"//**********Found**********"下一行语句的下划线地方填入正确内容, 然后删除下划线, 请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下, 不得改变原有文件的文件名。
本题的要求是:
在JFrame窗口中, 显示出红色的2008北京奥运主题口号"同一个世界,同一个梦想", 同时在窗口的上方, 有三个按钮可以改变窗口的背景色。
该程序的运行结果如下:
本题的要求是:
在JFrame窗口中, 显示出红色的2008北京奥运主题口号"同一个世界,同一个梦想", 同时在窗口的上方, 有三个按钮可以改变窗口的背景色。
该程序的运行结果如下:
(1)JFrame(2)panel(3)implements(4)actionPerformed
本题考查:图形界面组件以及监听器的使用。
(1) 程序要求在JFrame窗口中, 显示出红色的2008北京奥运主题口号"同一个世界,同一个梦想", 所以FontFrame类应继承JFrame类。
(2) 通过add()方法将面板对象添加到容器中。
(3) ActionListener是Java中关于事件处理的一个接口, 继承自EventListener。
所以操作时应实现该接口, java中实现接口用关键字implements。
(4) 实现ActionListener接口需实现里面的actionPerformed()抽象方法。
(1) 程序要求在JFrame窗口中, 显示出红色的2008北京奥运主题口号"同一个世界,同一个梦想", 所以FontFrame类应继承JFrame类。
(2) 通过add()方法将面板对象添加到容器中。
(3) ActionListener是Java中关于事件处理的一个接口, 继承自EventListener。
所以操作时应实现该接口, java中实现接口用关键字implements。
(4) 实现ActionListener接口需实现里面的actionPerformed()抽象方法。