1、历年全国计算机等级考试二级Java语言程序设计试题及答案一、选择题(每小题1分,共40小题,共40分) 1下列叙述中对的的是( )。 A一个算法的空间复杂度大,则其时间复杂度必然大 B一个算法的空间复杂度大,则其时间复杂度必然小 C一个算法的时间复杂度大,则其空间复杂度必然小 D上述3种说法都不对 D。【解析】算法的时间复杂度和空间复杂度是从不同的角度来衡量算法的执行情况的,它们之间没有内在联系。 2开发软件时对提高开发人员工作效率至关重要的是( )。 A操作系统的资源管理功能 B先进的软件开发工具和环境 C程序员的数量 D计算机的并行解决能力 B。【解析】先进的软件开发工具和环境对提高开发人
2、员工作效率是至关重要的。3程序设计语言的基本成分是数据成分、运算成分、控制成分和( )。 A对象成分 B变量成分 C语句成分 D传输成分 D。【解析】程序设计语言的基本成分有:数据成分,用于描述程序所涉及的数据;运算成分,用于描述程序中所包含的运算;控制成分,用于描述程序中所包含的控制;传输成分,用于表达程序中数据的传输。4对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。 A125 Bn2 Cn Dn+l C。【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况 下,要查找的元素是
3、表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。5有下列二叉树,对此二叉树前序遍历的结果为( )。 AXZCYAB BXYZABC CXYABCZ DXYAZBC D。【解析】对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。6下列叙述中对的的是( )。 A在面向对象的程序设计中,各个对象之间具有密切的关系 B在面向对象的程序设计中,各个对象都是公用的 C在面向对象的程序设计中,各个对象之间相对独立,互相依赖性小 D上述3种说法都不对 C。【解析】面向对象的程序
4、设计是用对象模拟问题领域中的实体,各对象之间相对独立,互相依赖性小,通过消息来实现对象之间的互相联系。 7软件工程的理论和技术性研究的内容重要涉及软件开发技术和( )。 A消除软件危机 B软件工程管理 C程序设计自动化 D实现软件可重用 B。【解析】基于软件工程的目的,软件工程的理论和技术性研究的内容重要涉及软件开发技术和软件工程管理。8在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )。 A调用语句 B命令 CH令 D消息 D。【解析】在面向对象方法中,对象之间通过消息进行通信。消息中只包含传递者的规定,但并不指示接受者应当怎么完毕这些解决。9下列选项中,是软件调试技术的是(
5、 )。 A错误推断 B集成测试 C回溯法 D边界值分析 C。【解析】软件调试技术涉及强行排错法、回溯法和因素排除法。边界值分析、错误推断都是黑盒测试的方法。 10数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。 ADB涉及DBS和DBMS BDBMS涉及DB和DBS CDBS涉及DB和DBMS D没有任何关系C。【解析】数据库系统(DBS)由数据库(DB)、数据库管理系统(DBMS)、数据库管理员、硬件平台和软件平台5个部分组成,因此DB和DBMS都是DBS的组成部分。11下列( )不是高级程序设计语言。 AFORTRAN BJava CC+ DVisual ASM D
6、。【解析】高级语言是一类人工设计的语言,由于它对具体的算法进行了描述,所以又称为算法语言。它是面向程序设计独立于计算机的硬件。目前,计算机常用的高级语言有:BASIC语言、FORTRAN语言、COBOL语言、PASCAL语言、C语言、PROLOG语言、而当前流行的,面向对象的程序设计语言有C+和用于网络环境的程序设计语言Java等。1216根地址总线的寻址范围是( )。 A531KB B64KB C640KB D1MB B。【解析】假设地址总线有n条,内存的寻址范围是2n。13在一所大学中,每个系都有自己的局域网,则连接各个系的校园网( )。 A是广域网 B还是局域网 C是地区网 D这些局域网
7、不能互连 B。【解析】广域网是指远距离的计算机互联网络,分布范围可达几千千米乃至上万千米甚至跨越国界、州界、遍及全球范围。局域网是指一个局部区域中的、近距离的计算机互联网络,通常采用有线方式连接,分布范围从几百米到几千米。例如,一座大楼内或相邻的几座楼之间的互联网络。一个单位、学校内部的网络多为局域网。14下列关于信息加密的叙述中,对的的是( )。 A加密通过加密算法实现 B加密前的文献称为密文 C加密后的文献称为明文 D将明文变为密文的过程称为解密 A。【解析】一般人们将加密前的文献称为明文,而加密后的文献称为密文,因此加密的目的就是将明文变为密文。而反过来将密文变为明文的过程则称为解密。1
8、5下列关于域名和IP地址的叙述中,不对的的是( )。 A在Internet中访问一台主机必须使用它的主机名 B200201202203是一个C类I P地址 CI P地址采用的是分层结构 D主机名与I P地址是一一相应的 A。【解析】每台直接连接到Internet上的计算机、路由器都必须有唯一的IP地址。IP地址是Internet赖以工作的基础。Internet中的计算机与路由器的IP地址采用分层结构,它是由网络地址与主机地址两部分组成。对于C类地址,其网络地址空间长度为21位,主机地址空间长度为8位,C类I P地址范围从:l92000223255255255。主机名与它的IP地址一一相应,因此
9、在Internet上访问一台主机既可以使用它的主机名,也可以使用它的I P地址。 16Java语言中。负责并发管理的机制是( )。 A垃圾回收 B虚拟机 C代码安全 D多线程 D。【解析】多线程是Java程序的并发机制,它能同步共享数据、解决不同的事件。 17下列描述中,错误的是( )。 AJava规定编程者管理内存 BJava的安全性体现在多个层次上 CApplet规定在支持Java的浏览器上运营 DJava有多线程机制 A。【解析】为了充足运用资源,Java有一个系统级的线程,用来对内存的使用进行跟踪,它可以在系统空闲时对不用的内存空间进行回收,从而使程序员从繁忙的内存管理中解放出来。18
10、Java为移动设备提供的平台是( )。 AJ2ME BJ2SE CJ2EE DJDK 50 A。【解析】Java 2平台涉及:J2ME平台、J2SE平台和J2EE平台。其中:J2ME是为嵌入式和移动设备提供的Java平台;J2SE是面向公司级应用与服务的综合性标准开发平台;J2EE是面向大型公司级用容器管理专用构件的应用平台。而JDK 50是一个Java开发软件包。19JDK中提供的文档生成器是( )。 Ajavadocexe Bjavapexe Cjavaexe Djavaprofexe A。【解析】在JDK中:javadocexe是文档生成器,将Java源代码和包以MML格式生成AP文档;
11、javaexe是Java解释器;javapexe是Java反汇编器;javaprofexe是Java剖析工具,提供解释器剖析信息。20下列不属于Swing中构件的是( )。 AJPanel BJTable CMenu DJFrame C。【解析JPanel是Swing的中间容器;JTable是Swing中可编辑信息的构件;JFrame是Swing的顶层容器。阅读下面程序 importjavaio*; public class TypeTransition public static void main(String args) char a=h; int i=100 ; int J=97; i
12、nt aa=a+i; Systemoutprintln(aa=+aa); char bb=(char)j; Systemoutprintln(bb=+bb): 假如输出结果的第二行为bb=a,那么第一行的输出结果是( )。 Aaa=I Baa=204 Caa=v Daa=156B。【解析】本题考察的是Java的基本数据类型及其运算。程序开始生成了一个字符型变量a和3个整型变量i、j、aa。而整型变量aa的初始值是a+i,其中a是一个字符 型变量。如何进行加法运算呢?Java语言规定,char型数据可以自动转换成int类型,转换的结果就是该字符的ASCIl码值。因此,整型变量aa的初始值为字符”
13、h”的ASCIl码值加上l00。假如记住h的ASCIl码值是104,则直接就拟定aa的初始值是204,选项B为对的答案。假如记不得h的ASCIl码,题目中则给出提醒。题目中说”输出结果的第二行为bb=a”,也就是字符bb的值为字符a,bb的生成语句是char bb=(char)j,是把整型变量j的值强制转换为字符型。同样,把ASCIl码值为j(97)所相应的字符赋值给bb。显然,字符a的ASCIl码值为97,字符b的ASCIl码值为98,依次类推,字符h的ASCIl码为l04。因此,本题的对的答案是B。 22阅读下面程序 public class Operators And Expressio
14、ns( void equals Methodl() Stringsl一new String(how are you); Strings2=new String(how are you); Systemoutprintln(s1= =s2): public static void main(String args) Operators And Expressions Oper And Exp=new Oper- ators And Expressions (); 用于复合类型数据的”= =”运算符 OperAndExpequalsMethodl(); 程序运营结果是( )。 A= = Btrue
15、 Cfalse Dequal C。【解析】本题考察的是Java语言中运算符的特殊用法。相等比较运算符= =,不仅可用于基本类型的数据之间的比较,还可以用于复合类型数据之间的比较。但是,对于复合类型数据的= =运算,其比较的目的是两个操作数是否是同一个对象。假如需要比较两个对象的值是否相同,则可以调用equals()方法。题目中函数equalsMethodl()的代码非常简朴,一方面生成两个字符串对象sl和s2,然后输出表达式sl= =s2的结果。根据上面介绍的相等比较运算符的用法,字符串对象sl和s2是复合类型数据,因此表达式sl= =s2比较的是sl和s2是否同一个对象。显然,sl和s2虽然
16、具有相同的值,即how are you,但它们是两个不同的对象。因此,本题的对的答案是C。23阅读下面代码 if(x= =0)Systemoutprintln(冠军);) elseif(x一3)SystemOutprintln(亚军); elseSystemoutprintln(季军); 若规定打印字符串”季军”,则变量X的取值范围是( )。 Ax=d&xO Cx-3 Dx-3”的结果为真,输出亚军;当x的值不等于0且不大干-3,也就是X的值不等于0同时x的值小于等于-3时,则输出季军。通过上述分析可知,要想输出季军,x所满足的条件为x!=O&x=-3,但是当x=-3时,x的值一定不会为0。所
17、以,X所满足的条件可以简写为x ue ue alternateHTML 因此可以看出,选项B不是APPLET标记。40在Java中,与数据库连接的技术是( )。 A开放数据库连接 BJava数据库连接 C数据库厂家驱动程序 D数据库厂家的连接协议B。【解析】开放数据库连接(ODBC,Open Datebase Connectivity),它是用C语言定义的。由于J2EE规定与Java绑定,因此规定使用Java数据库连接(JDBC,Java DataBase Connectivity),作为Java与数据库连接的技术。 基本操作题(共18分) 本题定义了一个求两个数的最大值的方法max,并调用该
18、方法计算67和23的最大值。 public class javal public static void main(Stringargs) javal temp=new javal(); int res=max(67,23); Systemoutprintln(res=+res); static int maX( ) int maxNum; if(ab) ; else maxNum=b; ; 第1处:int a,int b 第2处:maxNum=a 第3处:return maxNum 【解析】第1处定义max()方法中的两个整型形参;第2处将两者中较大的赋给maxNum;第3处返回最大值。 三
19、、简朴应用题(共24分) 本题的功能是对下拉菜单项的操作,涉及添加和删除。页面涉及一个下拉菜单、一个文本框和两个按钮“删除”和“添加”,选中下拉菜单的一项后,可以通过“删除”按钮从下拉菜单中删除该项,在文本框中填入字符串后,单击“添加”按钮就可以将该项添加到下拉菜单中,所有信息都将显示在右侧的文本域中。 import javaawt*; import javaawtevent*; public class java2 extends javaappletApplet imple- ments hemListener,ActionListener Choice choice; TextField
20、 text; TextArea area; Button add,del; public void init() choice:new Choice(); text=new TextField(8); area:new TextArea(6,15); choiceadd(音乐天地); choiceadd(武术天地); choiceadd(象棋乐园); choiceadd(交友聊天); add=new Button(添加); del=new Button(删除); addaddActionListener(this); deladdActionListener(this); choiceaddI
21、temListener(this); add(choice); add(del);add(text);add(add);add(area); public void itemStateChanged(hemEvent e) String name= ; int index=choicegetSelectedIndex(); areasetText(n+index+:+name); public void actionPerformed(ActionEvent e) if(egetSource()= =addegetSource()= = text) String name=textgetTex
22、t(); if(namelength()0) choiceadd(name); choiceselect(name); areaappend(n添加+name); else if(egetSource()= =del) choiceremove( ); areaappend(n删除+choicegetSelectedItem (); 第1处:choicegetSelectedltem() 第2处:choicegetSelectedIndex() 【解析】第1处是获取当前选中项的数据;第2处清除选中项的索引号。综合应用题(共18分) 本题的功能是定义自已的组件类。窗口中排布着12 个按钮,鼠标移
23、动按钮时,按钮背景颜色改变,用鼠标单击 按钮时,后台将显示该按钮相应的字符。 import javaawt*; import javaawtevent*; import javautil*; class java3 extends Frame String keys=l23456789*0#; java3() super(java3); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) Systemexit(O); ); setLayout(new GridLayout(4,3,6,6)
24、; for(int i=0;iKeyButton kb=new KeyButton(keyscharAt (i); kbaddkeyListener(this); kbsetBackground(Colorpink); kbsetForeground(Colorblack); add(kb); setSize(200,200); show(); class KeyEventHandler extends KeyAdapter public void keyTyPed(KeyEvent evt) Systemoutprintln(evtgetChar(); public static void main(Stringargs) newjava3(); class KeyButton extends Component KeyListener keyListener; boolean highlighted; char key; KeyButton(char k) thiskey=k; addMouseListener(new MouseEventHa