如果暂时没有更好的出路,请选择努力!如果暂时没有通过全国计算机等级考试的信心,请选择努力刷二级Java练习题!
二级Java练习题
【1】
1.一个栈的初始状态为空。现将元素l、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把容器分成许多层,每层只能放置一个构件。
【2】
1.在Java中,负责对字节代码解释执行的是()。
A.垃圾回收器
B.虚拟机
C.编译器
D.多线程机制
2.下列叙述中,正确的是()。
A.Java语言的标识符是区分大小写的
B.源文件名与public类名可以不相同
C.源文件的扩展名为.jar
D.源文件中public类的数目不限
3.下列属于合法的Java标识符的是()。
A._cat
B.5books
C.+static
D.-3.14159
4.在Java中,表示换行符的转义字符是()。
A.\n
B.\f
C.’n’
D.\ddd
5.在Java中,由Java编译器自动导入而无需在程序中用import导人的包是()。
A.java.applet
B.java.awt
C.java.util
D.java.lang
6.“++”运算符的操作数个数是()。
A.1个
B.2个
C.3个
D.4个
7.在switch(expression)语句中,expression的数据类型不能是()。
A.double
B.char
C.byte
D.short
8.下列叙述中,错误的是()。
A.父类不能替代子类
B.子类能够替代父类
C.子类继承父类
D.父类包含子类
9.已知:int[]a=newint[100];在下列给出的数组元素中,非法的是()。
A.a[0]
B.a[1]
C.a[99]
D.a[100]
10.在文件类提供的方法中,用于创建目录的方法是()。
A.mkdir()
B.mkdirs()
C.list()
D.listRoots()
1.B。【解析】本题考查Java语言的虚拟机。Java语言的执行模式是半编译半解释型。Java编写好的程序首先由编译器转换为标准字节代码,然后由Java虚拟机去解释执行。字节代码是一种二进制文件,但不能直接在操作系统上运行,可看做虚拟机的机器码。虚拟机把字节码程序与各操作系统和硬件分开,使Java程序独立于平台。Java中的虚拟机是非常重要的概念,是Java语言的基础,掌握后有助于理解Java语言的实现。
2.A。【解析】本题考查考生对Java语言概念的理解。这些属于考试重点内容。Java语言和C语言不同,它是区分大小写的,选项A正确。Java程序的源文件扩展名为.class,.jar文件是由归档工具jar生成的。源文件中的public类的数目只能有0个或l个,用来指定应用程序类名,也是源文件名。
3.A。【解析】本题考查Java标识符的命名规则,是考试的重点内容。Java中标识符的命名规则是标识符以字母、下画线或美元符作为首字符的字符串序列,;标识符是区分大小写的;标识符的字符数没有限制。留此可见,Java中标识符不能以数字开头,所以选项B错误,不能以“+”开头,选项C错误,不能以“-”开头,选项D错误,只有选项是正确答案。
4.A。【解析】本题考查Java转义符的概念。在Java中用反斜杠(\)开头,\n表示换行,所以选项A正确。\f表示走纸换页,kddd表示l~3位的八进制数据ddd所代表的字符。
5.D。【解析】本题考查Java中包的概念。Java中用import语句来导入包,但需注意的是,Java语言中的java.lang包是由编译器直接自动导入的,因此,编程时使用该包中的类,可省去import导入。使用其他包中的类,必须用import导入,选项D为正确答案。
6.A。【解析】本题考查Java运算符的概念。程序涉及的数据处理,都是通过运算符和表达式来操作,是程序设计的基础,因此务必掌握。按照操作数的数目划分,运算符可以分为一元运算符:++,--,+,-;二元运算符:+,-,>;三元运算符:?:。所以本题正确答案是选项A。简单地说,就是有几个操作数就是几元运算符;反过来,是几元运算符就有几个操作数。
7.A。【解析】本题考查考生对switch(expression)语句的理解。表达式expression只能返回int、byte、short和char,题目中的double是不正确的。同时还要注意,多分支结构中,case子句的值必须是常量,而且所有case子句中的值应是不同的,default子句是任选的。
8.D。【解析】本题考查继承的概念。继承性是面向对象方法的一个重要基本特征,它使代码可重用,可降低程序的复杂性。对一个类的继承也就是构建了一个子类,子类继承了父类的方法和状态,同时还可以向新类中增添新的方法和状态。重点掌握两点:子类方法的访问权限比父类的访问权限高,因此父类不能替代子类,但子类能够代替父类,选项A和选项B说法正确;子类方法不能产生比父类更多的异常。选项D为正确答案。
9.D。【解析】本题考查Java中数组的概念。对于数组的掌握,不能仅仅停留在概念上,更多的是能将所学的知识灵活运用。int[]a=newint[100]定义了一个数组a,含有100个整型元素。在Java中,数组元素的下标是从。开始的,因此上面定义的数组实际上下标是0~99,所以选项D错误。
10.A。【解析】本题考查文件类提供的方法。mkdir()是为目录操作提供酌方法,用来创建目录;mkdirs()也是为目录操作提供的方法,创建包含父目录的目录;list()是对文件名操作提供的方法,返回一个字符串数组,为该文件所在目录下的所有文件名列表;listRoots是为目录提供的方法,返回根目录结构。由此可见,只有选项A满足题目要求。
【3】
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);
11.使用白盒测试法时,确定测试数据应该根据()和指定的覆盖标准。
A.程序的内部逻辑
B.程序的复杂结构
C.使用说明书
D.程序的功能
12.关系数据库管理系统能实现的专门关系运算包括()。
A.排序、索引、统计
B.选择、投影、连接
C.关联、更新、排序
D.显示、打印、制表
13.将E-R图转换到关系模式时,实体与实体间的联系可以表示成()。
A.属性
B.关系
C.键
D.域
14.下列有关数组的叙述中,错误的是()。
A.在同一个环境下,数组与内存变量可以同名,两者互不影响
B.可以用一维数组的形式访问二维数组
C.在可以使用简单内存变量的地方都可以使用数组元素
D.一个数组中各元素的数据类型可以相同,也可以不同
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。
11.A。【解析】白盒测试是把测试对象看做一个打开的盒子,允许测试人员利用程序内部的逻辑结构及相关信患来设计或选择测试用例,对程序所有的逻辑路径进行测试。
12.B。【解析】关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。
13.B。【解析】将E-R图转换成指定DBMS中的关系模式是数据库逻辑设计的主要工作。从E-R图到关系模式的转换是比较直接的,实体和联系都可以表示成关系。
14.A。【解析】整个数组的数据类型为A(Array),而各个数组元素可以分别存放不同类型的数据。在使用数组和数组元素时,应注意如下问题。在任何能使用简单内存变量的地方都可以使用数组元素。在同一个环境下,数组名不能与简单变量名重复。可以用一维数组的形式访问二维数组。
【4】
1). 下列代码中,将引起一个编译错误的行是____。1)publicclassTest{2)intm,n;3)publicTest(){}4)publicTest(inta){m=a;}5)publicstaticvoidmain(Stringargs[]){6)Testt1,t2;7)intj,k;8)j=0;k=0;9)t1=newTest();10)t2=newTest(j,k);11)}12)}
A.第3行
B.第5行
C.第6行
D.第10行
答案:D
2). 若某线性表中最常用的操作是取第I个元素和找第I个元素的前趋元素,则采用____存储方式最节省时间。
A.顺序表
B.单链表
C.双链表
D.单循环链表
答案:A
3). 下列属于正则表达式的是
A.一个数组
B.一组二进制数据
C.一个字符串
D.一个公式
答案:C
4). 以下选项中循环结构合法的是
A.while (int i<7){i++;System.out.println("i is "+i);}
B.int j=3;while(j){System.out.println("j is "+j);}
C.int j=0;for(int k=0;j+k!=10;j++,k++){System.out.println("j is "+j+"k is "+k);}
D.int j=0;do{System.out.println("j is "+j++);if(j==3){continue loop;}}while(j<10);
答案:C
5). 下列关于栈的叙述中的是
A.在栈中只能插入数据
B.在栈中只能删除数据
C.栈是先进先出的线性表
D.栈是先进后出的线性表
答案:D
6). 下列描述中的是____。
A.程序就是软件
B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体
D.软件是程序、数据与相关文档的集合
答案:D
7). 对下面四个序列用快速排序的方法进行排序,以序列的第一个元素为基础进行划分。在第一趟划分过程中,元素移动次数最多的序列是____。
A.82,75,70,16,10,90,68,23
B.23,10,16,70,82,75,68,90
C.70,75,68,23,10,16,90,82
D.70,75,82,90,23,16,10,68
答案:D
8). 编译运行以下程序后,关于输出结果的说法的是public class Conditional{public static void main(String args[]){int x=4;System.out.println("value is "+((x>4)?99.9:9));}}
A.输出结果为value is 99.99
B.输出结果为value is 9
C.输出结果为value is 9.0
D.编译错误
答案:C
9). WindowListener中可以实现窗口关闭功能的方法是
A.public void windowOpened(WindowEvent e)
B.public void windowClosed(WindowEvent e)
C.public void windowClosing(WindowEvent e)
D.public void windowDeactivated(WindowEvent e)
答案:C
10). Swing与aWT的区别不包括
A.Swing是由纯Java实现的轻量级构件
B.Swing没有本地代码
C.Swing不依赖操作系统的支持
D.Swing支持图形用户界面
答案:D
【5】
1). 下列关于for循环和while循环的说法中哪个是的?
A.while循环能实现的操作,for循环都能实现
B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果
C.两种循环在任何情况下都可以相互转换
D.两种循环结构中都必须有循环体,循环体不能为空
答案:D
2). 注释的基本原则不包括
A.注释应该增加代码的清晰度
B.注释要简洁
C.在写代码之前写注释
D.尽量给每一条语句加注释
答案:D
3). 下列说法错误的是
A.switch语句只能处理等式,而if语句还可以处理关系表达式和逻辑表达式。
B.可以使用throw语句人为地引发异常。
C.可以用final说明变量为一个常量。
D.Java的字节代码是一种与平台无关的代码,即它与具体的系统是相关的。
答案:D
4). Java 语言中,对当前对象的父类对象进行引用的关键字是( )。
A.case
B.super
C.char
D.break
答案:B
5). 自定义的异常类可从( )类继承。
A.Error
B.AWTError
C.VirtualMachineError
D.Exception及其子集
答案:D
6). 使得线程放弃当前分得的CPU 时间,但不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU时间的方法是( )。
A.ti me()
B.yield()
C.load()
D.mi n()
答案:B
7). 若干进程之间相互合作,共同完成一项任务,进程的这种协同工作关系称为( )。
A.异步
B.同步
C.并发
D.互斥
答案:B
8). 下列叙述中错误的是( )。
A.线性表是由n个元素组成的一个有限序列
B.线性表是一种线性结构
C.线性表的所有结点有且仅有一个前件和后件
D.线性表可以是空表
答案:C
9). 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为( )。
A.GEDHFBCA
B.DGEBHFCA
C.ABCDEFGH
D.ACBFEDHG
答案:B
10). 一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序历结果为( )。
A.ACFBED
B.DFBECA
C.ABCDEF
D.DEBFCA
答案:D
刷完以上的二级Java练习题了吗?
考无忧小编祝大家:
刷的计算机等级考试题库都考,考的都会,蒙的全对,考神附体,全部都过!预祝大家都能够顺利考取计算机等级证书。考无忧小编等大家的好消息!
文章推荐:
2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的最新资讯吗?点击进入>>>计算机等级考试题库资讯