一、选择题(每小题1分,共40小题,共40分)
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.记录长度
B.文件的大小
C.联系的复杂程度
D.数据之间的联系方式
8.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。
A.一对一
B.一对多
C.多对多
D.多对一
9.数据库设计中反映用户对数据要求的模式是()。
A.内模式
B.概念模式
C.外模式
D.设计模式
10.有三介关系R、S和T如下:
则由关系R和S得到关系T的操作是()。
A.自然连接
B.交
C.投影
D.并
点击进入>>全国计算机等级考试真题题库全套最新考试资料
11.下列关于顺序存储结构的叙述中,错误的是()。
A.存储密度大
B.某些非线性结构也可以采用顺序方法存储
C.结点中只有自身信息域,没有链接信息域
D.便于进行插入、删除等运算操作
12.有下三角矩阵A[0…10,0…10],按行优先顺序存放其非零元素,每个非零元素占两个字节,存放的基地址为100,则元素A[5,53的存放地址为()。
A.110
B.120
C.130
D.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);
14.如果入栈序列为CEDB,以下哪一个是从栈中删除元素的序列?()
A.BED
B.BDE
C.BEDC
D.BDEC
15.设待排序关键码序列为(25,18,9,33,67,82,53,95,12,70),要按关键码值递增的顺序进行排序,采取以第一个关键码为分界元素的快速排序法,第一趟排序完成后关键码95被放到第()个位置。
A.7B.8
C.9D.10
16.下列特点中不属于Java的是()。
A.多线程
B.多重继承
C.跨平台
D.动态性
17.Java的反汇编命令是()。
A.javap
B.javac
C.jdb
D.java
18.下列变量定义中,不合法的是()。
A.intSX;
B.int_123;
C.intSummer2010_gross_sale;
D.int#dim;
19.下列选项中为单精度数的是()。
A.2B.5.2
C.0.2fD.023
20.下列关于boolean类型的叙述中,正确的是()。
A.可以将boolean类型的数值转换为int类型的数值
B.可以将boolean类型的数值转换为字符串
C.可以将boolean类型的数值转换为char类型的数值
D.不能将boolean类型的数值转换为其他基本数据类型
21.若定义inta=2,b一2,下列表达式中值不为4的是()。
A.a*(++b)
B.a*(b++)
C.a+b
D.a*b
22.下列可以获得构件前景色的方法是()。
A.getsize()
B.getForeground()
C.getBackground()
D.paint()
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.以上都不对
24.下列程序片段中,能通过编译的是()。
A.publicabstractclassAnimal{
publicvoidspeak();}
B.publicabstractclassAnimal{
publicvoldspeak()();}
C.publicclassAnimal{
pubilcabstractvoidspeak();}
D.publicabstractclassAnimal{
pubilcabstractvoidspeak()();}
25.下列不属于接口WindowListener的方法是()。
A.windowClosing()
B.windowClosed()
C.windowMinimized()
D.windowOpened()
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);
}
27.类变量必须带有的修饰符是()。
A.static
B.final
C.public
D.volatile
28.下列选项中属于字符串常量的是()。
A.·abc·
B."abe"
C.[abc]
D.(abc)
29.Java程序默认引用的包是()。
A.java.text包B.java.awt包
C.java.lang包D.java.util包
30.为使下列代码正常运行,应该在下画线处填入的选项是()。
ObjectInputStreamIn=
new(newFilelnputStream("employee.
doc"));
Employee[]newstaff=(Employee[])in.readObject
();
In.close();
A.Reader
B.InputStream
C.Objectlnput
D.ObjectlnputStream
31.下列代码将对象写入的设备是()。
ByteArrayOutputStreambout=newByteArrayOut-
putStream();
ObjectOutputStreamout=newObjectOutputStream
(bout);
out.writeObject(this);
out.close();
A.内存
B.硬盘
C.屏幕
D.网络
32.为使下列代码正常运行,应该在下画线处填入的选项是()。
int[]numbers=newint[n];
for(inti=0;i numbers[i]=i+1:
A.sizeB.length
C.dimensionD.measurement
33.为使下列代码正常运行,应该在下画线处填入的选项是()。
abstractclassperson{
publicPerson(Stringn){
name=n:
}
publicStringgetDescription();
publicStringgetName(){
returnname;
}
privatestringname;
}
A.static
B.private
C.abstract
D.final
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
35.下列线程状态转换序列,在线程实际运行中可能出现的序列是()。
A.新建→运行→阻塞→终止
B.……运行→阻塞→可运行→终止
C.……可运行→运行→阻塞→运行……
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()
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.程序正常运行
38.下列关于Applet的叙述中,正确的是()。
A.Applet不仅可以嵌入到浏览器中运行,还可以独立运行
B.Applet的主类要定义为Applet类或JApplet类的子类
C.同一个页面中的Applet之间不能通信
D.Applet不支持多线程
39.当一个Applet所在的Web页面被其他页面覆盖后,不可能被调用的Applet方法是()。
A.destroy()
B.init()
C.stop()
D.start()
二、基本操作题(共18分)
本题分别比较两个字符串"A"和"a"是否相等,并比较两个字符"A"和"a"是否相等,并输出比较结果。
publicclassjaval{
publicstaticvoidmain(String[]args){
;
cl=’A’;c2=’a’;
Stringstrl=newString("A"),str2=newString
("a"):
if()
System.Out.println("char"+c1+"equals"+"char"
+c2);
else
System.OUt.println("char"+cl+"doesn’tequal
"+"char"+c2);
if()
System.out.println("string"+strl+"equals"+
"string"+str2):
else
System.OUt.println("string"+strl+"doesn’te-
qual"+"string"+str2);.
}
}
三、简单应用题(共24分)
本题是一个Applet,页面上有一个按钮“请单击”,单击该按钮后弹出一个对话框,对话框上有三个按钮“橙色”、“蓝色”和“红色”,单击其中任意一个按钮,则可以将对话框的背景色设置为按钮名称所对应的颜色。
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassjava2extendsJApplet
{
privateJFrameframet;
()
{
frame=newJFrame();
frame.setTitle("java2");
frame.setSize(300,200);
frame.getContentPane().add(newButtonPanel
());
JButtonPopButton=newJButton("请单击");
getContentPane().add(PopButton);
PopButtomaddActionListener(newActionListener();
{
publicvoidactionPerformed(ActionEventevt)
{
if(frame.isVisible())frame.setVisible(false);
else;
}
});
}
}
classButtonPanelextendsJPanel
{
privateclassColorActionimplementsActionLis-
tener
{
privateColorbackgroundColor;
publicvoidactionPerformed(ActionEventaction-
event)
{
setBackground(backgroundColor);
repaint();
}
publicColorAction(Colorcolor)
{
backgroundColor=color;
}
}
publicButtonPanel()
{
JButtonjbutton=newJButton("橙色");
JButtonjbuttonl=newJButton("蓝色");
JButtonjbutton2=newJButton("红色");
add(jbutton);
add(jbuttonl);
add(jbutton2);
ColorActioncoloraction=newColorAction(Color.orange);
ColorActioncoloractionl=newColorAction(Color.blue);
ColorActioncoloraetion2=newColorAction(Color.red);
ibutton.addActionListener(coloraction);
ibuttonl.addActionListener(coloractionl);
jbutton2.addActionListener(coloraction2);
}
}
四、综合应用题(共18分)
本题的功能是用按钮来控制文本框中文本的颜色。窗口中有两个带有文字标题的面板“Sampletext”和“Textcolorcontrol”,窗口的底部还有一个复选按钮“Disablechanges”。在“Sampletext”面板中有一个带有字符串的文本框,而在“Textcolorcontrol”面板中有三个按钮:“Black”、“Red”和“Green”,并且每个按钮上都有一个对应颜色的圆。单击任意按钮,文本框中的文本变成对应的颜色,如果选中“Disablechanges”复选项,则三个颜色按钮变为不可用,如果取消选中复选项,则三个按钮变为可用。
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassjava3extendsJFrame{
privateJPanelupper,middle,lower;
privateJTextFieldtext;
privateJButtonblack,red,green;
privateJCheckBoxdisable;
publicjava3(StringtitleText){
super(titleText);
addWindowListener(newWindowAdapter(){
publicvoid
windowClosing(WindowEvente){
System.exit(0);
}
}
);
upper=newJPanel();
upper.setBorder(BorderFactory.ereateTitledBor-
der("Sampletext"));
upper.setlayout(newBorderLayout());
text=newJTextField("Changethecolorofthis
text"):
upper.add(text,BorderLayout.CENTER);
middle=newJPanel();
middle.setBorder(BorderFactory.createTitledBor-
der("Textcolorcontrol"));
middle.setLayout(newFlowLayout(FlowLayout.
CENTER)):
black=newJButton("Black",newColorIcon
(Color.black));
black.addActionListener(newButtonListener
(Color.black));
middle.add(black);
red=newJButton("Red",newColorIcon(Col-
or.red));
red.addActionListener(newButtonListener(Col-
or.red));
middle.add(red);
green=newJButton("Green",newColorIcon
(Color.green));
green.addActionListener(newButtonListener
(Color.green));
middle.add(green);
lower=newJPanel();
lower.setLayout(newFlowLayout(FlowLayout.
RIGHT));
disable=newJCheckBox("Disablechanges"):
disable.addItemListener(newItemListener()(
publicvoiditemStateChanged(ItemEvente){
booleanenabled
=(e.getStateChange()
==ItemEvent.DESELECTED):
black.setEnabled(enabled);
red.setEnabled(enabled);
green.setEnabled(enabled);
}
}
);
lower.add(disable);
Containercp=getContentPane();
cp.add(upper,BorderLayout.NORTH);
cp.add(middle,BorderLayout.CENTER);
cp.add(10wer,BorderLayout.SoUTH);
pack();
setVisible(true);
}
classButtonListenerextendsActionListener{
privateColorc;
publicButtonListener(Colorc){
this.c=c;
}
publicvoidactionPerformed(ActionEvente){
text.setForeground(c);
}
}
classColorIconimplementsIcon{
privateColorc;
privatestaticfinalintDIAMETER=10;
publicColorIcon(Colorc){
c=c;
}
publicvoidpaintlcon(Componentcp,Graphicsg,
intx,inty){
g.setColor(c);
g.fillOval(X,y,DIAMETER,DIAMETER);
g.setColor(Color.black);
g.drawOval(x,y,DIAMETER,DIAMETER);
}
publicintgetlconHeight(){
returnDIAMETER;
}
publicintgetlconWidth(){
returnDIAMETER;
}
}
publicstaticvoidmain(String[]args){
newjava3("advance");
}
}
参考答案:
一、选择题
1.B。【解析】与顺序存储结构相比,线性表的链式存储结构需要更多的空间存储指针域,因此,线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构。
2.C。【解析】栈是限制仅在表的一端进行插入和删除的运算的线性表,通常称插入、删除的这一端为栈顶,另一端称为栈底。
3.D。【解析】软件测试的目的主要是在于发现软件错误,希望在软件开发生命周期内尽可能早的发现尽可能多的bug。
4.A。【解析】①对软件开发的进度和费用估计不准确;②用户对已完成的软件系统不满意的现象时常发生;③软件产品的质量往往靠不住;④软件常常是不可维护的;⑤软件通常没有适当的文档;⑥软件成本在计算机系统总成本中所占的比例逐年上升;⑦软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
5.A。【解析】软件生命周期(SDLC,SystemsDevelopmentLifeCycle)是软件的产生直到退役的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。
6.D。【解析】继承:在程序设计中,继承是指子类自动享用父类的属性和方法,并可以增加新的属性和方法的一种机制。它是实现代码共享的重要手段,可以使软件更具有开放性、可扩充性.这是信息组织与分类的行之有效的方法,也是面向对象的主要优点之一。继承又分为单重继承和多重继承,单重继承是指子类只能继承一个父类的属性和操作;而多重继承是指子类可以继承了多个父类的属性和操作。Java是一种单重继承语言,而C++是一种多重继承语言。
7.D。【解析】层次型、网状型和关系型数据库划分的原则是数据之间的联系方武。
8.C。【解析】一个工作人员对应多台计算机,一台计算机对应多个工作人员,则实体工作人员与实体计算机之间的联系是多对多。
9.C。【解析】外模式,也称为用户模式。在一个数据库模式中,有n个外模武,每一个外模式对应一个用户。外模式保证数据的逻辑独立性。内模式属于物理模式,因此,一个数据库只有一个内模式。内模式规定了数据的存储方式、规定了数据操作的逻辑、规定了数据的完整性、规定了数据的安全性、规定了数据存储性能。
10.A。【解析】自然连接是将表中具有相同名称的列自动进行记录匹配。
11.D。【解析】顺序结构每个结点只包含自身的信息域,且逻辑上相邻的结点物理上也是相邻的。因此其存储密度大,但插入、删除运算操作不方便,需移动大量的结点。
12.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.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.D。【解析】根据栈的先进后出原则,可知从栈中删除的元素的序列为BDEC。
15.B。【解析】快速排序(Quicksort)是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。具体操作如下图:
进行第一趟排序完成后的结果如下:
12,18,9,25,67,82,53,95,33,70
所以第一趟排序完成后关键码95被放到第8个位置。
16.B。【解析Java不支持多重继承(子类只能有一个父类)。
17.A。【解析]javap命令是Java反汇编命令;javac命令是Java语言编译器,jdb是基于文本和命令行的调试工具,java命令是Java解释器。
18.D。【解析】Java中标识符的命名规则为:①区分大小写,例如a和A是两个变量;②标识符由字母、下画线、美元符号和数字组成,并且第一个字符不能是数字。
19.C。【解析]Java中单精度常量以f或F结尾。
20.D。【解析】由于基本数据类型中boolean类型不是数字型,所以基本数据类型的转换是除了boolean类型以外的其他7种类型之间的转换。
21.A。【解析】++b,先自加,再计算,即a*(++b)等价于b=b+1;a*b。
22.B。【解析】A是获得控件大小,B是获得构件的前景色,C是获得构件的背景色,D是继承Applet的子类需要实现的方法。
23.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。【解析】Java中一个类是一个abstract类的子类,它必须具体实现父类的abstract方法。如果一个类中含有abstract方法,那么这个类必须用abstract来修饰(abstract类
也可以没有abstract方法)。有abstract方法的父类只声明,由继承他的子类实现。所以选A。
25.C。【解析】接口WindowListener包括以下方法:windowActivated、windowDeactivated、windowClosing、windowClosed、windowlconified、windowDeiconified、windowOpened方法。所以选C。
26.D。【解析]continue语句的作用是不执行循环体后面的语句直接进入循环判断阶段。所以本题选D。
27.A。【解析】类变量用static修饰。
28.B。【解析】Java中字符串常量由双引号和其中间的字符所组成。
29.C。【解析】java.lang包分享Java编程语言进行程序设计的基础类。java.1an9包是编译器自动导入的。
30.D。【解析】ObjectlnputStream类和ObjectOutputStream类分列是InputStream类和OutputStream类的子类。ObjectlnputStream类和ObjectOutputStream类创建的对象被称为对象输入流和对象输出流。对象输入流使用readObject()方法读取一个对象到程序中。
31.A。【解析】()bject()utputStream类的构造方法是ObjectOutputStream(0utputStreamout)。Java中的二进制流全都写入到内存中。
32.B。【解析】length表示数组的长度。
33.C。【解析】抽象类中的抽象方法可以只声明,定义延迟到其子类。
34.D。【解析】用Thread类的构造方法Thread(Runnabletarget)创建线程对象时,构造方法中的参数必须是一个具体的对象,该对象称作线程的目标对象,创建目标对象的类必须要实现Runnable接口。
35.D。【解析】线程状态转换序列如下图所示:
,故选D。
36.A。【解析】当一个线程使用的同步方法中用到某个变量,而且需要其他线程修改此变量后才能复合本线程的需要,那么可以使用wait()方法。wait()方法的作用是使本线程等待,并允许其他线程使用此同步方法。当其他线程使用完后应使用notify()或者notifyAll()方法允许其他线程使用此同步方法。Interrupt()方法的作用是在run方法执行完之前就消灭此线程,而sleep()方法的作用是延迟一段时间后执行。因为本题是为了支持压栈线程与弹栈线程之间的交互与同步,所以选A。
37.D。【解析】程序正常运行打印thisisrun()。用Thread类的构造方法Thread(Runnabletarget)创建线程对象时,构造方法中的参数必须是一个具体的对象,该对象称作线程的目标对象,创建的目标对象的类必须实现Runnable接口。
38.B。【解析】Applet不可以单独运行,Applet支持多线程。
39.B。【解析】在JavaApplet的生命周期中,共有4种状态,即4种方法:init()、start()、stop()和destory()。在Applet装载时,调用init()通知该Applet已被加载到浏览器中,使Applet执行一些基本初始化操作。
40.D。【解析】param中name属性值不可重复,value是绝对路径。必须都用引号引用起来。
二、基本操作题
第1处:charcl,c2
第2处:cl==c2
第3处:strl.equals(str2)
【解析】第1处声明两个字符型变量cl和c2;第2处表示当cl等于c2时if条件为真;第3处判断strl和str2是否相等,返回值是布尔类型true或false。
三、简单应用题
第1处:publicvoidinit
第2处:frame.show()
【解析】第1处是定义一个公有的初始化函数;第2处显示frame窗口。
四、综合应用题
第1处:upper.setLayout(newBorderLayout())
第2处:classButtonListenerimplementsActionListener
第3处:this.c=c
【解析】第一处令面板upper采用BorderLayout布局。第二处是要求类ButtonListener实HActionListener接口,达到通过按钮改变字体颜色的目的。第三处是设置按钮前圆形的颜色。
下载仅供下载体验和测试学习,不得商用和正当使用。
下载体验