2024年4月2日发(作者:)

1 下列数据结构中,能用二分法进行查找的是__A____。

A、顺序存储的有序线性表 B、线性链表 C、二叉链表 D、有序线性链表

解析: 二分法查找只合用于顺序存储的有序表。 在此所说的有序表是指线性表中的元素

按值非递减罗列(即从小到大,但允许相邻元素值相等)。

2 在软件设计中,不属于过程设计工具的是__D____。

A、PDL(过程设计语言) B、PAD 图 C、N-S 图 D、DFD 图

解析: 软件设计工具包括: 程序流程图、 N-S、PAD、HIPO,判定表, PDL(伪码)。而 DFD(数

据流图)属于结构化分析工具。

3 在 switch(expression)语句中, expression 的数据类型不能是__A____。

A、double B、char C、byte D、short

解析:表达式expression 只能返回这个几种类型的值: int、byte、short 和 char。多

分支语句把表达式返回的值挨次与每一个 case 子句中的值相比较,如果遇到匹配的值,则

执 行该 case 子句后的语句序列。

4 下列叙述中,错误的是__D____。

A、父类不能替代子类 B、子类能够替代父类 C、子类继承父类 D、父类包含子类

5 通过继承实现代码复用:

Java 中所有的类都是通过直接或者间接地继承 类得到的。 继承而得

到 的类称为子类, 被继承的类称为父类。 子类不能继承父类中访问权限为 private 的成员

变量 和方法,子类可以重写父类的方法,及命名与父类同名的成员变量。

子类通过隐藏父类的成员变量和重写父类的方法,把父类的状态和行为改变为自身的状

态和行为。 注意: 子类中重写的方法和父类中被重写的方法要具有相同的名字, 相同的参数

表和相同的返回类型,只是函数体不同。

由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。

程序中凡是使用父类对象的地方, 都可以用子类对象来代替。 一个对象可以通过引用子类的

实例来调用子类的方法。

java 运行时系统根据调用该方法的实例,来决定调用哪个方法。对子类的一个实例,

如果子类重写了父类的方法,则运行时系统调用子类的方法;如果子类继承了父类的方法(未

重写),则运行时系统调用父类的方法。

6 自定义表格类中的 model 部份应实现的接口是___A___。

A、AbstractTableModel B、JTable C、TableModel D、TableModelable

7 下列代码中,将引起编译错误的行是__B____。

1)public class Exercise{

2) public static void main(String args[]){

3) float f=0.0;

4) f+=1.0;

5) }

6) }

A、第 2 行 B、第 3 行 C、第 4 行 D、第 6 行

解析: float 定义变量赋值时,需要在数值后面加f 以标识它为浮点型,让系统知道该

给它精确到多少位。

8 下列关于 Java 多线程并发控制机制的叙述中,错误的是___B___。

A、Java 中对共享数据操作的并发控制是采用加锁技术

B、线程之间的交互,提倡采用 suspend()/resume()方法

C、共享数据的访问权限都必须定义为 private

D、Java 中没有提供检测与避免死锁的专门机制,但应用程序员可以采用某些策略防止

死锁的发生

解析:

1)Java 中对共享数据操作的并发控制是采用传统的封锁技术。一个程序中单独的、并

发的线程对同一个对象进行访问的代码段,称为临界区。在Java 语言中,临界区可以是一

个语句块或者是一个方法,并且用"synchronized"关键字标识。 Java 平台将每一个由

synchronized(Object)语句指定的对象设置一个锁,称为对象锁。

2)共享数据的所有访问都必须作为临界区,使用"synchronized"进行加锁控制。用

"synchronized"保护的数据也必须是私有的, 使线程不能直接访问这些数据, 必须通过对象

的方法。

3)Java 中没有检测与避免死锁的专门机制,因此彻底由程序进行控制,防止死锁的发

生。

4)有时,某个线程进入"synchronized"块后,共享数据的状态并不一定满足线程的需要,

它要等待其他线程将共享数据改变为它需要的状态后才干继续执行,但由于此时它占有了该

对象的锁, 其他线程无法对共享数据进行操作, 为此 Java 引入 wait()和notify(),这两个

方法使 类的方法,使实现线程通信的两个方法。

9 下列操作中,不属于 Applet 安全限制的是___D___。

A、加载本 B、读写本地文件系统 C、运行本地可执行程序 D、与同一个页面中的 Applet

通信

10 在进行模块测试时,要为每一个被测试的模块此外设计两类模块:驱动模块和承接

模 块(桩模块)。其中, 驱动模块相当于被测试模块的主程序,它接收测试数据,并传给被

测试 模块, 输出实际测试结果。 承接模块通常用于代替被测试模块调用的其他模块, 其作

用仅做 少量的数据操作,是一个摹拟子程序,不势必子模块的所有功能带入。

11 Java 语言具有可移植性、高性能、茁壮性、安全性和独立于体系结构的__跨平台____

特点。

解析: Java 语言是一种跨平台,适合于分布式计算环境的面向对象的编程语言。具体

来说,它具有如下特性:简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可

移植、高性能、多线程、动态性等。

12 在运行时,由 Java 解释器自动导入,而不用 import 语句引入的包是

______。

解析: 因为包 所包含的类和接口对所有实际的 Java 程序都是必要的, 所以,

它被自动导入所有的程序且它是 Java 最广泛使用的包。

13 下列程序的功能是创建了一个显示 5 个"Hello!"的线程并启动运行,请将程序补充

完整。

public class ThreadTest extends Thread{

public static void main(String args[]){

ThreadTest t=new __ThreadTest()____ ;

();}

public void run(){int i=0;

while(true){n("Hello!");

if (i++==4) break;

}

}

解析: ThreadTest 继承 类, 重写了 run()方法, 实现了 Java 中的线

程。 ThreadTest t 定义了空的线程对象, 下面 ()启动了这个线程, 因此 ThreadTest

t=new ______ ;就应该是实例化该线程对象,所以空格中应填ThreadTest()。

Swing 的顶层容器有: JApplet、JWindow、JDialog 和__JFrame____。

顶层容器: JFrame、JApplet、JDialog 和 JWindow 共 4 个。

中间容器: JPanel、JScrollPane、JSplitPane、JToolBar。

特殊容器: JInternalFrame、JLayeredPane、JRootPane。

基本控件: JButton、JComboBox、JList、JMenu、JSlider、JTextField。

不可编辑信息的构件: JLabel、JProgressBar、ToolTip、

可编辑信息的构件: JColorChooser、JFileChooser、JFileChooser、JTable、JTextArea

所有的这些构件的分类都是按功能来划分的。

14 下列叙述中正确的是___D___。

A、一个逻辑数据结构只能有一种存储结构

B、数据的逻辑结构属于线性结构,存储结构属于非线性结构

C、一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率

D、一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率

解析: 普通来说, 一种数据的逻辑结构根据需要可以表示成多种存储结构, 常用的存储

结构有顺序、 链接、 索引等存储结构。 而采用不同的存储结构, 其数据处理的效率是不同的。

15 Java 的图形用户界面的最基本的组成部份就是构件(Component),构件是一个可以

以图形化的方式显示在屏幕上并能与用户交互的对象, 但构件不能独立地显示出来, 必须将

构件放在一定的容器中才可以显示出来。 解析: 容器 Container 是一个类, 因为容器本身也

是一个构件,具有构件的所有性质,因此继承之Component 类。

16 下列叙述中,错误的是__A____。

A、File 类能够存储文件 B、File 类能够读写文件C、File 类能够建立文件 D、File

类能够获取文件目录信息

解析:文件类 File 是 包中的一个重要的非流类,它以一种与系统无关的方式

表示一个文件对象的属性。而目录在 Java 中作为一种特殊文件,即文件名的列表,通过类

File 所提供的方法, 可得到文件或者目录的描述信息(包括名字、 路径、 长度、 可读、 可写等),

也可以生成新文件、目录、修改文件和目录,查询文件属性,重命名文件或者删除文件。

17 下列叙述中,正确的是___C___。

A、Reader 是一个读取字符文件的接口 B、Reader 是一个读取数据文件的抽象类

C、Reader 是一个读取字符文件的抽象类 D、Reader 是一个读取字节文件的普通类

解析: Java 中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来

表示(每种流包括输入和输出两种,所以一共四个):InputStream,OutputStream,Reader,

Writer。Java 中其他多种多样变化的流均是由它们派生出来的。

在这其中 InputStream 和 OutputStream 在早期的 Java 版本中就已经存在了,它们是基

于字节流的,而基于字符流的 Reader 和 Writer 是后来加入作为补充的。在这四个抽象类中,

InputStream 和 Reader 定义了彻底相同的接口:

int read()

int read(char cbuf[])

int read(char cbuf[], int offset, int length)

而 OutputStream 和 Writer 也是如此:

int write(int c)

int write(char cbuf[])

int write(char cbuf[], int offset, int length)

18 用于输入压缩文件格式的 ZipInputStream 类所属包是___D___。

A、 B、 C、 D、

解析: ZipInputStream 该对象用于从 ZIP 压缩文件中创建输入流对象。

对象定义结构: utStream

静态成员变量: CENATT、CENATX、CENCRC……, 这些静态成员变量用于定义在压缩过程

中采用的压缩算法。

构造方法: ZipInputStream(InputStream in)应用输入流对象创建从 ZIP 文件中读取数

据的输入流对象。

成员方法:

int available() 判断当前入口指定的压缩原始文件中是否还有未读数据。

void close() 关闭 ZIP 输入流对象。

void closeEntry() 关闭被读取的 ZIP 入口,并挪移到下一压缩原始文件入口。

protectedZipEntry createZipEntry(String name) 利用指定的名称创建 ZipEntry 对

象实例。

ZipEntry getNextEntry() 将输入流对象挪移到下一入口对象。

int read(byte[] b, int off, int len) 从当前 ZipEntry 中读取字节数组。

long skip(long n) 将输入流指定的读取数据位置挪移 n 个字节。

在 Swing 中用轻量级的构件替代了 AWT 中的分量级的构件,而且 Swing 的替代构件中都

包含有一些其他的特性。与AWT 构件不同, Swing 构件不能直接添加到顶层容器中,它必须

添加到一个与 Swing 顶层容器相关联的内容面板(contentPane)上。

19 查找随机文件的记录时,应使用的方法是___C___。

A、readInt() B、readBytes(int n) C、seek(long l) D、readDouble()

文件操作中时常需要的是随机访问, Java 中的 RandomAccessFile 类提供随机访问文件

的功能,其中的 seek 方法实现了查找随机文件记录的功能,格式如下:

void seek( long pos ); //用于挪移文件指针到指定的位置

20 下列关于栈的描述中错误的是___B___。

A、栈是先进后出的线性表 B、栈只能顺序存储 C、栈具有记忆作用

D、对栈的插入与删除操作中,不需要改变栈底指针

21 对于长度为 n 的线性表, 在最坏情况下, 下列各排序法所对应的比较次数中正确的是

___D___。

A、冒泡排序为 n/2 B、冒泡排序为 n C、快速排序为 n D、快速排序为 n(n-1)

22 对长度为 n 的线性表进行顺序查找,在最坏情况下所需要的比较次数为__C____。

A、 B、n/2 C、n D、n+1

23 在进行顺序查找过程中, 如果线性表中的第一个元素就是被查找元素, 则只需做一次

比较就查找成功,查找效率最高;但如果被查找的元素是线性表中的最后一个元素,或者被

查找的元素根本就不在线性表中,则为了查找这个元素需要与线性表中所有的元素进行比

较, 这是顺序查找的最坏情况。 所以对长度为 n 的线性表进行顺序查找, 在最坏情况下需要

比较 n 次。

24 模块独立性是指每一个模块只完成系统要求的独立的子功能,并且与其他模块的联

系 至少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联

的。 在程序结构中, 各模块的内聚性越强,则耦合性越弱。普通较优秀的软件设计,应尽

量做到 高内聚, 低耦合, 即减弱模块之间的耦合性和提高模块内的内聚性, 有利于提高模

块的独立 性。