全国计算机等级考试二级Java语言程序设计试题及答案三.docx
- 文档编号:30139927
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:26
- 大小:79.10KB
全国计算机等级考试二级Java语言程序设计试题及答案三.docx
《全国计算机等级考试二级Java语言程序设计试题及答案三.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级Java语言程序设计试题及答案三.docx(26页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级Java语言程序设计试题及答案三
一、选择题(每小题1分,共40小题,共40分)
1.下列叙述中正确的是()。
A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D.上述三种说法都不对
B。
【解析】与顺序存储结构相比,线性表的链式存储结构需要更多的空间存储指针域,因此,线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构。
2.下列叙述中正确的是()。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D.上述三种说法都不对
C。
【解析】栈是限制仅在表的一端进行插入和删除的运算的线性表,通常称插入、删除的这一端为栈顶,另一端称为栈底。
3.软件测试目的是()。
A.评估软件可靠性
B.发现并改正程序中的错误
C.改正程序中的错误
D.发现程序中的错误
D。
【解析】软件测试的目的主要是在于发现软件错误,希望在软件开发生命周期内尽可能早的发现尽可能多的bug。
4.下面描述中,不属于软件危机表现的是()。
A.软件过程不规范
B.软件开发生产率低
C.软件质量难以控制
D.软件成本不断提高
A。
【解析】①对软件开发的进度和费用估计不准确;②用户对已完成的软件系统不满意的现象时常发生;③软件产品的质量往往靠不住;④软件常常是不可维护的;⑤软件通常没有适当的文档;⑥软件成本在计算机系统总成本中所占的比例逐年上升;⑦软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
5.软件生命周期是指()。
A.软件产品从提出、实现、使用维护到停止使用退役的过程
B.软件从需求分析、设计、实现到测试完成的过程
C.软件的开发过程
D.软件的运行维护过程
A。
【解析】软件生命周期(SDLC,SystemsDevelopmentLifeCycle)是软件的产生直到退役的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。
6.面向对象方法中,继承是指()。
A.一组对象所具有的相似性质
B.一个对象具有另一个对象的性质
C.各对象之间的共同性质,
D.类之间共享属性和操作的机制
D。
【解析】继承:
在程序设计中,继承是指子类自动享用父类的属性和方法,并可以增加新的属性和方法的一种机制。
它是实现代码共享的重要手段,可以使软件更具有开放性、可扩充性.这是信息组织与分类的行之有效的方法,也是面向对象的主要优点之一。
继承又分为单重继承和多重继承,单重继承是指子类只能继承一个父类的属性和操作;而多重继承是指子类可以继承了多个父类的属性和操作。
Java是一种单重继承语言,而C++是一种多重继承语言。
7.层次型、网状型和关系型数据库划分原则是()。
A.记录长度
B.文件的大小
C.联系的复杂程度
D.数据之间的联系方式
D。
【解析】层次型、网状型和关系型数据库划分的原则是数据之间的联系方武。
8.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。
A.一对一
B.一对多
C.多对多
D.多对一
C。
【解析】一个工作人员对应多台计算机,一台计算机对应多个工作人员,则实体工作人员与实体计算机之间的联系是多对多。
9.数据库设计中反映用户对数据要求的模式是()。
A.内模式
B.概念模式
C.外模式
D.设计模式
C。
【解析】外模式,也称为用户模式。
在一个数据库模式中,有n个外模武,每一个外模式对应一个用户。
外模式保证数据的逻辑独立性。
内模式属于物理模式,因此,一个数据库只有一个内模式。
内模式规定了数据的存储方式、规定了数据操作的逻辑、规定了数据的完整性、规定了数据的安全性、规定了数据存储性能。
10.有三介关系R、S和T如下:
则由关系R和S得到关系T的操作是()。
A.自然连接
B.交
C.投影
D.并
A。
【解析】自然连接是将表中具有相同名称的列自动进行记录匹配。
11.下列关于顺序存储结构的叙述中,错误的是()。
A.存储密度大
B.某些非线性结构也可以采用顺序方法存储
C.结点中只有自身信息域,没有链接信息域
D.便于进行插入、删除等运算操作
D。
【解析】顺序结构每个结点只包含自身的信息域,且逻辑上相邻的结点物理上也是相邻的。
因此其存储密度大,但插入、删除运算操作不方便,需移动大量的结点。
12.有下三角矩阵A[0…10,0…10],按行优先顺序存放其非零元素,每个非零元素占两个字节,存放的基地址为100,则元素A[5,53的存放地址为()。
A.110
B.120
C.130
D.140
D。
【解析】A[5][5]元素存储的位置在第6行第6列,但由于矩阵A为下三角矩阵,所以A[5][5]之前的非零元素才计入地址内,因而所存储的非零元素的个数应为l+2+3+4+5+5=20,这些元素占用的空间为20×2=40字节,所以A[8][5]的存储位置为l00+40=140。
13.设数组data[0…m]作为循环队列Sq的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为()。
A.Sq↑.front:
=Sq十.front+1;
B.Sq↑.front:
=(Sq十.front+1)%maxsize;
C.Sq↑.rear:
=(sq十.rear+1)%maxsize;
D.Sq↑.front:
=(sq十.front+1)%(maxsize+1);
B。
【解析】循环队列采用的方法是:
假设向量sq↑.data[maxsize]是一个首尾相接的圆环,即sq↑.data[0]接在sq↑.data[maxsize-1]之后,我们将这种意义下的向量
称循环向量,并将循环向量中的队列称为循环队列。
若当前尾指针等于向量的上界,则再做入队列操作时,令尾指针等于向量的下界,这样就利用到已被删除的元素空间,克服假上溢现象。
因此入队操作时,在循环意义下的尾指针加l操作可描述为:
if(Sq↑.rear>=maxsize)sq↑.near:
=0;elsesq↑.rear++;如果利用“模运算”,上述循环意义下的
尾指针加l操作,可以更简洁地描述为:
sq↑.rear=(sq↑.rear+1)%maxsize。
同样,出队操作时,在循环意义下的头指针加1操作,也可利用“模运算”来实现:
sq↑.front:
=(sq↑.front+1)%max-size。
14.如果入栈序列为CEDB,以下哪一个是从栈中删除元素的序列?
()
A.BED
B.BDE
C.BEDC
D.BDEC
D。
【解析】根据栈的先进后出原则,可知从栈中删除的元素的序列为BDEC。
15.设待排序关键码序列为(25,18,9,33,67,82,53,95,12,70),要按关键码值递增的顺序进行排序,采取以第一个关键码为分界元素的快速排序法,第一趟排序完成后关键码95被放到第()个位置。
A.7B.8
C.9D.10
B。
【解析】快速排序(Quicksort)是对冒泡排序的一种改进。
它的基本思想是:
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
具体操作如下图:
进行第一趟排序完成后的结果如下:
12,18,9,25,67,82,53,95,33,70
所以第一趟排序完成后关键码95被放到第8个位置。
16.下列特点中不属于Java的是()。
A.多线程
B.多重继承
C.跨平台
D.动态性
B。
【解析Java不支持多重继承(子类只能有一个父类)。
17.Java的反汇编命令是()。
A.javap
B.javac
C.jdb
D.java
A。
【解析]javap命令是Java反汇编命令;javac命令是Java语言编译器,jdb是基于文本和命令行的调试工具,java命令是Java解释器。
18.下列变量定义中,不合法的是()。
A.intSX;
B.int_123;
C.intSummer2010_gross_sale;
D.int#dim;
D。
【解析】Java中标识符的命名规则为:
①区分大小写,例如a和A是两个变量;②标识符由字母、下画线、美元符号和数字组成,并且第一个字符不能是数字。
19.下列选项中为单精度数的是()。
A.2B.5.2
C.0.2fD.023
C。
【解析]Java中单精度常量以f或F结尾。
20.下列关于boolean类型的叙述中,正确的是()。
A.可以将boolean类型的数值转换为int类型的数值
B.可以将boolean类型的数值转换为字符串
C.可以将boolean类型的数值转换为char类型的数值
D.不能将boolean类型的数值转换为其他基本数据类型
D。
【解析】由于基本数据类型中boolean类型不是数字型,所以基本数据类型的转换是除了boolean类型以外的其他7种类型之间的转换。
21.若定义inta=2,b一2,下列表达式中值不为4的是()。
A.a*(++b)
B.a*(b++)
C.a+b
D.a*b
A。
【解析】++b,先自加,再计算,即a*(++b)等价于b=b+1;a*b。
22.下列可以获得构件前景色的方法是()。
A.getsize()
B.getForeground()
C.getBackground()
D.paint()
B。
【解析】A是获得控件大小,B是获得构件的前景色,C是获得构件的背景色,D是继承Applet的子类需要实现的方法。
23.下列程序的运行结果是()。
publicclasstest{
privateString[]data={¨10","10.5");
publicvoidfun(){
doubles=0:
for(inti=0;i<3;j++){
try{
s=s+Integer.parseInt(data[i]);
catch(Exceptione){
System.out.print("errorl:
"+data[i]);
}
}
}
publicstaticvoidmain(string[]args){
try{
testd=newtest():
d.fun():
}catch(Exceptione){
System.OUt.println("error2")
}
}
}
A.errorl:
10.5B.error2
C.errorl:
10.5error2D.以上都不对
C。
【解析】try-catch块是可以嵌套分层的,并且通过异常对象的数据类型来进行匹配,以找到正确的catchblock异常错误处理代码。
以下是通过异常对象的数据类型来进行匹配找到正确的catchblock的过程。
①首先在抛出异常的try-catch块中查找catchblock,按顺序先与第一个catchblock块匹配,如果抛出的异常对象的数据类型与catchblock中传入的异常对象的临时变量(就是catch语句后面参数)的数据类型完全相同,或是它的子类型对象,则匹配成功,进入到catchblock中执行,否则到第2步;
②如果有两个或更多的catchblock,则继续查找匹配第二个、第三个,直至最后一个catchblock,如匹配成功,则进入到对应的catchblock中执行,否则到第3步;
③返回到上一级的try-catch块中,按规则继续查找对应的catchblock。
如果找到,进入到对应的catchblock中执行,否则到第4步;
④再到上上级的try-catch块中,如此不断递归,直到匹配到顶级的try-catch块中的最后一个catchblock,如果找到,进入到对应的catchblock中执行;否则程序将会执行terminate()退出。
所以本题选C。
24.下列程序片段中,能通过编译的是()。
A.publicabstractclassAnimal{
publicvoidspeak();}
B.publicabstractclassAnimal{
publicvoldspeak()();}
C.publicclassAnimal{
pubilcabstractvoidspeak();}
D.publicabstractclassAnimal{
pubilcabstractvoidspeak()();}
A。
【解析】Java中一个类是一个abstract类的子类,它必须具体实现父类的abstract方法。
如果一个类中含有abstract方法,那么这个类必须用abstract来修饰(abstract类
也可以没有abstract方法)。
有abstract方法的父类只声明,由继承他的子类实现。
所以选A。
25.下列不属于接口WindowListener的方法是()。
A.windowClosing()
B.windowClosed()
C.windowMinimized()
D.windowOpened()
C。
【解析】接口WindowListener包括以下方法:
windowActivated、windowDeactivated、windowClosing、windowClosed、windowlconified、windowDeiconified、windowOpened方法。
所以选C。
26.下列选项中,不能输出100个整数的是()。
A.for(inti=0;i<100;i++)
System.out.println(i);
B.inti=0;
do{
System.out.println(i);
i++:
}while(i<100);
C.inti=0:
while(i<100){
System.out.println(i);
i++:
}
D.inti=0:
while(i<100){
i++:
if(i<100)continue:
System.out.println(i);
}
D。
【解析]continue语句的作用是不执行循环体后面的语句直接进入循环判断阶段。
所以本题选D。
27.类变量必须带有的修饰符是()。
A.static
B.final
C.public
D.volatile
A。
【解析】类变量用static修饰。
28.下列选项中属于字符串常量的是()。
A.·abc·
B."abe"
C.[abc]
D.(abc)
B。
【解析】Java中字符串常量由双引号和其中间的字符所组成。
29.Java程序默认引用的包是()。
A.java.text包B.java.awt包
C.java.lang包D.java.util包
C。
【解析】java.lang包提供Java编程语言进行程序设计的基础类。
java.1an9包是编译器自动导入的。
30.为使下列代码正常运行,应该在下画线处填入的选项是()。
ObjectInputStreamIn=
new(newFilelnputStream("employee.
doc"));
Employee[]newstaff=(Employee[])in.readObject
();
In.close();
A.Reader
B.InputStream
C.Objectlnput
D.ObjectlnputStream
D。
【解析】ObjectlnputStream类和ObjectOutputStream类分列是InputStream类和OutputStream类的子类。
ObjectlnputStream类和ObjectOutputStream类创建的对象被称为对象输入流和对象输出流。
对象输入流使用readObject()方法读取一个对象到程序中。
31.下列代码将对象写入的设备是()。
ByteArrayOutputStreambout=newByteArrayOut-
putStream();
ObjectOutputStreamout=newObjectOutputStream
(bout);
out.writeObject(this);
out.close();
A.内存
B.硬盘
C.屏幕
D.网络
A。
【解析】()bject()utputStream类的构造方法是ObjectOutputStream(0utputStreamout)。
Java中的二进制流全都写入到内存中。
32.为使下列代码正常运行,应该在下画线处填入的选项是()。
int[]numbers=newint[n];
for(inti=0;i
numbers[i]=i+1:
A.sizeB.length
C.dimensionD.measurement
B。
【解析】length表示数组的长度。
33.为使下列代码正常运行,应该在下画线处填入的选项是()。
abstractclassperson{
publicPerson(Stringn){
name=n:
}
publicStringgetDescription();
publicStringgetName(){
returnname;
}
privatestringname;
}
A.static
B.private
C.abstract
D.final
C。
【解析】抽象类中的抽象方法可以只声明,定义延迟到其子类。
34.下列能够正确创建线程的方法是(.)。
Ⅰ.继承java.lang.Thread类,并重写run()方法
Ⅱ.继承java.lang.Runnable类,并重写start()方法
Ⅲ.实现java.1ang.Thread接口,并实现run()方法
IV.实现java.lang.Runable接口,并实现run()方法
A.Ⅰ,ⅢB.Ⅱ,IV
C.Ⅱ,ⅢD.I,IV
D。
【解析】用Thread类的构造方法Thread(Runnabletarget)创建线程对象时,构造方法中的参数必须是一个具体的对象,该对象称作线程的目标对象,创建目标对象的类必须要实现Runnable接口。
35.下列线程状态转换序列,在线程实际运行中可能出现的序列是()。
A.新建→运行→阻塞→终止
B.……运行→阻塞→可运行→终止
C.……可运行→运行→阻塞→运行……
D.新建→可运行→运行→阻塞→可运行……
D。
【解析】线程状态转换序列如下图所示:
,故选D。
36.为了支持压栈线程与弹栈线程之间的交互与同步,应
在下画线处填入的选项是()。
publicclassStackTest{
privateintidx=0;
privateint[]data=newint[8]
publicvoidpush(inti){
synchronized(this){
;
data(idx)=i:
idx++:
}
}
}……
A.this.notify()
B.interrupt()
C.this.wait()
D.sleep()
A。
【解析】当一个线程使用的同步方法中用到某个变量,而且需要其他线程修改此变量后才能复合本线程的需要,那么可以使用wait()方法。
wait()方法的作用是使本线程等待,并允许其他线程使用此同步方法。
当其他线程使用完后应使用notify()或者notifyAll()方法允许其他线程使用此同步方法。
Interrupt()方法的作用是在run方法执行完之前就消灭此线程,而sleep()方法的作用是延迟一段时间后执行。
因为本题是为了支持压栈线程与弹栈线程之间的交互与同步,所以选A。
37.对下列程序的叙述中,正确的是()。
1)publicclassXextendsThreadimplementsRunnable{
2)publicvoidrun(){
3)system.out.println("thisisrun()");
4)}
5)publicstaticvoidmain(Stringargs[]){
6)Threadt=newThread(newX());
7)t.start();
8)}
9)}
A.第l行会产生编译错误
B.第6行会产生编译错误
C.第6行会产生运行错误
D.程序正常运行
D。
【解析】程序正常运行打印thisisrun()。
用Thread类的构造方法Thread(Runnabletarget)创建线程对象时,构造方法中的参数必须是一个具体的对象,该对象称作线程的目标对象,创建的目标对象的类必须实现Runnable接口。
38.下列关于Applet的叙述中,正确的是()。
A.Applet不仅可以嵌入到浏览器中运行,还可以独立运行
B.Applet的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 Java 语言程序设计 试题 答案