计算机二级JAVA选择题及答案
计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。那么计算机二级JAVA选择题会怎么考?以下仅供参考!
1.下面排序算法中,平均排序速度最快的是()。
A.冒泡排序法
B.选择排序法
C.交换排序法
D.堆排序法
2.软件需求分析一般应确定的是用户对软件的()。
A.功能需求
B.非功能需求
C.性能需求
D.功能需求和非功能需求
3.下列说法中,不属于数据模型所描述的内容是()。
A.数据结构
B.数据操作
C.数据查询
D.数据约束
4.下列描述中,不是线性表顺序存储结构特征的是()
A.不便于插入和删除
B.需要连续的存储空间
C.可随机访问
D.需另外开辟空间来保存元素之间的关系
5.有下列二叉树,对此二叉树前序遍历的结囊为()。
A.ACBEDGFH
B.ABDGCEHF
C.HGFEDCBA
D.ABCDEFGH
6.使用白盒测试法时,确定测试数据应该根据()和指定的覆盖标准。
A.程序的内部逻辑
B.程序的复杂结构
C.使用说明书
D.程序的功能
7.关系数据库管理系统能实现的专门关系运算包括()。
A.排序、索引、统计
B.选择、投影、连接
C.关联、更新、排序
D.显示、打印、制表
8.将E-R图转换到关系模式时,实体与实体间的联系可以表示成()。
A.属性
B.关系
C.键
D.域
9.下列有关数组的叙述中,错误的是()。
A.在同一个环境下,数组与内存变量可以同名,两者互不影响
B.可以用一维数组的形式访问二维数组
C.在可以使用简单内存变量的地方都可以使用数组元素
D.一个数组中各元素的数据类型可以相同,也可以不同
10.下列选项中,不属于模块间耦合的是()。
A.数据耦合
B.标记耦合
C.异构耦合
D.公共耦合
11.在Java中,负责对字节代码解释执行的是()。
A.垃圾回收器
B.虚拟机
C.编译器
D.多线程机制
12.下列叙述中,正确的是()。
A.Java语言的标识符是区分大小写的
B.源文件名与public类名可以不相同
C.源文件的扩展名为.jar
D.源文件中public类的数目不限
13.下列属于合法的Java标识符的是()。
A._cat
B.5books
C.+static
D.-3.14159
14.在Java中,表示换行符的转义字符是()。
A.
B.f
C.’n’
D.ddd
15.在Java中,由Java编译器自动导入而无需在程序中用import导人的包是()。
A.java.applet
B.java.awt
C.java.util
D.java.lang
16.“++”运算符的操作数个数是()。
A.1个
B.2个
C.3个
D.4个
17.在switch(expression)语句中,expression的数据类型不能是()。
A.double
B.char
C.byte
D.short
18.下列叙述中,错误的是()。
A.父类不能替代子类
B.子类能够替代父类
C.子类继承父类
D.父类包含子类
19.已知:int[]a=newint[100];在下列给出的数组元素中,非法的是()。
A.a[0]
B.a[1]
C.a[99]
D.a[100]
20.在文件类提供的方法中,用于创建目录的方法是()。
A.mkdir()
B.mkdirs()
C.list()
D.listRoots()
21.下列程序的执行结果为()。
publicclassc3
{
publicstaticvoidmain(Stringargs[])
{
inti=13,j=10;
if(i-->j)
i++:
elsej--;
System.out.println(i+" "+j);
}
}
A.1310
B.1211
C.1111
D.1212
22.下列程序的输出结果是()。
publicclassTest
{
voidprintValue(intm)
{
do{
System.out.println("Thevalueis"+m)
}
while(--m>10)
}
publicstaticvoidmain(Stringargs[])
{
inti=10;
Testt=newTest():
t.printValue(i):
}
}
A.Thevalueis8
B.Thevalueis9
C.Thevalueisl0
D.Thevalueis11
23.for(intx=0,y=0;!x&&y<=5;y++)语句执行循环的次数是()。
A.0
B.5
C.6
D.无穷
24.下列描述异常含义的各选项中,正确的是()。
A.程序编译错误
B.程序语法错误
C.程序自定义的异常事件
D.程序编译或运行时发生的异常事件
25.一个JavaApplication运行后,在系统中是作为一个()。
A.线程
B.进程
C.进程或线程
D.不确定
26.Thread类的方法中用于修改线程名字的方法是()。
A.setName()
B.reviseName()
C.getName()
D.checkAccess()
27.在创建线程时可以显式地指定线程组,此时可供选择的线程构造方法有()种。
A.1
B.2
C.3
D.4
28.要串行化某些类的对象,这些类必须实现()。
A.Serializable接口
B.java.i0.Exceptionlizable接口
C.java.i0.Datalnput接口
D.DataOutput接口
29.关于集合类描述正确的是()。
Ⅰ.集合类中容纳的都是指向Object类对象的指针
Ⅱ.集合类容纳的对象都是Object的类例
Ⅲ.只能容纳对象
IV.只能容纳基本数据类型
A.Ⅰ、Ⅱ、Ⅲ
B.Ⅰ、Ⅱ
C.Ⅰ、Ⅲ
D.Ⅰ、Ⅱ、Ⅲ、IV
30.下列组件不能添加进Frame主窗口的是()。
A.Panel
B.CheckBox
C.Dialog
D.Choice
31.下面程序段的输出结果为()。
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.编译不通过
32.下面程序段的输出结果为()。
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
33.在匹配器(Matcher)类中,用于寻找下一个模式匹配串的方法是()。
A.staticbooleanmatches()
B.booleanmatcher.find()
C.intmatcher.start()
D.intmatcher.end()
34.下列说法正确的是()。
A.共享数据的所有访问都必须作为临界区
B.用synchronized保护的共享数据可以是共有的
C.Java中对象加锁不具有可重人性
D.对象锁不能返回
35.在JavaApplet程序中,如果对发生的事件做出响应
和处理的时候,应该使用下列()语句。
A.importjava.awt.event.*;
B.importjava.io.*;
C.importjava.awt.*;
D.importjava.applet.*;
36.在一个容量为32的循环队列中,若头指针front一
3,尾指针rear=2,则该循环队列中 共有元素个数为()。
A.29
B.30
C.31
D.32
37.Java语言中如果要使用某个包中的类时,需要使用()导人。
A.inport
B.outport
C.import
D.input
38.执行下面程序段的输出结果为()。
publicclassQ
{
publicstaticvoidmain(Stringargv[])
{
intanar[]一newint[5];
System.out.println(anar[0]);
}
}
A.0
B.1
C.2
D.5
39.使得线程放弃当前分得的CPU时间,但不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU时间的方法是()。
A.time()
B.yield()
C.load()
D.min()
40.以下程序计算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.D。【解析】在各种排序方法中,快速排序法和堆排序法的平均速度是最快的,因为它们的时间复杂度都是O(nlog2n),其他的排序算法的时间复杂度大都是O(n2)。
2.D。【解析】软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求,使用户明确自己的任务。因此,需求分析应确定用户对软件的功能需求和非功能需求。
3.C。【解析】数据模型所描述的内容包括三个部分,它们是数据结构、数据操作和数据约束。其中,数据结构主要描述数据的类型、内容、性质及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式;数据约束主要描述数据结构内数据间的语法和语义联系,它们之间的制约与依存关系,以及数据的动态变化的规则,用以保证数据的正确、有效与相容。
4.D。【解析】线性表特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此不需要另外开辟空间来保存元素之间的关系。
5.B。【解析】二叉树的前序遍历是指,先访问根结点,再访问左子树,最后访问右子树。并且在访问左右子树时,也是先访问其根结点,再访问左右子树。
6.A。【解析】白盒测试是把测试对象看做一个打开的盒子,允许测试人员利用程序内部的逻辑结构及相关信患来设计或选择测试用例,对程序所有的逻辑路径进行测试。
7.B。【解析】关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。
8.B。【解析】将E-R图转换成指定DBMS中的关系模式是数据库逻辑设计的主要工作。从E-R图到关系模式的转换是比较直接的,实体和联系都可以表示成关系。
9.A。【解析】整个数组的数据类型为A(Array),而各个数组元素可以分别存放不同类型的数据。在使用数组和数组元素时,应注意如下问题。在任何能使用简单内存变量的地方都可以使用数组元素。在同一个环境下,数组名不能与简单变量名重复。可以用一维数组的形式访问二维数组。
10.C。【解析】模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成7级,分别是非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合和内容耦合。其中没有异构耦合这种方式。
11.B。【解析】本题考查Java语言的虚拟机。Java语言的执行模式是半编译半解释型。Java编写好的程序首先由编译器转换为标准字节代码,然后由Java虚拟机去解释执行。字节代码是一种二进制文件,但不能直接在操作系统上运行,可看做虚拟机的机器码。虚拟机把字节码程序与各操作系统和硬件分开,使Java程序独立于平台。Java中的虚拟机是非常重要的概念,是Java语言的基础,掌握后有助于理解Java语言的实现。
12.A。【解析】本题考查考生对Java语言概念的理解。这些属于考试重点内容。Java语言和C语言不同,它是区分大小写的,选项A正确。Java程序的源文件扩展名为.class,.jar文件是由归档工具jar生成的。源文件中的public类的数目只能有0个或l个,用来指定应用程序类名,也是源文件名。
13.A。【解析】本题考查Java标识符的命名规则,是考试的重点内容。Java中标识符的命名规则是标识符以字母、下画线或美元符作为首字符的字符串序列,;标识符是区分大小写的;标识符的字符数没有限制。留此可见,Java中标识符不能以数字开头,所以选项B错误,不能以“+”开头,选项C错误,不能以“-”开头,选项D错误,只有选项是正确答案。
14.A。【解析】本题考查Java转义符的概念。在Java中用反斜杠()开头, 表示换行,所以选项A正确。f表示走纸换页,kddd表示l~3位的八进制数据ddd所代表的字符。
15.D。【解析】本题考查Java中包的概念。Java中用import语句来导入包,但需注意的是,Java语言中的java.lang包是由编译器直接自动导入的,因此,编程时使用该包中的类,可省去import导入。使用其他包中的类,必须用import导入,选项D为正确答案。
16.A。【解析】本题考查Java运算符的概念。程序涉及的数据处理,都是通过运算符和表达式来操作,是程序设计的基础,因此务必掌握。按照操作数的数目划分,运算符可以分为一元运算符:++,--,+,-;二元运算符:+,-,>;三元运算符:?:。所以本题正确答案是选项A。简单地说,就是有几个操作数就是几元运算符;反过来,是几元运算符就有几个操作数。
17.A。【解析】本题考查考生对switch(expression)语句的理解。表达式expression只能返回int、byte、short和char,题目中的double是不正确的。同时还要注意,多分支结构中,case子句的值必须是常量,而且所有case子句中的值应是不同的,default子句是任选的。
18.D。【解析】本题考查继承的概念。继承性是面向对象方法的一个重要基本特征,它使代码可重用,可降低程序的复杂性。对一个类的继承也就是构建了一个子类,子类继承了父类的方法和状态,同时还可以向新类中增添新的方法和状态。重点掌握两点:子类方法的访问权限比父类的访问权限高,因此父类不能替代子类,但子类能够代替父类,选项A和选项B说法正确;子类方法不能产生比父类更多的异常。选项D为正确答案。
19.D。【解析】本题考查Java中数组的概念。对于数组的掌握,不能仅仅停留在概念上,更多的是能将所学的知识灵活运用。int[]a=newint[100]定义了一个数组a,含有100个整型元素。在Java中,数组元素的下标是从。开始的,因此上面定义的数组实际上下标是0~99,所以选项D错误。
20.A。【解析】本题考查文件类提供的方法。mkdir()是为目录操作提供酌方法,用来创建目录;mkdirs()也是为目录操作提供的方法,创建包含父目录的目录;list()是对文件名操作提供的方法,返回一个字符串数组,为该文件所在目录下的所有文件名列表;listRoots是为目录提供的方法,返回根目录结构。由此可见,只有选项A满足题目要求。
21.A。【解析】程序是由if-else语句构成的流程,分析判断条件,变量i和j比较,得到条件表达式的值为true,然后执行i-1,现在变量i的值为12,而j的值为10;由于条件表达式为true,则执行i++,因此i的值为13,并跳过else子句块,循环控制语句执行完毕,这时变量i和i的值分别为13和10。
22.C。【解析】此题考查的是do-while循环和“--”操作符的知识。do-while最少执行一次,在执行完d0中的内容后,判断while中的条件是否为true。如果为true,就再执行do中的内容,然后进行判断。以此类推,直到while的判断为false时退出循环,执行循环后面的内容。而“--”操作符的规则是,变量右边的“-”将先进行运算,然后才使
变量的值减一。而在变量左边的“--”,则先将变量的值减1再运算。本程序中i的值为10,当程序运行到do-while循环时,程序先执行一次循环,然后判断,因此选C。
23.C。【解析】此题是典型的考题。题中X=0,则!x永远为真,对于条件表达式!x&&y<=5只考虑y<=5,由于每次循环Y都增加1,而且y从0开始到5。所以可知总共循环了6次。
24.D。【解析】异常是在程序编译或者运行时所发生的可预料或者不可预料的异常事件,它会引起程序的中断,影响程序的正常运行。
25.B。【解析】线程为一个程序中的单个执行流;进程是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程。一个JavaApplication运行后,在系统中应该就是一个进程了(动态)。
26.A。【解析】Thread类的其他方法有setName()、getName()、activeCount()和setDaemon()等。其中,用于修改线程名字的方法是setName()。
27.C。【解析】线程组是由java.lang包中的ThreadGroup类实现的。在创建线程时可以显式地指定线程组,此时需要从如下三种线程构造方法中选择一种:
publicThread(ThreadGroupgroup,Runnabletarget);
publicThread(ThreadGroupgroup,Stringname);
publicThread(ThreadGroupgroup,Runnabletarget,
Stringname)。
28.A。【解析】Java语言中一个类只有实现Serializable接口,它的对象才是可串行化的。
29.A。【解析】本题主要考查集合类的特点。选项A正确,集合类是用来存放某类对象的。集合类有一个共同特点,就是它们只容纳对象。如果集合类中想使用简单数据类型,又想利用集合类的灵活性,可以把简单数据类型变成该数据类型类的对象,然后放入集合中处理,这表示集合类不能容纳基本数据类型,所以IV是不正确的选项B错误,集合只容纳对象;选项C错误,该选项少选了Ⅱ;选项D错误,错误原因同选项B。
30.C。【解析】本题考查对Java组件容器中添加容器的基本知识。选项A错误,Panel组件是容器,可以添加到Frame窗口;选项B错误,CheekBox组件是复选框组件,可以添加到Frame窗口;选项C正确,Dialog继承自Windows类,Windows类型(或子类)的对象不能包含在其他容器中;选项D错误,Choice组件是选择框组件,可以添加到Frame窗口。
31.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。
32.B。【解析】本题考查构造方法及构造方法重载。Test类有两个构造方法,即使用了方法重载技术。不带参数的构造方法对类的实例变量进行特定数值的赋值,而带参数的构造方法根据参数对类的实例变量进行赋值。TestObjl=newTest(12,45)语句调用的是Test(intx,inty),而TestObj2=newTest()调用的是Test(),注意根据参数个数来区分。
33.A。【解析】本题考查考生对Java中的匹配器(Mateher)类的理解。Matcher类用于将一个输入字符串input和模式串pattern相比较。Booleanmateher.find()方法用于寻找下一个模式匹配串;intmatcher.start()方法用于返回匹配串的一个起始索引整数值;intmatcher.end()方法用于返回匹配串的一个终止索引整数值。而用于输入字符串与模式串比较的方法是staticbooleanmatches(),选项A正确。
34.A。【解析】本题考查对象加锁的相关概念。对于对象加锁的使用有些注意事项。对象的锁在某些情况下可以由持有线程返回,比如当synchronized语句块执行完成后;当在synchronized语句块中出现异常;当持有锁的线程调用该对象的wait()方法,由此可见选项D说法错误。共享数据的所有访问都必须作为临界区,使用synchronized进行加锁控制,选项A说法正确。用synchronized保护的共享数据必须是私有的,选项B说法错误。Java中对象加锁具有可重入性,选项C错误。
35.C。【解析】本题考查对Java常用的各种包所包含的一些类的基本功能的理解。java.awt包是抽象窗口工具包,里面包括各种容器、组件、窗口布局管理器以及一些常用的类如Color、Font等,选项A满足题意。而java.applet包里面包括了小程序执行时必须要重载的一个类Applet,也就只有这一个类,选项D错误。java.io包主要是提供一些输入/输出类的,选项B不满足题意。java.awt.event包就包含了一些能够对事件做出响应和处理的一些标准类,选项A不满足题意。
36.C。【解析】设队列容量为m,rear>front,则队列中元素个数为rear-front:rear37.C。【解析】本题考查包的导入和使用。首先用package语句说明一个包,该包的层次结构必须与文件目录的层次相同,否则,在编译时可能出现找不到包的问题。Java语言中java.lang包是编译器自动导入,其他包中的类必须用import导入。
38.A。【解析】本题考查Java中数组的定义和初始化。在该方法里定义并动态初始化了一个整型数组anar,由于没有赋初值,系统默认的初始值是数组中的每个元素都为零。所以输出数组中的第一个元素anar[0]时,自然也是等于零。
39.B。【解析】本题考查线程阻塞的概念。yield()方法使得线程放弃当前分得的CPU时间,但是不使线程阻塞,印线程仍处于可执行状态,随时可能再次分得CPU时间。调用yield()的效果等价于调度程序认为该线程已执行了足够的时间从而转到另一个线程。
40.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。
【计算机二级JAVA选择题及答案】相关文章:
计算机二级Java习题及答案09-09
计算机二级考试《Java》试题及答案09-04
计算机二级《Java》上机试题及答案11-01
计算机二级考试Java试题及答案10-24
计算机二级MSoffice选择题及答案05-25
2017计算机二级Java强化题及答案07-01
计算机二级JAVA考试模拟试题及答案10-16
2017计算机二级JAVA预测题及答案08-24
2016计算机二级考试Java试题及答案06-24