二级JAVA真题2007年4月答案.doc
《二级JAVA真题2007年4月答案.doc》由会员分享,可在线阅读,更多相关《二级JAVA真题2007年4月答案.doc(16页珍藏版)》请在麦多课文档分享上搜索。
1、二级JAVA真题2007年4月答案真题 120一、选择题(每小题2分,共70分) 下列各题A、B、C、D 四个选项中,只有一个选项是正确的。 第1题:参考答案:B答案解析:本题考查数据结构中有关算法的基本知识和概念。数据的结构,直接影响算法的选择和效率。而数据结构包括两方面,即数据的逻辑结构和数据的存储结构。因此,数据的逻辑结构和存储结构都影响算法的效率。选项A的说法是错误的。算法的时间复杂度是指算法在计算机内执行时所需时间的度量;与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。因此,选项B的说法是正确的。 数据之间的相互关系称为逻辑结构。通常分为四类基本逻辑结构,即集
2、合、线性结构、树型结构、图状结构或网状结构。存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。可见,逻辑结构和存储结构不是一一对应的。因此,选项C的说法是错误的。 有时人们为了提高算法的时间复杂度,而以牺牲空间复杂度为代价。但是,这两者之间没有必然的联系。因此,选项D的说法是错误的。第2题:参考答案:D答案解析:本题考查软件工程中软件设计的概念和原理。人们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得到如下的启发式规则: (1)改进软件结构,提高模块独立性;通过模块的分解或合并,力求降低耦合提高内聚。低耦
3、合也就是降低不同模块间相互依赖的紧密程度,高内聚是提高一个模块内各元素彼此结合的紧密程度。 (2)模块的规模应适中。一个模块的规模不应过大,过大的模块往往是由于分解不够充分:过小的模块开销大于有益操作,而且模块过多将使系统接口复杂。因此过小的模块有时不值得单独存在。 (3)模块的功能应该可以预测,但也要防止模块功能过分局限。如果模块包含的功能太多,则不能体现模块化设计的特点:如果模块的功能过分的局限,使用范围就过分狭窄。 经过上述分析,本题的正确答案是选项D。第3题:参考答案:A答案解析:本题考查软件工程中测试的目的和方法。仅就软件测试而言,它的目的是发现软件的中的错误,但是,发现错误并不是最
4、终目的,最终目的是通过测试发现错误之后还必须诊断并改正错误,这就是调试的目的。 由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。因此,在软件测试阶段通常由其他人员组成测试小组来完成测试工作。因此,经过上述分析可知选项A的说法是正确的,而选项B、C、D的说法是错误的。第4题:参考答案:C答案解析:通常认为,面向对象方法具有封装性、继承性、多态性几大特点。就是这几大特点,为软件开发提供了一种新的方法学。 封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中(对象中)。简单地说,封装就是隐藏信息。这是面向对象方法的中心,是面向对象程序设计的基础。
5、 继承性:子类具有派生它的类的全部属性(数据)和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。继承性自动在类与子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式。继承有利于提高软件开发效率,容易达到一致性。 多态性:多态性就是多种形式。不同的对象在接收到相同的消息时,采用不同的动作。例如,一个应用程序包括许多对象,这些对象也许具有同一类型的工作,但是却以不同的做法来实现。不必为每个对象的过程取一过程名,造成复杂化,可以使过程名复用。同一类型的工作有相同的过程名,这种技术称为多态性。 经过上述分析可知,选项C的说法是错误的。第5题:参
6、考答案:D答案解析:本题考查数据结构中队列的基本知识。队列是一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出的特性。在队列中,允许插入元素的一端叫做队尾,允许删除的一端则称为队头。这与日常生活中的排队是一致的,最早进入队列的人最早离开,新来的人总是加入到队尾。因此,本题中只有选项D的说法是正确的。第6题:参考答案:C答案解析:本题考查数据结构中二叉树的遍历。根据对二叉树根的访问先后顺序不同,分别称为前序遍历、中序遍历和后序遍历。这三种遍历都是递归定义的,即在其子树中也按照同样的规律进行遍历。下面就是前序遍历方法的递归定义。 当二叉树的根不为空时,依次执行
7、如下3个操作: (1)访问根结点。 (2)按先序遍历左子树。 (3)按先序遍历右子树。 根据如上前序遍历规则,来遍历本题中的二叉树。首先访问根结点,即A,然后遍历 A的左子树。遍历左子树同样按照相同的规则首先访问根结点B,然后遍历B的左子树。遍历B的左子树,首先访问D,然后访问D的左子树,D的左子树为空,接下来访问D的右子树,即Y。遍历完B的左子树后,再遍历B的右子树,即E。到此遍历完A的左子树,接下来遍历A的右子树。按照同样的规则,首先访问C,然后遍历C的左子树,即F。C的左子树遍历完,接着遍历C的右子树。首先访问右子树的根结点X,然后访问X的左子树,X的左子树,即Z,接下来访问X的右子树,
8、右子树为空。到此,把题目的二叉树进行了一次前序遍历。遍历的结果为 ABDYECFXZ,故本题的正确答案为选项C。第7题:参考答案:A答案解析:本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为 n2,则n0=n2+1。 根据这条性质可知,若二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为n+1。因此,本题的正确答案是选项A。第8题:参考答案:B答案解析:本题考杳数据库的关系运算。两个关系的并运算是指将第一个关系的元组加到第二个关系中,生成新的关系。因此,并运算不改变关系表中的属性个数,也不能减少元组个数。
9、 两个关系的交运算是包含同时出现在第一和第二个关系中的元组的新关系。因此,交运算不改变关系表中的属性个数,但能减少元组个数。投影是一元关系操作。投影操作选取关系的某些属性,这个操作是对一个关系进行垂直分割,消去某些属性,并重新安排属性的顺序,再删除重复的元组。因此,投影运算既可以减少关系表中的属性个数,也可以减少元组个数。 两个关系的笛卡儿乘积是指一个关系中的每个元组和第二个关系的每个元组连接。因此,笛卡儿乘积运算能够增加元组属性的个数。 经过上述分析可知,在上述四种运算中,交运算不改变关系表中的属性个数但能减少元组个数。因此,正确答案是选项B。第9题:参考答案:C答案解析:E-R模型中,有三
10、个基本的抽象概念:实体、联系和属性。E-R图是E-R模型的图形表示法,在E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。因此,本题的正确答案是选项C。第10题:参考答案:A答案解析:本题考查数据库系统的基本概念和知识。数据的逻辑结构,是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构,又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有必然的联系。因此,选项A的说法是错误的。 数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据
11、库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。 数据库设计是在数据库管理系统的支持下,按照应用的要求,设计一个结构合理、使用方便、效率较高的数据库及其应用系统。数据库设计包含两方面的内容:一是结构设计,也就是设计数据库框架或数据库结构;二是行为设计,即设计基于数据库的各类应用程序、事务等。因此,选项C的说法是错误的。 数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,
12、选项D的说法是正确的。因此,本题的正确答案是选项A。第11题:参考答案:C答案解析:本题考查Java语言的特性。 Java语言与C+语言都是面向对象的语言。因此,选项A是错误的。 Java语言与C+语言都是高性能的编程语言。Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。C+由于其极高的灵活性、强大的功能和非常高的效率,常常用于专业应用程序的开发,C+非常适合于编写各种编程环境下的高性能代码。因此,选项B是错误的。 Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C+具有
13、一定程度的源代码级平台无关,C+语言支持程序员编写一些非常低级的程序,从而能够访问机器硬件,并操纵实际内存地址。但这些是以牺牲可移植性为代价的,因为这时每个程序都是针对某种具体硬件环境的。而Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。显然,Java语言与c补语言相比,最突出的特点是跨平台。因此,选项C是正确的。 Java语言和C+语言中都包含有类库,提供了大量的类以满足用户的多方面需要。因此
14、,选项D是错误的。 经过上述分析可知,本题的答案是选项C。第12题:参考答案:D答案解析:本题考查Java语言的特点及优势。 Java语言提供了丰富的类库,为编程人员提供快速和标准的应用接口,提高了应用软件的生产效率。因此,选项A的说法正确。 Java围绕网络应用开发,最大限度的利用网络资源,它的小应用程序(Applet)在网络上的传输不受计算机CPU和环境限制。因此,选项B的说法正确。 多线程是Java程序的并发机制,它能同步共享数据、处理不同的事件。因此,选项 C的说法正确。 Java提供的类库支持TCP/IP协议,应用程序可以通过URL地址,在访问网络上任何地方的对象时,如同访问本题文件
15、一样简单。因此,选项D的说法是错误的。 本题的正确答案是选项D。第13题:参考答案:B答案解析:选项A中的java.io包提供与设备无关的输入、输出流支持。 选项B中的iava.swing包提供构建和管理应用程序的图形界面的轻量级的构件。 选项C中的包提供支持联网的类,包含执行与网络相关的操作的类和处理接口及统一资源定位器(URLs)的类。 选项D中的java.rmi包提供程序远程方法调用所需的类。 因此,本题的正确答案是选项B。第14题:参考答案:D答案解析:Java提供了一些可执行应用程序作为开发和测试的工具。主要包括下面一些工具: javac.exe Java编译器,将Java源代码转换
16、成字节码。 Java.exe Java解释器,直接从类文件执行Java字节码程序。 appletviewer.exe Java Applet浏览器。 javadoc.exe 文档生成器,对Java源码和包以MML格式产生AP文档。 jdb.exe Java调试器,可以逐行执行程序,设置断点和检查变量。 javap.exe Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。 javaprof.exe Java解释器的剖析工具,提供解释器剖析信息。 因此,选项D的说法是错误的。第15题:参考答案:B答案解析:在执行Java程序时,在java命令行中可以通过设置选项指定操作
17、,这些选项包括: -cs 检查目标文件是否过时,如已过时将自动从源文件重新编译 -D属性名=值 定义属性名 -debug 将程序连接到调试器 -ms分配内存初值 解释器启动时分配给堆的内存大小 -mx分配最大内存 解释器为对象和数组,动态分配堆最大内存值,默认为16MB。 -noverify 不进行字节代码验证 -verify 进行字节代码验证,也是默认状态 -noasyncgc 关闭异步垃圾收集器 -oss栈尺寸 设置每个线程栈的尺寸,默认值为400KB -ss栈尺寸 设置每个线程本地栈的尺寸,默认值为128KB -v 每装载一个类,打印一条信息 -verbosegc 无用单元收集29每释放
18、一次内存,打印一条信息 因此,本题的正确答案是选项B。第16题:参考答案:A答案解析:本题考查各数据类型间的自动转换。自动类型转换允许在赋值和计算时由编译系统按照一定的规则自动完成。它只能将位数少的数据类型向位数多的数据类型转换。 本题程序的int aa=a+i语句中,a为字符型数据,i为整型数据,这两个类型的数据进行运算时,首先按照自动类型转换规则把字符型数据a转换为整型数据97(97是字符a的ASCII码),然后与整型变量i相加得结果197,赋值给整型变量aa。因此,输出变量aa的值为197。 同理,long yy=y-aa语句中,y为long型数据,aa为int型数据,这两个类型的数据进
19、行运算时,首先按照自动类型转换规则把int型数据aa转换为long型数据197,然后与long型数据y相减得结果259,赋值给long型变量yy。因此,输出变量yy的值为259。 因此,本题的正确答案是选项A。第17题:参考答案:A答案解析:本题考查取模(求余)运算符,它用来求两个数相除后的余数。在Java语言中,取模运算符%其操作数可以是浮点数。 本题中首先计算100%30,100除以30的商为3,余数为10,因此首先显示结果“10”。然后计算563.5%4.0,商为140,余数为3.5,因此然后显示结果为“3.5”。 经过上述分析,本题的正确答案是选项A。第18题:参考答案:A答案解析:本
20、题考查for循环语句。for循环执行时,首先执行初始化操作,然后判断中止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。 本题程序中,外层for循环i首先进行初始化操作,然后判断中止条件i5,然后执行循环体中的语句,最后执行迭代部分,即i+。因此,直接可以判断外层循环i执行的次数是4。故本题的正确答案是选项A。 进一步分析,内层for循环j每次的执行次数都和i的值有关。第一次i的值为1,内层for循环执行的次数是1;第二次i的值为2,内层for循环执行的次数是2;第三次i的值为3,内层for循环执行的次数是3;第四次i的值为4,内层for循环执
21、行的次数是4。因此,内层for循环j的执行次数是1+2+3+4=10。第19题:参考答案:D答案解析:Java中,方法重载指的是多个方法可以具有相同的名称,但这些方法的参数必须不能完全相同,要么是参数的类型不同,要么是参数的个数不同,程序可以按照参数决定调用对象方法。因此,选项A的说法正确。 Java中,用abstract修饰的类称为抽象类,在其中的方法称为抽象方法。abstract类必须被继承,abstract方法必须被重写,abstract类不能实例化。因此,选项B的说法是正确的。 Java中,接口是不包含成员变量和方法实现的抽象类,它只包含常量和方法的定义。 因此,选项C的说法是正确的。
22、 构造方法是一种特殊的方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。Java中的每个类都有构造方法,它也是由方法名、参数和方法体组成的。构造方法的名字必须与类名相同,并且构造方法不返回任何数据。因此,选项D的说法是错误的。第20题:参考答案:B答案解析:本题考查Java中字符串的知识。Java中,可以用StringBuffer类表示字符串, StringBuffer用于处理长度可变字符串。StringBuffer类提供了三种构造方法: String strObj=new StringBuffer(); String strObj=new StringBuffer(int len
23、gth); String strObj=new StringBuffer(String str); 本题程序中使用的是第三种构造方法来创建一个字符串对象。对StringBuffer(String str)构造方法,用str给出字符串的初始值,并分配16个字符的缓存。因此,字符串sb的初始值是“test”,并且包含16个字符的缓存。iength()方法用来获得字符串长度,不包含缓存。故程序运行结果中在“lensgth=”后输出的值应该是字符串sb的长度,即4。本题的正确答案是选项B。第21题:参考答案:C答案解析:本题考查Java的异常处理。异常处理是通过try-catch-finally语句来
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 JAVA 2007 答案
