资源描述
一、选择题(每小题1分,共40小题,共40分)
1.常采用的两种存储结构是( )。
A.顺序存储结构和链式存储结构
B.散列方法和索引方式
C.链表存储结构和数组
D.线性存储结构和非线性存储结构
A。【解析】线性表的存储结构有顺序存储结构和链式存储结构。
2.在深度为5的满二叉树中,叶子结点的个数为( )。
A.32
B.31
C.16
D.15
C。【解析】根据满二叉树的定义,一棵深度为k且有
2k-1个结点的二叉树为满二叉树。满二叉树的叶子结点为最后一层的结点数。根据满二叉树的性质,在满二叉树的第i层上至多有2i-1个结点。因此深度为5的满二叉树的叶子结点数为25-1=16个。
3.下列叙述中错误的是( )。
A.线性表是由n个元素组成的一个有限序列
B.线性表是一种线性结构
C.线性表的所有结点有且仅有一个前件和后件
D.线性表可以是空表
C。【解析】线性表是一种线性结构,由n(n≥0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前驱,最后一个结点没有后继,其他结点有且只有一个前驱和后继,所以选项C是错误的。
4.数据库技术的主线目的是要解决数据的( )。
A.存储问题
B.共享问题
C.安全问题
D.保护问题
B。【解析】在数据库系统中,需要对数据进行集合、统一的管理,以达成被多个应用程序共享的目的。
5.在设计程序时,应采纳的原则之一是( )。
A.不限制goto语句的使用
B.减少或取消注解行
C.程序越短越好
D.程序结构应有助于读者理解
D。【解析】程序设计中,程序不规定长度,以结构清楚、易于理解为标准,程序员可以添加注释来助于理解,同时要尽量少用goto语句,否则会破坏程序的结构。
6.结构化程序设计的核心和基础是( )。
A.结构化分析方法
B.结构化设计方法
C.结构化设计理论
D.结构化编程方法
C。【解析】结构化程序设计的核心和基础是结构化设计理论,其中涉及:结构化分析方法、结构化设计方法和结构化编程方法。
7.对下列二叉树进行中序遍历的结果是( )。
A.ACBDFEG
B.ACBDFGE
C.ABDCGEF
D.FCADBEG
A。【解析】二叉树的遍历有3种:前序、中序和后序。中序遍历一方面遍历左子树或左子结点,然后访问根结点,最后遍历右子树或右子结点。分析本题二叉树,对其进行中序遍历,结果为ACBDFEG。
8.软件设计中模块划分应遵循的准则是( )。
A.低内聚低耦合
B.高内聚低耦合
C.低内聚高耦合
D.高内聚高耦合
B。【解析】耦合性和内聚性是模块独立性的两个定性标准,软件设计应当遵循高内聚低耦合的准则。
9.算法的有穷性是指( )。
A.算法程序的运营时间是有限的
B.算法程序所解决的数据量是有限的
C.算法程序的长度是有限的
D.算法只能被有限的用户使用
A。【解析】算法的有穷性是指算法必须在执行有限的环节后终止。
10.有3个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所用的运算为( )。
A.并
B.自然连接
C.笛卡儿积
D.交
D。【解析】关系R与S通过交运算后所得到的关系是由那些既在R内又在S内的有序组组成的。记作R∩S。
11. 破坏死锁的4个必要条件之一就可以防止死锁。假如规定一个进程在请求新资源之前一方面释放已占有的资源则是破坏了( )条件。
A.互斥使用
B.部分分派
C.不可剥夺
D.环路等待
B。【解析】若一个进程请求新资源之前一方面释放已占有的资源,这破坏了部分分派条件。
12.设有字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X),则新序列(F,H,C,D,P,A,M,Q,R,S,Y,X)是下列( )排序算法一趟扫描的结果。
A.起泡排序
B.初始步长为4的希尔排序
C.二路归并排序
D.以第一个元素为分界元素的快速排序
D。【解析】根据快速排序的算法,新序列(F,H,C,D,P,A,M,Q,R,S,Y,X)为字符序列(Q,H,C,Y,P,A,M,s,R,D,F,x)通过快速排序的算法第一趟扫描后的结果。
13.下列与算法有关的叙述中,不对的的是( )。
A.运算是数据结构的一个重要方面,运算的实现环节用算法来描述
B.算法是精拟定义的一系列规则,它指出如何从给定的输入信息通过有限环节产生所求的输出信息
C.算法的设计采用由粗到细,由抽象到具体的逐步求精的方法
D.对于算法的分析,指的是分析算法运营所要占用的机器时间,即算法的时间代价
D。【解析】算法是一系列解决问题的清楚指令,也就是说,可以对一定规范的输入,在有限时间内获得所规定的输出。算法经常具有反复的环节和一些比较或逻辑判断。假如一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法也许用不同的时间、空间或效率来完毕同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量,也就是算法分析,因此选项D错误。算法设计一般采用由粗到细、由抽象到具体的初步求精的方法。
14.下列关于数据的存储结构的叙述中,对的的是( )。
A.数据的存储结构是数据间关系的抽象描述
B.数据的存储结构是逻辑结构在计算机存储器中的实现
C.数据的存储结构分为线性结构和非线性结构
D.数据的存储结构对数据的具体实现没有影响
B。【解析】数据的存储结构是逻辑结构在计算机存储器中的实现。为了全面表达一个逻辑结构,它在存储器中的影响涉及数据元素自身值的表达和数据元素的表达两方面。
15.设有一个已按各元素的值排好序的顺序表(长度大于2),现分别用顺序查找法和二分查找法查找与给定值k相等的元素,比较的次数分别是s和b,在查找不成功情况下s和b的关系是( )。
A.s=b
B.s>b
C.s
D.s>=b
B。【解析】顺序查找的基本思想是:从表的一端开始,顺序扫描线性表,依次将扫描到结点的关键字和给定值k进行比较,若当前扫描到结点的关键字与k相等,则查找成功;若扫描结束后,仍未找到关键字等于k的结点,则查找失败。二分查找法是一种效率较高的查找方法,规定线性表是有序表。基本思想是:一方面将待查的k值和有序表R[0]~R[n-1]的中间位置mid上的结点的关键字进行比较,若相等,则查找完毕;否则,若R[mid].key>k,则说明待查找的结点只也许在左子表R[0]~R[mid-1]中,我们只需在左子表中继续进行折半查找,若R[mid].key
16.下列不属于虚拟机执行过程的特点的是( )。
A.多线程
B.动态连接
C.异常解决
D.代码安全检查
D。【解析】本题考察虚拟机执行过程的特点。Java虚拟机是编译器生成的字节码,不用考虑具体的硬件环境,实现一次编写,随处运营,实现其可移植性。虚拟机执行过程的特点有:多线程、动态连接、异常解决。代码安全检查是Java语言的一个突出特点,但不属于虚拟机执行过程特点。
17.下列说法中,对的的一项是( )。
A.Java语言是以类为程序的基本单位的
B.Java语言是不分大小写的
C.多行注释语句必须以//开始
D.在Java语言中,类的源文献名和该类名可以不相同
A。【解析】本题考察考生对Java语言概念的理解,属于考试重点内容,历次考试都有相关内容,应当理解这些基本概念。Java语言是分大小写的,这一点在初学Java时需要特别注意,这一点与C语言有所不同,B选项错误。以//开始的应当是单行的注释语句,因此选项C错误。Java中有三类注释语句:文档注释/**…*/,被javadoc解决,可以建立类的一个外部说明性文献;C语言注释风格/*…*/,用于去掉当前不再使用但仍想保存的代码等;单行注释//,格式上规定注释符//后必须紧跟一个空格,然后才是注释信患。Java程序源文献名必须和public类名相同,否则编译犯错,因此选项D错误。只有选项A说法对的。
18.下列关于实型变量书写对的的是( )。
A.E3
B.2e0.3
C.1.2e3
D.1.2E0.3
C。【解析】本题考察实型变量科学计算格式的书写。在科学计算格式中,e或E是指数符,规定在e/E之前必须有数字,选项A错误。同时还规定在e/E之后必须是整数,选项B和选项D错误。虽然题目非常简朴,但是不容易对的回答。对的答案为选项C。
19.下列与其他选项不相等的是( )。
A.15
B.0xF
C.015
D.0XF
C。【解析】本题考察Java语言中的进制换算。考生一方面要清楚各种进制的表达方法,整型常量有3种书写格式:十进制整数,如156,-230,345;八进制整数:以0开头,如012表达十进制的l0;十六进制整数:以0x或0X开头,如0X123表达十进制数291。选项A是十进制的15,选项B和选项D都是十六进制中的F相称于十进制的15,选项C为八进制,以0开头,此处Ol5相称于十进制的13,与其他选项不同。
20.设a=8,则表达式a>>>1的值是( )。
A.1
B.2
C.3
D.4
D。【解析】本题考察考生对位运算符中无符号右移运算符的掌握。无符号右移运算符>>>,也叫逻辑右移,用于将一个数的各二进制位所有无符号右移若干位,与运算符>>不同的是左补0,而>>则是最高位移入本来高位的值。在本题中,8的二进制表达是1000,右移一位后变成了0100,相应的十进制数是4。可见,对的答案为选项D。
21.在Java中,所有类的根类是( )。
A.java.lang.Object
B.java.lang.Class
C.java.lang.String
D.java.lang.System
A。【解析】本题考察考生对Java类的掌握。在Java中java.lang包封装着所有编程应用的基本类。Object是所有类的根,它所包含的属性和方法被所有类集成;Class类是由编译器自动生成对象的一个特殊类,它随着每个类;Strin9是字符串常量的类;System类是一个final类,所有的方法都用类变量来调用,即对System类不也许实例化,重要提供了标准输入/输出和系统环境信息的访问、设立.
22.执行下面程序段后,2值为( )。
int x=1,y=2,z=3;
z=z/(float)(x/y):
A.编译无法通过 B.6
C.3 D.2
A。【解析】本题考察Java的运算和类型转换。题目中变量x、y、z是int类型,由于括号的优先级要高,所以语句(float)(x/y)的结果为0.0,分母已经成为0,编译肯定无法通过。此外,由于2是int型,不能将float型强制转化为int型。
23.int类型的取值范围为( )。
A.-216~216-1
B.-231~231-1
C.-232~232-1
D.-264~264-1
B。【解析】本题考察int类型的取值范围。int类型是最常用的整数类型,存储时占32位bit,能表达的范围是-2的31次方至2的31次方-1,选项B对的。而short类型在存储时占l6位bit,能表达的范围是-2的16次方至2的16次方-1。long类型存储时占64位bit,数据范围是-2的64次方至2的64次方-1。对的答案为选项B。
24.下列说法中,( )是对的的。
A.子类拥有的成员数目大于等于父类拥有的成员数目
B.父类代表的对象范围比子类广
C.子类要调用父类的方法,必须使用super关键字
D.一个Java类可以有多个父类
B。【解析】本题考核对子类与父类关系的理解。对一个类的继承也就是构建了一个子类,子类继承了父类的方法和状态,同时还可以向新类中增添新的方法和状态。重点掌握两点:子类方法的访问权限比父类访问权限高,因此父类不能替代子类,但子类可以代替父类,子类方法不能产生比父类更多的异常。子类拥有的成员数目小于等于父类拥有的成员数目,选项A说法错误;父类代表的对象范围比子类广,选项B说法对的;子类要调用父类的方法,可以使用super关键字,也可以将父类的方法进行重写,选项C说法错误。在Java中一个类只能有一个父类,选项D说法错误。
25.执行下列程序之后,变量n的值为( )。
public class Exam{
public static void main(String[]args){
int y=2;
int z=3:
int n=4:
n=n+-y*z/n;
System.out.println(n);
}
}
A.3 B.-l
C.-l2 D.-3
A。【解析】本题考察Java中表达式的运算。程序段main()方法中的前3行是基本的赋值语句,第4行是算术运算语句,该语句执行的过程是:一方面是对Y取负值,得到-2,然后乘以2得到-6,再除以n得到-1,最后和n做加法得到3,从而根据赋值运算将3赋值给变量n。
26.在Java中能实现多重继承效果的方式是( )。
A.内部类
B.适配器
C.接口
D.同步
C。【解析】本题考察Java中多重继承的概念。一方面要区分选项中各个概念。内部类是在一个类中的内部嵌套定义的类,重要用来生成事件适配器。适配器(Adapter)定义一个包装类,包装有不兼容接口的对象。这个包装类指的就是适配器,它包装的对象就是适配者(Adaptee),适配器提供客户类需要的接口。接口是一种只具有抽象方法或常量的一种特殊的抽象类,由于接口不涉及任何实现,所以与存储空间没有任何关系,将多个接口合并,即多重继承就可以很容易实现,选项C对的。同步重要用在多线程程序设计中。
27.char类型的取值范围是( )。
A.2的-7次方~2的7次方减1
B.O~2的16次方减1
C.负2的15次方~2的15次方减1
D.O~2的8次方减1
B。【解析】本题考察Java中数据类型的取值范围。应当掌握常用的数据类型的取值范围,char类型在内存中占16位,取值范围是0~65535也就是O~2的16次方减1,选项B对的。
28.可以支持javadoc命令的注释语句是( )。
A./**…//
B./*…*/
C.//
D./**…*/
D。【解析】本题考察Java中的注释语句。注释是程序设计的重要组成部分,应纯熟掌握。Java中有三类注释语句:文档注释/**…*/,被javadoc解决,可以建立类的
一个外部说明性文献,所以本题对的答案是选项D;C语言注释风格/*…*/,用于去掉当前不再使用但仍想保存的代码等;单行注释//,格式上规定注释符//后必须紧跟一个空格,然后才是注释信息。
29.十进制数16的十六进制表达格式是( )。
A.0x10
B.0x16
C.0xA
D.016
A。【解析】本题考察Java语言中的进制换算。一方面要清楚各种进制的表达方法。整型常量有3种书写格式:十进制整数,如156,-230,345;八进制整数,以0开头,如012表达十进制的l0;十六进制整数,以0x或OX开头,如0X123表达十进制数291。十进制数16相称于十六进制的10,所以选项A对的。
30.int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( )。
A.public int MAX LENGTH=100
B.final int MAX—LENGTH=100
C.public const int MAX_LENGTH=100
D.public final int MAX_LENGTH=100
D。【解析】本题考察Java中变量的声明。选项A虽然按照题目规定定义了一个变量,但没有满足保持为常数的规定,该变量可以被改变;选项B没有满足题目规定的public成员变量;选项C与C语言混淆,const是C语言用来定义常值变量的关键字;Java中定义常值变量使用的是final属性,说明该值赋值以后永不改变,所以选项D为对的答案。
31. Java对I/O访问所提供的同步解决机制是( )。
A.字节流
B.过滤流
C.字符流
D.压缩文献流
B。【解析】本题考察Java I/O流中的过滤流。过滤流是Java对I/O访问提供的同步解决机制,保证某时刻只有一个线程访问一个I/O流。过滤流是FilterInputStream和FiherOutputStream。因此,本题的对的答案是选项B。
32.请阅读下面程序
public class ThreadTest{
public static void main(String args[])throws Ex-
ception{
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 Hel-
lo!");
t.join();//等待t运营结束
}
if(i= =5)break;}
}
}
class Hello extends Thread{
int l;
public void run(){
while(true)(
System.Out.println("Hell0"+i++);
if(i= =5)break;)))
为使该程序对的执行,下画线处的语句应是( )。
A.t.sleep()
B.t.yield()
C.t.interrupt()
D.t.start()
D。【解析】程序中通过继承Thread类来创建线程,而Java中新创建的线程不会自动运营,必须调用线程的start()方法,才干运营该线程。
33.下列叙述中,错误的是( )。
A.Jbutton类和标签类可显示图标和文本
B.Button类和标签类可显示图标和文本
C.AWT构件能直接添加到顶层容器中
D.Swing构件不能直接添加到顶层容器中
B。【解析】Swing的按钮上还可以同时显示文字和图标,甚至只有图标都是可以的,这样就构成了图形按钮。而AwT中的Button类不能显示图标,只能显示文本。
34.下列叙述中,错误的是( )。
A.Applet的默认布局管理器是FlowLayout
B.JApplet中增长构件是加到JApplet的内容面板上,不是直接加到JApplet中
C.JApplet的内容面板的默认布局管理器是Border-Layout
D.JApplet的内容面板的默认布局管理器是FlowLay-out
D。【解析】FlowLayout布局管理器是Panel类和Applet类默认的布局管理器。向JApplet中增长构件,是把构件添加到Japplet的内容面板中,而不是直接添加到JApplet中。JApplet的内容面板的默认布局管理器是BorderLayout,而Applet默认的布局管理器是FlowLayout。
35.下列叙述中,错误的是( )。
A.Java中,方法的重载是指多个方法可以共享同一个名字
B.Java中,用abstract装饰的类称为抽象类,它不能实例化
C.Java中,接口是不包含成员变量和方法实现的抽象类
D.Java中,构造方法可以有返回值
D。【解析】构造方法是一种特殊的方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。Java中的每个类都有构造方法,它也是由方法名、参数和方法体组成的。构造方法的名字必须与类名相同,并且构造方法不返回任何数据。
36.要表达表格的数据,需要继承类( )。
A.AbstraceTableModel
B.TableModel
C.JTable
D.TableModelable
A。【解析】表格是Swing新增长的构件,重要功能是把数据以二维表格的形式显示出来。使用表格,依据M-V-C的思想,最佳生成一个MyTableModel类型的对象来表达数据,这个类是从AbstractTableModel类继承来的。
37.下面程序的对的输出是( )。
public class Hello
{
public static void main(String args[])
{
int count,xPos=25;
for(count=1;count<=10;count++)
{
if(count= =5)
Break;
system.Out.println(count);
xPos+=10:
}
}
}
A.1 2 3 4
B.1 3 4
C.编译错误
D.以上都不对的
A。【解析】该程序通过编译、运营后,在屏幕上显示:l 2 3 4。public class Hello中Hello为类名,public staticvoid main(String args[])有关参数的解释如下:public表达该方法可以被任意代码所调用,涉及Java解释器;static告诉编译器,main()方法是一个类方法,可以通过类名直接调用,调用时不需要该类的实例对象;void表达main()方法没有返回值,这是非常重要的,由于Java类型检查非常严格,涉及检查这些方法返回值的类型是否与声明的一致;Stringargs[]声明一个字符串类型的数组,它是命令行传递给main()方法的参数,参数在命令行中出现在类名称后面。包含main()方法的类(Hello为包含main()方法的类名)名称必须与其文献名相同,也就是说,其文献名必须为Hello.java。 通过编译,在当前文献夹下将出现一个Hello.class文献,这就是编译后的字节码文献。在程序段最后有两个大括号,分别说明结束main()方法和Hello类。在本程序中由于有 count= =5这个条件判断,因此当count= =5时,程序结束,输出为1 2 3 4。
38.在Applet生命周期中,下面方法中,在装载Applet时被调用的是( )。
A.stop()
B.init()
C.start()
D.destroy()
B。【解析】在Java Applet的生命周期中,共有4种状态和4个方法:init()、start()、stop()和destroy()。在Applet装载时,由浏览器或appletviewer调用init()方法,告知该Applet已被加载到浏览器中,使Applet执行一些基本初始化。
39.JDBC是面向( )的。
A.过程
B.对象
C.应用
D.用户
B。【解析】JDBC中定义了一组标准的应用程序接口(API),这些APl是一种面向对象的封装和重新设计的接口,使得用户可以编写不依赖于数据库厂商的数据库应用程序。
40.J2SDK的下载中,下列( )可以进入J2SE下载页面。
A.进入http://java.sum.com
B.单击左侧Download链接
C.单击页面中的Java 2 Platform,Standard Edition链接
D.单击页面中的J2SE l.4.2链接
C。【解析】J2SDK的下载按下列环节进行操作:①进入http://java.sun.com;②单击左侧Download链接,进入下载页面;③单击页面中的Java 2 Platform,StandardEdition链接,进入J2SE下载页面;④单击页面中J2SE l.4.2链接,进入J2SEl.4.2下载页面;⑤找到Download J2SE v1.4.2_02栏目,在其下找到Windows offline Installation类别,其右有两个下载选项,一个是JRE,一个是"SDK",单击SDK选项下面的download,进入J2SDK-1_4_2_02-win-dows-i586.exe文献的下载页面;⑥选择accept,接受SUN的协议;⑦单击页面中的Downloadj2sdk-1_4_2_02-win-dows.i586.P.exe下载链接,自动进行浏览器下载,也可使用下载工具进行下载。
二、基本操作题(共18分)
本题定义了一个方法add(),用于求两个整形数的和。方法中有两个整形参数a和b,方法体中计算a和b的和sum,并将结果返回。程序中调用add()方法求整数24和34的和,并将结果打印输出。
public class javal{
public static void main(String[]args){
int a=24,b=34;
System.out.println(add(a,b));
}
public static int add( ){
;
sum—a+b;
;
}
}
第1处:int a,int b
第2处:int sum
第3处:return sum
【解析】第1处是add方法的两个整型的形参;第2处是声明一个整型的变量sum;第3处是求得sum值后,返回sum。
三、简朴应用题(共24分)
本题中,主窗口有一个按钮“显示Dial09”,单击该按钮后显示一个对话框,对话框的标题是“Dial09”,其上有一个文字标签“欢迎学习Java.”,此时仍允许对本来窗口进行操作,当关闭新生成的对话框时退出程序。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class java2 extends Frame implements ActionLis-
tener{
public static void main(String args[]){
java2 f=new java2("java2");
Panel pan=new Panel();
f.init();
}
public java2(String str){
super(str);
}
public void init(){
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
setSize(200,200);
setLayout(new FlowLayout());
but=new Button("显示Dialog");
add(but);
but.addActionListener(this);
dig=new Dialog(this,"Dialog", );
dig.setSize(100,50);
dig.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
;
}
});
dig.add("Center",new Label("欢迎学习Ja-
va."));
setVisible(true);
}
public void actionPerformed(ActionEvent e){
dig.setVisible(true);
}
private Dialog dig;
private Button but;
}
第1处:flash
第2处:System.exit(0)
【解析】第1处是作为Dialog对话框的参数,第2处表达系统关闭退出整个应用程序,参数0表达正常关闭。
四、 综合应用题(共18分)
本题的功能是监听鼠标的拖曳操作。窗口中有一个列表框,列表框中列出了当前目录的所有文献,鼠标选中一个或多个文献后拖曳出窗口,此操作的功能是将拖曳的文献复制一份在拖曳的目的目录下。
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.dnd.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
public class java3
{
public static void main(String[]args)
{
JFrame frame=new DragSourceFrame();
frame.setDefauhCloseOperation(JFrame.EXIT_
0N_CLoSE);
frame.show();
}
}
class DragSoureeFrame extends JFrame
{
public DragSourceFrame()
{
setTitle("java3");
setSize(WlDTH,HElGHT);
Container contentPane=getContentPane();
File f=new File(".").getabsoluteFile();
File[]files=f.listFiles();
model=new DefaultListModel();
for(int i=0;i
try
{
model.addElement(files[i].getCanonicalFile());
}
catch(IOException exception)
{
JOptionPane.showMessageDialog(this,exeep-
tion);
}
fileList=new JList(model);
contentPane.add(new JScrollPane(fileList),
BorderLayout.CENTER);
contentPane.add(new JLabel("从列表中拖曳出文
件"),
BorderLayout.NoRTH);
DragSource dragSource=DragSource.getDefauh-
DragSource();
dragSource.createDefaultDragGestureRecognizer
(fileList,
DnDConstants. ACTION_COPY_0R_
MOVE,new
DragGestureListener()
{
public void dragGestureRecognized(
DragGestureEvent event)
展开阅读全文