1、 一、选择题(每小题1分,共40小题,共40分) 1常采用的两种存储结构是( )。 A顺序存储结构和链式存储结构 B散列方法和索引方式 C链表存储结构和数组 D线性存储结构和非线性存储结构 A。 【解析】线性表的存储结构有顺序存储结构和链式存储结构。 2在深度为5的满二叉树中,叶子结点的个数为( )。 A32 B31 C16 D15 C。 【解析】根据满二叉树的定义,一棵深度为 k 且有 2k-1个结点的二叉树为满二叉树。满二叉树的叶子结点为最后一层的结点数。根据满二叉树的性质,在满二叉树的第 i 层上至多有2i-1个结点。因此深度为5的满二叉树的叶子结点数为25-1=16个。 3下列叙述中错
2、误的是( )。 A线性表是由 n 个元素组成的一个有限序列 B线性表是一种线性结构 C线性表的所有结点有且仅有一个前件和后件 D线性表可以是空表 C。 【解析】线性表是一种线性结构,由 n(n0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前驱,最后一个结点没有后继,其他结点有且只有一个前驱和后继,所以选项 C 是错误的。 4数据库技术的根本目标是要解决数据的( )。 A存储问题 B共享问题 C安全问题 D保护问题 B。 【解析】在数据库系统中,需要对数据进行集合、统一的管理,以达到被多个应用程序共享的目标。 5在设计程序时,应采纳的原则之一是( )。 A不限制 goto
3、语句的使用 B减少或取消注解行 C程序越短越好 D程序结构应有助于读者理解 D。 【解析】程序设计中,程序不要求长度,以结构清晰、易于理解为标准,程序员可以添加注释来助于理解,同时要尽量少用 goto 语句,否则会破坏程序的结构。 6结构化程序设计的核心和基础是( )。 A结构化分析方法 B结构化设计方法 C结构化设计理论 D结构化编程方法 C。 【解析】结构化程序设计的核心和基础是结构化设计理论,其中包括:结构化分析方法、结构化设计方法和结构化编程方法。 7对下列二叉树进行中序遍历的结果是( )。AACBDFEG BACBDFGE CABDCGEF DFCADBEG A。 【解析】二叉树的遍
4、历有3种:前序、中序和后序。中序遍历首先遍历左子树或左子结点,然后访问根结点,最后遍历右子树或右子结点。分析本题二叉树,对其进行中序遍历,结果为 ACBDFEG。 8软件设计中模块划分应遵循的准则是( )。 A低内聚低耦合 B高内聚低耦合 C低内聚高耦合 D高内聚高耦合 B。 【解析】耦合性和内聚性是模块独立性的两个定性标准,软件设计应该遵循高内聚低耦合的准则。 9算法的有穷性是指( )。 A算法程序的运行时间是有限的 B算法程序所处理的数据量是有限的 C算法程序的长度是有限的 D算法只能被有限的用户使用 A。 【解析】算法的有穷性是指算法必须在执行有限的步骤后终止。 10有3个关系 R、S
5、和 T 如下:由关系 R 和 S 通过运算得到关系 T,则所用的运算为( )。 A并 B自然连接 C笛卡儿积 D交D。 【解析】关系 R 与 S 经过交运算后所得到的关系是由那些既在 R 内又在 S 内的有序组组成的。记作 RS。 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,
6、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对于算法
7、的分析,指的是分析算法运行所要占用的机器时间,即算法的时间代价 D。 【解析】算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量,也就是算法分析,因此选项 D 错误。算法设计一般采用由粗到细、由抽象到具体的初步求精的方法。 14下列关于数据的存储结构的叙述中,正确的是( )。 A数据的存储结构是数据间关系的抽象描述 B数据的存储结构是
8、逻辑结构在计算机存储器中的实现 C数据的存储结构分为线性结构和非线性结构 D数据的存储结构对数据的具体实现没有影响 B。 【解析】数据的存储结构是逻辑结构在计算机存储器中的实现。为了全面表示一个逻辑结构,它在存储器中的影响包括数据元素自身值的表示和数据元素的表示两方面。 15设有一个已按各元素的值排好序的顺序表(长度大于 2),现分别用顺序查找法和二分查找法查找与给定值 k 相等的元素,比较的次数分别是 s 和 b,在查找不成功情况下s 和 b 的关系是( )。 As=b Bsb CsDs=b B。 【解析】顺序查找的基本思想是:从表的一端开始,顺序扫描线性表,依次将扫描到结点的关键字和给定值
9、 k 进行比较,若当前扫描到结点的关键字与 k 相等,则查找成功;若扫描结束后,仍未找到关键字等于 k 的结点,则查找失败。二分查找法是一种效率较高的查找方法,要求线性表是有序表。基本思想是:首先将待查的 k 值和有序表 R0Rn-1的中间位置 mid 上的结点的关键字进行比较,若相等,则查找完成;否则,若Rmidkeyk,则说明待查找的结点只可能在左子表 R0Rmid-1中,我们只需在左子表中继续进行折半查找,若 Rmidkey16下列不属于虚拟机执行过程的特点的是( )。 A多线程 B动态连接 C异常处理 D代码安全检查 D。 【解析】本题考查虚拟机执行过程的特点。Java 虚拟机是编译器
10、生成的字节码,不用考虑具体的硬件环境,实现一次编写,随处运行,实现其可移植性。虚拟机执行过程的特点有:多线程、动态连接、异常处理。代码安全检查是 Java 语言的一个突出特点,但不属于虚拟机执行过程特点。 17下列说法中,正确的一项是( )。 AJava 语言是以类为程序的基本单位的 BJava 语言是不分大小写的 C多行注释语句必须以开始 D在 Java 语言中,类的源文件名和该类名可以不相同 A。 【解析】本题考查考生对 Java 语言概念的理解,属于考试重点内容,历次考试都有相关内容,应该理解这些基本概念。Java 语言是分大小写的,这一点在初学 Java 时需要特别注意,这一点与 C
11、语言有所不同,B 选项错误。以开始的应该是单行的注释语句,因此选项 C 错误。Java 中有三类注释语句:文档注释*,被 javadoc 处理,可以建立类的一个外部说明性文件;C 语言注释风格*,用于去掉当前不再使用但仍想保留的代码等;单行注释,格式上要求注释符后必须紧跟一个空格,然后才是注释信患。Java 程序源文件名必须和 public 类名相同,否则编译出错,因此选项 D 错误。只有选项 A 说法正确。 18下列关于实型变量书写正确的是( )。 AE3 B2e03 C12e3 D12E03 C。 【解析】本题考查实型变量科学计算格式的书写。在科学计算格式中,e 或 E 是指数符,要求在
12、eE 之前必须有数字,选项 A 错误。同时还要求在 eE 之后必须是整数,选项 B和选项 D 错误。虽然题目非常简单,但是不容易正确回答。正确答案为选项 C。 19下列与其他选项不相等的是( )。 A15 B0xF C015 D0XF C。 【解析】本题考查 Java 语言中的进制换算。考生首先要清楚各种进制的表示方法,整型常量有 3 种书写格式:十进制整数,如 156,-230,345;八进制整数:以 0 开头,如 012表示十进制的 l0;十六进制整数:以 0x 或 0X 开头,如 0X123 表示十进制数 291。选项 A是十进制的 15,选项 B 和选项 D 都是十六进制中的 F 相当
13、于十进制的 15,选项 C 为八进制,以 0 开头,此处 Ol5 相当于十进制的 13,与其他选项不同。 20设 a=8,则表达式 a1 的值是( )。 A1 B2 C3 D4 D。 【解析】本题考查考生对位运算符中无符号右移运算符的掌握。无符号右移运算符,也叫逻辑右移,用于将一个数的各二进制位全部无符号右移若干位,与运算符不同的是左补 0,而则是最高位移入原来高位的值。在本题中,8 的二进制表示是 1000,右移一位后变成了 0100,对应的十进制数是 4。可见,正确答案为选项 D。21在 Java 中,所有类的根类是( )。 AjavalangObject BjavalangClass C
14、javalangString DjavalangSystem A。 【解析】本题考查考生对 Java 类的掌握。在 Java 中 javalang 包封装着所有编程应用的基本类。Object 是所有类的根,它所包含的属性和方法被所有类集成;Class 类是由编译器自动生成对象的一个特殊类,它伴随每个类;Strin9 是字符串常量的类;System 类是一个 final 类,所有的方法都用类变量来调用,即对 System 类不可能实例化,主要提供了标准输入输出和系统环境信息的访问、设置 22执行下面程序段后,2 值为( )。 int x=1,y=2,z=3; z=z(float)(xy): A编
15、译无法通过 B6 C3 D2 A。 【解析】本题考查 Java 的运算和类型转换。题目中变量 x、y、z 是 int 类型,由于括号的优先级要高,所以语句(float)(xy)的结果为 00,分母已经成为 0,编译肯定无法通过。另外,由于 2 是 int 型,不能将 float 型强制转化为 int 型。 23int 类型的取值范围为( )。 A-216216-1 B-231231-1 C-232232-1 D-264264-1 B。 【解析】本题考查 int 类型的取值范围。int 类型是最常用的整数类型,存储时占 32 位bit,能表示的范围是-2 的 31 次方至 2 的 31 次方-1
16、,选项 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。 【解析】本题考查对子类与父类关系的理解。对一个类的继承也就是构建了一个子类,子类继承了父类的方法和状态,同时还可以向新类中增添新的方法和状态。
17、重点掌握两点:子类方法的访问权限比父类访问权限高,因此父类不能替代子类,但子类能够代替父类,子类方法不能产生比父类更多的异常。子类拥有的成员数目小于等于父类拥有的成员数目,选项 A 说法错误;父类代表的对象范围比子类广,选项 B 说法正确;子类要调用父类的方法,可以使用 super 关键字,也可以将父类的方法进行重写,选项 C 说法错误。在 Java 中一个类只能有一个父类,选项 D 说法错误。 25执行下列程序之后,变量 n 的值为( )。 public class Exam public static void main(Stringargs) int y=2; int z=3: int
18、n=4: n=n+-y*zn; Systemoutprintln(n); A3 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 中多重继承的概念。首先要区分选项中各个概念。内部类是在一个类中的内部
19、嵌套定义的类,主要用来生成事件适配器。适配器(Adapter)定义一个包装类,包装有不兼容接口的对象。这个包装类指的就是适配器,它包装的对象就是适配者(Adaptee),适配器提供客户类需要的接口。接口是一种只含有抽象方法或常量的一种特殊的抽象类,因为接口不包括任何实现,所以与存储空间没有任何关系,将多个接口合并,即多重继承就可以很容易实现,选项 C 正确。同步主要用在多线程程序设计中。 27char 类型的取值范围是( )。 A2 的-7 次方2 的 7 次方减 1 BO2 的 16 次方减 1 C负 2 的 15 次方2 的 15 次方减 1 DO2 的 8 次方减 1 B。 【解析】本题
20、考查 Java 中数据类型的取值范围。应该掌握常用的数据类型的取值范围,char 类型在内存中占 16 位,取值范围是 065535 也就是 O2 的 16 次方减 1,选项 B 正确。 28能够支持 javadoc 命令的注释语句是( )。 A/*/ B/*/ C/ D/*/ D。 【解析】本题考查 Java 中的注释语句。注释是程序设计的重要组成部分,应熟练掌握。Java 中有三类注释语句:文档注释*,被 javadoc 处理,可以建立类的 一个外部说明性文件,所以本题正确答案是选项 D;C 语言注释风格*,用于去掉当前不再使用但仍想保留的代码等;单行注释,格式上要求注释符后必须紧跟一个空
21、格,然后才是注释信息。 29十进制数 16 的十六进制表示格式是( )。 A0x10 B0x16 C0xA D016 A。 【解析】本题考查 Java 语言中的进制换算。首先要清楚各种进制的表示方法。整型常量有 3 种书写格式:十进制整数,如 156,-230,345;八进制整数,以 0 开头,如 012 表示十进制的 l0;十六进制整数,以 0x 或 OX 开头,如 0X123 表示十进制数 291。十进制数 16相当于十六进制的 10,所以选项 A 正确。 30int 型 public 成员变量 MAX_LENGTH,该值保持为常数 100,则定义这个变量的语句是( )。 Apublic
22、int MAX LENGTH=100 Bfinal int MAX LENGTH=100 Cpublic const int MAX_LENGTH=100 Dpublic final int MAX_LENGTH=100 D。 【解析】本题考查 Java 中变量的声明。选项 A 虽然按照题目要求定义了一个变量,但没有满足保持为常数的要求,该变量可以被改变;选项 B 没有满足题目要求的 public 成员变量;选项 C 与 C 语言混淆,const 是 C 语言用来定义常值变量的关键字;Java 中定义常值变量使用的是 final 属性,说明该值赋值以后永不改变,所以选项 D 为正确答案。 31
23、Java 对 IO 访问所提供的同步处理机制是( )。 A字节流 B过滤流 C字符流 D压缩文件流 B。 【解析】本题考查 Java IO 流中的过滤流。过滤流是 Java 对 IO 访问提供的同步处理机制,保证某时刻只有一个线程访问一个 IO 流。过滤流是 FilterInputStream 和FiherOutputStream。因此,本题的正确答案是选项 B。 32请阅读下面程序 public class ThreadTest public static void main(String args)throws Ex- ception int i=0; Hello t=new Hello(
24、); ; while(true) SystemOutprintln(“Good Morning“+i+): if(i= =2 public boolean isDataFlavorSupported(DataFlavor flavor) return Arrays. asList(flavors), contains(flavor) ; public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException if(flavor, equals(DataFlavor, javaFileListFlavo
25、r) ) return fileList; else if(flavor, equals(DataFlavor, stringFlavor) return fileList, toString() ; else throw new UnsupportedFlavorException(flavor) ; private static DataFlavor flavors = DataFlavor. j avaFileListFlavor, DataFlavor. stringFlavor ; private java. util. List fileList; 第 1 处:File f new File(“)getAbsoluteFile() 第 2 处:int i=0;i第 3 处:private class FileListDragSoureeListener ex- tends DragSourceAdapter 【解析】第 1 处是通过绝对路径创建一个 File 对象 f;第 2 处是 files 中 f 文件所在目录下的所有文件名列表,此处就是遍历这些文件名;第 3 处是定义了一个FileListDragSoureeListener 类继承用于接收拖动源事件的抽象适配器类 DragSoureeAdapter。