二级JAVA真题.docx
- 文档编号:24110720
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:26
- 大小:49.22KB
二级JAVA真题.docx
《二级JAVA真题.docx》由会员分享,可在线阅读,更多相关《二级JAVA真题.docx(26页珍藏版)》请在冰豆网上搜索。
二级JAVA真题
2007年9月二级Java笔试试卷
(考试时间90分钟,满分100分)
一、选择题(每小题2分,共70分)
下列各题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)数据的逻辑结构与存储结构必定是一一对应的
B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构
D)以上三种说法都不对
(7)冒泡排序在最坏情况下的比较次数是
A)n(n+1)/2B)n1og2nC)n(n-1)/2D)n/2
(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为
A)219B)221C)229D)231
(9)下列叙述中正确的是
A)数据库系统是一个独立的系统,不需要操作系统的支持
B)数据库技术的根本目标是要解决数据的共享问题
C)数据库管理系统就是数据库系统
D)以上三种说法都不对
(10)下列叙述中正确的是
A)为了建立一个关系,首先要构造数据的逻辑关系
B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项
C)一个关系的属性名表称为关系模式
D)一个关系可以包括多个二维表
(11)下列关于System类的叙述中,错误的是
A)System类是一个final类
B)System类不能实例化
C)System类中没有定义属性
D)System类主要提供了系统环境参数的访问
(12)下列布尔变量定义中,正确并且规范的是
A)BOOLEANcanceled=false;
B)booleancanceled=false;
C)booleanCANCELED=false;
D)booleancanceled=FALSE;
(13)数组中各个元素的数据类型是
A)相同的B)不同的
C)部分相同的D)任意的
(14)内部类不可直接使用外部类的成员是
A)静态成员
B)实例成员
C)方法内定义
D)以上A、B,C都不是
(15)阅读下面程序
publicclassTest1{
publicstaticvoidmain(String[]args){
System.out.println(34+56-6);
System.out.println(26*2-3);
System.out.println(3*4/2);
System.out.println(5/2);
}
}
程序运行结果是
A)84B)90
4925
66
22.5
C)84D)68
2349
1214
22.5
(16)在JDK目录中,Java程序运行环境的根目录是
A)binB)demo
C)libD)jre
(17)阅读下面程序
publicclassConcatTest{
publicstaticvoidmain(String[]args){
Stringstrl="abc";
Stringstr2="ABC";
Stringstr3=str1.concat(str2);
System.out.println(str3);
}
}
程序的运行结果是:
A)abeB)ABC
C)abcABCD)ABCabc
(18)下列运算符中属于关系运算符的是
A)==B)=
C)+=D)-=
(19)下列语句中执行跳转功能的语句是
A)for语句B)while语句
C)continue语句D)switch语句
(20)下列适配器类中不属于事件适配器类的是
A)MouseAdapterB)KeyAdapter
C)ComponentAdapterD)FrameAdapter
(21)下列运算符中不能进行位运算的是
A)>> B)>>>
C)<< D)<<<
(22)阅读下面程序
publicclassTest2{
publicstaticvoidmain(Stringargs[]){
inta=1O,b=4,c=20,d=6;
System.out.println(a++*b+c*--D);
}
}
程序运行的结果是
A)144B)160
C)140D)164
(23)阅读下面程序
publicclassTest3{
publicstaticvoidmain(Stringargs[]){
intx=3,y=4,z=5;
Strings="xyz";
System.out.primln(s+x+y+z);
}
}
程序运行的结果是
A)xyzl2B)xyz345
C)xyzxyzD)12xyz
(24)下列类中属于字节输入抽象类的是
A)FileInputStreamB)ObjectInputStream
C)FiterInputStreamD)InputStream
(25)能向内存直接写入数据的流是
A)FileOutputStream
B)FileInputStream
C)ByteArrayOutputStream
D)ByteArrayInputStream
(26)下面程序中需要对Employee的对象进行存储,请在下划线处填入正确选项。
classEmployeeimplements______{
……}
A)ComparableB)Serializable
C)CloneableD)Datalnput
(27)阅读下面程序
publicclassTest4{
publicstaticVoidmain(Stringargs[]){
inti=10,j=3;
floatm=213.5f,n=4.0f;
System.out.println(i%j);
System.out.println(m%n);
}
}
程序运行的结果是
A)1.0和1.5B)1和1.5
C)1.0和2.5D)1和2.5
(28)阅读下面程序
importjava.io.*;
publicclassByteStreamTest{
publicstaticvoidmain(String[]A){
int[]myArray={10,20,30,40};
try{
DataOutputStreamdos=newDataOutputStream
(new______("ints.dat"));
for(inti=0;i<myArray,length;i++)
dos.writelnt(myArray[i]);
dos.close();
System.out.println("Havewrittenbinaryfileints.dat");
}
catch(IOExceptionioe){
System.out.println("IOException");
}
}
}为保证程序正确运行,在程序中下划线处应填入的代码是
A)FileOutputStream
B)ByteArrayOutputStream
C)BufferedOutputStream
D)FileWriter
(29)要在HTML文件中嵌入Applet,在<applet>标记中必须定义的是
A)Applet字节码文件的URL
B)Applet显示区域的高度和宽度
C)Applet字节码的文件名
D)B和C
(30)如果要在Applet中显示特定的文字、图形等信息,可以在用户定义的Applet类中重写的方法是
A)paint()B)update()
C)drawstring()D)drawLine()
(31)如果用户定义的Applet类中没有init()方法,则该程序
A)必须定义一个main()方法
B)无法通过编译
C)可以通过编译,但运行时将出错
D)可以通过编译,并且能够正常运行
(32)阅读下面程序
classTestimplementsRunnable{
publicstaticvoidmain(String[]args){
Testt=newTest();
t.startO;
}
publicvoidrun(){}
}
下列关于上述程序的叙述正确的是
A)程序不能通过编译,因为start()方法在Test类中没有定义
B)程序编译通过,但运行时出错,提示start()方法没有定义
C)程序不能通过编译,因为run()方法没有定义方法体
D)程序编译通过,且运行正常
(33)如果使用Threadt=newTest()语句创建一个线程,则下列叙述正确的是
A)Test类一定要实现Runnable接口
B)Test类一定是Thread类的子类
C)Test类一定是Runnable的子类
D)Test类一定是继承Thread类并且实现Runnable接口
(34)下列方法中,声明抛出InterruptedException类型异常的方法是
A)suspend()B)resume()
C)sleep()D)start()
(35)如果线程正处于运行状态,可使该线程进入阻塞状态的方法是
A)yield()B)start()
C)wait()D)notify()
二、填空题(每空2分,共30分)
(1)软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是【1】。
(2)在两种基本测试方法中,【2】测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。
(3)线性表的存储结构主要分为顺序存储结构和链式存储结构。
队列是一种特殊的线性表,循环队列是队列的【3】存储结构。
(4)对下列二叉树进行中序遍历的结果为【4】。
(5)在E-R图中,矩形表示【5】。
(6)在Java中,所有数据类型的长度都固定,因此没有保留字【6】。
(7)布尔逻辑运算符包括:
!
、&&和【7】。
(8)switch语句中,在每个case子句后进行跳转的语句是:
【8】。
(9)用户不能直接调用构造方法,只能通过【9】关键字自动调用。
(10)Class对象由Java【10】自动生成。
(11)下面程序运行时输出结果为
C:
\ProgramFilesisadirectory.
请将程序补充完整。
importjava.io.*;
publicclassDirTest{
publicstaticvoidmain(String[]args){
FilemyDir=newFile("C:
/ProgramFiles/");
System.out.println
(myDir+(【11】.isDirectory()?
"is":
"isnot")+"adirectory.");
}
}
(12)一个Applet在被加载到浏览器并完成初始化后,将被调用的方法是【12】()。
(13)Java中的线程体是由线程类的【13】()方法进行定义的,线程运行时,也是从该方法开始执行。
(14)AWT中的布局管理器包括BorderLayout、【14】、CardLayout、OridBagLayout和GridLayout。
(15)Java中线程模型由虚拟的CPU,代码与数据构成。
该模型是由java.lang.【15】类进行定义和描述的。
2007年9月二级Java笔试试卷答案和解析
一、选择题
(1)[答案]D
[解析]本题考查软件的定义。
软件是计算机系统中与硬件相互依存得另一部分,它包括程序、相关数据及其说明文档得总和。
因此,本题得正确答案是选项D。
(2)[答案]B
[解析]本题考查软件工程调试。
调试与测试是两个不同的过程,有着根本的区别:
调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。
因此,软件调试的目的是为了改正软件中的错误。
本题的正确答案是选项B。
(3)[答案]C
[解析]通常认为,面向对象方法具有封装性、继承性、多态性几大特点。
就是这几大特点,为软件开发提供了一种新的方法学。
封装性:
所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中(对象中)。
简单地说,封装就是隐藏信息。
这是面向对象方法的中心,也是面向对象程序设计的基础。
继承性:
子类具有派生它的类的全部属性(数据)和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。
继承性自动在类与子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式。
继承有利于提高软件开发效率,容易达到一致性。
多态性:
多态性就是多种形式。
不同的对象在接收到相同的消息时,采用不同的动作。
例如,一个应用程序包括许多对象,这些对象也许具有同一类型的工作,但是却以不同的做法来实现。
不必为每个对象的过程取一过程名,造成复杂化,可以使过程名复用。
同一类型的工作有相同的过程名,这种技术称为多态性。
经过上述分析可知,在面向对象方法中,实现信息隐蔽是依靠对象的封装。
正确答案是选项C。
(4)[答案]A
[解析]本题考查软件工程的程序设计风格。
软件在编码阶段,力求程序语句简单、直接,不能只为了追求效率而使语句复杂化。
除非对效率有特殊的要求,程序编写要做到清晰第一、效率第二。
人们在软件生存期要经常阅读程序,特别是在软件测试和维护阶段,编写程序的人和参与测试、维护的人都要阅读程序,因此要求程序的可读性要好。
正确的注释能够帮助读者理解程序,可为后续阶段进行测试和维护提供明确的指导。
所以注释不是可有可无的,而是必须的,它对于理解程序具有重要的作用。
I/O信息是与用户的使用直接相关的,因此它的格式应当尽可能方便用户的使用。
在以交互式进行输入/输出时,要在屏幕上使用提示符明确提示输入的请求,指明可使用选项的种类和取值范围。
经过上述分析可知,选项A是不符合良好程序设计风格要求的。
(5)[答案]A
[解析]本题考查程序效率。
程序效率是指程序运行速度和程序占用的存储空间。
影响程序效率的因素是多方面的,包括程序的设计、使用的算法、数据的存储结构等。
在确定数据逻辑结构的基础上,选择一种合适的存储结构,可以使得数据操作所花费的时间少,占用的存储空间少,即提高程序的效率。
因此,本题选项A的说法是正确的。
(6)[答案]D
[解析]本题考查数据结构的基本知识。
数据之间的相互关系称为逻辑结构。
通常分为凹类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。
存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。
存储结构在计算机中有两种,即顺序存储结构和链式存储结构。
顺序存储结构是把数据元素存储在一块连续地址空间的内存中;链式存储结构是使用指针把相互直接关联的节点链接起来。
因此,这两种存储结构都是线性的。
可见,逻辑结构和存储结构不是一一对应的。
因此,选项A和选项B的说法都是错误的。
无论数据的逻辑结构是线性的还是非线性的,只能选择顺序存储结构或链式存储结构来实现存储。
程序设计语言中,数组是内存中一段连续的地址空间,可看作是顺序存储结构。
可以用数组来实现树型逻辑结构的存储,比如二叉树。
因此,选项C的说法是错误的。
(7)[答案]C
[解析]冒泡排序的基本思想是:
将相邻的两个元素进行比较,如果反序,则交换;对于一个待排序的序列,经一趟排序后,最大值的元素移动到最后的位置,其它值较大的元素也向最终位置移动,此过程称为一趟冒泡。
对于有n个数据的序列,共需n-1趟排序,第i趟对从1到n-i个数据进行比较、交换。
冒泡排序的最坏情况是待排序序列逆序,第1趟比较n-1次,第2趟比较n-2次,依此类推,最后一趟比较1次,一共进行n-1趟排序。
因此,冒泡排序在最坏情况下的比较次数是(n-1)+(n-2)+...+1,结果为n(n-1)/2。
本题的正确答案是选项C。
(8)[答案]A
[解析]本题考查数据结构中二叉树的性质。
二叉树满足如下一条性质,即:
对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2,则n0=n2+1。
根据这条性质可知,若二叉树中有70个叶子结点,则其度为2的结点数为70-1,即69个。
二叉树的总结点数是度为2、度为1和叶子结点的总和,因此,题目中的二叉树总结点数为69+80+70,即219。
因此,本题的正确答案是选项A。
(9)[答案]B
[解析]本题考查数据库系统的基本概念和知识。
数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。
这些软件包括操作系统、编译系统、应用软件开发工具等。
对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。
因此,选项A的说法是错误的。
数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。
因此,数据库具有为各种用户所共享的特点。
不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。
数据库的根本目标是要解决数据的共享问题。
因此,选项B的说法是正确的。
通常将引入数据库技术的计算机系统称为数据库系统。
一个数据库系统通常由五个部分组成,包括相关计算机的硬件、数据库集合、数据库管理系统、相关软件和人员。
因此,选项C的说法是错误的。
因此,本题的正确答案是选项B。
(10)[答案]C
[解析]本题考查数据库的关系模犁。
关系模型的数据结构是一个“二维表”,每个二维表可称为一个关系,每个关系有一个关系名。
表中的一行称为一个元组:
表中的列称为属性,每一列有一个属性名。
表中的每一个元组是属性值的集合,属性是关系二维表中最小的单位,它不能再被划分。
关系模式是指一个关系的属性名表,即二维表的表框架。
因此,选项C的说法是正确的。
(11)[答案]C
[解析]本题考查System类的基本知识。
System类是一个特殊类,它是一个final类,所有的方法都用类变量来调用,即对System类不可能实例化。
System类主要用来提供标准输入/输出和系统环境信息的访问、设置。
System类的属性有:
publicstaticfinalInputSbemin,标准输入
publicstaticfinalOutputStreamout,标准输出
publicstaticfinalPrintStreamerr,标准错误输出
因此,本题中选项A、B和D的说法都是正确的。
因此,本题的正确答案是选项C。
(12)[答案]B
[解析]本题考查Java的简单数据类型的变量定义及Java的命名约定。
Java中的命名规则中包含如下几条:
(1)变量名、方法名首单词小写,其余单词只有首字母大写;
(2)常量完全大写;
(3)变量命名采用完整的英文描述符,第一个字母小写,任何中间单词的首字母大写。
Java语言区分大小写。
简单数据类型布尔型用boolean表示。
布尔型数据只有两个值:
true(真)和false(假)。
经过上述分析可知,选项B和选项C都能正确的定义一个布尔型变量,但是选项C的变量名CANCELED不符合Java中的命名规则,而选项B的变量名符合变量名的命名规则。
因此,选项B是符合规范的布尔变量定义语句。
本题的正确答案是选项B。
(13)[答案]A
[解析]本题考查Java中的数组。
数组是一种复合数据类型,在Java中数据是作为对象来处理的。
数组是有限元素的有序集合,数组中的元素具有相同的数据类型,并可以用统一的数据名和下标来唯一确定其元素。
经过上述分析可知,本题的正确答案是选项A。
(14)[答案]D
[解析]本题考查内部类的使用。
在一个类的内部嵌套定义的类称为内部类。
与普通类一样,内部类也有自己的成员变量和成员方法,同样可以通过建立内部类的对象去访问其成员变量和调用其方法。
但它还有很多特点,其中一个就是内部类可以使用它所在类(外部类)的静态成员变量和实例成员变量,也可以使用它所在类(外部类)的方法中的局部变量。
针对题目中的选项A、B、C,内部类都可以访问。
因此,本题的正确答案是选项D。
(15)[答案]A
[解析]本题考查Java的表达式运算。
程序中包含四条输出语句,运行时首先计算表达式的结果,然后将结果进行输出。
第一个表达式34+56-6,运算结果为84,然后输出。
因此,运行结果的第一行显示“84”。
第二个表达式26*2-3,*号代表乘法,运算结果为49,然后输出。
因此,运行结果的
第二行显示“49”。
到此,可以判断,本题的正确答案是选项A。
(16)[答案]D
[解析]本题考查JDK目录结构。
JDK包含如下目录:
(1)bin目录,包含有编译器、解释器和许多工具
(2)demo目录,包含各种演示例子
(3)include目录,包含Win子目录,都是本地方法文件
(4)jre目录,是Java程序运行环境的根目录
(5)lib目录,包含Java库文件.
经过上述分析可知,本题的正确答案是选项D。
(17)[答案]C
[解析]本题考查字符串的使用。
String类提供concat(str)方法,该方法将当前字符串对象与指定str字符串相连。
题目程序中生成两个字符串变量str1和str2,并为其赋值,然后生成一个字符串变量str3,该字符串变量的值为表达式str1.concat(str2)的结果。
表达式str1.concat(str3)是把字符串str1与字符串str2相连,结果为“abcABC”。
因此,程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 JAVA