一、选择题(每小题1分,共40小题,共40分)
1.下列叙述中正确的是()。
A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/Z)
C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)
D.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)
2.算法的时间复杂度是指()。
A.算法的执行时间
B.算法所处理的数据量
C.算法程序中的语句或指令条数
D.算法在执行过程中所需要的基本运算次数
3.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是()。
A.编辑软件
B.操作系统
C.教务管理系统
D.浏览器
4.软件(程序)调试的任务是()。
A.诊断和改正程序中的错误
B.尽可能多地发现程序中的错误
C.发现并改正程序中的所有错误
D.确定程序中错误的性质
点击进入>>全国计算机等级考试真题题库全套最新考试资料
5.数据流程图(DFD图)是()。
A.软件概要设计的工具
B.软件详细设计的工具
C.结构化方法的需求分析工具
D.面向对象方法的需求分析工具
6.软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于()。
A.定义阶段
B.开发阶段
C.维护阶段
D.上述三个阶段
7.数据库管理系统中负责数据模式定义的语言是()。
A.数据定义语言
B.数据管理语言
C.数据操纵语言
D.数据控制语言
8.在学生管理的关系数据库中,存取一个学生信息的数据单位是()。
A.文件
B.数据库
C.字段
D.记录
9.数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的()。
A.需求分析阶段
B.逻辑设计阶段
C.概念设计阶段
D.物理设计阶段
10.有两个关系R和T如下:
则由关系R得到关系T的操作是()。
A.选择
B.投影
C.交
D.并
11.破坏死锁的4个必要条件之一就可以预防死锁。假如规定一个进程在请求新资源之前首先释放已占有的资源,则是破坏了哪个条件?()
A.互斥使用
B.部分分配
C.不可剥夺
D.环路等待
12.下列关于数据存储结构的叙述中,不正确的是()。
A.数据的存储结构是逻辑结构在计算机存储器中的实现
B.数据的运算是在数据的存储结构实现的
C.数据的存储结构即是数据在计算机内的物理结构
D.数据运算是定义在数据的存储结构上的
13.对一组记录的关键码(25,38,48,52,63,74)采用二分法查找52时,第()次会查找成功。
A.4
B.3
C.2
D.1
14.在一个单链表中,若要删除P结点的后续结点,则执行()。
A.P↑.next:=P↑.next↑.next;
B.P:=P↑.next;P↑.next:=P↑.next↑.next;
C.free(P↑.next);
D.P:=P↑.next↑.next;
点击进入>>全国计算机等级考试真题题库全套最新考试资料
15.下列关于链式存储结构的叙述中,不正确的是()。
A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构
B.逻辑上相邻的结点物理上不必相邻
C.可以通过计算确定第i个结点的存储地址
D.插入、删除运算操作方便,不必移动结点
16.Java中定义常量的保留字是()。
A.const
B.final
C.finally
D.native
17.下列关于Java布尔类型的描述中,正确的是()。
A.一种基本的数据类型,它的类型名称为boolean
B.用int表示类型
C.其值可以赋给int类型的变量
D.有两个值,1代表真,0代表假
18.Java中所有类的父类是()。
A.Father
B.Dang
C.Exception
D.Object
19.下列程序段的输出结果是()。
intdata=0;
chark=’a’,P=’f’;
data=P-k:
System.OUt.println(data);
A.0
B.a
C.f
D.5
20.下列数中为八进制的是()。
A.27
B.0x25
C.026
D.028
21.下列方法中,不属于Throwable类的方法是()。
A.printMessage
B.getMessage
C.toString
D.fillStackTrace
22.下列程序的输出结果是()。
publicclassTest{
publicstaticvoidmain(String[]args){
int[]array=(2,4,6,8,lO);
intsize=6;
intresult=-1:
try{
for(inti=0;i(size8L&result==-1;)
if(array[i]==20)result=i:
}
catch(ArithmeticExceptione){
System.out.println("Catch---l");
}
catch(ArraylndexOutOfBoundsExceptione){
System.out.println("Catch---2");
}
catch(Exceptione){
System.out.println("Catch---3");)
}
}
A.Catch---1
B.Catch---2
C.Catch---3
D.以上都不对
23.下列包中,包含JOptionPane类的是()。
A.javax.swing
B.java.lang
C.java.util
D.java.applet
24.下列选项中,与成员变量共同构成一个类的是()。
A.关键字
B.方法
C.运算符
D.表达式
25.下列程序的功能是将一个整数数组写入二进制文件,在程序的下画线处应填入的选项是()。
importjava.io.*;
publicclassXieShuzu{
publicstaticvoidmain(String[]a){
int[]myArray=(10,20,30,40);
try{
DataOutputStreamdos=
newDataOutputStream(new
FileOutputStream("ints.dat"));
for(inti=0;i dos.(myArray[i]);
dos.close();
System.OUt.println("已经将整数数组写入二进
制文件:ints.dat");
}catch(IOExceptionioe)
{System.OUt.println("IOExeepr_on");)
}
}
A.writeArray B.writeByte
C.writeInt D.writeDouble
26.Java中的抽象类Reader和Writer所处理的流是()。
A.图像流
B.对象流
C.字节流
D.字符流
27.下列叙述中,错误的是()。
A.内部类的名称与定义它的类的名称可以相同
B.内部类可用abstract修饰
C.内部类可作为其他类的成员
D.内部类可访问它所在类的成员
28.用于在子类中调用被重写父类方法的关键字是()。
A.this
B.super
C.This
D.Super
29.下列Java语句从指定网址读取html文件,在下画线处应填上的选项是()。
Readerin=new——(newURL(urlString).
openStream());
A.Reader
B.DataOutputStream
C.ByteArrayInputStream
D.InputStreamReader
30.下列不属于表达式语句的是()。
A.++i;
B.--j;
C.b#a;
D.b*=a;
31.下列为窗口事件的是()。,
A.MouseEvent
B.WindowEvent
C.ActionEvent
D.KeyEvent
32.用鼠标点击菜单项(Menultem)产生的事件是()。
A.MenuEvent
B.ActionEvent
C.KeyEvent
D.MouseEvent
33.下列不属于逻辑运算符的是()。
A.!
B.||
C.&&
D.|
34.当使用SomeThreadt=newSomeThread()创建一个线程时,下列叙述中正确的是()。
A.SomeThread类是包含run()方法的任意Java类
B.SomeThread类一定要实现Runnable接口
C.SomeThread类是Thread类的子类
D.SomeThread类是Thread类的子类并且要实现Run-
nable接口
35.在程序的下画线处应填入的选项是()。
publicclassTest{:
publicstaticvoidmain(Stringargs[]){
Testt=newTest();
Threadtt=newThread(t);
tt.start();
}
publicvoidrun(){
for(inti=0;i<5;i++){
System.out.println("i="+i);
}
}
}
A.implementsRunnable
B.extendsThread
C.implementsThread
D.extendsRunnable
36.为了支持压栈线程与弹栈线程之间的交互与同步,
在程序的下画线处依次填入的语句是()。
publicclassIntStack{
privateintidx=0;
privateint[]data=newint[8];
publicvoidpush(inti){
data[idx]=i;
idx++;
……
}
A.synchronized()
notify()
B.synchronized
this.wait()
C.synchronized
this.notify()
D.Serializable
sleep()
37.如果线程正处于阻塞状态,不能够使线程直接进入可运行状态的情况是()。
A.sleep()方法的时间到
B.获得了对象的锁
C.线程在调t.join()方法后,线程t结果
D.wait()方法结束
38.当一个Applet被加载,后续对Applet生命周期方法的调用中,可能存在的次序是()。
A.start(),stop(),destroy()
B.init(),start(),stop(),start(),stop(),destroy()
C.start(),init(),stop(),destroy()
D.init(),start(),destroy()
39.在HTML文件的标志中作为可选属性的是()。
A.Applet主类的文件名
B.Applet显示区域的宽度
C.Applet主类的路径
D.Applet显示区域的高度
40.如果应用程序要在Applet上显示输出,则必须重写的方法是()。
A.Graphics.drawString()
B.repaint()
C.paint()
D.update()
二、基本操作题(共18分)
本题的功能是计算二维数组各个元素的和。程序中定义了二维数组arr,arr有3行4列共l2个元素,程序中采用for循环语句的嵌套来计算数组中各个元素的和,并将结果保存在sum变量中,最后打印输出结果。
publicclassjaval{
publicstaticvoidmain(String[]args){
intarr[][]={{l,2,3,4},{5,6,7,8},{9,10,11,12}};
intsum=0;
inti=0,j=0;
for(i=0;)
for()
;
System.OUt.println("sum="+sum);
}
}
三、简单应用题(共24分)
本题是设计一个窗体,窗口的背景色为系统桌面的颜
色,在窗口中分别画了空心和实心的黑色矩形、深灰色圆角
矩形和浅灰色椭圆形,并且画了白色粗体的“Java二级考
试!”字符串。
Importjava.awt.*;
Importjavax.swing.*;
Publicclassjava2
{
Publicstaticvoidmain(string[]args)
{
Fillframeframe=newfillframe();
Frame.setdefaultcloseoperatio(jframe.exit_on_
close);
Frame.show();
}
}
Classfillframeextendsjframe
{
Publicfillframe()
{
Settitle("simple");
Setsize(width,height);
Fillpanelpanel=newfillpanel();
Panel.setbackground(systemcolor.desktop);
Containercontentpane=getcontentpane();
Contentpane.add(panel);
}
Publicstaticfinalintwidth=400;
Publicstaticfinalintwidth=250;
}
Classfillpanelextendsjpanel
{
Publicvoidpaintcomponent(graphicsg)
{
;
g.setcolor(newcolor(10,10,10));’
g.drawrect(10,10,100,30);
g.seteolor(newcolor(100,100,l00));
g.drawroundrect(150,10,100,30,15,15);
g.setcolor(newcolor(150,150,150));
g.drawoval(280,10,80,30);
g.setcolor(newcolor(10,10,10));
g.fillreet(10,110,100,30);
g.setcolor(newcolor(100,100,100));
g.drawroundreet(150,110,100,30,15,15);
g.seteolor(newcolor(150,150,150));
g.filloval(280,110,80,30);
g.setcolor(color.white);
fontf=newfont("宋体",__,20);
g.setfont(f);
g.drawstring("java二级考试!",l50,200);
}
}
四、综合应用题(共18分)
本题的功能是监听鼠标的操作。鼠标置于窗口中单击时(左键或右键),在单击的地方会画一个小矩形,如果将鼠标置于小矩形上,则鼠标光标状态改为小十字,按下鼠标左键可拖曳,双击鼠标左键(或右键)时,小矩形消失。
importjava.awt.*;
importjava.awt.event.*;
importjava.util.*;
importjava.awt.geom.*;
importjavax.swing.*;
publicclassjava3
{
publicstaticvoidmain(String[]args)
{
MouseFrameframe=newMouseFrame():
frame.setDefaultCloseOperation(JFrame.EXIT_
oN_CLOSE);
frame.show();
}
}
classMouseFrameextendsJFrame
{
publicMouseFrame()
{
setTitle("java3");
setSize(DEFAULTWIDTH,DEFAULT
HEIGHT):
MousePanelpanel=newMousePanel();
ContainercontentPane=getContentPane();
contentPane.add(panel);
}
publicstaticfinalintDEFAULT_WIDTH=300;
publicstaticfinalintDEFAULT_HEIGHT=200;
}
classMousePanelextendsJPanel
{
publicMousePanel()
{
squares=newArrayList();
current=null:
addMouseListener(newMouseHandler());
addMouseMotionListener(newMouseMotionHan-
dler());
}
publicvoidpaintComponent(Graphicsg)
{
super.paintComponent(g);
Graphics2Dg2=(Graphics2D)g;
for(inti=0;i g2.draw((Rectangle2D)squares.get(i));
}
publicvoidfind(Point2Dp)
{
for(inti=0;i {
Rectangle2Dr=(Rectangle2D)squares.get(i);
if(r.contains(p))returnr;
}
returnnull:
}
publicvoidadd(Point2Dp)
{
doublex=P.getX();
doubleY=P.getY():
current=newRectangle2D.Double(
x-SIDELENGTH/2.
y-SlDELENGTH/2.
S1DELENGTH,
SIDELENGTH);
squares.add(current);
repaint();
}
publicvoidremove(Rectangle2Ds)
{
if(S==null)return:
if(S==current)current=null;
squares.remove(s):
repaint();
}
privatestaticfinalintSIDELENGTH=10:
privateArrayListsquares;
privateRectangle2Dcurrent;
privateclassMouseHandterextendsMouseAction-
Listener
{
publicvoidmousePressed(MouseEventevent)
{
current=find(event.getPoint());
if(current==null)
add(event.getPoint());
}
publicvoidmouseClicked(MouseEventevent)
{
current=find(event.getPoint());
if(current!=null&&event.getClickCount()
>=2)
remove(current);
}
}
privateclassMouseMotionHandlerimplementsMouse-
MotionListener
{
publicvoidmouseMoved(MouseEventevent)
{
if(find(event.getPoint)==null)
setCursor(Cursor.getDefaultCursor());
else
setCursor(Cursor.getPredefinedCursor
(Cursor.CROSSHAIR_CURSOR));
}
publicvoidmouseDragged(MouseEventevent)
{
if(current!=null)
{
intx=event.getX():
intY=event.getY();、
current.setFrame(
x-SIDELENGTH/2,
Y-SlDELENGTH/2.
SIDELENGTH,
SIDELENGTH);
repaint();
}
}
}
}
参考答案:
一、选择题
1.C。【解析】二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。
2.D。【解析】算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模n的函数f(n),算法的时间复杂度也因此记做T(n)=O(f(n))因此,问题的规模n越大,算法执行的时间的增长率与f(n)的增长率正相关,称作渐进时间复杂度(AsymptoticTimeCornplexity)。简单来说就是算法在执行过程中所需要的基本运算次数。
3.B。【解析】编辑软件和浏览器属于工具软件,教务系统是应用软件。
4.A。【解析】调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。调试是测试之后的活动
5.C。【解析】数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。
6.B。【解析】开发阶段在开发初期分为需求分析、总体设计、详细设计3个阶段了,在开发后期分为编码、测试两个子阶段。
7.A。【解析】数据模式是由数据定义语言(DataDeftnitionLanguage,DDL)来描述、定义的,体现、反映了数据库系统的整体观。
8.D。【解析】一个数据库由一个文件或文件集合组成。这些文件中的信息可分解成一个个记录。
9.C。【解析】E-R(Entity-Relationship)图为实体一联系图,分享了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。
10.A。【解析】选择是建立一个含有与原始关系相同列数的新表,但是行只包括那些满足某些特定标准的原始关系行。
11.B。【解析】若一个进程请求新资源之前首先释放已占有的资源,这破坏了部分分配条件。
12.D。【解析】数据的存储结构是逻辑结构在计算机存储器中的实现,又称为物理结构。数据运算是定义在数据的逻辑结构上的,在存储结构上实现。
13.B。【解析】根据二分查找法的基本思想,第一次找到的是48,52大于48,再向右查找,第二次找到的是63,第三次找到的是52,至此查找完成。
14.A。【解析】在一个单链表中,若要删除P结点的后续结点,只要将P的指针域指向P的后继的后继即可,即P↑.next=P↑.next↑.next。
15.C。【解析】链式存储结构的主要特点有:①结点中除自身信息外,还有表示链接信息的指针域,因此存储密度小、存储空间利用率低;②逻辑上相邻的结点物理上不必相邻;③插入、删除操作灵活方便。线性存储结构可以通过计算确定第i个结点的存储地址,但链式存储结构不能。
16.B。【解析】final是最终的修饰符,其修饰的是常量。
17.A。【解析】布尔类型数据只有两个值:true(真)、false(假),不对应任何数字,不能与数字进行转换,布尔类型数据一般用于逻辑判别。
18.D。【解析】Object是所有类的根。
19.D。【解析】a和f的ASCIl值相差5。
20.C。【解析】采用0,1,2,3,4,5,6,7八个数码,逢八进位,并且开头一定要以数字0开头的为八进制。
21.C。【解析】toString是Object类的方法,所有类都从Object类继承。
22.B。【解析】由题可知先判断i 20,并且i从0开始一直到i=5时发生越界,则输出Cateh==-2,结果为B。
23.A。【解析】Swing中分享了JOptionPane类来实现类似Windows平台下的MessageBox的功能,利用JOptionPane类中的各个static方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能,且这些对话框都是模式对话框。
24.B。【解析】在类体中定义的两种成员,数据成员和成员函数,其中数据成员就是成员变量,而成员函数就是通常说的方法。
25.C。【解析】向流中写入整数数组,用writeInt方法。
26.D。【解析]Reader/Writer所处理的流是字符流,InputStream/OutputStream的处理对象是字节流。
27.A。【解析】内部类与外部类的名称不能相同。
28.B。【解析]super可用于调用被重写的父类方法,此题须注意Java对大小写敏感。
29.A。【解析】创建一个Reader流的对象in。
30.C。【解析】前两项是自加减运算,最后一项是b=b*a。
31.B。【解析】MouseEvent是鼠标事件,ActionEvent是组件事件,KeyEvent是键盘事件。
32.B。【解析】ActionEvent组件事件,当特定于组件的动作(比如被按下)发生时,由组件(比如Button)生成此高级别事件。事件被传递给每一个ActionListener对象,这些对象是使用组件的addActionListener方法注册的,用以接收这类事件。
33.D。【解析】!是逻辑非,||是逻辑或,&&是逻辑与,︱是按位或。
34.C。【解析】由SomeThreadt=newSomeThread()可知此题是通过继承Thread类来创建线程的。
35.B。【解析】implements是实现接口,extends是继承类。Thread是‘类,Runnable是
接口,所以只有A、B选项语法是正确的。而Runnable是不能返回Static值,所以答案选择B。
36.B。【解析】在Synchronized块中等待共享数据的状态改变时调用wait()方法,这样该线程进入等待状态暂时释放共享数据对象的锁。
37.D。【解析】wait()方法会使线程放弃对象锁,进入等待此对象的等待锁定池。
38.B。【解析】init()一般用来完成所有必需的初始化操作,start()是在初始化之后Applet被加载时调用,stop()在Applet停止执行时调用,destory()是Applet从系统中撤出时调用。
39.C。【解析】中可使用复了标志,其中的CODEBASE标志(指定URL地址),如果HTML不指定,浏览器使用和HTML文件相同的URL,所以答案选择C。
40.C。【解析】paint()是绘制Applet界面的基本方法。
二、基本操作题
第1处:i<3;i++或i<=2;i++
第2处:j=O;j<4;j++或j=0;j<=3;j++
第3处:sum=sum+arr[i][j]
【解析】第1处、第2处是由该数组是3行4列的数组而得出的遍历数组的循环条件;第3处是将数组元素累加并将最终累加结果赋给sum。
三、简单应用题
第l处:super.paintComponent(g);
第2处:Font.BOLD
【解析】第1处是通过super语句调用父类的构造方法paintComponent(g)。第2处是通过字体对象的构造函数,设置“Java二级考试!”格式,题目要求是粗体,所以大Font.BOLD。
四、综合应用题
第1处:publicRectangle2Dfind(Point2Dp)
第2处:privateclassMouseHandlerextendsMouseAdaopter
第3处:find(event.getPoint())==null
【解析】第1处定义一个返回类型为Rectangle2D的find函数且有一个Point2D型的形参;第2处定义了继承鼠标适配器MouseAdapt的MouseHandler;第3处判断find函数的返回值是否为空。