你复习了吗? 你做计算机等级考试题库了吗?你上机模拟了吗?
没有!没有!我什么都没有!突然一下子慌了有木有?感觉白交了几十块的报名费。
以下是考无忧小编为您准备的二级Java试题。
2018年9月计算机二级Java试题
【1】
1.构造方法名必须与()相同,它没有返回值,用户不能直接调用它,只能通过new调用。
A.类名
B.对象名
C.包名
D.变量名
2.在多线程并发程序设计中,能够给对象x加锁的语句是()。
A.X.wait()
B.synchronized(x)
C.X.notify()
D.x.synchronized()
3.Java中类0bjectOutputStream支持对象的写操作,这是一种字节流,它的直接父类是()。
A.Writer
B.DataOutput
C.OutputStream
D.ObjectOutput
4.在下列程序的空白处,应填入的正确选项是()。
Importjava.io.*;
PulilcclassObjectStreamTest{
Publilcstaticvoidmain(stringargs[])throwsIOEx-
ception{
OhiectOutputStreamoos=newOhjectOutputStream
(newFileOutputStream("serial.bin"));
Java.util.Dated=newJava.util.Date();
Oos(d);
ObjectInputStreamois=
newOhjectlnputStream(newFileOutputStream("serial.
bin"));
try{
java.util.daterestoredDate=
(Java.util.Date)ois.readObject();
System.out.println
("readobjectbackfromserial.binfile:"
+restoredDate);
}
Catch(ClassNotFoundExceptioncnf){
System.out.println("classnotfound");
}
}
A.WriterObject
B.Writer
C.BufferedWriter
D.writerObject
5.Class类的对象由()自动生成,隐藏在.class文件中,它在运行时为用户提供信息。
A.Java编译器
.Java解释器
C.Javanew关键字
D.Java类分解器
6.某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有结点数为()。
A.11
B.12
C.13
D.14
7.程序流程图中的菱形框表示的是()。
A.处理步骤
B.逻辑处理
c.物理处理
D.控制流向
8.在多线程程序设计中,如果采用继承Thread类的方式创建线程,则需要重写Thread类的()方法。
A.start
B.local
C.interrupt
D.run
9.代码System.out.println(066)的输出结果是()。
A.12
B.36
C.54
D.66
10.表达式(10*49.3)的类型是()。
A.double
B.char
C.long
D.float
参考答案:
1.A。【解析】构造方法名必须与类名相同。
2.B。【解析】Java平台将每一个由synchronized(object)语句指定的对象设置一个锁,称为对象锁,是一种独占的排他锁。
3.C。【解析】ObjeetOutputStream的直接父类是0utputStream。
4.D。【解析】本题考查的是输入/输出及文件操作,writerObject方法是向数据流中写入数据。
5.A。【解析】class文件是由编译器生成的。
6.D。【解析】叶子结点总是比度为2的结点多一个。所以,具有5个度为2的结点的二叉树有6个叶子结点。总结点数一6个叶子结点+5个度为2的结点+3个度为1的结点一14个结点。
7.B。【解析】程序流程图的主要元素:①方框:表示一个处理步骤;②菱形框:表示一个逻辑处理;③箭头:表示控制流向。
8.D。【解析]Thread类本身实现了Runnable接口,所以可以通过继承Thread类,并重写run()方法定义线程体,然后创建该子类的对象创建线程。
9.C。【解析】066代表8进制数据的66等于十进制的54。
10.A。【解析】运算中自动类型转换按优先关系从低级数据转换成高级数据。规定的优先次序是byte,short,char→int→long→float→double。
【2】
1.下面程序段的输出结果为()。
packagetest;
publicclassClassA
{
intx=20:
staticinty=6;
publicstaticvoidmain(Stringargs[])
{
ClassBb=newClassB();
b.go(10);
System.out.println("x="+b.x);
}
}
classClassB
{
intX;
voidgo(inty)
{
ClassAa=newClassA();
x=a.Y;
}
}
A.x=10
B.x=20
C.x=6
D.编译不通过
2.下面程序段的输出结果为()。
publicclassTest
{
inta,b;
Test()
{
a=100;
b=200:
}
Test(intX,inty)
{
a=x:
b=y;
}
publicstaticvoidmain(Stringargs[])
{
TestObjl=newTest(12,45);
System.OUt.println("a="+Objl.a+"b="+Objl.
b);
TestObj2=newTest();
System.out.println("fl="+Obj2.a+"b="+Obj2.
b);
}
}
A.a=100b=200
a=12b=45
B.a=12b=45
a=100b=200
C.a=12b=200
a=100b=45
D.a=100b=45
a=12b=200
3.在匹配器(Matcher)类中,用于寻找下一个模式匹配串的方法是()。
A.staticbooleanmatches()
B.booleanmatcher.find()
C.intmatcher.start()
D.intmatcher.end()
4.下列说法正确的是()。
A.共享数据的所有访问都必须作为临界区
B.用synchronized保护的共享数据可以是共有的
C.Java中对象加锁不具有可重人性
D.对象锁不能返回
5.在JavaApplet程序中,如果对发生的事件做出响应和处理的时候,应该使用下列()语句。
A.importjava.awt.event.*;
B.importjava.io.*;
C.importjava.awt.*;
D.importjava.applet.*;
6.在一个容量为32的循环队列中,若头指针front一3,尾指针rear=2,则该循环队列中共有元素个数为()。
A.29
B.30
C.31
D.32
7.Java语言中如果要使用某个包中的类时,需要使用()导人。
A.inport
B.outport
C.import
D.input
8.执行下面程序段的输出结果为()。
publicclassQ
{
publicstaticvoidmain(Stringargv[])
{
intanar[]一newint[5];
System.out.println(anar[0]);
}
}
A.0
B.1
C.2
D.5
9.使得线程放弃当前分得的CPU时间,但不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU时间的方法是()。
A.time()
B.yield()
C.load()
D.min()
10.以下程序计算1+1/3+1/5+…+1/(2N+1),直至1/(2N+1)小于0.00001,横线处应补充的程序是()。
publicclassSun{
publicstaticvoidmain(Stringargs[]){
intn=1:
doubleterm,sum=1.0:
do{
n=__;
term=1.0/n;
sum=sum+term;
}
while(term>=0.00001);
System.out.println(n);
System.out.println(sum);
参考答案
1.C。【解析】本题考查在Java中静态变量(类变量)的用法。在题目程序段中生成了一个staticinty=6类变量,在ClassA中调用的b.go(10),只不过是在ClassB中的一个局部变量,通过调用ClassB中的90方法可以生成一个ClassA对象,并给这个新生成的对象赋以ClassA中的类变量Y的值。从main()方法作为入口执行程序,首先生成一个ClassB的对象,然后b.go(10)会调用ClassA,会给X和Y赋值,X=a.Y后,X值为6,再返回去执行System.out.println("x="+b.x)语句,输出为x=6,可见,正确答案为选项C。
2.B。【解析】本题考查构造方法及构造方法重载。Test类有两个构造方法,即使用了方法重载技术。不带参数的构造方法对类的实例变量进行特定数值的赋值,而带参数的构造方法根据参数对类的实例变量进行赋值。TestObjl=newTest(12,45)语句调用的是Test(intx,inty),而TestObj2=newTest()调用的是Test(),注意根据参数个数来区分。
3.A。【解析】本题考查考生对Java中的匹配器(Mateher)类的理解。Matcher类用于将一个输入字符串input和模式串pattern相比较。Booleanmateher.find()方法用于寻找下一个模式匹配串;intmatcher.start()方法用于返回匹配串的一个起始索引整数值;intmatcher.end()方法用于返回匹配串的一个终止索引整数值。而用于输入字符串与模式串比较的方法是staticbooleanmatches(),选项A正确。
4.A。【解析】本题考查对象加锁的相关概念。对于对象加锁的使用有些注意事项。对象的锁在某些情况下可以由持有线程返回,比如当synchronized语句块执行完成后;当在synchronized语句块中出现异常;当持有锁的线程调用该对象的wait()方法,由此可见选项D说法错误。共享数据的所有访问都必须作为临界区,使用synchronized进行加锁控制,选项A说法正确。用synchronized保护的共享数据必须是私有的,选项B说法错误。Java中对象加锁具有可重入性,选项C错误。
5.C。【解析】本题考查对Java常用的各种包所包含的一些类的基本功能的理解。java.awt包是抽象窗口工具包,里面包括各种容器、组件、窗口布局管理器以及一些常用的类如Color、Font等,选项A满足题意。而java.applet包里面包括了小程序执行时必须要重载的一个类Applet,也就只有这一个类,选项D错误。java.io包主要是提供一些输入/输出类的,选项B不满足题意。java.awt.event包就包含了一些能够对事件做出响应和处理的一些标准类,选项A不满足题意。
6.C。【解析】设队列容量为m,rear>front,则队列中元素个数为rear-front:rear
7.C。【解析】本题考查包的导入和使用。首先用package语句说明一个包,该包的层次结构必须与文件目录的层次相同,否则,在编译时可能出现找不到包的问题。Java语言中java.lang包是编译器自动导入,其他包中的类必须用import导入。
8.A。【解析】本题考查Java中数组的定义和初始化。在该方法里定义并动态初始化了一个整型数组anar,由于没有赋初值,系统默认的初始值是数组中的每个元素都为零。所以输出数组中的第一个元素anar[0]时,自然也是等于零。
9.B。【解析】本题考查线程阻塞的概念。yield()方法使得线程放弃当前分得的CPU时间,但是不使线程阻塞,印线程仍处于可执行状态,随时可能再次分得CPU时间。调用yield()的效果等价于调度程序认为该线程已执行了足够的时间从而转到另一个线程。
10.D。【解析】本题考查do-while循环的用法。题目中没有给出累加次数,故不能使用for循环,在do循环中,由累加项term的值作为退出循环的条件。根据题目要求,应该填写2*n+1。本题的关键是while(term>=0.00001)语句,题目要求计算直至1/(2N+1)小于0.00001,所以terml/(2N+1),因此n=2*n+1。
【3】
1.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。
A.12345ABCDE
B.EDCBA54321
C.ABCDEl2345
D.54321EDCBA
2.下列叙述中正确的是()。
A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D.循环队列中元素的个数是由队头指针和队尾指针共同决定的
3.在长度为z的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。
A.O(n)
B.O(n2)
C.O(log2n)
D.O(nlog2n)
4.下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
5.数据流图中带有箭头的线段表示的是()。
A.控制流
B.事件驱动
C.模块调用
D.数据流
6.在软件开发中,需求分析阶段可以使用的工具是()。
A.N-S图
B.DFD图
C.PAD图
D.程序流程图
7.在面向对象方法中,不属于“对象”基本特点的是()。
A.一致性B.分类性
C.多态性D.标识唯一性;
8.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。
A.一对一
B.一对多
C.多对一
D.多对多
9.在数据管理技术发展的三个阶段中,数据共享最好,的是()。
A.人工管理阶段
B.文件系统阶段。
C.数据库系统阶段
D.3个阶段相同
10.类Panel默认的布局管理器是()。
A.GridLayout
B.BorderLayout
C.FlowLayout
D.CardLayout
参考答案
1.B。【解析】栈是按照“先进后出”或“后进先出”的原则组织数据的,所以出栈顺序是EDCBA54321。
2.D。【解析】循环队列中元素的个数是由队头指针和队尾指针共同决定的,元素的动态变化也是通过队头指针和队尾指针来反映的。
3.C。【解析】对于长度为n的有序线性表,在最坏情况下,二分法查找只需比较log2n次,而顺序查找需要比较n次。
4.A。【解析】顺序存储方式主要用于线性数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。链式存储结构的存储空间不一定是连续的。
5.D。【解析】数据流图是从数据传递和加工的角度,来描述数据流从输入到输出的移动变换过程。其中带箭头的线段表示数据流,数据沿箭头方向传递,一般在旁边标注数据流名。
6.B。【解析】在软件开发中,需求分析阶段常使用的工具有数据流图(DFD)、数据字典(DD)、判断树和判断表。
7.A。【解析】对象具有如下特征:标识唯一性、分类性、多态性、封装性和模块独立性。
8.B。【解析】两个实体集间的联系可以有一对一的联系、一对多或多对一联系、多对多联系。由于一个宿舍可以住多个学生,所以它们的联系是一对多联系。
9.C。【解析】数据管理技术的发展经历了3个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。人工管理阶段无共享,冗余度大;文件管理阶段共享性差,冗余度大;数据库系统管理阶段共享性大,冗余度小。
10.C。【解析】本题考查Java中的布局管理器。FlowLayout是Pane和Applet默认的布局管理器,构件在容器中从上到下、从左到右进行放置,所以选项C为正确答案。BorderLayout是Window、Frame和Dialog的默认布局管理器,在BorderLayout布局管理器中构件分成5个区域,每个区域只能放置一个构件。GridLayout使容器中各个构件呈网状布局,平均占据容器的空间。GardLayout把容器分成许多层,每层只能放置一个构件。
考无忧小编有话说:
每年缺考率超过10%,说明有部分同学还是会在备考中放弃自己,因为没时间,因为太难了,甚至因为害怕了,这些都是失败的理由!人,不逼自己一把,你永远不知道自己是多么优秀!短时间,也可以爆发大能量!赶紧复习以上的二级Java试题,刷完计算机等级考试题库!
文章推荐:
2018年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的最新资讯吗?点击进入>>>计算机等级考试题库资讯