历年全国计算机等级考试二级Java语言程序设计试题及答案一、选择题(每小题1分,共40小题,共40分)1.下列叙述中正确的是()。A.一个算法的空间复杂度大,则其时间复杂度必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述3种说法都不对D。【解析】算法的时间复杂度和空间复杂度是从不同的角度来衡量算法的执行情况的,它们之间没有内在联系。2.开发软件时对提高开发人员工作效率至关重要的是()。A.操作系统的资源管理功能B.先进的软件开发工具和环境C.程序员的数量D.计算机的并行处理能力B。【解析】先进的软件开发工具和环境对提高开发人员工作效率是至关重要的。3.程序设计语言的基本成分是数据成分、运算成分、控制成分和()。A.对象成分B.变量成分C.语句成分D.传输成分D。【解析】程序设计语言的基本成分有:数据成分,用于描述程序所涉及的数据;运算成分,用于描述程序中所包含的运算;控制成分,用于描述程序中所包含的控制;传输成分,用于表达程序中数据的传输。4.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。A.125B.n/2C.nD.n+lC。【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。5.有下列二叉树,对此二叉树前序遍历的结果为()。A.XZCYABB.XYZABCC.XYABCZD.XYAZBCD。【解析】对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。6.下列叙述中正确的是()。A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述3种说法都不对C。【解析】面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。7.软件工程的理论和技术性研究的内容主要包括软件开发技术和()。A.消除软件危机B.软件工程管理C.程序设计自动化D.实现软件可重用B。【解析】基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括软件开发技术和软件工程管理。8.在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送()。A.调用语句B.命令C.H令D.消息D。【解析】在面向对象方法中,对象之间通过消息进行通信。消息中只包含传递者的要求,但并不指示接受者应该怎么完成这些处理。9.下列选项中,是软件调试技术的是()。A.错误推断B.集成测试C.回溯法D.边界值分析C。【解析】软件调试技术包括强行排错法、回溯法和原因排除法。边界值分析、错误推断都是黑盒测试的方法。10.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.没有任何关系C。【解析】数据库系统(DBS)由数据库(DB)、数据库管理系统(DBMS)、数据库管理员、硬件平台和软件平台5个部分组成,因此DB和DBMS都是DBS的组成部分。11.下列()不是高级程序设计语言。A.FORTRANB.JavaC.C++D.VisualASMD。【解析】高级语言是一类人工设计的语言,因为它对具体的算法进行了描述,所以又称为算法语言。它是面向程序设计独立于计算机的硬件。目前,计算机常用的高级语言有:BASIC语言、FORTRAN语言、COBOL语言、PASCAL语言、C语言、PROLOG语言、而当前流行的,面向对象的程序设计语言有C++和用于网络环境的程序设计语言Java等。12.16根地址总线的寻址范围是()。A.531KBB.64KBC.640KBD.1MBB。【解析】假设地址总线有n条,内存的寻址范围是2n。13.在一所大学中,每个系都有自己的局域网,则连接各个系的校园网()。A.是广域网B.还是局域网C.是地区网D.这些局域网不能互连B。【解析】广域网是指远距离的计算机互联网络,分布范围可达几千千米乃至上万千米甚至跨越国界、州界、遍及全球范围。局域网是指一个局部区域中的、近距离的计算机互联网络,通常采用有线方式连接,分布范围从几百米到几千米。例如,一座大楼内或相邻的几座楼之间的互联网络。一个单位、学校内部的网络多为局域网。14.下列关于信息加密的叙述中,正确的是()。A.加密通过加密算法实现B.加密前的文件称为密文C.加密后的文件称为明文D.将明文变为密文的过程称为解密A。【解析】一般人们将加密前的文件称为明文,而加密后的文件称为密文,因此加密的目的就是将明文变为密文。而反过来将密文变为明文的过程则称为解密。15.下列关于域名和IP地址的叙述中,不正确的是()。A.在Internet中访问一台主机必须使用它的主机名B.200.201.202.203是一个C类IP地址C.IP地址采用的是分层结构D.主机名与IP地址是一一对应的A。【解析】每台直接连接到Internet上的计算机、路由器都必须有唯一的IP地址。IP地址是Internet赖以工作的基础。Internet中的计算机与路由器的IP地址采用分层结构,它是由网络地址与主机地址两部分组成。对于C类地址,其网络地址空间长度为21位,主机地址空间长度为8位,C类IP地址范围从:l92.0.0.0~223.255.255.255。主机名与它的IP地址一一对应,因此在Internet上访问一台主机既可以使用它的主机名,也可以使用它的IP地址。16.Java语言中。负责并发管理的机制是()。A.垃圾回收B.虚拟机C.代码安全D.多线程D。【解析】多线程是Java程序的并发机制,它能同步共享数据、处理不同的事件。17.下列描述中,错误的是()。A.Java要求编程者管理内存B.Java的安全性体现在多个层次上C.Applet要求在支持Java的浏览器上运行D.Java有多线程机制A。【解析】为了充分利用资源,Java有一个系统级的线程,用来对内存的使用进行跟踪,它可以在系统空闲时对不用的内存空间进行回收,从而使程序员从繁忙的内存管理中解放出来。18.Java为移动设备提供的平台是()。A.J2MEB.J2SEC.J2EED.JDK5.0A。【解析】Java2平台包括:J2ME平台、J2SE平台和J2EE平台。其中:J2ME是为嵌入式和移动设备提供的Java平台;J2SE是面向企业级应用与服务的综合性标准开发平台;J2EE是面向大型企业级用容器管理专用构件的应用平台。而JDK5.0是一个Java开发软件包。19.JDK中提供的文档生成器是()。A.javadoc.exeB.javap.exeC.java.exeD.javaprof.exeA。【解析】在JDK中:javadoc.exe是文档生成器,将Java源代码和包以MML格式生成AP文档;java.exe是Java解释器;javap.exe是Java反汇编器;javaprof.exe是Java剖析工具,提供解释器剖析信息。20.下列不属于Swing中构件的是()。A.JPanelB.JTableC.MenuD.JFrameC。【解析]JPanel是Swing的中间容器;JTable是Swing中可编辑信息的构件;JFrame是Swing的顶层容器。21.阅读下面程序importjava.io.*;publicclassTypeTransition{publicstaticvoidmain(Stringargs[]){chara=’h’;inti=100;intJ=97;intaa=a+i;System.out.println(aa=+aa);charbb=(char)j;System.out.println(bb=+bb):}}如果输出结果的第二行为bb=a,那么第一行的输出结果是()。A.aa=IB.aa=204C.aa=vD.aa=156B。【解析】本题考查的是Java的基本数据类型及其运算。程序开始生成了一个字符型变量a和3个整型变量i、j、aa。而整型变量aa的初始值是a+i,其中a是一个字符型变量。如何进行加法运算呢?Java语言规定,char型数据可以自动转换成int类型,转换的结果就是该字符的ASCIl码值。因此,整型变量aa的初始值为字符”h”的ASCIl码值加上l00。如果记住h的ASCIl码值是104,则直接就确定aa的初始值是204,选项B为正确答案。如果记不得h的ASCIl码,题目中则给出提示。题目中说”输出结果的第二行为bb=a”,也就是字符bb的值为字符a,bb的生成语句是charbb=(char)j,是把整型变量j的值强制转换为字符型。同样,把ASCIl码值为j(97)所对应的字符赋值给bb。显然,字符a的ASCIl码值为97,字符b的ASCIl码值为98,依次类推,字符h的ASCIl码为l04。因此,本题的正确答案是B。22.阅读下面程序publicclassOperatorsAndExpressions(voidequalsMethodl(){Stringsl一newString(howareyou);Strings2=newString(howareyou);System.out.println(s1==s2):}publicstaticvoidmain(Stringargs[]){OperatorsAndExpressionsOperAndExp=newOper-atorsAndExpressions();//用于复合类型数据的”==”运算符OperAndExp.equalsMethodl();}}程序运行结果是()。A.==B.trueC.falseD.equalC。【解析】本题考查的是Java语言中运算符的特殊用法。相等比较运算符==,不仅可用于基本类型的数据之间的比较,还可以用于复合类型数据之间的比较。但是,对于复合类型数据的==运算,其比较的目标是两个操作数是否是同一个对象。如果需要比较两个对象的值是否相同,则可以调用equals()方法。题目中函数equalsMethodl()的代码非常简单,首先生成两个字符串对象sl和s2,然后输出表达式sl==s2的结果。根据上面介绍的相等比较运算符的用法,字符串对象sl和s2是复合类型数据,因此表达式sl==s2比较的是sl和s2是否同一个对象。显然,sl和s2虽然具有相同的值,即howareyou,但它们是两个不同的对象。因此,本题的正确答案是C。23.阅读下面代码if(x==0){System.out.println(冠军);)elseif(x一3){System.Out.println(亚军);}else{System.out.println(季军);}若要求打印字符串”季军”,则变量X的取值范围是()。A.x=d&x=-3B.xOC.x-3D.x=-323.D。【解析】本题考查的是条件分支语句if-else。if-else根据判定条件的真假来执行两种操作中的一种。当条件为真时,执行if语句后面的代码块;当条件为假时,执行else后面的代码块。题目中的代码段是一个if-else的嵌套语句,根据if-else语句的执行过程来进行分析。当x的值为0时,布尔表达式x==0的结果为真,就输出”冠军”;当x的值不为0时,则执行else语句中的内容。else语句中的代码又是一个if-else语句,还是和上面一样进行分析。当X的值不等于0且大于-3时,布尔表达式”x-3”的结果为真,输出亚军;当x的值不等于0且不大干-3,也就是X的值不等于0同时x的值小于等于-3时,则输出季军。经过上述分析可知,要想输出季军,x所满足的条件为x!=O&x=-3,