二级JAVA真题.docx
《二级JAVA真题.docx》由会员分享,可在线阅读,更多相关《二级JAVA真题.docx(21页珍藏版)》请在冰豆网上搜索。
![二级JAVA真题.docx](https://file1.bdocx.com/fileroot1/2023-4/24/8ad35731-e915-4119-8eed-69518cb23716/8ad35731-e915-4119-8eed-69518cb237161.gif)
二级JAVA真题
2006年4月二级Java笔试试卷
(考试时间90分钟,满分l00分)
一、选择题
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
(1)下列选项中不属于结构化程序设计方法的是
A)自顶向下
B)逐步求精
C)模块化
D)可复用
(2)两个或两个以上模块之间关联的紧密程度称为
A)耦合度
B)内聚度
C)复杂度
D)数据传输特性
(3)下列叙述中正确的是
A)软件测试应该由程序开发者来完成
B)程序经调试后一般不需要再测试
C)软件维护只包括对程序代码的维护
D)以上三种说法都不对
(4)按照“后进先出”原则组织数据的数据结构是
A)队列B)栈
C)双向链表D)二叉树
(5)下列叙述中正确的是
A)线性链表是线性表的链式存储结构
B)栈与队列是非线性结构
C)双向链表是非线性结构
D)只有根结点的二叉树是线性结构
(6)对如下二叉树
进行后序遍历的结果为
A)ABCDEFB)DBEAFC
C)ABDECFD)DEBFCA
(7)在深度为7的满二叉树中,叶子结点的个数为
A)32B)31
C)64D)63
(8)“商品”与“顾客”两个实体集之间的联系一般是
A)一对一B)一对多
C)多对一D)多对多
(9)在E-R图中,用来表示实体的图形是
A)矩形B)椭圆形
C)菱形D)三角形
(10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是
A)DB包含DBS和DBMS
B)DBMS包含DB和DBS
C)DBS包含DB和DBMS
D)没有任何关系
(11)Java语言中,负责并发管理的机制是
A)垃圾回收B)虚拟机
C)代码安全D)多线程
(12)下列描述中,错误的是
A)Java要求编程者管理内存
B)Java的安全性体现在多个层次上
C)Applet要求在支持Java的浏览器上运行
D)Java有多线程机制
(13)Java为移动设备提供的平台是
A)J2MEB)J2SE
C)J2EED)JDK5.0
(14)JDK中提供的文档生成器是
A)java.exeB)javap.exe
C)javadoc.exeD)javaprof.exe
(15)在Java语言中,不允许使用指针体现出的Java特性是
A)可移植B)解释执行
C)健壮性D)安全性
(16)下列不属于Swing中构件的是
A)JPanelB)JTable
C)MenuD)JFrame
(17)下列方法中,不属于WindowListener接口的是
A)windowOpened()B)windowClosed()
C)windowActivated()D)mouseDragged()
(18)下列语句中,属于多分支语句的是
A)if语句B)switch语句
C)dowhile语句D)for语句
(19)阅读下列代码
publicclassTest2005{
publicstaticvoidmain(Stringargs[]){
Strings="Test";
switch(s){
case"Java":
System.out.print("Java");
break;
case"Language":
System.out.print("Language");
break;
case"Test":
System.out.ptint("Test");
break;
}
}
}
其运行结果是
A)JavaB)Language
C)TestD)编译出错
(20)阅读下列代码
publicclassTest2005{
publicstaticvoidmain(Stringargs[]){
System.out.println(~(0xa5)&0xaA);
}
}
其运行结果是
A)0xa5B)10
C)0x50D)0xaa
(21)阅读下列代码
publicclassTest2005{
publicstaticvoidmain(Stringargs[]){
System.out.println((3>2)?
4:
5);
}
}
其运行结果是
A)2B)3
C)4D)5
(22)阅读下列代码
publicclassTest{
publicstaticvoidmain(Stringargs[]){
System.out.println(89>>1);
}
}
其运行结果是
A)44B)45
C)88D)90
(23)在Applet中显示文字、图形等信息时,应使用的方法是
A)paint()B)init()
C)start()D)destroy()
(24)线程生命周期中正确的状态是
A)新建状态、运行状态和终止状态
B)新建状态、运行状态、阻塞状态和终止状态
C)新建状态、可运行状态、运行状态、阻塞状态和终止状态
D)新建状态、可运行状态、运行状态、恢复状态和终止状态
(25)Thread类中能运行线程体的方法是
A)start()B)resume()
C)init()D)run()
(26)下列关于Applet的说法中,错误的是
A)Applet自身不能运行,必须嵌入到其他应用程序(如浏览器)中运行
B)可以在安全策略的控制下读写本地磁盘文件
C)Java中不支持向Applet传递参数
D)Applet的主类要定义为java.applet.Applet类的子类
(27)下列选项中,不是APPLET标记的是
A)PARAMB)BODY
C)CODEBASED)ALT
(28)在Java中,与数据库连接的技术是
A)ODBC
B)YDBC
C)数据库厂家驱动程序
D)数据库厂家的连接协议
(29)下列命题中,错误的是
A)Java编程时,要求应尽量多用公共变量
B)Java编程时,要求应尽量少用公共变量
C)Java编程时,要求应尽量不用公共变量
D)Java编程时,要求应尽量使用私有变量
(30)若特快订单是一种订单,则特快订单类和订单类的关系是
A)使用关系B)包含关系
C)继承关系D)无关系
(31)若数组a定义为int[][]a=newint[3][4],则a是
A)一维数组B)二维数组
C)三维数组D)四维数组
(32)Java语言使用的字符码集是
A)ASCIIB)BCD
C)DCBD)Unicode
(33)在程序读入字符文件时,能够以该文件作为直接参数的类是
A)FileReaderB)BufferedReader
C)FileInputStreamD)ObjectInputStream
(34)java.io包的File类是
A)字符流类B)字节流类
C)对象流类D)非流类
(35)下列描述中,正确的是
A)在Serializable接口中定义了抽象方法
B)在Serializable接口中定义了常量
C)在Serializable接口中没有定义抽象方法,也没有定义常量
D)在Serializable接口中定义了成员方法
二、填空题
请将每一个空的正确答案写在【1】~【15】序号的横线上。
注意:
以命令关键宇填空的必须拼写完整。
(1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【1】。
(2)在面向对象方法中,【2】描述的是具有相似属性与操作的一组对象。
(3)在关系模型中,把数据看成是二维表,每一个二维表称为一个【3】。
(4)程序测试分为静态分析和动态测试。
其中【4】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
(5)数据独立性分为逻辑独立性与物理独立性。
当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【5】。
(6)【6】是Java程序中基本的结构单位。
(7)Java语言中,移位运算符包括:
>>、<<和【7】。
(8)构件不能独立地显示出来,必须将构件放在一定的【8】中才能显示。
(9)能将显示空间分成很多层的布局管理器是【9】。
(10)Applet是能够嵌入到【10】格式的文件中,并能够在浏览器中运行的Java类。
(11)使用Swing编写Applet,则该Applet的主类应该定义为【11】类的子类。
(12)在Java中,线程的模型就是一个CPU、程序代码和【12】的封装体。
(13)键盘键入字符串并在计算机屏幕上显示,这时的数据源是【13】。
(14)任何一个Java程序都默认引入了一个包,这个包的名字叫java.【14】。
(15)Java语言中,有一个类是所有类或接口的父类,这个类的名称是【15】。
2006年4月二级Java笔试试卷答案和解析
一、选择题
(1)[答案]D
[解析]结构化程序设计方法的主要原则有4点:
自顶向下(先从最上层总目标开始设计,逐步使问题具体化)、逐步求精(对于复杂问题,设计一些子目标作为过渡,逐步细化)、模块化(将程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,每个小目标作为一个模块)、限制使用GOTO语句。
没有可复用原则,所以选项D为答案。
(2)[答案]A
[解析]本题考核模块独立性的评价。
评价模块独立性的主要标准有两个;一是模块之间的耦合,它表明两个模块之间互相独立的程度,也可以说是两个或两个以上模块之间关联的紧密程度(所以,本题的正确答案为选项A);二是模块内部之间的关系是否紧密,称为内聚。
一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。
(3)[答案]D
[解析]本题考核软件测试、软件调试和软件维护的概念。
软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。
软件测试具有挑剔性,测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷,就是说,测试是程序执行的过程,目的在于发现错误;一个好的测试在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误。
由于测试的这一特征,一般应当避免由开发者测试自己的程序。
所以,选项A的说法错误。
调试也称排错,目的是发现错误的位置,并改正错误,经测试发现错误后,可以立即进行调试并改正错误;经过调试后的程序还需进行回归测试,以检查调试的效果,同时也可防止在调试过程中引进新的错误。
所以,选项B的说法错误。
软件维护通常有4类:
为纠正使用中出现的错误而进行的改正性维护;为适应环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠而进行的预防性维护。
软件维护不仅包括程序代码的维护,还包括文档的维护。
文档可以分为用户文档和系统文档两类。
但无论是哪类文档,都必须与程序代码同时维护。
只有与程序代码完全一致的文档才有意义和价值。
所以,选项C的说法错误。
综上所述,选项A、B、C的说法都错误,所以,选项D为正确答案。
(4)[答案]B
[解析]“后进先出”表示最后被插入的元素最先能被删除。
选项A中,队列是指允许在一端进行插入、而在另一端进行删除的线性表,在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除,队列又称为“先进先出”的线性表,它体现了“先来先服务”的原则;选项B中,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素,栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
队列和栈都属于线性表,它们具有顺序存储的特点,所以才有“先进先出”和“后进先出”的数据组织方式。
双向链表使用链式存储方式,二叉树也通常采用链式存储方式,它们的存储数据的空间可以是不连续的,各个数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。
所以选项C和选项D错误。
(5)[答案]A
[解析]一个非空的数据结构如果满足下列两个条件:
(1)有且只有一个根结点;
(2)每一个结点最多有一个前件,也最多有一个后件,则称为线性结构。
线性链表是线性表的链式存储结构,选项A的说法是正确的。
栈与队列是特殊的线性表,它们也是线性结构,选项B的说法是错误的:
双向链表是线性表的链式存储结构,其对应的逻辑结构也是线性结构,而不是非线性结构,选项C的说法是错误的;二叉树是非线性结构,而不是线性结构,选项D的说法是错误的。
因此,本题的正确答案为A。
(6)[答案]D
[解析]二叉树后序遍历的简单描述如下:
若二叉树为空,则结束返回。
否则
(1)后序遍历左子树:
(2)后序遍历右子树;(3)访问根结点。
也就是说,后序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。
根据后序遍历的算法,后序遍历的结果为DEBFCA。
(7)[答案]C
[解析]在二叉树的第k层上,最多有2k-1(上标)(k≥1)个结点。
对于满二叉树来说,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1(上标)个结点。
因此,在深度为7的满二叉树中,所有叶子结点在第7层上,即其结点数为2k-1(上标)=27-1(上标)=64
因此,本题的正确答案为C。
(8)[答案]D
[解析]本题考核实体集之间的联系。
实体集之间的联系有3种:
—一对一、一对多和多对多。
因为一类商品可以由多个顾客购买,而一个顾客可以购买多类商品;所以,“商品”与“顾客”两个实体集之间的联系一般是“多对多”,选项D正确。
(9)[答案]A
[解析]在E-R图中,用三种图框分别表示实体、属性和实体之间的联系,其规定如下:
用矩形框表示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名;用菱形框表示实体间的联系,框内标明联系名。
所以,选项A正确。
(10)[答案]C
[解析]数据库管理系统DBMS是数据库系统中实现各种数据管理功能的核心软件。
它负责数据库中所有数据的存储、检索、修改以及安全保护等,数据库内的所有活动都是在其控制下进行的。
所以,DBMS包含数据库DB。
操作系统、数据库管理系统与应用程序在一定的硬件支持下就构成了数据库系统。
所以,DBS包含DBMS,也就包含DB。
综上所述,选项C正确。
(11)[答案]D
[解析]选项A,Java语言中,垃圾回收机制对系统中不使用的内存进行回收,从而使程序员从繁忙的内存管理中解放出来。
选项B,Java编写好的程序首先由编译器转换为标准字节代码,然后由虚拟机执行。
虚拟机把字节代码程序与各操作系统和硬件分开,使Java程序独立于平台。
选项C,Java的代码安全检测体现在多个层次上,在编译层、解释层、平台层分别作不同的安全检查。
选项D,多线程是Java程序的并发机制,它能同步共享数、处理不同的事件。
因此,本题的正确答案是D。
(12)[答案]A
[解析]选项A,为了充分利用资源,Java有一个系统级的线程,用来对内存的使用进行跟踪,它可以在系统空闲时对不用的内存空间进行回收,从而使程序员从繁忙的内存管理中解放出来。
选项B,Java的代码安全检测体现在多个层次上,在编译层、解释层、平台层分别作不同的安全检查。
选项C,Applet本身不能运行,但能够嵌入到Web浏览器中运行。
选项D,多线程是Java程序的并发机制,它能同步共享数、处理不同的事件。
因此,本题的正确答案是A。
(13)[答案]A
[解析]Java2平台包括;J2ME平台、J2SE平台和J2EE平台。
其中:
J2ME是为嵌入式和移动设备提供的Java平台,它的体系结构由Profiles、Configuration和OptionalPackages组成;J2SE是面向企业级应用与服务的综合性标准开发平台:
J2EE是面向大型企业级用容器管理专用构件的应用平台。
而JDK5.0是一个Java开发软件包。
因此本题的正确答案是A。
(14)[答案]C
[解析]在JDK中:
java.exe是Java解释器,直接从类文件执行Java字节码程序。
javap.exe是Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
javadoc.exe是文档生成器,对Java源码和包以MML格式产生AP文档。
javaprof.exe是Java剖析工具,提供解释器剖析信息。
因此,本题的正确答案是C。
(15)[答案]D
[解析]选项A,Java语言跨平台的特点,保证了软件的可移植性。
此外,Java本身的编译器也用Java语言编写,运行系统的虚拟机用C语言实现,这样,Java系统本身也具有可移植性。
选项B,Java语言用字节码进行解释执行,字节本身带有许多编译时产生的信息。
选项C,健壮性也称为鲁棒性。
Java语言在编译和运行时都有比较严格的检查。
选项D,Java语言在运行程序时,有严格的访问权限检查。
对字节代码执行前要检查,不允许使用指针,可防止对内存的非法入侵。
因此,本题的正确答案是D。
(16)[答案]C
[解析]Swing中的大多数构件名称都是在AWT构件名前面加了一个“J”。
因此,很容易判断选项C不是Swing中的构件。
JPanel是Swing的中间容器;JTable是Swing中可编辑信息的构件;JFrame是Swing的顶层容器。
因此选项A、B、D都是Swing中的构件。
(17)[答案]D
[解析]WindowListener接口包含的方法是:
●windowActivated(WindowEvent)
●windowOpened(WindowEvent)
●windowClosed(WindowEvent)
●windowCloshlg(WindowEvent)
●windowDeactivated(WindowEvent)
●windowDeiconified(WindowEvent)
●windowlconified(WindowEvent)
因此不属于WindowListener接口的方法是D。
补充:
在AWT中,接口的命名是与事件相对应的,比如WindowEvent事件所对应的接口就是WindowListener,而MouseEvent事件所对应的接口就是WouseListener。
同时,接口中方法的命名也是与事件相对应的,比如WindowListener接口中包含的方法的名称都是以window开头,而WouseListener接口中包含的方法的名称都是以mouse开头。
针对本题,在不知道具体WindowListener接口中包含的方法时,根据AWT中接口和接口中方法的命名原则,也可以答对本题。
(18)[答案]B
[解析]dowhile语句和for语句是循环语句;if语句和switch语句是分支语句。
而if语句称为条件语句,switch语句称为多分支语句。
因此,本题的正确答案是B。
(19)[答案]D
[解析]程序中只有一个switch语句,因此本题考查switch语句的用法。
switch语句是多分支语句,即根据表达式的值来执行多个操作中的一个。
其一般格式为:
switch(表达式){
casevaluel:
语句1;
break;
casevalue2:
语句2;
break;
casevalueN:
语句N;
break;
[default:
语句N+1;]
}
在switch语句中,“表达式”的返回值类型必须是这几种类型之一:
int,byte,char,short。
本题中,switch的表达式s是一个字符串String类型的值,它不是血、byte、char、short中的任意一个。
因此表达式s的类型不对,编译时报错。
因此,本题的正确答案是D。
(20)[答案]B
[解析]这段程序代码非常简单,就是在屏幕上输出表达式~(Oxa5)&Oxaa的结果。
“~”和“&”是位逻辑运算符:
按位取反运算符“~”的运算规则是对数据的每个二进制位取反,即把1变为0,把0变为1;按位与运算符“&”的运算规则是,如果两个操作数中,相应位都为1,则该位的结果为1,否则为0。
解答这道题,首先要把十六进制数Oxa5和Oxaa转换为二进制数的形式,转换的方法是把一位十六进制用四位二进制表示。
因此,Oxa5的二进制形式为10100101,Oxaa的二进制形式为10101010。
在位运算符中,“—”的优先级高于“&”。
所以首先计算~10100101,其结果为01011010。
然后再计算01011010&10101010,其结果为00001010。
最后将二进制数00001010转换为十进制数,即为10。
因此,本题的正确答案是10。
(21)[答案]C
[解析]这段程序代码非常简单,就是在屏幕上输出表达式(3>2)?
4:
5的结果。
显然,?
:
是条件运算符。
它的一般形式为:
表达式?
语句1:
语句2。
其中,表达式应该是关系或布尔逻辑表达式,其计算结果为布尔值。
如果该值为true,则计算语句1,并将计算结果作为整个条件表达式的结果;如果为false,则计算语句2,并将计算结果作为条件表达式的结果。
本题中关系表达式(3>2)的结果是true,因此表达式(3>2)94:
5的运算结果为4。
因此,本题的正确答案是C。
(22)[答案]A
[解析]这段程序代码非常简单,就是在屏幕上输出表达式“89>>1”的结果。
“>>”是算数右移运算符。
“89>>1”是将89的各二进制位右移1位,移到右端的低位被舍弃,最高位则移入原来高位。
Java使用补码来表示二进制数,因此89的二进制补码是01011001,则89>>1=00101100,00101100对应的十进制数为44。
除此之外,还有一个简便算法。
算数右移一位相当于除2取商。
89除以2,商是44。
所以89>>1的结果是44。
因此,本题的正确答案是A。
(23)[答案]A
[解析]选项A中的paint()是与Applet显示相关的方法,由它来具体执行Applet的绘制功能。
选项B中的init()方法用于初始化Applet,它在Applet的生命周期中,只在最初执行一次。
选项C中的start()方法用于激活Applet。
在init()方法完成后,将调用start()方法,并且在Applet每次显示时都要调用。
选项D中的destroy()方法用于彻底终止Applet,从内存卸载并释放该Applet的所有资源。
因此,正确答案是A。
(24)[答案]C
[解析]线程的状态与生