二级JAVA真题.docx

上传人:b****6 文档编号:13865782 上传时间:2023-06-18 格式:DOCX 页数:30 大小:27.93KB
下载 相关 举报
二级JAVA真题.docx_第1页
第1页 / 共30页
二级JAVA真题.docx_第2页
第2页 / 共30页
二级JAVA真题.docx_第3页
第3页 / 共30页
二级JAVA真题.docx_第4页
第4页 / 共30页
二级JAVA真题.docx_第5页
第5页 / 共30页
二级JAVA真题.docx_第6页
第6页 / 共30页
二级JAVA真题.docx_第7页
第7页 / 共30页
二级JAVA真题.docx_第8页
第8页 / 共30页
二级JAVA真题.docx_第9页
第9页 / 共30页
二级JAVA真题.docx_第10页
第10页 / 共30页
二级JAVA真题.docx_第11页
第11页 / 共30页
二级JAVA真题.docx_第12页
第12页 / 共30页
二级JAVA真题.docx_第13页
第13页 / 共30页
二级JAVA真题.docx_第14页
第14页 / 共30页
二级JAVA真题.docx_第15页
第15页 / 共30页
二级JAVA真题.docx_第16页
第16页 / 共30页
二级JAVA真题.docx_第17页
第17页 / 共30页
二级JAVA真题.docx_第18页
第18页 / 共30页
二级JAVA真题.docx_第19页
第19页 / 共30页
二级JAVA真题.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

二级JAVA真题.docx

《二级JAVA真题.docx》由会员分享,可在线阅读,更多相关《二级JAVA真题.docx(30页珍藏版)》请在冰点文库上搜索。

二级JAVA真题.docx

二级JAVA真题

二级JAVA真题2013年09月

(总分:

100.00,做题时间:

90分钟)

一、{{B}}选择题{{/B}}(总题数:

40,分数:

40.00)

1.一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是。

∙A.12345ABCDE

∙B.EDCBA54321

∙C.ABCDE12345

∙D.54321EDCBA

(分数:

1.00)

 A.

 B. √

 C.

 D.

解析:

[解析]栈是按照“先进后出”的原则组织数据的,入栈的顺序为12345ABCDE,1为栈底元素最后出栈,E为栈顶元素最先出栈,因此出栈的顺序为EDCBA54321。

2.下列叙述中正确的是______。

∙A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

∙B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

∙C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

∙D.循环队列中元素的个数是由队头指针和队尾指针共同决定

(分数:

1.00)

 A.

 B.

 C.

 D. √

解析:

[解析]循环队列是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环形空间。

循环队列仍然是顺序存储结构,是队列常采用的形式,因此选项A错误。

在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队列排头元素的前一个位置。

循环队列中的元素是动态变化的,每进行一次入队运算,队尾指针就进一;每进行一次出队运算,队头指针就进一。

可见由队头指针和队尾指针一起反映队列中元素的动态变化情况,因此选项B、C是错误的。

从队头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,因此选项D是正确的。

3.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是______。

∙A.O(n)

∙B.O(n2)

∙C.O(log2n)

∙D.O(nlog2n)

(分数:

1.00)

 A.

 B.

 C. √

 D.

解析:

[解析]最糟糕的情况应该是比较到线性表最后一个值,也没有查找到所需要的值,那么从线性表的第0个值开始比较,每次取出一个值比较,不符合,再取下一个值,依次比较,一直到最后一个,那么长度为N,就需要比较n次。

4.下列叙述中正确的是______。

∙A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

∙B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

∙C.顺序存储结构能存储有续表,链式存储结构不能存储有序表

∙D.链式存储结构比顺序存储结构节省存储空间

(分数:

1.00)

 A. √

 B.

 C.

 D.

解析:

[解析]在顺序存储结构中所有元素所占的存储空间是连续的,而在链式存储结构中,存储数据结构的存储空间可以不连续,因此选项A是正确的。

线性表在计算机中的存放可以采用顺序存储结构,也可采用链式存储结构,顺序存储结构和链式存储结构都是既可用于线性结构,也可以用于非线性结构,因此选项B、C是错误的。

采用链式存储结构,不仅要存储元素的值,元素间的逻辑关系还需要通过附设的指针字段来表示,因此,链式存储结构需要更多的存储空间。

5.数据流图中带有箭头的线段表示的是______。

∙A.控制流

∙B.事件驱动

∙C.模块调用

∙D.数据流

(分数:

1.00)

 A.

 B.

 C.

 D. √

解析:

[解析]数据流图的基本符号的意思:

①矩形表示数据的外部实体;②圆角的矩形表示变换数据的处理逻辑;③少右面的矩形表示数据的存储;④箭头表示数据流。

6.在软件开发中,需求分析阶段可以使用的图是______。

∙A.N-S图

∙B.DFD图

∙C.PAD图

∙D.程序流程图

(分数:

1.00)

 A.

 B. √

 C.

 D.

解析:

[解析]结构化解析方法是常见的需求分析方法之一,它是结构化程序设计理论在软件需求解析阶段的运用,DFD(DataFlowDiagram,数据流图)是结构化解析常用的工具之一。

数据字典、判定树和判定表也是常用的结构化分析工具。

程序流程图、N-S图、PAD图是详细设计过程中常用的图形工具。

7.在面向对象方法中,不属于“对象”基本特点的是______。

∙A.一致性

∙B.分类性

∙C.多态性

∙D.标识唯一性

(分数:

1.00)

 A. √

 B.

 C.

 D.

解析:

[解析]对象的基本特点有:

标识唯一性、分类性、多态性、封装性和模块独立性好。

标识唯一性是指对象是可区分的;分类性是指可将具有相同属性和操作的对象抽象成类;多态性是指同一个操作可以是不同对象的行为;封装性是指对象的内部对外不可见,在外面不可直接使用对象的处理能力,也不能直接修改其内部状态。

8.一间宿舍可以住多个学生,则实体宿舍和学生之间的联系是______。

∙A.一对一

∙B.一对多

∙C.多对一

∙D.多对多

(分数:

1.00)

 A.

 B. √

 C.

 D.

解析:

[解析]一间宿舍对应多个学生,则宿舍和学生之间的联系是一对多,学生和宿舍的联系是多对一。

9.在数据管理技术发展的三个阶段中,数据共享最好的是______。

∙A.人工管理阶段

∙B.文件系统阶段

∙C.数据库系统阶段

∙D.三个阶段相同

(分数:

1.00)

 A.

 B.

 C. √

 D.

解析:

[解析]在人工管理阶段,数据不保存,没有对数据进行管理的软件,数据不能共享;文件系统是数据库系统发展的初级阶段,提供了简单的数据共享与数据管理能力,但它不能提供完整的、统一的、管理和数据共享的能力。

数据库系统阶段实现了数据共享,具有数据的集成性,这使得数据可为多个应用所共享,数据的共享自身又可极大地减少数据冗余性。

10.有三个关系R、S和T如下:

R

A

B

m

1

n

2

S

B

C

1

3

3

5

T

A

B

C

m

1

3

由关系R和S通过运算得到关系T,则所使用的运算为______。

∙A.笛卡儿积

∙B.交

∙C.并

∙D.自然连接

(分数:

1.00)

 A.

 B.

 C.

 D. √

解析:

[解析]交和并运算要求关系R和S具有相同的属性,因此可以排除选项B、C。

R与S的笛卡儿积是一个4元关系,有4个元素,因此A错误。

R与S有公共的属性B,可通过公共属性的相等值进行链接,这就是自然连接,可见选项D是正确的。

11.下列对Java语言的叙述中,错误的是______。

∙A.Java虚拟机解释执行字节码

∙B.JDK的库文件目录是bin

∙C.Java的类是对具有相同行为对象的一种抽象

∙D.Java中的垃圾回收机制是一个系统级的线程

(分数:

1.00)

 A.

 B. √

 C.

 D.

解析:

[解析]Java语言的执行模式是半编译和半解释型。

Java编写好的程序首先由编译器转换为标准字节代码,然后由Java虚拟机去解释执行。

所以选项A是正确的。

运行Java的JDK一共包含五个目录,分别是:

bin目录、lib目录、jre目录、demo目录、include目录。

所以选项B是错误的。

在Java语言中,类是一个独立的程序单位,是具有相同属性和方法的一组对象的集合。

Java的类是对具有相同行为对象的一种抽象。

所以选项C是正确的。

Java有一个系统级的线程,对内存的使用进行跟踪,使程序员从繁忙的内存管理中解放出来。

所以选项D是正确的。

因此,本题的正确答案是B。

12.下列Java源程序结构中前三种语句的次序,正确的是______。

∙A.import,package,publicclass

∙B.import必为首,其他不限

∙C.publicclass,package,import

∙D.package,import,publicclass

(分数:

1.00)

 A.

 B.

 C.

 D. √

解析:

[解析]Java程序中源代码结构:

(1)package语句,0或1个,用于指定文件存入所指定的包中,该语句必须在文件之首。

(2)import语句,0或多个,必须在所有类定义之前引入标准类。

(3)publicclassDefinition(公共类定义),0或1个,指定应用程序类名,与源文件名一致。

(4)classDefiniton,0或多个,类定义。

(5)interfaceDefinition,0或多个,接口定义。

因此,本题的正确答案是D。

13.阅读下列代码:

publicclass

{

publicstaticvoidmain(Stringargs[])

{

doubled=12.3;

Decrementerdec=newDecrementer();

dec.decrement(d);

System.out.println(d);

}

classDecrementer{

publicvoiddecrement(doubledecMe){

decMe=decMe-1.0;

}

}

}

代码执行后输出的结果是______。

∙A.12.3

∙B.11.3

∙C.13.3

∙D.-1.0

(分数:

1.00)

 A. √

 B.

 C.

 D.

解析:

[解析]本题参数传递采用的是传值引用,函数中不会改变实参d的值,因此d的值不变。

14.给一个short类型变量赋值的范围是______。

∙A.-128~+127

∙B.-2147483648~+2147483647

∙C.-32768~+32767

∙D.-1000~+1000

(分数:

1.00)

 A.

 B.

 C. √

 D.

解析:

[解析]在java语言中short型变量的存储顺序是先高后低,占16bit,能表示的数据范围是:

-32768~+32767。

因此,本题的正确答案是C。

15.Reader类所处理的是______。

∙A.字符流

∙B.字节流

∙C.文件流

∙D.管道流

(分数:

1.00)

 A. √

 B.

 C.

 D.

解析:

[解析]Reader是一个抽象类,字符输入流都是抽象类Reader类的子类,它是用来读取字符文件的类。

字符输出流都是Writer抽象类的子类。

所以,Reader类所处理的是字符流。

因此,本题的正确答案是A。

16.阅读下列代码段:

ByteArrayOutputStreambout=newByteArrayOutputStream();

ObjectOutputStreamout=newObjectOutputStream(hout);

out.writeObject(this);

out.close();

以上代码段的作用是______。

∙A.将对象写入内存

∙B.将对象写入硬盘

∙C.将对象写入光盘

∙D.将对象写入文件

(分数:

1.00)

 A. √

 B.

 C.

 D.

解析:

[解析]在java.io中,提供了ByteArrayInputStream、BytcArrayOutputStream和StringBufferInputStream类可直接访问内存,它们是Inputstream和OutputStream的子类。

用ByteArrayOutputStream可以向字节数组(缓冲区)写入数据。

在ObjectInputStream中用readObject()方法可以直接读取一个对象,ObjectOutputStream中用writeObject()方法可以直接将对象保存到输出流中。

因此,本题的正确答案是A。

17.下列不属于Swing构件的是______。

∙A.JMenu

∙B.JApplet

∙C.JOptionPane

∙D.Panel

(分数:

1.00)

 A.

 B.

 C.

 D. √

解析:

[解析]Swing中的大多数构件名称都在AWT构件名前加了一个“J”。

因此,很容易判断D项不是Swing中的构件。

Jmenu和JOptionPane是Swing的轻量级组件;JAppiet是Swing的顶层容器。

因此,本题的正确答案是D。

18.下列不是AWT的布局管理器的是______。

∙A.FlowLayout

∙B.BorderLayout

∙C.BoxLayout

∙D.GridLayout

(分数:

1.00)

 A.

 B.

 C. √

 D.

解析:

[解析]布局管理器的相关类主要包括:

FlowLayout、BorderLayout、GridLayout、CardLayout、GridBagLayout等。

BoxLayout不是AWT的布局管理器。

因此,本题的正确答案是C。

19.子类继承了父类的方法和状态,在子类中可以进行的操作是______。

∙A.更换父类方法

∙B.减少父类方法

∙C.减少父类变量

∙D.添加方法

(分数:

1.00)

 A.

 B.

 C.

 D. √

解析:

[解析]对一个类的继承是指在现有类(父类)的基础上构建一个新类(子类),子类重用(继承)了父类的方法和属性,同时还可以向新类中增添新的方法的状态。

所以,在子类中可以进行的操作是添加方法。

因此,本题的正确答案是D。

20.下列能表示字符串s1长度的是______。

∙A.s1.length()

∙B.s1.length

∙C.s1.size

∙D.s1.size()

(分数:

1.00)

 A. √

 B.

 C.

 D.

解析:

[解析]在Java语言中,用s1.length()提取字符串s1的长度,所以用s1.length()表示字符串s1长度。

因此,本题的正确答案是A。

21.阅读下列代码段:

abstractclassPerson

{

publicPerson(Stringn){

name=n;

}

public______StringgetDescription();

publicStringgetName(){

returnname;

}

privateStringname;

}

在下画线处应填入的修饰符是______。

∙A.static

∙B.abstract

∙C.protected

∙D.final

(分数:

1.00)

 A.

 B. √

 C.

 D.

解析:

[解析]抽象类没有实现的方法,不能实例化。

程序中Person是一个抽象类,因此StringgetDescrtption方法也是抽象的,所以用abstract修饰。

因此,本题的正确答案是B。

22.阅读下列代码:

publicclassJixiangwu{

publicstaticvoidmain(String[]args){

String[]stars={"贝贝","晶晶","欢欢","迎迎","妮妮"};

System.out.println("你抽取的奥运吉祥物是"+"""

+starsr(int)(stars.______*Math.random())]+~"""+"!

";

}

}

为保证程序能正确执行,程序中下画线处应填写的是______。

∙A.long

∙B.width

∙C.wide

∙D.length

(分数:

1.00)

 A.

 B.

 C.

 D. √

解析:

[解析]程序中的下画线处需要填入字符数组starts的长度才能确定范围以便能够随机抽取到字符数组starts的各个元素。

因此,本题的正确答案是D。

23.下列方法中可用于定义线程休的是______。

∙A.start()

∙B.ink()

∙C.run()

∙D.main()

(分数:

1.00)

 A.

 B.

 C. √

 D.

解析:

[解析]Java中的线程体是由线程类的run()方法定义,该方法定义线程的具体行为。

因此,本题的正确答案是C。

24.下列方法中与Applet显示无关的是______。

∙A.update()

∙B.draw()

∙C.repaint()

∙D.paint()

(分数:

1.00)

 A.

 B. √

 C.

 D.

解析:

[解析]和Applet显示相关有3个方法:

(1)paret()方法,具体执行Applet的绘制。

(2)update()方法,用于更新Applet的显示,该方法将首先清除背景,再调用paint()方法完成Applet的具体绘制。

(3)repaint()方法,主要用于Applet的重新显示,它调用update()方法实现对Applet的更新。

因此,本题的正确答案是B。

25.下列语句中错误的是______。

∙A.Strings[]={"how","are");

∙B.byteb=255;

∙C.Strings="one"+"two";

∙D.inti=2+2000;

(分数:

1.00)

 A.

 B. √

 C.

 D.

解析:

[解析]选项A是定义并初始化一个一维数组,选项C是定义并初始化一个字符串,选项D是定义并初始化一个整型变量。

选项A、C、D是正确的。

byte型变量占8bit,能表示的数据范围是:

-128~+127,所以选项B是错误的。

因此,本题的正确答案是B。

26.下列可用作switch(expression)语句参数的是______。

∙A.Strings

∙B.Integeri

∙C.booleanb

∙D.inti

(分数:

1.00)

 A.

 B.

 C.

 D. √

解析:

[解析]表达式expression最终值的类型必须是int型或者是能自动转换成int型的类型,如short、byte、char。

否则,必须进行强制类型转换。

case子句中的值valueI必须是常量,而且所有case子句中的值是不同的。

选项A是一个字符串常量,选项B中的Integer是一个类。

因此,本题的正确答案为D。

27.当浏览器重新返回到包含Applet的页面时调用的方法是______。

∙A.start()

∙B.init()

∙C.stop()

∙D.destroy()

(分数:

1.00)

 A. √

 B.

 C.

 D.

解析:

[解析]Applet生命周期包括Applet的创建、运行与消亡几个状态。

Applet类提供了在生命周期不同阶段响应主要事件的4种方法,这4种方法的调用次序如下图所示:

[*]当浏览器重新返回到包含Applet的页面时调用的方法是start()。

因此,本题的正确答案是A。

28.阅读下列代码:

publicclassTest{

publicstaticvoidmain(Stringargs[]){

System.out.println((2<0)?

10:

8);

}

}

其运行结果是______。

∙A.2

∙B.0

∙C.10

∙D.8

(分数:

1.00)

 A.

 B.

 C.

 D. √

解析:

[解析]因为2<0为flase,所以条件表达式的值为8。

因此,本题的正确答案是D。

29.阅读下列代码:

publicclassArrays{

publicstaticvoidmain(string[]args){

int[]a=newint[5];

for(inti=0;i<a.length;i=i+1){

a[i]=10+i;

}

for(inti=0;i<a.length;i++){

System.out.println(a[i]);

}

String[]s={"Frank","Bob","Jim"};

for(inti=0;i<s.length;i=i+1){

System.out.println(s[i]);

}

s[2]="Mike";

System.out.println(s[2]);

}

}

代码运行结果正确的是______。

∙A.1011121314MikeBobFrankJim

∙B.1112131415FrankBobMikeJim

∙C.1011121314FrankBobJimMike

∙D.1112131415MikeJimBobFrank

(分数:

1.00)

 A.

 B.

 C. √

 D.

解析:

[解析]for循环执行时,首先执行初始化操作,其次判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分的。

完成一次循环后重新判断终止条件。

在本题的程序段中第一个for循环功能是定义一个一维数组a,第二个for循环的功能是输出一维数组a的各个元素,第三个for循环功能是输出~维数组s的各个元素。

因此,本题的正确答案是C。

30.下列方法能够用来实现线程之间通信的是______。

∙A.notify()

∙B.run()

∙C.sleep()

∙D.join()

(分数:

1.00)

 A. √

 B.

 C.

 D.

解析:

[解析]wait()和notify()是java.lang.object类的方法,是实现线程通信的方法。

wait()和notify()可以实现线程的同步:

当某线程需要在synchronized块中等待共享数据状态改变时调用wait(),这样该线程等待并释放共享数据对象的锁,其他线程可以获得该对象的锁,并进入synchronized块对共享数据进行操作。

当其操作结束后,只要调用notify()方法就可以通知正在等待的线程重新占有锁并运行。

所以,notify()能够实现线程之间的通信。

因此,本题的正确答案是A。

31.下列关于线程的说法中,正确的是______。

∙A.一个线程一旦被创建,就立即开始运行

∙B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行

∙C.当运行状态的线程因为调用了yield()方法而停止运行,它一定被放在可运行线程队列的前面

∙D.当因等待对象锁而被阻塞的线程获得锁后,将直接进入运行状态

(分数:

1.00)

 A.

 B. √

 C.

 D.

解析:

[解析]在Java中,调用一个线程类的构造方法,便创建了一个线程,新建的线程调用start()方法将使线程的状态从New转换为Runnable。

Runnable表示系统处于运行就绪状态,此时线程仅仅是可以运行,但不一定在运行中。

所以选项A是错误的,选项B是正确的。

yield()方法使具有与当前线

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2