淘小兔

考试题库软件和上机考试系统下载:最新必备!备考计算机二级考试模拟题库+资料!
 
1. 为了支持压栈线程与弹栈线程之间的交互与同步,应在下画线处填入的选项是(  )。 
public 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()

  • 参考解析:
    A。【解析】当一个线程使用的同步方法中用到某个变量,而此时有需要其他线程修改后才能符合本线程的需要,那么可以使用wait()方法,wait()方法的作用是使本线程等待,并允许其他线程使用此同步方法。当其他线程使用完后应使用notify()或者notifyAll()方法允许其他线程使用此同步方法。Interrupt()方法的作用是在run()方法执行完之前就消灭此线程,而sleep()方法的作用是延迟一段时间后执行。所以本题是为了支持压栈线程与弹栈线程之间的交互与同步,所以选A。

 

2. 下列选项中,不能输出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.println(i); i++; }

D.int i=0; while(i<100){i++; if(i<100)continue; System.OUt.println(i); }

  • 参考解析:
    D。【解析】continue语句的作用是不执行循环体后面的语句直接进入循环判断阶段。所以本题选D。

 

3. 为了支持压栈线程与弹栈线程之间的交互与同步,在程序的下画线处依次填入的语句是(  )。 
public class IntStack{
private int idx=0; 
private int[]data=new int[8]; 
public void push(int i){
data[idx]=i: 
idx++;  
        
… …
}

A.synchronized() notify()

B.synchronized this.wait()

C.synchronized  this.notify() 

D.Serializable sleep()

  • 参考解析:
    B。【解析】在Synchronized块中等待共享数据的状态改变时调用wait()方法,这样该线程等待并暂时释放共享数据对象的锁。

 

4. 下列描述中,不是线性表顺序存储结构特征的是()

A.不便于插入和删除 

B.需要连续的存储空间 

C.可随机访问 

D.需另外开辟空间来保存元素之间的关系 

  • 参考解析:
    D。【解析】线性表特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此不需要另外开辟空间来保存元素之间的关系。

 

5. Java语言中。负责并发管理的机制是(  )。

A.垃圾回收 

B.虚拟机

C.代码安全 

D.多线程

  • 参考解析:
    D。【解析】多线程是Java程序的并发机制,它能同步共享数据、处理不同的事件。

 

6. 算法的时间复杂度是指(  )。

A.算法的执行时间

B.算法所处理的数据量

C.算法程序中的语句或指令条数

D.算法在执行过程中所需要的基本运算次数

  • 参考解析:
    D。【解析】算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模n的函数f(n),算法的时间复杂度也因此记做T(n)=O(f(n))因此,问题的规模n越大,算法执行的时间的增长率与f(n)的增长率正相关,称作渐进时间复杂度(Asymptotic Time Cornplexity)。简单来说就是算法在执行过程中所需要的基本运算次数。

 

7. 为了将HelloApplet(主类名为HelloApplet.class)嵌入在greeting.html文件中,应该在下列greeting.html文件的横线处填人的代码是(  )。 
<HTML>
<HEAD>
<TITLE>Greetings</TITLE>
</HEAD>
<BODY>
<APPLET       >
</APPLET>
</B()DY>
</HTML>

A.(elloApplet.class

B.CODE="(elloApplet.class"

C.CODE="(elloApplet.class"WIDTH=150 HElGHT=25

D.CoDE="(elloApplet.class”" VSPACE=10 HSPACE=10

  • 参考解析:
    C。【解析】在html页中包含Applet时,CODE=appletfile指定了包含Applet或JApplet字节码的文件名,WIDTH=pixels HEIGHT=pixels定义了Applet显示区以像素为单位的高度和宽度。

 

8. Java的核心包中,分享编程应用的基本类的包是(  )。

A.java.lang 

B.java.util

C.java.applet

D.java.rmi

  • 参考解析:
    A。【解析】Java的核心包一共有l2个,其中:java.lan9包中封装了所有编程应用的基本类;java.util包分享实用程序类和集合类,如系统特性定义和使用、日期函数类、 集合等常用工具;java.applet包为Applet分享执行需要的所有类,主要是访问Applet内容的通信类;java.rmi包分享程序远程方法调用所需的类。因此,本题的正确答案是A。

 

9. 在编译Java程序时,用于指定生成.class文件位置的选项是(  )。

A.-9 

B.-d

C.-verbose

D.-nowarn

  • 参考解析:
    B。【解析】javac.exe是Java编译器,能将源程序代码编译成字节码,以.class扩展名存入Java工作目录中。它的命令格式为:javac[选项]文件名。其中[选项]包括以下几个:-g。输出文件中加行号以及局部变量信息,为调试程序时用。-o对类文件进行优化编译。-nowarn 关闭警告信息,只显示错误信息。-verbose 显示源代码文件和字节码文件的相关信息。-d<目录> 指定存放生成的类(.class)文件的位置根据上述介绍可知,在编译Java程序时,可以通过选项-d来指定生成的.class文件的位置。因此,本题的正确答案是B。

 

10. 按照Java的标识符命名规则,下列表示一个类的标识符正确的是(  )。

A.Helloworld 

B.HelloWorld

C.helloworld

D.helloWorld

  • 参考解析:
    B。【解析】本题考查Java类名的命名规则。类名与接口名都采用完整的英文描述,并且所有单词的第一个字母大写;包采用完整的英文描述符,都是由小写字母组成的;类的变量采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写;常量名全部采用大写字母。单词之间用下画线分隔。应该掌握命名规则,不仅因为它是考试重点,同时也是养成良好编程习惯的基础。

 

11. 用下列4种排序方法,对一个已排好序(由小到大)的序列进行由小到大排序时,选择(  )方法最好。

A.冒泡排序 

B.直接选择排序

C.直接插入排序 

D.归并排序

  • 参考解析:
    C。【解析】直接插入排序的基本算法是:当插入第i(i>一1)个对象时,前面的V[o],V[1],…,V[i一1]已经排好序,这时,用V[i]的关键码与V[i一1],[i一2]…的关键码顺序进行比较,找到插入位置即将vEi]插入,原来位置上的对象则向后移。由此可知,直接插入排序法的关键码比较次数与对象的初始排列有关。在本题中,序列已经排好序,所以其i的取值达到了最大,也就是序列中元素的个数,其实根本无需比较和交换,所以这种方法是最佳的。

 

12. 下列包中,包含JOptionPane类的是(  )。

A.javax.swing 

B.java.lang

C.java.util

D.java.applet

  • 参考解析:
    A。【解析】Swing中分享了JOptionPane类来实现类似Windows平台下的MessageBox的功能,利用JOptionPane类中的各个static方法来生成各种标准的对话框,实现显示信息、提出问题、警告、用户输入参数等功能,且这些对话框都是模式对话框。

 

13. Java语言中属于跳转语句的是(  )

A.try 

B.catch

C.finally

D.break

  • 参考解析:
    D。【解析】Java语言中跳转语句为break。try、catch和finally为异常处理语句。

 

14. 下列描述中正确的是(  )。

A.软件工程只是解决软件项目的管理问题

B.软件工程主要解决软件产品的生产率问题

C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

D.软件工程只是解决软件开发过程中的技术问题

  • 参考解析:
    C。【解析】软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。

 

15. 下面程序段的输出结果为(  )。 
public class Test
{
int a,b; 
Test()
{
a=100; 
b=200: 
}
Test(int X,int y)
{
a=x: 
b=y; 
}
public static void main(String args[])
{
Test Objl=new Test(12,45); 
System.OUt.println("a="+Objl.a+"b="+Objl. 
b); 
Test Obj2=new Test(); 
System.out.println("fl="+Obj2.a+"b="+Obj2. 
b); 
}
}

A.a=100 b=200 a=12 b=45 

B.a=12 b=45a=100 b=200

C.a=12 b=200 a=100 b=45 

D.a=100 b=45 a=12 b=200

  • 参考解析:
    B。【解析】本题考查构造方法及构造方法重载。Test类有两个构造方法,即使用了方法重载技术。不带参数的构造方法对类的实例变量进行特定数值的赋值,而带参数的构造方法根据参数对类的实例变量进行赋值。 TestObjl=newTest(12,45)语句调用的是Test(intx,inty),而TestObj2=newTest()调用的是Test(),注意根据参数个数来区分。

 

16. 下列不属于逻辑运算符的是(  )。

A.! 

B.||

C.&& 

D.|

  • 参考解析:
    D。【解析】!是逻辑非,||是逻辑或,&&是逻辑与,︱是按位或。 

 

17. 下列叙述中,正确的是(  )。

A.声明变量时必须指定一个类型

B.Java认为变量number与Number相同

C.Java中唯一的注释方式是“//”

D.源文件中public类可以有0个或多个

  • 参考解析:
    A。【解析】本题考查Java的基本概念。Java的基本概念是考试重点,应该重视。在Java中,声明变量时,必须指定类型,否则将会出错,所以选项A说法正确。Java标识符是区分大小写的,变量number和Number对Java来说是不同的,选项B说法错误。Java中有三种注释方式:文档注释/**…*/,被javadoc处理,可以建立类的一个外部说明性文件;C语言注释风格/*…*/,用于去掉当前不再使用但仍想保留的代码等;单行注释//,格式上要求注释符//后必须紧跟一个空格,然后才是注释信息,选项C说法错误。源文件中public类可以有0个或l个,不能多于l个,选项D说法错误。

 

18. 下面(  )正确表示了int类型的聚会范围。

A.-216~216-1 

B.-231~231-1

C.-232~232-1 

D.-264~264-1

  • 参考解析:
    B。【解析】该题考查对基本数据类型的长度范围的掌握。在Java语言中,每一种基本类型的长度范围是固定的,它不随着机器字长的改变而改变。对于整型(int),它的长度是4字节,而且它可正可负,所以其取值范围应该是-231~231-1。

 

19. char类型的取值范围是(  )。

A.2的-7次方~2的7次方减1

B.O~2的16次方减1

C.负2的15次方~2的15次方减1

D.O~2的8次方减1

  • 参考解析:
    B。【解析】本题考查Java中数据类型的取值范围。应该掌握常用的数据类型的取值范围,char类型在内存中占16位,取值范围是0~65535也就是O~2的16次方减1,选项B正确。

 

20. 定义一个表示10个值为null的字符串数组,下面选项正确的是(  )。

A.String []a;

B.String a[];

C.char a[l0][];

D.String a[]=new String[10];

  • 参考解析:
    D。【解析】本题考查字符串数组变量的声明。选项A和选项B的效果是一样的,都是用来定义一个字符串数组,但没有指明数组个数,不满足题目要求;选项C是一个二维的字符数组,在C语言中,一个二维的字符数组就可以表示一个一维的字符串数组,而在Java中,字符char是基本类型,字符串String则是以对象的形式来表示的;选项D正确,它定义了一个含有l0个元素的字符串数组,如果没有给字符串数组赋值,则默认为null。

 

21. 在Java语言中,ObjectOutputStream是指(  )。

A.字节流 

B.字符流

C.对象输出流 

D.数据流

  • 参考解析:
    C。【解析】本题考查Java输入\输出流的概念。FilelnputStream是字节流,BufferedWriter是字符流,ObjectOutputStream是对象输出流,既继承了OutputStream抽象类,又实现了0bjectOutput接口,这是Java用接口技术代替双重继承的例子,其构造方法参数是串行化的对象。

 

22. 下列关于面向对象的论述中,正确的是(  )。

A.面由对象是指以对象为中心,分析、设计和实现应用程序的机制

B.面向对象是指以功能为中心,分析、设计和实现应用程序的机制

C.面向对象仅适用于程序设计阶段

D.面向对象是一种程序设计语言

  • 参考解析:
    A。【解析】面向对象是一种程序设计方式,Java、 C++是面向对象设计的语言,而C是面向过程设计的语言。面向对象设计适应于设计、编码、实现、测试等一系列环节。

 

23. 对一个由n个关键码组成的序列,借助排序过程选出其中最大的关键码,要求关键码比较次数和移动次数最少,则最佳排序方法是(  )。

A.归并排序 

B.直接插入排序

C.直接选择排序 

D.快速排序

  • 参考解析:
    C。【解析】直接选择排序第一遍扫描就可以把最大的关键码找出来(不必等到排序结束),而其他几种排序方法都必须等到排序完成才能找到最大关键码。

 

24. 如果线程正处于运行状态,则它可能到达的下一个状态是(  )

A.只有终止状态   

B.只有阻塞状态和终止状态  

C.可运行状态、阻塞状态、终止状态   

D.其他所有状态

  • 参考解析:
    C。【解析】下一个状态可以是可运行状态、阻塞状态、终止状态中的任一种。

 

25. 对于下面语句的说法,不正确的是(  )。Thread thrObj=new Thread():

A.系统没有为该线程对象分配资源

B.只能启动或者终止

C.创建了一个空的线程对象

D.可以调用其他方法

  • 参考解析:
    D。【解析】本题考查线程的创建。通过new命令创建一个线程对象后,该线程对象就处于创建状态,上面的语句只是创建了一个空的线程对象,选项C说法正确。此时,系统并没有为该线程对象分配资源,选项A说法正确。处于这种状态的线程,只能启动或者终止,选项B说法正确。该线程此时并不能调用其他方法,如果调用其他方法就会失败并引起非法状态处理,选项D说法错误。

 

26. 下列关于Java安全性的说法错误的是(  )。

A.有严格的访问权限检查

B.对程序执行前要检查

C.不允许使用指针

D.可防止对内存的非法入侵

  • 参考解析:
    B。【解析】本题考查Java的安全性特点。面向网络、分布式的Java语言,对非法入侵的防范是非常重要的,Java语言分享充分的安全保障,在运行程序时,有严格的访问权限检查。对字节代码执行前要检查,不允许使用指针,可防止对内存的非法入侵,它是目前安全性最佳的语言。但是Java并不是对程序执行前检查,而是对字节代码进行检查,Java编写好的程序首先由编译器转换为标准字节代码,然后由Java虚拟机去解释执行。

 

27. 下列选项默认的布局管理器不是BorderLayout的是(  )。

A.Window

B.Panel

C.Frame

D.Dialog

  • 参考解析:
    B。【解析】本题考查Java中的布局管理器。Pane和Applet默认的布局管理器是FlowLayout,构件在容器中放置规律是从上到下、从左到右进行放置;BorderLayout是Window、Frame和Dialog的默认布局管理器,在BorderLayout布局管理器中构件分成5个区域North、South、East、West和Center,每个区域只能放置一个构件。考生应注意区分各个布局管理器的区别和联系,以及各个布局管理器的特点。

 

28. 下列方法中,不属于类Strin9的方法是(  )。

A.toLowerCase() 

B.valueOf()

C.charAt()

D.append()

  • 参考解析:
    D。【解析】String的方法中,toLowerCase()方法是转换成小写,valueof()方法是获得相应数值,eharAt()方法是提取字符串中指定位置的字符。append()是StringBuffer的方法。

 

29. 下列特征中不是面向对象方法的主要特征的是(  )。

A.多态性 

B.继承

C.封装性 

D.模块化

  • 参考解析:
    D。【解析】面向对象设计方法与面向过程设计方法有本质的不同,其基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:分类性、多态性、封装性、模块独立性、继承和多态性等。模块化是结构化程序设计的特点。

 

30. 关于内存变量的调用,下列说法中正确的是(  )。

A.私有变量只能被本层模块程序调用

B.私有变量能被本层模块和下层模块程序调用

C.局部变量不能被本层模块程序调用

D.局部变量能被本层模块和下层模块程序调用

  • 参考解析:
    B。【解析】由系统自动隐含建立的变量是私有变量。私有变量的作用域是建立它的模块及其下属的各层模块。局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用。当建立它的模块程序运行结束时,局部变量自动释放,局部变量用local命令建立。

 

31. 下列程序段的输出结果是(  )。 
int data=0 ; 
char k='a',P='f '; 
data=P-k: 
System.OUt.println(data);

A.0 

B.a

C.f

D.5

  • 参考解析:
    D。【解析】a和f的ASCIl值相差5。

 

32. 在Java中,实现用户界面功能的包是(  )。

A.java.applet 

B.javax.transaction

C.java.util

D.java.awt

  • 参考解析:
    D。【解析】本题考查考生对Java包功能的理解。选项A中java.applet包是为Applet分享执行需要的所有类,主要访问Applet内容的通信类;选项B中transaction包是属于javax而不是java,javax.transaction包是分享事务处理所需要的包;选项C中java.util包分享使用程序类和集合类,如系统特性定义和使用、日期函数类、集合Collection、 Map、List、Array等常用工具类;java.awt包是封装抽象窗口工具包,分享构建和管理用户图形界面功能,为本题正确答案。

 

33. 在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则关系A的外码是(  )。

A.CN 

B.SN

C.S 

D.D

  • 参考解析:
    D。【解析】外码用于建立和加强两个关系之间的连接,通过将保存关系中主键值的一列或多列属性添加到另一个关系中,可建立两个关系之间的联系,这个列属性称为第二关系的外码。

 

34. 一个栈的初始状态为空。现将元素l、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是(  )。 

A.12345ABCDE 

B.EDCBA54321

C.ABCDEl2345

D.54321EDCBA

  • 参考解析:
    B【解析】栈是按照“先进后出”或“后进先出”的原则组织数据的,所以出栈顺序是EDCBA54321。

 

35. 下列线程状态转换序列,在线程实际运行中可能出现的序列是(  )。

A.新建→运行→阻塞→终止

B.……运行→阻塞→可运行→终止

C.……可运行→运行→阻塞→运行……

D.新建→可运行→运行→阻塞→可运行……

参考解析:

D。【解析】线程状态转换序列如下图所示:
 2018年全国计算机等级考试二级JAVA上机模拟试卷(7) 
故选D。

 

36. 结构化分析方法是面向(  )的自顶向下逐步求精进行需求分析的方法。

A.对象 

B.数据结构

C.数据流 

D.目标

  • 参考解析:
    C。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解、建立系统的处理流程。

 

37. 下列包中,包含JOptionPane类的是(  )。

A.javax.swing 

B.java.lang

C.java.util

D.java.applet

  • 参考解析:
    A。【解析】Swing中分享了JOptionPane类来实现类似Windows平台下的MessageBox的功能,利用JOptionPane类中的各个static方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能,且这些对话框都是模式对话框。

 

38. Java的反汇编命令是(  )。

A.javap 

B.javac

C.jdb

D.java

参考解析:

A。【解析]javap命令是Java反汇编命令;javac命令是Java语言编译器,jdb是基于文本和命令行的调试工具,java命令是Java解释器。

 

39. 支持子程序调用的数据结构是(  )。

A.栈 

B.树

C.队列 

D.二叉树

参考解析:

A。【解析】根据栈的定义,栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,主函数会保持当前状态,然后转去执行子函数,把子函数的运行结果返回到主函数,主函数继续向下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。

 

40. 线性表L=(al,a2,a3,…ai,…an),下列说法正确的是(  )。

A.每个元素都有一个直接前件和直接后件

B.线性表中至少要有一个元素

C.表中诸元素的排列顺序必须是由小到大或由大到小

D.除第一个元素和最后一个元素外,其余每个元素都有且只有一个直接前继和直接后继

参考解析:

D。【解析】线性表可以为空表;第一个元素没有直接前驱,最后一个元素没有直接后继;线性表的定义中,元素的排列并没有规定大小顺序。

 

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看内容!

如何获取密码?

 

点击下载