全国计算机等级考试二级Java语言程序设计试题及答案(六).doc

上传人:豆**** 文档编号:32885300 上传时间:2022-08-09 格式:DOC 页数:17 大小:54KB
返回 下载 相关 举报
全国计算机等级考试二级Java语言程序设计试题及答案(六).doc_第1页
第1页 / 共17页
全国计算机等级考试二级Java语言程序设计试题及答案(六).doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《全国计算机等级考试二级Java语言程序设计试题及答案(六).doc》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级Java语言程序设计试题及答案(六).doc(17页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除一、选择题(每小题1分,共40小题,共40分) 1算法的空间复杂度是指( )。 A算法程序的长度 B算法程序中的指令条数 C算法程序所占的存储空间 D算法执行过程中所需要的存储空间 D。【解析】算法的空间复杂度,是指执行这个算法所需的存储空间。算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要的额外空间。 2用链表表示线性表的优点是( )。 A便于随机存取 B花费的存储空间较顺序存储少 C便于插入和删除操作 D数据元素的物理顺序与逻辑顺序相同 C。【解析】数据结构是相互之间存在一种或多种特定关系的数

2、据元素的集合。”关系”描述的是数据元素之间的逻辑关系,因此又称数据的逻辑结构。数据的存储结构是指数据结构(数据的逻辑结构)在计算机中的表示,又称物理结构。数据的存储结构有顺序存储结构和链式存储结构两种。不同存储结构的数据处理效率不同。由于链表采用链式存储结构,元素的物理顺序并不连续,对于插入和删除无需移动元素,很方便,当查找元素时就需要逐个元素查找,因此查找的时间相对更长。 3已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为( )。 AGEDHFBCA BDGEBHFCA CABCDEFGH DACBFEDHG B。【解析】二叉树的遍历有3种:前

3、序、中序和后序。后序遍历首先遍历左子树或左子结点,然后遍历右子树或右子结点,最后访问根结点;中序遍历首先遍历左子树或左子结点,然后访问根结点,最后遍历右子树或右子结点;后序遍历首先访问根结点,然后遍历左子树或左子结点,最后遍历右子树或右子结点。本题根据前序遍历和中序遍历的 结果可以得出二叉树的结构,然后再对其进行后序遍历,因此答案为选项B。 4下列数据结构中,能用二分法进行查找的是( )。 A顺序存储的有序线性表 B线性链表 C二叉链表 D有序线性链表 A。【解析】二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。 5结构化程序设计的3种基本结构

4、是( )。 A过程、子程序和分程序 B顺序、选择和重复 C递归、堆栈和队列 D调用、返回和转移 B。【解析】程序的三种基本控制结构包括:顺序、选择和重复(循环),这三种结构就足以表达出各种其他形式的结构。 6下列叙述中正确的是( )。 A在模块化程序设计中,一个模块应该尽量多的包括与其他模块联系的信息 B在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节 C在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则 D在程序设计过程中,不能同时采用结构化程序设计 方法与模块化程序设计方法 C。【解析】在模块化程序设计中,模块之间的联系可以通过程序的控制结构来实现,在自顶向下、逐

5、步细化的设计过程中,首先要考虑全局目标,而不是细节。在程序设计中模块化和结构化可以同时使用,一个模块的内部结构也要符合结构化设计原则。 7设计软件结构是在软件生命周期的( )。 A软件定义期 B软件开发期 C软件维护期 D以上3个都不是 B。【解析】设计软件结构,是在软件概要设计阶段进行的,而概要设计属于软件开发期。 8数据库技术的根本目标是要解决数据的( )。 A存储问题 B共享问题 C安全问题 D保护问题 B。【解析】在数据库系统中,需要对数据进行集中、统一的管理,以达到被多个应用程序共享的目标。 9设计数据库的存储结构属于( )阶段。 A需求分析 B概念设计 C逻辑设计 D物理设计 D。

6、【解析】物理设计阶段主要解决选择文件存储结构和确定文件存取的方法的问题,包括:选择存储结构、确定存取方法、选择存取路径、确定数据的存放位置。 10相对于数据库系统,文件系统的主要缺陷有数据依赖、数据不一致性和( )。 A可重用性差 B安全性差 C非持久性 D冗余性 D。【解析】文件系统所管理的数据文件基本上是分散、相互独立的。因此相对于数据库系统,以此为基础的数据处理存在3个缺点:数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。 11 如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用的方法是( )。 A分块法 B顺序法 C二分法 D散列法 A。【解析】分块

7、查找是将表分成若干块,分块的原则是数据元素的关键字在块与块之间是有序的,而块内元素的关键字是无序的。分块法可以适应动态变化的要求。其他三种是在顺序存储的一组记录内进行查找的。 12顺序存储结构的优点是( )。 A删除运算方便 B存储空间利用率高 C插入运算方便 D可以方便地运用到各种逻辑结构的存储表中 B。【解析】顺序结构逻辑上相邻的结点物理上也是相邻的。因此,其存储密度大,存储空间利用率高,但插入、删除运算操作不方便,需移动大量的结点。 13用下列4种排序方法,对一个已排好序(由小到大)的序列进行由小到大排序时,选择( )方法最好。 A冒泡排序 B直接选择排序 C直接插入排序 D归并排序 C

8、。【解析】直接插入排序的基本算法是:当插入第i(i一1)个对象时,前面的Vo,V1,Vi一1已经排好序,这时,用Vi的关键码与Vi一1,i一2的关键码顺序进行比较,找到插入位置即将vEi插入,原来位置上的对象则向后移。由此可知,直接插入排序法的关键码比较次数与对象的初始排列有关。在本题中,序列已经排好序,所以其i的取值达到了最大,也就是序列中元素的个数,其实根本无需比较和交换,所以这种方法是最佳的。 14按层次次序将一棵有n-个结点的完全二叉树的所有结点从ln编号,当in2时,编号为i的结点的左子树的编号是( )。 A2i-1 B2i C2i+1 D不确定 B。【解析】完全二叉树中除最下面一层

9、外,各层都被结点充满了,每一层结点个数恰是上一层结点个数的2倍。因此,从一个结点的编号就可推知它的双亲及左、右子树结点的编号。当in2时,编号为i的结点的左子树的编号是2i,否则结点i没有左子树。当i(n-1)2时,编号为i的结点的右子树的编号是2i+1,否则结点i没有右子树。当i1时,编号为i的结点的双亲是结点i2。 15对于给出的一组权w=10,12,16,21,30,通过霍夫曼算法求出的扩充二叉树的带权外部路径长度为( )。 A89 B189 C200 D300 C。【解析】其带权外部路径长度为:216+221+230+310+312=200。 16JDK中,用( )命令对其源文件进行编

10、译,生成字节码文件。 Ajavaexe Bjavacexe Cjavadocexe Djavapexe B。【解析】本题考查JDK实用工具的使用。选项A错误,javaexe是Java语言解释器,直接从类文件执行Java应用程序字节代码,可接受class文件并启动Java虚拟机执 行;选项B正确,javacexe是Java语言编译器,将Java源代码转换成字节码;选项C错误,javadocexe是根据Java源代码及说明语句生成HTML,文档;选项D错误,javapexe是反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。 17以下叙述中不属于Java语言特点的是( )。 A面

11、向对象 B可移植性 C多线程 D宏定义 D。【解析】本题考查Java语言的基本特点。选项A正确,Java最大的特点之一是跨平台、面向对象;选项B正确,解释同A;选项C正确,多线程是Java的一个主要特性,它使可执行程序具有同时保持几个线程执行的能力;选项D错误,Java不支持宏定义。 18在Java语言中,封闭是借助于( )实现酊。 A对象 B类 C数组 D成员 B。【解析】Java是一个完全面向对象的语言,利用类把对象的属性和方法封装在一起,只对外界提供有限的接口。 19Java对文件类提供了许多操作方法,能获得文件对象父路径名的方法是( )。 AgetAbsolutePath() Bget

12、ParentFile() CgetAbsoluteFile() DgetName() B。【解析】本题考查File类的基本知识。File类是通过文件名列表来描述一个文件对象的属性,通过File类提供的方法,可以获得文件的名称、长度、所有路径等信息,还可以改变文件的名称、删除文件等。 20下列各项中属于合法标识符的是( )。 Amyid2 B+void C-5 D_vacl D。【解析】Java语言的标识符是以字母、下画线和符号$为首字符的字符串,首字符后面可以跟字母、下画线、$和数字,且标识符是区分大小写的,标识符的字符数没有限制。A选项中含有非法符号”,故是错误的:B选项是以符号”+”开始的

13、字符串也不符合规则;同理,C选项也是错误的。 21下列各选项中属于Java保留字的是( )。 ATRUE BNULL CFALSE Dnull D。【解析】在Java中,常量null、false、true都是小写的。所以A、B和C选项中的字符串都不是Java的保留字。 22下列各项中代表八进制整数的是( )。 A0XA6 B0144 C1840 D-lE3 B。【解析】Java语言中八进制整数为整型常量中的一种,以0开始,后加数字07组成。故只有B选项0144符合要求。 23下列代码的执行结果是( )。 public class Test public static void main(Str

14、ing args) Systemoutprintln(52); SystemOUtprintln(1003O) A2和1 B2和10 C25和1 D25和10 B。【解析】由于5和2都是int型,所以语句Systemoutprintln(52)的输出为2。由于操作数30为double型(Java语言中浮点数的默认值为double型),所以结果为double型,即10。 24char类型被封装在( )中。 AjavalangInteger BjavalangChar CjavalangBoolean DjavalangCharacter D。【解析】Java语言中,char类型被封装在javal

15、angCharacter中。 25下面代码段的输出是( )。 if(5 8L7)0&8L52)systemoutprintln(true); A编译出错 B5752 Ctrue D无任何输出 A。【解析】本题考查对位运算符和逻辑运算符的理解。位运算符”&”和”|用于按位将两个数进行与和或的操作,两个操作数可以是整型、字节型、长整型和短整型,但不能是浮点型数据。逻辑运算符&只能对两个布尔型的数据进行运算,返回的结果也是布尔型的。 26下列关于内部类的说法,正确的是( )。 A内部类可以与它包含的类名相同 B内部类只能使用它所在类的静态成员变量,不能使用它所在类的方法中的局部变量 C内部类可以用a

16、bstract修饰定义为抽象类,不能用private或protected定义 D外部使用内部类时必须给出类的全名 D。【解析】本题考查内部类的概念。在一个类的内部嵌套定义的类称为内部类,它的类名在定义它的类或程序段中或在表达式内部可以匿名使用,外部使用它时必须给出类的全名,所以选项D说法正确;内部类的类名不允许与它包含的类名相同,选项A说法错误;内部类可以使用它所在类的静态成员变量和实例成员变量,也可以使用它所在类的方法中的局部变量,选项B说法错误;内部类不仅可以用abstract修饰定义为抽象类,也可用private或protected定义,选项C说法错误。同时还要注意,内部类可作为其他类的

17、成员,而且可访问它所在类的成员,除static内部类外,不能在类中声明static成员。 27定义一个表示10个值为null的字符串数组,下面选项正确的是( )。 AString a; BString a; Cchar al0; DString a=new String10; D。【解析】本题考查字符串数组变量的声明。选项A和选项B的效果是一样的,都是用来定义一个字符串数组,但没有指明数组个数,不满足题目要求;选项C是一个二维的字符数组,在C语言中,一个二维的字符数组就可以表示一个一维的字符串数组,而在Java中,字符char是基本类型,字符串String则是以对象的形式来表示的;选项D正确,

18、它定义了一个含有l0个元素的字符串数组,如果没有给字符串数组赋值,则默认为null。 28有一个接口定义如下,下列选项中实现了该接口并且不是抽象的是( )。 interface A int methodl(int i); int method2(int j); AclassBimplementsA BclassB int methodl() int methodl(inti) int method2() int method2(intj) Cclass B implements A Dclass B extends A int methodl(int i) int methodl(int i)

19、 int method2(int j) int method2(int J) C。【解析】本题考查在Java中接口的实现。接口是一种只含有抽象方法或变量的特殊的抽象类。在类的声明中用implements子句来表示一个类使用某个接口。选项A在方法内没有参数值;选项B只是定义了一个类,并没有实现与A的接口;选项C中使用关键字implements实现了该接口,这里接口中的方法并没有使用abstract修饰,所以不是抽象的;选项D中extends是用来继承父类的,而A并不是一个类,不能用extends 29下面程序段的输出结果是( )。 class Base int i; Base() add(1);

20、 void add(int v) i+=v: void print() Systemoutprintln(i); class Extension extends Base Extension() add(2); void add(int v) i+=v*2: public class Test public static void main(String args) bogo(new Extension(); static void bogo(Base b) badd(8); bprint(); A9 B18 C20 D22 D。【解析】本题考查继承和构造函数的用法。首先要明确对一个类的继承是

21、指在父类的基础上构建了一个子类,子类继承了父类的方法和状态。题目所给程序段创建的是Extension类的实例,在运行时,从main()函数进入程序,所有调用add()方法的过程将始终和Extension类的add()方法动态绑定。初始值:i=0;创建实例newExtension();先调用父类的默认构造函数Base(),并在父类的默认构造函数中执行add(1),i=O+12,所以i=2,再调用子类的默认构造函数Extension(),子类的默认构造函数中执行add (2),i-2+22,所以i=6;执行add(8);i=6+82,因此,最终i=22,正确答案为选项D。 30通常我们使用( )方

22、法来为一个部件注册事件监听器。 AaddListener BListener CListener DListeneradd A。【解析】本题考查事件监听器的概念。每类事件都有对应的事件监听器,监听器是接口,根据动作来定义方法。AWT的构件类中提供注册和注销监听器的方法。注册监听器:public void add(listener);注销监听器:public void remove(listener)。由此可见,选项A正确。31 下列的( )原始类型在使用流时可以互换。 Abyte和boolean Bchar和int Cbyte和char DString和char B。【解析】本题考查Java语

23、言中字节类型的概念。在Java语言中,byte是字节类型,用1字节表示;boolean是布尔类型,用true和false表示,它们的表示方法并不一样, 也不提供它们之间的转换,选项A错误。Java内部用整数来表示char,通常可以在方法调用和其他语句中互换使用char和int,选项B正确。char用2字节表示,byte字节类型 用1字节表示,Java内部也不允许互换使用它们,选项C错误。String在Java语言中是一个类,它提供对字符串的一系列操作,而char是Java语言中的一个基本类型,它不是一个类,两者有本质的区别,故而它们是不能互换使用的,选项D错误。需要注意的是,在Java语言中提

24、供的类都是以大写字母开头,基本类型都用小写字母表示。 32下列关于HTML标记的说法,正确的是( )。 AURL getDocumentBase()返回Applet主类的URL BURL getCOdeBase()返回包含Applet的HTML文件的URL C在HTML中不说明String getParameter(stringname)的参数,该方法将返回0 DHTML标记方法用于获取HTML文件中关于Applet的信息 D。【解析】本题考查Applet中HTML标记方法。 URLgetDocumentBase()返回包含Applet的HTML文件的 URL,而不是返回Applet主类的UR

25、L,选项A错误。 URLgetC0deBase()返回Applet主类的URL,而环是返回 包含Applet的HTML文件的URL,选项B错误。String getParameter(stringname)返回定义在HTML文件的指定参数,如果指定参数在HTML中无说明,该方法将返回null,而不是0,因此选项C错误。 33下列关于Applet的说法,正确的是( )。 A它们能读写用户的文件系统 B它们能与提供包含小程序的网页的站点之内的Internet站点联系 C它们能在阅读者的系统上运行任何程序 D它们能加载存储在用户系统上的程序 B。【解析】本题考查Java小程序(Applet)安全限制

26、的概念。因为Java小程序运行在Web用户的系统上,所以对小程序所能完成的工作有一些严格的限制。它们不能读写用户的文件系统,选项A说法错误。它们不能与提供包含小程序的网页的站点之外的Internet站点联系,选项B说法正确。它们不能在阅读者的系统上运行任何程序,选项C说法错误。它们不能加载存储在用户系统上的程序,如可执行程序和共享库。所有这些规则适用于运行在浏览器下的Java小程序,选项D说法错误。 34resume()方法恢复( )的执行。 A通过调用stop()方法而停止的线程 B通过调用sleep()方法而停止运行的线程 C通过调用wait()方法而停止运行的线程 D通过调用suspen

27、d()方法而停止运行的线程 D。【解析】本题考查resume()方法的使用。在Thread的API文档中的说明是该方法恢复被挂起(suspende()的线程。该方法首先调用该线程的无参的checkAccess()方法,这可能在当前线程上抛出SecurityExeeption异常,如果该线程是活着的(alive)但被挂起(suspend(),它被恢复并继续它的执行进程。 35下列方法中能完成主类实例初始化工作的是( )。 Astart() Bstop() Cink() Dpaint() C。【解析】本题考查对Applet必须要重载的几个方法的理解。选项A错误,start()方法使得程序从初始态进

28、入运行态,当浏览器从图标状态恢复为窗口时,或者当用户离开包含Applet的主页后又再返回时,系统都会自动再执行一遍start()方法。选项B错误,stop()方法是和start()方法相对应的,当浏览器变成图标或者是用户离开Applet所在页面时,浏览器都会调用stop()方法,该方法也是可以被多次调用的。选项C正确,当创建JavaApplet且第一次使用支持Java的浏览器载入该Applet时,就会执行init()方法,通常在这方法中执行一次性的初始化操作。选项D错误,paint()方法是画图时必须要重载的方法。 36下面的( )关键字通常用来对对象加锁,从而使得对对象的访问是排他的。 As

29、erialize Btransient Csynchronized Dstatic C。【解析】本题考查Java中对象加锁的概念。Java是多线程的语言,多个线程可以”同时”访问同一数据区,而在处理某些数据时不希望其他的线程修改那些数据的值或者某些操作是不可打断的,要做到这个,可以使用synchronized关键字声明这一点。 37下列程序中,若从键盘中输入的是大写字母C,则程序输出的结果是( )。 Importjavaio*; public class Exam public static void main(String args) int ch=0; Systemoutprintln(输

30、入一个字符:); try ch=Systeminread(); charch_A=A,ch_Z=Z; int delta c=(int)ch A+(int)ch Z-ch; syStem. outprintln(编码后的字符为:+(char)delta_c); catch(IOException e) eprintStackTrace(); AC BY CX D字母C的ASCIl码的整型值 C。【解析】本题考查考生阅读Java程序的能力。当使用h=Systeminread()语句从键盘读入大写字母C赋给ch,此时ch值为67,也就是字母C的ASCIl值。语句(int) ch_A+(int)ch

31、_Z-ch结果为88,ASCIl码中的88相当于字母X,所以输出为X,选项C正确。 38下面的程序执行后,屏幕上显示的应是( )。 public class Exam public static void main(Stringargs) char charl=(t,e,s,t; char char2=(t,e,s,t,l; String sl=newString(charl); String s2=newString(char2,0,4); Systemoutprintln(slequals(s2); Atrue Bfalse Ctest D编译错误 A。【解析】本题考查考生对字符数组的理解

32、。首先可以通过字符数组来生成一个字符串对象:String(charvalue)和String(charvalue,int startlndex,int numChars) 其中,startlnde峭定字符串在数组中的起始下标,num-Chars表示字符个数。然后再测试字符串是否相等,可调用equals()方法,两个字符串相等则返回true,否则返回false。 题目中sl和s2都是test,所以最后返回是true,选项A正确。 39以下( )命令能为远程对象生成stub和skeleton。 Armiregistry Bserialver Crmic Drmid C。【解析】本题考查J2SDK的

33、RMl命令。rmiregistry命令是在当前主机的指定端口上启动远程对象注册服务程序;serialver命令是返回serialVersionUID的值;rmic命令为远程对象生成stub和skeleton;rmid命令可以激活系统守候进程,以便能够在Java虚拟机上注册和激活对象。 40Java程序与数据库的连接机制是( )。 AODBC BJDBC CODBCAPI DSQLCLI B。【解析】本题考查Java程序与数据库的连接。JDBC(Java Data Base Connectivity)是Java程序与数据库连接的一种机制。在Java虚拟机中有个特殊模块JDBC Driver Ma

34、nager,既负责管理针对各种类型数据库软件的JDBC驱动程序,也负责和用户应用程序交互。二、 基本操作题(共18分) 本题统计score=37,89,63,60,59,78,91)中成绩不 及格的人数。 public class javal public static void main(Stringargs) int score=37,89,63,60,59,78,91), int sum=0: int i=0; while(iif(scorei=60) ; ; ; i+; SystemOUtprintln(below 60 sum:+sum); 第1处:i+ 第2处:continue 第

35、3处:sum+ 【解析】第1处是为往后遍历做自加;第2处是结束本次循环;第3处是如果符合不及格这个条件,则sum做累加统计。 三、 简单应用题(共24分) 本题中,在窗口右侧添加了一个菜单,右侧为一个文本域,菜单有“File”和“Help”,“File”菜单中有菜单项“New”、“Open”、“Save”、“Save as”和“Exit”,其中“Open”的快捷键为,“Save”的快捷键为,而“Help”菜单以及其中的菜单项“Index”和“About”设定了第一个字母为其快捷字母,通过鼠标单击任一个菜单项或通过快捷键以及快捷字母,都能在后台输入所选择的菜单项。 import javaawt*

36、; import javaawtevent*; import javaxswing*; import javax swingevent*; public class java2 extends JFrame private J Menuhem savehem; private JMenuhem saveAsltem private JPopupMenu popup; private JTextArea textArea; public java2() setTitle(java2); setSize(400,300); addWindowListener(new WindowAdapter()

37、 public void windowClosing(WindowEvent e) Systemexit(0); ); textArea=new JTextArea(0,0); Container contentPane=getContentPane(); contentPaneadd(new JSerollPane(textArea) Center); JMenuBar menuBar=new JMenuBar(); menuBarsetLayout(new BoxLayout(menuBar BoxLayoutY_AXIS); getContentPane()add(menuBar, Bo

38、rderLayout WEST): HorizontalMenu fileMenu=new HorizontalMenu (File); fileMenuaddMenuListener(this); JMenuhem openhem = new JMenultem (Open); openItemsetAceelerator(KeyStrokegetKeyStroke (KeyEventVK_O,InputEventCTRL_MASK); saveltem=new JMenuhem(Save); savehemsetAccelerator(KeyStrokegetKeyStroke (KeyE

39、ventVK_S,InputEventCTRL_MASK); saveAshem=new JMenuhem(Save As); menuBaradd(makeMenu(fileMenu, new Object New,Openhem,null,savehem,saveAshem nullExit ,this); HorizontalMenu helpMenu=new Horizontal- Menu(Help); helpMenu (H); menuBaradd(BoxcreateVerticalGlue(); menuBaradd(makeMenu(helpMenu, new Object new JMenuhem(Index,I), new JMenuhem(About,A) ,this); public void actionPerformed(ActionEvent evt) String arg=evtgetActionCommand(); Systemoutprintln(arg); if(argequals(Exit) Sy

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com