全国计算机等级考试二级Java语言程序设计试题及答案(一).pdf
一、选择题(每小题一、选择题(每小题1 1分,共分,共4040小题小题,共共4040分分)1下列叙述中正确的是().A一个算法的空间复杂度大,则其时间复杂度必定大B一个算法的空间复杂度大,则其时间复杂度必定小C一个算法的时间复杂度大,则其空间复杂度必定小D上述3种说法都不对D。【解析】算法的时间复杂度和空间复杂度是从不同的角度来衡量算法的执行情况的,它们之间没有内在联系。2开发软件时对提高开发人员工作效率至关重要的是().A操作系统的资源管理功能B先进的软件开发工具和环境C程序员的数量D计算机的并行处理能力B。【解析】先进的软件开发工具和环境对提高开发人员工作效率是至关重要的.3程序设计语言的基本成分是数据成分、运算成分、控制成分和()。A对象成分B变量成分C语句成分D传输成分D。【解析】程序设计语言的基本成分有:数据成分,用于描述程序所涉及的数据;运算成分,用于描述程序中所包含的运算;控制成分,用于描述程序中所包含的控制;传输成分,用于表达程序中数据的传输。4对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为()。A125Bn2CnDn+lC。【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为 n。5有下列二叉树,对此二叉树前序遍历的结果为().AXZCYABBXYZABCCXYABCZDXYAZBCD。【解析】对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树.6下列叙述中正确的是().A在面向对象的程序设计中,各个对象之间具有密切的关系B在面向对象的程序设计中,各个对象都是公用的C在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D上述3种说法都不对C。【解析】面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。7软件工程的理论和技术性研究的内容主要包括软件开发技术和()。A消除软件危机B软件工程管理C程序设计自动化D实现软件可重用B。【解析】基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括软件开发技术和软件工程管理。8在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送()。A调用语句B命令CH 令D消息D。【解析】在面向对象方法中,对象之间通过消息进行通信。消息中只包含传递者的要求,但并不指示接受者应该怎么完成这些处理。9下列选项中,是软件调试技术的是()。A错误推断B集成测试C回溯法D边界值分析C。【解析】软件调试技术包括强行排错法、回溯法和原因排除法。边界值分析、错误推断都是黑盒测试的方法。10数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是()。ADB 包括 DBS 和 DBMSBDBMS 包括 DB 和 DBSCDBS 包括 DB 和 DBMSD没有任何关系C.【解析】数据库系统(DBS)由数据库(DB)、数据库管理系统(DBMS)、数据库管理员、硬件平台和软件平台5个部分组成,因此 DB 和 DBMS 都是 DBS 的组成部分。11下列()不是高级程序设计语言。AFORTRANBJavaCC+DVisual ASMD.【解析】高级语言是一类人工设计的语言,因为它对具体的算法进行了描述,所以又称为算法语言。它是面向程序设计独立于计算机的硬件。目前,计算机常用的高级语言有:BASIC语言、FORTRAN 语言、COBOL 语言、PASCAL 语言、C 语言、PROLOG 语言、而当前流行的,面向对象的程序设计语言有C+和用于网络环境的程序设计语言Java 等。1216 根地址总线的寻址范围是()。A531KBB64KBC640KBD1MBB。【解析】假设地址总线有n 条,内存的寻址范围是2n。13在一所大学中,每个系都有自己的局域网,则连接各个系的校园网().A是广域网B还是局域网C是地区网D这些局域网不能互连B。【解析】广域网是指远距离的计算机互联网络,分布范围可达几千千米乃至上万千米甚至跨越国界、州界、遍及全球范围。局域网是指一个局部区域中的、近距离的计算机互联网络,通常采用有线方式连接,分布范围从几百米到几千米.例如,一座大楼内或相邻的几座楼之间的互联网络。一个单位、学校内部的网络多为局域网。14下列关于信息加密的叙述中,正确的是().A加密通过加密算法实现B加密前的文件称为密文C加密后的文件称为明文D将明文变为密文的过程称为解密A.【解析】一般人们将加密前的文件称为明文,而加密后的文件称为密文,因此加密的目的就是将明文变为密文。而反过来将密文变为明文的过程则称为解密。15下列关于域名和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 地址一一对应,因此在 Internet 上访问一台主机既可以使用它的主机名,也可以使用它的 I P 地址。16Java 语言中。负责并发管理的机制是()。A垃圾回收B虚拟机C代码安全D多线程D。【解析】多线程是 Java 程序的并发机制,它能同步共享数据、处理不同的事件。17下列描述中,错误的是()。AJava 要求编程者管理内存BJava 的安全性体现在多个层次上CApplet 要求在支持 Java 的浏览器上运行DJava 有多线程机制A。【解析】为了充分利用资源,Java 有一个系统级的线程,用来对内存的使用进行跟踪,它可以在系统空闲时对不用的内存空间进行回收,从而使程序员从繁忙的内存管理中解放出来。18Java 为移动设备提供的平台是()。AJ2ME BJ2SECJ2EE DJDK 50A。【解析】Java 2 平台包括:J2ME 平台、J2SE 平台和 J2EE 平台。其中:J2ME 是为嵌入式和移动设备提供的 Java 平台;J2SE 是面向企业级应用与服务的综合性标准开发平台;J2EE是面向大型企业级用容器管理专用构件的应用平台.而 JDK 50 是一个 Java 开发软件包。19JDK 中提供的文档生成器是().AjavadocexeBjavapexeCjavaexeDjavaprofexeA。【解析】在JDK 中:javadocexe 是文档生成器,将Java 源代码和包以 MML 格式生成 AP文档;javaexe 是 Java 解释器;javapexe 是 Java 反汇编器;javaprofexe 是 Java 剖析工具,提供解释器剖析信息。20下列不属于 Swing 中构件的是()。AJPanelBJTableCMenuDJFrameC。【解析JPanel 是 Swing 的中间容器;JTable 是 Swing 中可编辑信息的构件;JFrame 是Swing 的顶层容器.21阅读下面程序importjavaio;public class TypeTransitionpublic static void main(String args)char a=h;int i=100;int J=97;int aa=a+i;Systemoutprintln(”aa=”+aa);char bb=(char)j;Systemoutprintln(bb=”+bb):如果输出结果的第二行为bb=a,那么第一行的输出结果是()。Aaa=IBaa=204Caa=vDaa=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 的生成语句是 char bb=(char)j,是把整型变量j的值强制转换为字符型.同样,把ASCIl 码值为 j(97)所对应的字符赋值给bb.显然,字符a 的 ASCIl 码值为 97,字符 b 的 ASCIl 码值为 98,依次类推,字符 h 的 ASCIl 码为 l04。因此,本题的正确答案是 B。22阅读下面程序public class Operators And Expressions(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=BtrueCfalseDequalC。【解析】本题考查的是Java 语言中运算符的特殊用法。相等比较运算符”=”,不仅可用于基本类型的数据之间的比较,还可以用于复合类型数据之间的比较。但是,对于复合类型数据的=”运算,其比较的目标是两个操作数是否是同一个对象.如果需要比较两个对象的值是否相同,则可以调用equals()方法。题目中函数equalsMethodl()的代码非常简单,首先生成两个字符串对象 sl 和 s2,然后输出表达式”sl=s2”的结果。根据上面介绍的相等比较运算符的用法,字符串对象 sl 和 s2 是复合类型数据,因此表达式sl=s2比较的是 sl 和 s2 是否同一个对象。显然,sl 和 s2 虽然具有相同的值,即”how are you”,但它们是两个不同的对象。因此,本题的正确答案是C。23阅读下面代码if(x=0)Systemoutprintln(”冠军);)elseif(x一 3)SystemOutprintln(亚军);elseSystemoutprintln(季军”);若要求打印字符串”季军”,则变量X 的取值范围是()。Ax=d&x=3BxOCx-3Dx=-323D.【解析】本题考查的是条件分支语句ifelse.ifelse 根据判定条件的真假来执行两种操作中的一种.当条件为真时,执行 if 语句后面的代码块;当条件为假时,执行 else后面的代码块。题目中的代码段是一个 ifelse 的嵌套语句,根据 ifelse 语句的执行过程来进行分析。当 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,但是当 x=3 时,x 的值一定不会为 0。所以,X 所满足的条件可以简写为xalternateHTML因此可以看出,选项B 不是 APPLET 标记。40在 Java 中,与数据库连接的技术是()。A开放数据库连接BJava 数据库连接C数据库厂家驱动程序D数据库厂家的连接协议B。【解析】开放数据库连接(ODBC,Open Datebase Connectivity),它是用 C 语言定义的。由于 J2EE 要求与 Java 绑定,因此规定使用Java 数据库连接(JDBC,Java DataBaseConnectivity),作为 Java 与数据库连接的技术。二、基本操作题基本操作题(共共 1818 分)分)本题定义了一个求两个数的最大值的方法 max,并调用该方法计算 67 和 23 的最大值。public class javalpublic static void main(Stringargs)javal temp=new javal();int res=max(67,23);Systemoutprintln(res=”+res);static int maX()int maxNum;if(ab);elsemaxNum=b;第 1 处:int a,int b第 2 处:maxNum=a第 3 处:return maxNum【解析】第 1 处定义 max()方法中的两个整型形参;第 2 处将两者中较大的赋给maxNum;第 3 处返回最大值。三、简单应用题三、简单应用题(共共 2424 分)分)本题的功能是对下拉菜单项的操作,包括添加和删除。页面包括一个下拉菜单、一个文本框和两个按钮“删除和“添加”,选中下拉菜单的一项后,可以通过“删除”按钮从下拉菜单中删除该项,在文本框中填入字符串后,单击“添加”按钮就可以将该项添加到下拉菜单中,所有信息都将显示在右侧的文本域中。import javaawt*;import javaawtevent;public class java2 extends javaappletApplet imple-ments hemListener,ActionListenerChoice choice;TextField 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);choiceaddItemListener(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()=add|egetSource()=text)String name=textgetText();if(namelength()0)choiceadd(name);choiceselect(name);areaappend(n 添加”+name);else if(egetSource()=del)choiceremove();areaappend(”n 删除”+choicegetSelectedItem());第 1 处:choicegetSelectedltem()第 2 处:choicegetSelectedIndex()【解析】第 1 处是获取当前选中项的数据;第2 处清除选中项的索引号。四、综合应用题综合应用题(共共 1818 分)分)本题的功能是定义自已的组件类.窗口中排布着 12个按钮,鼠标移动按钮时,按钮背景颜色改变,用鼠标单击按钮时,后台将显示该按钮对应的字符。import javaawt*;import javaawtevent;import javautil;class java3 extends FrameString keys=l23456789*0#;java3()super(”java3”);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)Systemexit(O););setLayout(new GridLayout(4,3,6,6));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 KeyAdapterpublic void keyTyPed(KeyEvent evt)Systemoutprintln(evtgetChar());public static void main(Stringargs)newjava3();class KeyButton extends ComponentKeyListener keyListener;boolean highlighted;char key;KeyButton(char k)thiskey=k;addMouseListener(new MouseEventHandler():public void paint(Graphics g)int W=getSize()width;int h=getSize()height;String s=”+key;FontMetrics fm=ggetFontMetrics();if(highlighted)gsetColor(getBackground();gfillRoundRect(0,0,w1,h1,10,10);gsetColor(getForeground();gdrawRoundRect(0,0,w-1,h-1,10,10);gdrawString(s,(w-fmstringWidth(s))2,(hfmgetHeight()2+fmgetAscent());class MouseEventHandler extends MouseAdapterpublic void mousePressed(MouseEvent evt)if(keyListener!=null)keyListenerkeyTyped(new KeyEvent(KeyButtonthis,KeyEventKEY_TYPED,SystemcurrentTimeMillis(),0,KeyEventVK_UNDEFINED,key);public void mouseEntered(MouseEvent evt)highlighted=true;repaint();public void mouseExited(MouseEvent evt)highlighted=false;repaint();public synchronized void addKeyListerner(KeyLis-tener l)keyListener=AWTEventMuhieasteradd(keyListener,1);public synchronized void removeKeyListener(Key-Listener l)keyListener=AWTEventMuhicasterremove(keyListener,1);第 1 处:int i=0;i第 2 处:kbaddKeyListener(new KeyEventHandler())第 3 处:systemoutprintln(evtgetKeyChar())【解析】第 1 处是作为遍历 keys 中元素的条件,而 keys 中的字符元素就是各个按钮对应的字符。第 2 处注册键盘事件监听功能,KeyButton 实现了 KeyLIstener 接口,而 kb 是KeyButton 类的对象,所以它是合格的监听者。第3 处将从键盘读到的字符输出。