1、二级JAVA真题2005年4月答案真题 120一、选择题(每小题2分,共70分) 下列各题A、B、C、D 四个选项中,只有一个选项是正确的。 第1题:参考答案:D答案解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。所以选项D正确。第2题:参考答案:B答案解析:本题考核栈的基本概念,我们可以通过排除法来确定本题的答案。栈是限定在一端进行插入与删除的线性表,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出”或 “后进先出”的原则组织数据的,这便是栈的记忆作用,所以选项A
2、和选项C正确。对栈进行插入和删除操作时,栈顶位置是动态变化的,栈底 指针不变,选项D正确。由此可见,选项B错误。第3题:参考答案:D答案解析:假设线性表的长度为n,在最坏情况下,冒泡排序和快速排序需要的比较次数为n(n-1)/2。由此可见,选项D正确。第4题:参考答案:C答案解析:在长度为n的线性表中进行顺序查找,最坏情况下需要比较n次。选项C正确。第5题:参考答案:A答案解析:在链式存储结构中,存储数据的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系,是由指针域来确定的。由此可见,选项A的描述正确。第6题:参考答案:C答案解析:软件测试的目
3、标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷。可见选项C的说法正确。第7题:参考答案:B答案解析:系统设计的质量主要反映在模块的独立性上。评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内 聚程度尽量地高。综上所述,选项B的答案正确。第8题:参考答案:D答案解析:计算机软件是计算机系统中与硬件相互依存的另一部分,包括程
4、序、数据及相关文档的完整集合。选项D的描述正确。第9题:参考答案:D答案解析:数据具有两方面的独立性:一是物理独立性。即由于数据的存储结构与逻辑结构之间由系统提供映像,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性。即由于数据的局部逻辑结构(它是总体逻辑结构的一 个子集,由具体的应用程序所确定,并且根据具体的需要可以作一定的修改)与总体逻辑结构之间也由系统提供映像,使得当总体逻辑结构改 变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。综上所述,本题的正确答案是D。第10题:参考答案:C答案解析:在数据库系统中
5、,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树形结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它 们之间的关系。因此,本题的正确答案是C。第11题:参考答案:B答案解析:本题考查Java语言的虚拟机。Java语言的执行模式是半编译半解释型。Java编写好的程序首先由编译器转换为标准字节代码,然后由Java虚拟机去解释执行。字节代码是一种二进制文件,但不能直接在操作系统上运行,可看作是虚拟机的机器码。虚拟机把字节码程序与各操 作系统和硬件分开,使Java程序独
6、立于平台。Java中的虚拟机是非常重要的概念,是Java语言的基础,掌握后有助于理解Java语言的实现。第12题:参考答案:A答案解析:本题考查考生对Java语言概念的理解。这些属于考试重点内容。Java语言和C语言不同,它是区分大小写的,选项A正确。Java程序的源文件扩展名为class,.jar文件是由归档工具jar生成的.jar文件。源文件中的public类的数目只能有0个或1个,用来指定应用程序类名, 也是源文件名。第13题:参考答案:A答案解析:本题考查Java标识符的命名规则。这是考试重点内容。 Java中标识符的命名规则是:标识符以字母、下划线、美元符作为首字符的字符串序列;标识
7、符是区分大小写的;标识符的字符数没有限 制。由此可见Java中标识符不能以数字开头,所以选项B错误,不能以“+”开头,选项C错误,不能以“-”开头,选项D错误,只有选项A是正 确答案。第14题:参考答案:A答案解析:本题考查Java转义符的概念。在Java中用反斜杠()开头,n表示换行,所以选项A正确。f表示走纸换页,dd表示12位的八进制数据(dD.表示所代表的字符。第15题:参考答案:D答案解析:本题考查Java中包的概念。Java中用import语句来导入包,但需注意的是, Java语言中的javA.lang包是由编译器直接自动导入的,因此,编程时使用该包中的类,可省去import导入。
8、使用其他包中的类,必须用import导入,选项D为正确答案。第16题:参考答案:A答案解析:本题考查考生对Java类的掌握。在Java中javA.lang包封装着所有编程应用的基本类。Object是所有类的根,它所包含的属性和方法被所有类集成。Class类是由编译器自动生成对象的一个特殊类,它伴随每个类。选项C和选项D都是普通类。第17题:参考答案:B答案解析:本题考查Java包的概念。Java采用包来管理类名空间,为编程提供一种命名机制,也是一种可见性限制机制。定义一个包要用package关键字,用package语句说明一个包时,该包的层次结构必须与文件目录的层次相同。否则,在编译时可能出现
9、查找不到的问题,所以选项B正 确。第18题:参考答案:D答案解析:本题考查javA.io包中的字符输入流。Java的输入输出包括字节流、文件流、对象流等,要注意区分不同流使用的不同类。字符类输入流都是抽象 InputStreamReader及其子类FileReader、BufferedReader等。选项A中BufferedReader是把缓冲技术用于字符输入流,提高了字符传送的 效率,但它不能处理文件流。选项B中DateInputStream类是用来处理字节流,实现了 DataInput接口,不能处理文件流。选项C中 DataOutputStream类实现了DataOutput接口,不能处理
10、文件流。选项D中FileInputStream可对一个磁盘文件涉及的数据进行处理,满足题目要 求。第19题:参考答案:C答案解析:本题考查Java中的构造方法。构造方法在Java中占有举足轻重的地位,务必掌握。构造方法是类中的一种特殊方法,是为对象初始化操作编写的方法,用来定义对象的初始状态。构造方法不能被程序调用,构造方法名必须与类名相同,没有返回值,用户不能直接调用,只能 通过new自动调用,所以选项C正确。第20题:参考答案:C答案解析:本题考查Java中的布局管理器。FlowLayout是Pane和Applet默认的布局管理器,构件在容器中从上到下、从左到右进行放置,所以选项C为正确答
11、案。 BorderLayout是Window、Frame和Dialog的默认布局管理器,在BorderLayout布局管理器中构件分成5个区域,每个区域只能 放置一个构件。GridLayout使容器中各个构件呈网状布局,平均占据容器的空间。GardLayout把容器分成许多层,每层只能放置一个构件。第21题:参考答案:C答案解析:本题考查Java中多重继承的概念。首先要区分选项中各个概念。内部类是在一个类中的内部嵌套定义的类,主要用来生成事件适配器。适配器定义一个包装类,包装有不兼容接口的对象。这个包装类指的就是适配器(Adapter),它包装的对象就是适配者(Adaptee),适配器 提供客
12、户类需要的接口。接口是一种只含有抽象方法或常量的一种特殊的抽象类,因为接口不包括任何实现,所以与存储空间没有任何关系, 将多个接口合并,即多重继承就可以很容易实现,选项C正确。同步主要用在多线程程序设计中。第22题:参考答案:B答案解析:本题考查Java中数据类型的取值范围。应该掌握常用的数据类型的取值范围,char类型在内存中占16位,取值范围是065535也就是0216-1,选项B正确。第23题:参考答案:D答案解析:本题考查Java中的注释语句。注释是程序设计的重要组成部分,应熟练掌握。Java中有三类注释语句:文档注释/*/,被javadoc处理,可以建立类的一个外部说明性文件,所以本
13、题正确答案是选项D;C语言注释风格/*/,用于去掉当前不再使用但仍想保留的代码等; 单行注释/,格式上要求注释符/后必须紧跟一个空格,然后才是注释信息。第24题:参考答案:A答案解析:本题考查Java语言中的进制换算。首先要清楚各种进制的表示方法。整型常量有3种书写格式:十进制整数,如156,-230,345;八进制整数:以0开头,如012表示十进制的10;十六进制整数:以Ox或OX开头,如OX123表示十进制数 291。而十进制数16相当于十六进制的10, 所以选项A正确。第25题:参考答案:D答案解析:本题考查Java中变量的声明。选项A虽然按照题目要求定义了一个变量,但没有满足保持为常数
14、的要求,该变量可以被改变。选项B没有满足题目要求的 public成员变量;选项C与C语言混淆,const是C语言用来定义常值变量的关键字, Java中定义常值变量使用的是final属 性,说明该值赋值以后永不改变,所以选项D为正确答案。第26题:参考答案:C答案解析:本题考查考生对Java中InputStream非字符输入流的掌握。 所有的字节输入流都是从InputStream继承,包括:ByteArrayInputStream,以字节数组作为输入流:FileInputStream,可对一个磁盘文 件设计的数据进行处理; PipedInputStream,实现线程之间通信的一个类;Filter
15、InputStream,过滤器输入流:SequenceInputStream,将 多个输入流首尾相接;ObjectInputStream,实现ObjectInput接口。选项D中压缩文件输入流ZipInputStream是InflaterInputStream的子类, 而InflaterInputStream是FilterInputStream的子类,只有选项C中字符输出流 CharInputStream类是字符流。本题涉及内容较多,要求对整 个输入输出流有所了解。第27题:参考答案:C答案解析:本题考查考生对创建线程的使用。创建线程有两种方法:通过实现Runnable接口创建线程和通过继承T
16、hread类创建线程。 通过实现Runnable接口创建线程,当实现Runnable接口的类的对象用来创建线程以后,该线程的启动将使得对象的run()方法被调用。通过 继承Thread类创建线程,可以通过继承Thread类,并重写其中的rrn()方法定义线程体,然后创建该子类的对象创建线程。线程创建是考试重 点内容,务必掌握。第28题:参考答案:C答案解析:本题考查Java Application与Applet的区别。Applet与Application的主要区别在执行方式上,Application以main()方法为入口点运行,Applet要在浏览器或 appletviewer中运行,运行过
17、程比Application更复杂。两者都是通过“javac”命令编译,所以只有选项C说法正 确。第29题:参考答案:B答案解析:本题考查Applet程序的运行方式。在Applet运行时,首先由浏览器调用init()方法,所以选项B正确。初始化完成后,将调用start()方法时Applet成为激活状态。 当Applet被覆盖时,可用stop()方法停止线程。关闭浏览器时调用destroy(),彻底终止Applet,从内存中卸载并释放该Applet的所有资 源。Applet的生命周期及其运行方式是考试重点,应该牢记。第30题:参考答案:C答案解析:本题考查线程优先级的概念。首先应该了解Java的线
18、程是有优先级的,并且可以控制其优先级,可以排除选项A:选项B和选项C本身就矛盾,故选项D是错误的,B和C不能同时选择。线程的优先级在创建线程时可以设置,也可以通过 getPriority()方法来获得线程的优先级, 通过setPriority()方法来设定线程的优先级。线程的优先级属于考试重点内容,应该重点掌握。第31题:参考答案:A答案解析:本题考查Applet的运行方式。当init()方法完成后,将调用start()方法,使 Applet成为激活状态。该方法在Applet每次显示时都要调用。例如浏览器由最小化复原,或浏览器从一个URL返回该Applet所在的页面,一般常在start()中启
19、动动画或播放声音等的线程。第32题:参考答案:B答案解析:本题考查Java类名的命名规则。类名与接口名都采用完整的英文描述,并且所有单词的第一个字母大写。包采用完整的英文描述符,都是由小写字母组成。类的变量采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写。常量名全部采用大写字母,单词之间用 下划线分隔。应该掌握命名规则,不仅因为它是考试重点,同时也是养成良好编程习惯的基础。第33题:参考答案:D答案解析:本题考查考生对Java中构造方法的理解及应用。构造方法名必须与类名相同,没有返回值,用户不能直接调用,只能通过new自动调用。题目有两个构造方法Test()和Test(int A.
20、,按照参数决定调用哪个方法。t1=new Test()语句调用Test()方法,而t2=new Test(j,k)将会找不到相应的构造方法,程序编译出错在第10行,所以选项D说法正确。第34题:参考答案:D答案解析:本题考查Java中的线程和异常处理。题目首先通过实现Runnable接口创建线程,Test t=new Test()语句定义了Test的1个实例,Thread tt=new Thread(t)定义了1个名为tt的线程,ttstart()语句启动线程。通过try-catch语句来处理异常。try代码包括一些简单语句 或方法调用,遇到异常情况时,停止执行而跳转到相应处理异常的程序,然后
21、由catch来控制。题目要求每间隔1s输出,间隔使用 ThreaD.sleep(1000)语句来实现,调用InterruptedException来完成。RuntimeException类包含有较多子类,比如算术异常 ArithmeticException,当除法分母为0等时使用;索引越界异常 IndexOutOfBoundsException等。第35题:参考答案:A答案解析:本题考查考生对Java中数组的定义及使用。int arr=new int10表示数组arr是一个含有10个元素的整数数组。Java中的数据类型必须实例化后才能使用,但是有种情况例外,就是该成员是用static声明的。题
22、目中对于数组并没有实例化,因此不能使用,所以选项A说法 正确。如果加上static修饰符,改为static int arr=new int10或者将该数组实例化即可,输出为0。二、填空题(每空2分,共30分)第36题:参考答案:19详细解答:二叉树具有如下性质:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。根据题意,度为2的节点为18个,那么,叶子结点应当是19个。第37题:参考答案:对象详细解答:类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。第38题:参
23、考答案:调试或程序调试或软件调试或Debug(英文字母大小写均可)或凋试程序或调试软件详细解答:调试也称排错,调试的目的是发现错误的位置,并改正错误。一般的调试过程分为错误侦查、错误诊断和改正错误。第39题:参考答案:关系 或 关系表详细解答:在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。表中的每一列称为一个属性,相当于记录中的一个数据项,对属性的命名称为属性名,表中的一行称为一个元组,相当于记录值。第40题:参考答案:算法 或 程序 或 流程图详细解答:算法是问题处理方案正确而完整的描述。第41题:参考答案:方法详细解答:本题考查Java中面向对象的概念。Java语言的特点是
24、考试重点,利用面向对象技术是其中之一。面向对象的语言将客观世界都看成由各种对象组成,共同特征和行为的对象组成类,类是变量和方法的集合体,每个类都有自己的特性和操作,也就是变量和方法。第42题:参考答案:public详细解答:本题考查Java的程序结构。Java程序结构是考试重点内容,它非常简单,应该记忆相关内容。Java源文件中最多只能有一个public类,其他类的个数不限。另外,还应该了解package语句只能有0或1个;import语句可以有0或多个;接口可以定义0个或多个。第43题:参考答案:数组的数组详细解答:本题考查多维数组的概念。Java中没有多维数组这种数据结构,只有一维数组,在
25、Java中实现的所谓的多维数组,实际上是由一维数组“焊接”而成的“数组的数组”。也就是说,某个一维数组的元素是另一个一维数组,则称之为二维数组,依次类推,一维数组的多次嵌套 定义,构成了多维数组。第44题:参考答案:可变或可编辑详细解答:本题考查Java中StringBuffer类的用途。StringBuffer类被设计为用于创建和操作动态字符串信息,提供可变字符串对象的操作。为该对象分配的内存会自动扩展以容纳新增的文本。有三种方法来创建一个新的StringBuffer对象:使用初始化字符串、设定大小以及使用默认 构造函数。第45题:参考答案:Applet详细解答:本题考查Applet的概念。
26、Applet是考试重点内容,涉及知识点较多,注意全面复习。生成Applet必须创建Applet类的子类,Applet的行为框架由Applet来决定。所以每个Applet程序必须有一个类是Applet类的子类。第46题:参考答案:阻塞详细解答:本题考查线程的生命周期。线程一旦创建,就开始了它的生命周期。线程的声明周期主要分为:新建状态(new),线程创建后处于该状态;可运行状态 (Runnable),新建的线程调用start()方法,将使线程的状态从New转换为Runnable:运行状态(Running),运行状态使线程占 有CPU并实际运行的状态;阻塞状态 (Blocked).,导致该状态的原
27、因很多,注意区别;终止状态(Dead).,线程执行结束的状态,没有任何方法 可改变它的状态。第47题:参考答案:对象流或对象输出流详细解答:本题考查Java输入输出流的概念。FileInputStream是字节流,BufferedWriter是字符流,ObjectOutputStream是对象输出流,既继承了OutputStream抽象类,又实现了ObjectOutput接口,这是Java用接口技术代替双重继承例子,其构造方法参数是串行化了的对象。第48题:参考答案:第一条语句详细解答:本题考查考生对Java分支语句和跳转语句的理解。分支语句提供了一种控制结构,根据条件值的结果选择执行不同的语
28、句序列,其他与条件值或表达式值不匹配的语句序列则被跳过不执行。 Java语言提供了多分支语句switch,它根据表达式的值从多个分支中选择一个来执行。break语句最常见的用法是在switch语句中,通过 break语句退出switch语句, 使程序从整个switch语句后面的第一条语句开始执行。在Java中还可以用break语句退出循环,并从紧跟该循环结构的第一条语句处开始执 行。第49题:参考答案:InSituationl详细解答:本题考查考生阅读Java程序的能力。题目程序看似复杂,但流程非常简单。程序的public类是throwsException,类中定义了Proc(intsel)方
29、法。程序入口是main()方法,使用try-catch-finally来捕获ArithmeticException和ArrayIndexOutOfBounds- Exception异 常,这两个异常是关于算术异常或数组索引越界的异常。执行Proc(0)时,输出In Situation 0 和no Exception caught两条信息;执行 Proc(1)时,输出In Situationl和in Proc finally两条信息。整个程序并未发生异常。第50题:参考答案:false详细解答:本题考查instanceof的概念。instanceof是Java的一个二元操作符,是Java的保留关键字。它的作用是查看它左边的对象是否它右边的类的实例,返回boolean类型的数据。题目中r并非Thread的实例,所以返回false。更多试卷请见麦多课文库