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语句来
24、实现的, 该语句的格式如下: try catch(ExceptionType1 e) catch(ExceptionType2 e) finally (1)try语句选定捕获异常的范围。 程序执行过程中,try代码块所限定的语句可能会生成一个或多个异常对象,并抛弃异常对象。try内部不同的方法调用有可能产生相同的异常,但只需一个catch语句。 (2)由catch语句处理所抛出的异常事件。 catch语句可以是多个,分别处理不同类型的异常。catch语句都带一个参数,该参数是某个异常的类及其变量名(该异常对象的指针),catch用该参数去与抛出异常对象的类进行匹配,匹配上后就去执行该catch
25、语句后的程序段。 (3)通过finally语句释放资源,为异常处理提供一个统一的出口。 finally语句不是必须的,也就是说捕获异常时可以没有finally语句。不管try代码块中是否发生了异常事件,finally块中的语句都会被执行。 本题程序中,打开一个文件,这个操作可能出现两种异常,即打开的文件不错在或者可能出现的其他I/O异常。第一种异常情况,当打开的文件不存在时,抛出 FileNotFoundException异常。另外一种情况,可能出现的I/O异常,抛出IOException异常。因此,划线处应填入的语句是catch(IOException e)。 本题的正确答案是选项C。第22
26、题:参考答案:C答案解析:本题考查Java中的I/O流。java.io包中包括:处理字节流的抽象类InputStream和OutputStream,处理字符流的抽象类Reader和Writer。其中,所有字节输入流都从InputStream类继承,所有字节输出流都从OutputStream类继承。所有字符输入流都从Reader类继承,所有字符输出流都从Writer类继承。而字符类输出流 OutputStreamWriter、PrintWriter、BufferedWriter都是抽象类Writer的子类。 因此,选项A、选项B和选项D的说法都是正确的,而选项C的说法是错误的。第23题:参考答案
27、:C答案解析:本题考查有关线程的基本知识。 线程与进程在概念卜是相关的。进程是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程。线程是由表示程序运行状态的寄存器、程序计数器、栈指针以及堆栈组成,它不包含进程地址空间中的代码和数据。因此,选项A的说法是错误的。 线程是比进程更小的单位。一个进程在其执行过程中,可以产生多个线程,形成多个执行流。每个执行流即每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念。因此,选项B的说法是错误的,而选项C的说法是正确的。 线程是有优先级的。Threa类有3个有关线程优先级的静态常
28、量: Thread.MIN PRIORITY(最低优先级,通常为1)、Thread.MAX_PRIORITY(最高优先级,通常为10)、Thread.NORM_PRIORITY(默认优先级,通常为5)。因此,选项D的说法是错误的。 因此,本题的正确答案是选项C。第24题:参考答案:B答案解析:本题考查线程的创建。Java中,线程的创建有两种方法: (1)通过实现Runnable接口创建线程。Runnable接口中只定义了一个run()方法作为线程体。 (2)通过继承Thread类创建线程。Thread类本身实现了Runnable接口。 无论使用哪种方法来创建线程,新建的线程不会自动运行,必须调
29、用线程的start()方法,才能运行该线程。 本题程序中的Hello类实现了Runnable接口,即采用的是第一种方法创建线程。因此,本题的正确答案是选项B。第25题:参考答案:B答案解析:本题考查JavaI/O流中的过滤流。过滤流是Java对I/O访问提供的同步处理机制,保证某时刻只有一个线程访问一个I/O流。过滤流是FilterlnputStream和 FilterOutputStream。因此,本题的正确答案是选项B。第26题:参考答案:B答案解析:本题考查File类的基本知识。File类是通过文件名列表来描述一个文件对象的属性,通过File类提供的方法,可以获得文件的名称、长度、所在路
30、径等信息,并且还可以改变文件的名称、删除文件等。 public String getAbsolutePath() 该方法得到文件的绝对路径名。 pulbic String getParemFile() 该方法得到文件对象父路径名。 public String getName() 该方法得到一个文件的名称(不包括路径)。 getAbsoluteFile(),不是File类提供的方法。 因此,本题的正确答案是选项B。第27题:参考答案:D答案解析:本题考查Java线程的同步机制。如果程序中多个线程互相等待对方的持有的锁,而在得到对方锁之前都不会释放自己的锁,这就造成了都想得到资源而又都得不到,线程
31、小能继续运行,这就是死锁。Java中没有检测与避免死锁的专门机制,因此完全由程序进行控制,防止死锁的发生。应用程序可以采用的一般做法是:如果程序要访问多个共享数据,则要首先从全局考虑定义一个获得锁的顺序,并且在整个程序中都遵守这个顺序。释放锁时,要按照加锁的反序释放。 经过上述解释,可知选项D的说法是错误的,故正确答案是D。第28题:参考答案:D答案解析:本题考查线程的基本知识。程序中通过继承Thread类来创建线程,而Java中新创建的线程不会自动运行,必须调用线程的start()方法,才能运行该线程。因此,下划线处的语句应调用线程的start()方法,即t.start()。 Thread类
32、还提供了些方法对线程进行基本控制,其中,join()方法使当前线程暂停执行,等待调用该方法的线程结束后,再恢复执行:isAlive()方法用来测试线程是否活着。 因此,本题的正确答案是选项D。第29题:参考答案:C答案解析:本题考查图形用户界面中布局管理器的基本知识。布局管理器包含: FlowLayout布局管理器,它是Panel类和Applet类默认的布局管理器:BorderLayout布局管理器,它是Window、Frame、Dialog的默认布局管理器。 因此,本题的正确答案是选项C。第30题:参考答案:B答案解析:本题考查用Swing编写图形用户界面的基本知识。 按钮(JButton类
33、)是一个常用构件,它比AWT中的Button类更丰富的是:Swing的按钮上还可以同时显示文字和图标,甚至只有图标都是可以的,这样就构成了图形按钮。而AWT中的Button类不能显示图标,只能显示文本。标签(JLabel类)的功能与AWT中的Label类似,但是JLahel可以提供带图标的标签,图标和文字的位置是可以控制的。因此,选项A的说法是正确的,而选项B的说法是错误的。 AWT构件能直接添加到顶层容器中,和AWT构件不同,Swing构件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板上。内容面板是顶层容器包含的个普通容器,它是一个轻量级构件。因此,选项C和选
34、项D的说法都是正确的。 经过上述分析可知,本题的正确答案是选项B。第31题:参考答案:D答案解析:本题考查Applet的基本知识。Applet是java.awt.Panel类的直接子类。因此 Applet也是一个面板容器,可以在其中设置并操作AWT构件。FlowLayout布局管理器是Panel类和Appl类默认的布局管理器。因此,选项A的说法是正确的。 JApplet是Applet类的扩展,它增加了对Swing构件的支持。JApplet是顶层的Swing容器,与其他顶层容器一样,JApplet内部用一个隐含的根面板,而根面板中的内容面板才是JApplet除菜单条外的所有构件的双亲。因此,向J
35、applet中增加构件,是把构件添加到Japplet的内容面板中,而不是直接添加到JApplet中。因此,选项B的说法是正确的。 对JApplet设置布局管理器是对JApplet的内容面板进行设置,而不是对JApplet设置。 JApplet的内容面板的默认布局管理器是BorderLayout,而Applet默认的布局管理器是FlowLayout。因此,选项C的说法是正确的,而选项D的说法是错误的。 经过上述分析可知,本题的正确答案是选项D。第32题:参考答案:D答案解析:本题考查Applet的基本知识。Applet运行时,首先由浏览器调用init()方法,通过该Applet已经被加载到浏览器
36、中,使Applet执行一些基本初始化。void start()方法,在Applet初始化之后以及Applet被重新访问时调用。 在init()方法完成后,将调用start()方法,使Applet成为激活状态。该方法在Applet每次显示时都要调用。 paintComponent()方法位于JComponent类,该方法与paint()方法类似。无论在系统开始执行时、窗口被最小化后再恢复以及窗口被覆盖后需要被重新绘制时, paintComponent()方法都会被系统自动调用,所以在程序中不要调用它,否则会与自动化过程冲突。 Applet的paint()方法具体执行Applet的绘制。Graph
37、ics类型的实例作为paiht()方法的参数,该实例对象由浏览器生成,在调用该方法时,由浏览器将该对象传递给paint()方法。 因此,本题的正确答案是选项D。第33题:参考答案:D答案解析:Applet中的事件处理机制和JavaApplication相同,采用监听器方法。JApplet也采用相同的技术。因此,选项D的说法是错误的。第34题:参考答案:D答案解析:Java平台为了防范恶意程序的攻击,使用了安全管理器,它执行系统资源的访问控制。目前大多数浏览器都安装了安全管理器,所以Applet都是在它的监视下运行。许多浏览器为了保护本地主机,对Applet作了如下安全限制: (1)Applet
38、不能运行任何本地可执行程序。 (2)禁止加载本地库或方法。Applet只能使用自身的代码或Applet浏览器提供的 JavaAPI。 (3)禁止读、写本地计算机的文件系统。 (4)禁止向提供Applet之外的任何主机建立网络连接。 (5)不能读取某些系统信息。除了Java版本号、操作体统名或版本号、文件分隔符、路径分隔符以及行分隔符之外,Applet不能获得与本地计算机有关的任何信息如用户名、电子邮件地址等。 (6)由一个Applet弹出的窗口外观上与一个Application弹出的窗口不同,Applet弹出的窗口中会有警告提示信息,帮助用户区分Applet窗口与可信的Application窗
39、口。 因此,本题的正确答案是选项D。第35题:参考答案:A答案解析:本题考查J2SDK操作的基本命令。 javah命令:生成C语言头文件和Stub文件,javah从Java类生成C头文件和C源文件。 javap命令:Java类文件解析器,用于解析类文件。 jar命令:Java类文件归档命令。 java命令:Java语言解释器,解释运行Java字节码。 因此,本题的四个选项中,只有选项A的答案是正确的。二、填空题(每空2分,共30分)第36题:参考答案:63或26-1详细解答:本题考查数据结构中满二叉树的性质。在满二叉树中,每层结点都是满的,即每层结点都具有最大结点数。深度为k的满二叉树,一共有
40、2k-1个结点,其中包括度为2的结点和叶子结点。因此,深度为7的满二叉树,一共有27-1个结点,即 127个结点。 根据二叉树的另一条性质,对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2,则n0=n2+1。设深度为7的满二叉树中,度为2的结点个数为x,则改树中叶子结点的个数为x+1。则应满足x+(x+1)=127,解该方程得到,x的值为63。 结果上述分析可知,在深度为7的满二叉树中,度为2的结点个数为63。第37题:参考答案:黑箱或黑盒或黑箱(盒)详细解答:本题考查软件工程的测试。对于软件测试而言,黑箱(盒)测试是把程序看成一个黑盒子,完全不考虑程序的内部结构
41、和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当的接收输入数据产生正确的输出信息。与黑箱(盒)测试相反,白箱(盒)测试的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。它按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按照预定要求正确处理。 等价类划分是把所有可能的输入数据(有效的和无效的)划分成若干个等价类,财可以合理的做出下述假定;每类中的一个典型值在测试中的作用与这一类中所有其他值的作用相同。显然,等价类划分完全不考虑程序的内部结构和处理过程,因此它属于黑箱(盒)测试。第38题:参考答案:数据库管理系统或DBMS详细解
42、答:数据库管理系统(Database Management System, DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。因此,数据库系统中,数据库管理系统是实现各种数据管理功能的核心软件。 本题的答案是数据库管理系统或DBMS。第39题:参考答案:开发或软件开发详细解答:本题考查软件工程的软件生命周期及其各阶段的基本
43、任务。一般说来,软件生命周期由软件定义、软件开发和软件维护三个时期组成。 软件定义时期的任务是确定软件开发工程必须完成的总目标;导出实现工程目标应该采用的的策略及系统必须完成的功能;确定工程的可行性;估计完成该项工程需要的资源和成本,并且制定工程进度表。 软件开发刑期的任务是设计程序结构,给出程序的详细规格说明;编写程序代码,并且仔细测试编写出的每一个程序模块;最后进行综合测试,也就是通过各种类型的测试使软件达到预定的要求。 软件维护时期的任务是使软件持久的满足用户的需要。具体地说,就是诊断和改正在使用过程中发现的软件错误:修改软件从而适应环境的变化;根据用户的要求改进或扩充软件使其更完善;修
44、改软件为将来的维护活动预先做准备。 显然,编码和测试属于软件开发阶段。划线处应填入“开发”或“软件开发”。第40题:参考答案:数据字典或DD详细解答:本题考查数据流图和数据字典的概念。数据流图(Data Flow Diagram,DFD) 是一种结构化分析描述模型,用来对系统的功能需求进行建模,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。尽管数据流图给出了系统数据流向和加工等情况,但其各个成分的具体含义仍然不清楚或不明确,因此,在实际中常采用数据词典这一基本工具对其作进一步的详细说明。数据词典(Data Dictionary,简称DD) 和数据流图密切配合,能清楚地表达
45、数据处理的要求。数据词典用于对数据流图中出现的所有成分给出定义,它使数据流图上的数据流名字、加工名字和数据存贮名字具有确切的解释。每一条解释就是一条词条,按一定的顺序将所有词条排列起来,就构成了数据词典,就像日常使用的英汉词典、新华词典一样。因此,划线处应填入“数据字典”或“DD”。第41题:参考答案:J2ME(j2me)详细解答:本题考查Java2平台的基本知识。Java2包含三个平台:J2ME平台、J2SE平台、J2SE平台。J2ME是为嵌入式和移动设备提供的Java平台,它的体系结构由 Profiles、Configuration和OptionalPackages组成;J2SE平台,它是
46、面向企业级应用与服务的综合性标准开发平台:J2EE平台;它是面向大型企业级用容器管理专用构件的应用平台。 因此,本题的正确答案是J2ME(j2me)。第42题:参考答案:回车详细解答:第43题:参考答案:passed详细解答:本题考查Java的条件运算符。程序中首先定义了个OperatorsAndExpressions类,该类非常简单,其中只包含一个conditionalExpression方法。该方法中对传递进来的参数score进行判断,如果score=60分,则返回结果passed,否则返回结果doesnt pass。这个操作通过一个条件表达式语句实现,即result=(score=60)?passed:doesnt pass。首先计算score=60的结果,如果结果为true,则将passed作为整个条件表达式的结果;如果scor
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1