
二级公共基础知识和Java语言程序设计
本文档仅供学习参考
一、选择题
1.下列叙述中正确的是( )。
A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2(下标)n)
D.对长度为n的有序链表进行对分查找,最坏情况—卜需要的比较次数为(nlog2(下标)n)
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.Java中定义常量的保留字是( )。
A.const B.final
C.finally D.native
12.下列关于Java布尔类型的描述中,正确的是( )。
A.一种基本的数据类型,它的类型名称为boolean
B.用int表示类型
C.其值可以赋给int类型的变量
D.有两个值,1代表真,0代表假
13.Java中所有类的父类是( )。
A.Father B.Dang
C.Exception D.Object
14.下列程序段的输出结果是( )。
intdata=0;
chark='a',p='f'
data=p-k;
System.out.printlln(data);
A.0 B.a
C.f D.5
15.下列数中为八进制的是( )。
A.27 B.0x25
C.026 D.028
16.下列方法中,不属于Throwable类的方法是( )。
A.printMessage B.getMessage
C.toString D.fillStackTrace
17.下列程序的输出结果是( )。
PublicclassTest{
Publicstaticvoidmain(String[]args){
int[]array=(2,4,6,8,10);
intsize=6;
intresult=-1;
try{
for(inti=0;i<size&&result==-1;)
if(array[i]==20)result=i;
}
catch(ArithmeticExceptione){
System.out.println("Catch---1");
}
catch(Array IndexOutOfBoundsExceptione){
System.out.println("Catch---2");
}
catch(Exceptione){
System.out.println("Catch---3");
}
}
A.Catch---1 B.Catch---2
C.Catch---3 D.以上都不对
18.下列包中,包含JoptionPane类的是( )。
A.javax.swing B.java.lang
C.java.util D.java.applet
19.下列选项中,与成员变量共同构成一个类的是( )。
A.关键字 B.方法
C.运算符 D.表达式
20.下列程序的功能是将一个整数数组写入二进制文件,在程序的下划线处应填入的选项是( )。
importjava.io.*;
publicclassXieShuzu{
publicstaticvoidmain(String[]a){
int[]myArray=(10,20,30,40);
try{
DataOutputStreamdos=
newDataOu中utStream(new
FileOutputStream("ints.dat"));
for(inti=O;i<myArray.length;i++)
dos.______(myArray[]);
dos.close();
System.out.println("已经将整数数组写入二进制文件:ints.dat"):
}catch(IOExceptionioe)
{System.out.println("IOExcepr_on");}
}
}
A.writeArray B.writeByte
C.writeInt D.writeDouble
21.Java中的抽象类Reader和Writer所处理的流是( )。, A.图像流 B.对象流
C.字节流 D.字符流
22.下列叙述中,错误的是( )。
A.内部类的名称与定义它的类的名称可以相同
B.内部类可用abstract修饰
C.内部类可作为其他类的成员
D.内部类可访问它所在类的成员
23.用于在子类中调用被重写父类方法的关键字是( )。
A.this B.super
C.This D.Super
24.下列Java语句从指定网址读取html文件,在下划线处应填上的选项是( )。
Readerin=new______(newURL(urlString).openStream());
A.Reader B.DataOutputStream
C.ByteArraylnputStream D.InputStreamReader
25.下列不属于表达式语句的是( )。
A.++i; B.--j;
C.b#a; D.b*=a;
26.下列为窗口事件的是( )。
A.MouseEvent B.WindowEvent
C.ActionEvent D.KeyEvent
27.用鼠标点击菜单项(Menultem)产生的事件是( )。
A.MenuEvent B.ActionEvent
C.KeyEvent D.MouseEvent
28.下列不属于逻辑运算符的是( )。
A.t B.||
C.&& D.I
29.当使用SomeThread t=new SomeThread()创建一个线程时,下列叙述中正确的是( )。
A.SomeThread类是包含run()方法的任意Java类
B.SomeThread类一定要实现Runnable接口
C.SomeThread类是Thread类的子类
D.SomeThread类是Thread类的子类并且要实现Runnable接口
30.在程序的下划线处应填入的选项是( )。
publicclassTest______{
publicstaticvoidmain(Stringargs[]){
Testt=newTest()
Threadtt=newThread(t);
tt.start();
}
publicvoidmn(){
for(inti=0;i<5;i++){
System.out.println("i="+i);
}
}
}
A.implementsRunnable B.extendsThread
C.implementsThread D.extendsRunnable
31.为了支持压栈线程与弹栈线程之间的交互与同步,在程序的下划线处依次填入的语句是( )。
publicclass IntStack{
privateintidx=O;
privateint[]data=newint[8];
public______voidpush(inti){
data[idx]=i;
idx++;
}
A.synchronized() B.synchronized
notify() this.wait()
C.synchronized D.Serializable
this.notify() sleep()
32.如果线程正处于阻塞状态,不能够使线程直接进入可运行状态的情况是( )。
A.sleep()方法的时间到
B.获得了对象的锁
C.线程在调t.join()方法后,线程t结果
D.wait()方法结束
33.当一个Applet被加载,后续对Applet生命周期方法的调用中,可能存在的次序是 ( )。
A.start(),stop(),destroy()
B.init(),start(),stop(),start(),stop(),destroy()
C.start(),init(),stop(),destroy()
D.init(),start(),destroy()
34.在HTML文件的<applet>标志中作为可选属性的是( )。
A.Applet主类的文件名 B.Applet显示区域的宽度
C.Applet主类的路径 D.Applet显示区域的高度
35.如果应用程序要在Applet上显示输出,则必须重写的方法是(. )。
A.Graphics.drawString() B.repaint()
C.paint() D.update()
二、填空题
1.一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队则元素退队的顺序为______。
2.设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列有______个元素。
3.设二叉树如右:对该二叉树进行后序遍历的结果为______。
4.软件是______、数据和文档的集合。
5.有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号,______,成绩)。
6.C语言是面向过程的语言,Java语言是面向______的语言。
7.Java字节码文件的扩展名是______。
8.JDBC是Java程序与______连接的一种机制。
9.能够用于创建可变字符串对象的类是______。
10. 类在定义数组时,不必限定数组的大小。
11.下列程序的功能是统计命令行参数的个数,请在下划线处填上适当的代码。
publicclassLength{
publicstaticvoidmain(Stringargs[]){
System.out.println("number of Stringargs:"+args.______);
}
}
12.Java中的返回语句是______语句。
13.Java中,线程必须属于一个进程,线程是程序运行中的一个______。
14.线程由于调用sleep()方法进入阻塞状态,当睡眠结束时,该线程将进入______状态。
15.在下列Java Applet程序的下划线处填入代码,使程序三整并能够正确运行。
importjava.applet.*;
importjava.awt.*;
publicclassHelloWofil______{
publicvoidpaint(Graphicsg){
g.drawstring("HelloWorld!",25,25);
}
}
一、选择题
1.C。[解析] 二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。
2.D。[解析] 算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模n的函数f(n),算法的时间复杂度也因此记做T(n)=O(f(n))因此,问题的规模n越大,算法执行的时间的增长率与f(n)的增长率正相关,称作渐进时间复杂度(AsymptoticTimeComplexity)。简单来说就是算法在执行过程中所需要的基本运算次数。
3.C。[解析] 编辑软件和浏览器属于工具软件,教务系统是应用软件。
4.A。[解析] 调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。调试是测试之后的活动
5.D。[解析] 数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。
6.B。[解析] 开发阶段在开发初期分为需求分析、总体设计、详细设计3个阶段了,在开发后期分为编码、测试两个子阶段。
7.C。[解析] 模式描述语言(DaraDescriptionLanguage,DDL)来描述、定义的,体现、反映了数据库系统的整体观。
8.D。[解析] 一个数据库由一个文件或文件集合组成。这些文件中的信息可分解成一个个记录。
9.C。[解析] 实体联系图Entity-RelationshipE-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。
10.D。[解析] 选择是建立一个含有与原始关系相同列数的新表,但是行只包括那些满足某些特定标准的原始关系行。
11.C。[解析] fmal是最终的修饰符,其修饰的是常量。
12.A。[解析] 布尔类型数据只有两个值:true(真)、false(假),不对应任何数字,不能与数字进行转换,布尔类型数据一般用于逻辑判别。
13.D。[解析] ObJeot是所有类的根。
14.D。[解析] a和f的ASCII值相差5。
15.C。[解析] 采用0,1,2,3,4,5,6,7八个数码,逢八进位,并且开头一定要以数字0开头的为八进制。
16.C。[解析] toString是Object类的方法,所有类都从Object类继承。
17.略
18.A。[解析] Swing中提供了JOptionPane类来实现类似Windows平台下的MessageBox的功能,利用JOptionPane类中的各个staUc方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能。且这些对话框都是模式对话框。
19.B。[解析] 类体中定义的两种成员,数据成员和成员函数。
20.C。[解析] 向流中写入整数数组,用WrinteInt方法。
21.D。[解析] Reader/Writer所处理的流是字符流,InputStream/OutputStream的处理对象是字节流。
22.A。[解析] 内部类与外部类的名称不能相同。
23.B。[解析] super可用于调用被重写的父类方法,注意Java的大小写敏感。
24.A。[解析] 创建一个Reader流的对象in。
25.C。[解析] 前两项是自加减运算,最后一项是b=b*a。
26.B。[解析] MouseEvent鼠标事件,AcfionEvent组件事件,KeyEvent键盘事件。
27.B。[解析] ActionEvent组件事件,当特定于组件的动作(比如被按下)发生时,由组件(比如Button)生成此高级别事件。事件被传递给每一个ActionListener对象,这些对象是使用组件的addActionListener方法注册的,用以接收这类事件。
28.D。[解析] !是逻辑非,||是逻辑或,&&是逻辑与,|是按位或。
29.C。[解析] 由SomeThreadtead=newSomeThread()可知此题是通过继承Thread类来创建线程的。
30.A。[解析] Test类实现了Runnable接口。
31.B。[解析] 在Synchronized块中等待共享数据的状态改变时调用wait()方法,这样该线程等待并暂时释放共享数据对象的锁。
32.D。[解析] walt()会使线程放弃对象锁,进入等待此对象的等待锁定池。
33.B。[解析] init()一般用来完成所有必需的初始化操作,start()是在初始化之后Applet被加载时调用,stop()在APplet停止执行时调用,destory()是Applet从系统中撤出时调用。
34.A。[解析] 通过使用<APPLET>标记,至少要指定Applet子类的位置以及浏览器中Apptet的显示大小。
35.C。[解析] paint0是画Applet界面的基本方法。
二、填空题
1.A,B,C,D,E,F,5,4,3,2,1。[解析] 队列是先进先出的。
2.15。[解析] 队列个数=rear-front+容量。
3.EDBGHFCA。[解析] 先遍历左子树,然后遍历右子树,最后遍历访问根结点,各子树都是同样的递归遍历。
(作图)
4.程序。[解析] 参考软件的定义。
5.课号。[解析] 课号是课程的唯一标识即主键。
6.对象。[解析] 参考JAVA简介。
7..class。[解析] Java文件经过JVM编译成字节码文件,即.class文件。
8.数据库。[解析] JDBC(JavaDataBaseCormectivi,java数据库连接)是用于执行SQL语句的JavaAPl,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
9.StxingBuffer。[解析] 它能提供长度可变字符串对象的表示。
10.ArrayList。[解析] 它是在运行时动态自动调整组的大小。
11.length。[解析] 统计数组的长度即所需参数的个数。
12:return。[解析] 作用是从当前方法中退出,返回到调用该方法的语句。
13.执行流。[解析] 一个进程的执行过程中会产生多个线程即执行流。
14.可运行状态(Runnable)。[解析] sleep()方法结束后,线程将进入可运行状态。
15.extendsApplet。[解析] 继承Applet类。
2010年9月计算机二级JAVA笔试试题及答案
一、选择题(每小题2分,共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(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)下列特点中不属于Java的是
A)多线程
B)多继承
C)跨平台
D)动态性
(12)Java的反汇编命令是
A)javap
B)javac
C)jdb
D)java
(13)下列变量定义中,不合法的是
A)Int $X;
B)int _123;
C)int Summer_2010_gross_saIe;
D)Int #dim;
(14)下列选项中为单精度数的是
A)2
B)5.2
C)0.2f
D)023
(15)下列关于boolean类型的叙述中,正确的是
A)可以将boolean类型的数值转换为int类型的数值
B)可以将boolean类型的数值转换为字符串
C)可以将boolean类型的数值转换为char类型的数值
D)不能将boolean类型的数值转换为其他基本数据类型
(16)若定义int a=2,b=2,下列表达式中值不为4的是
A)a*(++b)
B)a*(b++)
C)a+b
D)a*b
(17)下列可以获得构件前景色的方法是
A)getSize()
B)getForeground()
C)getBackground()
D)paint()
(18)下列程序的运行结果是
public class test{
private String[] data={“10”,“10.5”};
public void fun(){
double s=0;
for(int i=0;i<3;i++){
try{
s=s+Integer .parseInt(data[i]);
}catch(Exception e){
System.out.print(“errorl:”+data[i]);
}
}
}
public static void main(String[]args){
try{
testd=new test();
d .fun();
}catch(Exception e){
System.out.printIn(“error2”);
}
}
}
A)errorl:10.5
B)error2
C)errorl:10.5 error2
D)以上都不对
(19)下列程序片段中,能通过编译的是
A)public abstract class Animal{
public void speak();}
B)public abstract class Animal{
public void speak(){}}
C)public class Animal{
public abstract void speak();}
D)public abstract class Animal{
public abstract void speak(){}}
(20)下列不属于接口WindowListener的方法是
A)windowClosing()
B)windowClosed()
C)windowMinimized()
D)windowopened()
(21)下列选项中,不能输出100个整数的是
A)for(int i=0;i<100;i++)
System.out.println(i);
B)int i=0;
do{
System.out.println(i);
i++;
}while(i<100);
C)int i=0;
while(i<100){
System.out.printIn(i);
i++;
}
D)inti=0;
while(i<100){
i++;
if(i<100)continue;
System .out.printIn(i);
}
(22)类变量必须带有的修饰符是
A)static B)final C)public D)Volatile
(23)下列选项中属于字符串常量的是
A)'abc' B)"abc" C)[abc] D)(abc)
(24)Java程序默认引用的包是
A)java.text包
B)java.awt包
C)java.lang包
D)java .util包
(25)为使下列代码正常运行,应该在下划线处填入的选项是
ObjectInputStream in=
new_____(new FileInputStream(“employee . dat”));
Employee[]newStaff=(Employee[〕)in.readObject();
in .cIose();
A)Reader
B)InputStream
C)ObjectInput
D)ObjectInputStream
(26)下列代码将对象写入的设备是
ByteArrayOutputStreambout=new ByteArrayOutputStream();
ObjectOutputStream out=new ObjectoutputStream(bout);
out.writeObject(this);
out .close();
A)内存 B)硬盘 C)屏幕 D)网络
(27)为使下列代码正常运行,应该在下划线处填入的选项是
int〔〕numbers=new int[n];
for(Int i=0;i A)size B)length C)dimension D)measurement (28)为使下列代码正常运行,应该在下划线处填入的选项是 abstract class Person{ public Person(String n)! name=n; } public____String getDescription(); public String getName(){ return name; } private String name; } A)static B)private C)abstract D)final (29)下列能够正确创建线程的方法是 I.继承java.lang.Thread类,并重写run()方法 II.继承java.lang.Runnable类,并重写start()方法 III.实现java.lang.Thread接口,并实现run()方法 IV.实现java.lang.Runnable接口,并实现run()方法 A)I,III B)II,IV C)II,III D)I,IV (30)下列线程状态转换序列,在线程实际运行中可能出现的序列是 A)新建→运行→阻塞→终止 B)……运行→阻塞→可运行→终止 C)……可运行→运行→阻塞→运行…… D)新建→可运行→运行→阻塞→可运行…… (31)为了支持压栈线程与弹栈线程之间的交互与同步,应在下划线处填入的选项是 pubIis class StackTest{ private int idx=0; private int[]data=new int[8]; public void push(int i){ synchronized(this){ ______; data[idx]=i; idx++; } } …… } A)this.notify() B)interrupt() C)this .wait() D)sleep() (32)对下列程序的叙述中,正确的是 1:public class X extends Thread implements Runnable{ 2:publ主c void run(){ 3: System.out.println(“this is run()”); 4:} 5:public static void main(String args〔〕){ 6:Threadt二new Thread(new X()); 7:t.start(); 8:} 9:} A)第1行会产生编译错误 B)第6行会产生编译错误 C)第6行会产生运行错误 D)程序正常运行 (33)下列关于Applet的叙述中,正确的是 A)Applet不仅可以嵌入到浏览器中运行,还可以运行 B)Applet的主类要定义为Applet类或JApplet类的子类 C)同一个页面中的Applet之间不能通信 D)Applet不支持多线程 (34)当一个Applet所在的Web页面被其他页面覆盖后,不可能被调用的Applet方法是 A)destroy() B)init() C)stop() D)start() (35)要向Applet传递参数,应该在下列drawing.html文件的下划线处填入的选项是 …… …… A) B) C) D) 二、填空题(每空2分,共30分) (1)一个栈的初始状态为空。首先将元素5,4,3,2,1依次入栈,然后退栈一次,再将元素A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为【1】。 (2)在长度为n的线性表中,寻找最大项至少需要比较【2】次。 (3)一棵二叉树有10个度为1的结点,7个度为2的结点,则该二义树共有【3】个结点。 (4)仅由顺序、选择(分支)和重复(循环)结构构成的程序是【4】程序。 (5)数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和【5】。 (6)JVM指的是Java【6】。 (7)Java中的字符变量在内存中占【7】位(bit)。 (8)Java语言对简单数据类型进行了类包装,int对应的包装类是【8】。 (9)继承性是面向对象方法的一个基本特征,它使代码可【9】 (10)抽象类中含有没有实现的方法,该类不能【10】。 (11)在Java的输入输出流中,数据从数据源流向数据目的地,流的传送是【11】行的。 (12)Swing中用来表示进程条的类是:javax.swing. 【12】。 (13)下列程序创建了一个线程并运行,请在下划线处填入正确代码。 public class Try extends Thread{ public static void main(String args[]){ Threadt=new Try(); 【13】; } public void run(){ System.out.println(“Try!”); } } (14)Java中线程的【14】是由Java .lang.Thread类的run()方法定义的。 (15)请在下划线处填入代码,使程序能够正确运行。 import java .awt.*; import java .applet.*; public class SayHi extends Applet{ public void【15】(Graphics g){ g .drawString(“Hi!”20,20); } } 一、选择题 01-05 B A B D D 06-10 D D A B C 11-15 B C D A D 16-20 C D B C A 21-25 A A C C D 26-30 B D C B A 31-35 C C D A B 二、填空题 1、63 2、黑河 3、BDSM 4、开发 5、DD 6、J2ME 7、换行 8、passed 9、3and3 10、方法 11、Error 12、Writer 13、transient 14、操作 15、java.applet
