java数据结构测试题及答案解析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java数据结构试题及解析

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中所有的类都是通过直接或间接地继承ng.Object类得到的。继承而得到的类称为子类,被继承的类称为父类。子类不能继承父类中访问权限为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(),这两个方法使ng.object类的方法,使实现线程通信的两个方法。

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

A、加载本

B、读写本地文件系统

C、运行本地可执行程序

D、与同一个页面中的Applet 通信

10 在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中,驱动模块相当于被测试模块的主程序,它接收测试数据,并传给被测试模块,输出实际测试结果。承接模块通常用于代替被测试模块调用的其他模块,其作用仅做少量的数据操作,是一个模拟子程序,不必将子模块的所有功能带入。

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

解析:Java语言是一种跨平台,适合于分布式计算环境的面向对象的编程语言。具体来说,它具有如下特性:简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。

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

__ng____。

解析:因为包ng所包含的类和接口对所有实际的Java程序都是必要的,所以,它被自动导入所有的程序且它是Java最广泛使用的包。

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

public class ThreadTest extends Thread{

public static void main(String args[]){

ThreadTest t=new __ThreadTest()____;

t.start();}

public void run(){int i=0;

while(true){System.out.println("Hello!");

if (i++==4) break;

}

}

相关文档
最新文档