还剩18页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
历年全国计算机等级考试二级Java语言程序设计试题及答案
一、选择题(每小题1分,共40小题,共40分)1•下列叙述中正确的是()A.一个算法的空间复杂度大,则其时间复杂度必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述3种说法都不对Do【解析】算法的时间复杂度和空间复杂度是从不同的角度来衡量算法的执行情况的,它们之间没有内在联系
2.开发软件时对提高开发人员工作效率至关重要的是()A.操作系统的资源管理功能
8.先进的软件开发工具和环境C.程序员的数量D.计算机的并行处理能力Bo【解析】先进的软件开发工具和环境对提高开发人员工作效率是至关重要的9•程序设计语言的基本成分是数据成分、运算成分、控制成分和()A.对象成分B.变量成分C.语句成分D.传输成分Do【解析】程序设计语言的基本成分有数据成分,用于描述程序所涉及的数据;运算成分,用于描述程序中所包含的运算;控制成分,用于描述程序中所包含的控制;传输成分,用于表达程序中数据的传输10对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()A.125B.n/2C.nD.n+lCo【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止在最坏情况类型的默认值•在构造方法实现中,可以进行方法重载,即定义多个构造方法重载构造方法的目的是使类具有不同的初始值,为类对象的初始化提供方便根据上述构造方法的特点可知,本题选项C的说法是错误的
25.下列适配器类中不属于事件适配器的是()A.MouseAdapterB.KeyAdapterC.ComponentAdapterD.FrameAdapterDo【解析】本题考查java.awt.event包中定义的适配器类该包中定义的适配器类包括
①ComponentAdapter构件适配器;©ContainerAdapter容器适配器;©FocusAdapter焦点适配器;©MouseAdapter鼠标适配器;
⑤KeyAdapter键盘适配器
⑥WindowAdapter窗口适配器,由此可.知本题答案为D
26.下列类中属于字节输入抽象类的是()A.FileinputstreamB.ObjectinputstreamC.FiterinputStreamD.inputstreamDo【解析】在Java中定义了两种类型的流,字节型和字符型,这两种流分别用4个抽象类表示inputstream,Outputstream,Reader,Writer,其中inptutStream OutStream表示字节流,Reader和Reader是表示字符流,所以字节输入抽象类为inptutStream27•能向内部直接写入数据的流是()A.FileOutputstreamB.FileinputstreamC.ByteArrayOutputstreamD.ByteArraylnputstreamCo【解析】本题考查Java的内存读写在java,io中,还提供了ByteArrayinputstreamByteArrayOutputstream和StringBufferlnputStream类可直接访问内存,它们是Inputstream和Outputstream的子类用ByteArrayOutputstream
28.下列运算符中属于关系运算符的是()可向字节数组写入数据;ByteArrayinputstream可从字节数组中读取数据A.==B.=C.+=D.-=Ao【解析】本题考查Java的关系运算符B中写法不正确,C、D均为赋值运算符
29.下列方法中,声明抛出interruptedException类型异常的方法是()A.suspendoB.resume C.sleep D.startC【解析】本题考查线程的基本操作Java中提供了interrupt方法用来中断一个线程,当调用一个线程的interrupt方法时,即向该线程发送一个中断请求在调用线程的interrupt方法时,如果该线程由于调用了sleep方法或wait方法而正在处于阻塞状态,那么线程会抛出一个InterruptException异常30♦下列关于System类的叙述中,错误的是A.System类是一个final类B.System类不能实例化C.System类中没有定义属性D.System类主要提供了系统环境参数的访问Co【解析】本题考查System类的基本知识System类是一个final类,所有的方法都用类变量来调用,对System类不可能实例化System类主要用来提供标准输入/输出和系统环境信息的访问设置而System类的属性有
①public staticfinal Inputstreamin;标准输入;
②publicstatic finalOutputstreamout;标准输出;
③pubhc staticfinalPrintStream err;标准错误输出31•阅读下面程序public classlncrement{public staticvoid mainstringargs[]{int C;c=5:System.out printlnc;System.out printlnc++:System,out printlnc;程序运行结果是A.566B.556C.677D.666Bo【解析】本题考查的是Java增量运算符“++”ox++是先使用后加I,即首先使用X的值进行表达式的计算,然后才对x的值加1而++X是先加1后使用,即首先对x的值加1,然后使用x的值进行表达式的计算本题首先生成一个整型变量C,其初始值为5第一条输出语句输出c的初始值,即5然后,第二条输出表达式C++的结果,即先输出C的值,然后才对c的值加1所以,第二条输出语句输出的是5,输出后c的结果才为6最后一条输出语句输出结果为6o因此,本题的正确答案为Bo32•下列叙述中,错误的是()A.JavaApplication与Applet所用编译命令相同B.通常情况下JavaApplication只能有一个main()方法C.JavaApplet必须有HTMI文件才能运行D.JavaApplet程序的.class文件可用Java命令运行Do【解析】本题考查的是Java中的Applet以及Applet与Application的区别Applet是能够嵌入HTML语言中,并能够在浏览器中运行的类Applet的运行环境是Web浏览器,所以必须建立HTML文件,告诉浏览器如何加载与运行Appleto因为Applet是不能直接通过Java命令行启动运行的所以选项D的说法错误33♦下列关于Java语言中线程的叙述中,正确的是()A.线程由代码、数据、内核状态和一组寄存器组成B.线程间的数据是不共享的C.用户只能通过创建Thread类的实例或者定义和创建Thread子类的实例,建立和控制自己的线程D.因多线程并发执行而引起的执行顺序的不确定性可能造成执行结果的不确定Do【解析】本题考查线程的基本知识线程与进程在概念上是相关的,线程是由表示程序运行状态的寄存器、程序计数器、栈指针以及堆栈组成,它不包含进程地址空间中的代码和数据代码所操作的数据是Java线程模型中的一个组成部分,数据与代码是独立的数据可以被多个线程共享,也可不共享Java语言中提供两种创建线程的方法,一种是通过继承Thread类创建线程,另一种是通过实现Runnable接口来创建线程
34.处理对象传输的接口是A.SerializableB.CloneableC.hemListenerD.ActionListenerAo【解析】处理对象传输就是把对象串行化Java语言中,如果要串行化某些类的对象,这些类就必须实现Serializable接口35•在读取二进制数据文件的记录时,为了提高效率常常使用的一种辅助类是()A.InputstreamB.FileinputstreamC.StringBufferD.BufferedReaderCo【解析】本题考查Java语言的输入/输出流Inputstream类、FilelnputStream BufferedReader
36.在Applet中显示文字、图形等信息时,应使用的方法是A.initB.startC.paintD.destroyoCo【解析】paint是与Applet显示相关的方法,由它来具体执行Applet的绘制功能init方法用于初始化Applet,start方法用于激活Applet在iNt方法完成后,将调用start方法,而且在Applet每次显示时都要调用destroy方法用于彻底终止Applet o
37.关于线程的生命周期以下状态正确的是A.新建状态、可运行状态、阻塞状态、恢复状态和终止状态B.新建状态、运行状态、阻塞状态、恢复状态和终止状态C.新建状态、可运行状态、运行状态、阻塞状态和终止状态D.新建状态、可运行状态、运行状态、恢复状态和终止状态Co【解析】线程生命周期中出现的状态包括新建状态、可运行状态、运行状态、阻塞状态和终止状态
38.Thread类中能运行线程的方法是0A.resumeB.startC.runD.initCo【解析】resume是Thread类提供的用于线程控制的方法;start是Thread类中的方法,新建的线程不会自动运行,必须调用线程的start方法才能运行该线程;run是Thread类中的方法,在该方法中定义了线程的具体行为,线程开始执行时,就是从它的run方法开始执行的,就像Java应用程序从main开始、Applet从ink开始一样;init不是Thread类中的方法
39.以下不是APPLET标记的选项是A.PARAMB.BODYC.CODEBASED.ALTBo【解析】标记的一般格式是:[CODEBASE=codebaseURL]CODE=appletFile[ALT=alternateT ext][NAME=appletlnstanceName]WIDTH=pixelsHEIGHT=pixels[ALIGN=alignment][VSPACE=pixels][HSPACE=pixels][ARCHIVE=archiveFiles][ue][ue][alternateHTML]因此可以看出,选项B不是APPLET标记40♦在Java中,与数据库连接的技术是A.开放数据库连接B.Java数据库连接C.数据库厂家驱动程序D.数据库厂家的连接协议Bo【解析】开放数据库连接ODBC OpenDatebase Connectivity,它是用C语言定义的由于J2EE要求与Java绑定,因此规定使用Java数据库连接JDBC,Java DataBaseConnectMty,作为Java与数据库连接的技术、基本操作题共18分本题定义了一个求两个数的最大值的方法max,并调用该方法计算67和23的最大值public class javal{public staticvoid mainString[]args{javal temp=new javal;int res=max67,23;System.out.printlnres=+res;static intmaX{int maxNum;ifabelsemaxNum=b第1处int a,int b第2处maxNum=a第3处return maxNum【解析】第1处定义max方法中的两个整型形参;第2处将两者中较大的赋给maxNum第3处返回最大值
三、简单应用题共24分本题的功能是对下拉菜单项的操作,包括添加和删除页面包括一个下拉菜单、一个文本框和两个按钮“删除”和“添加”,选中下拉菜单的一项后,可以通过“删除”按钮从下拉菜单中删除该项,在文本框中填入字符串后,单击“添加”按钮就可以将该项添加到下拉菜单中,所有信息都将显示在右侧的文本域中import java.awt.*;import java.awt.event.*;public classjava2extends java.applet.Applet implemeritshemListener,ActionListener{Choice choice;TextField text;TextArea area;Button add,del;public voidinit.{choicenew Choice;text=new TextField8;areanew TextArea6,15;choice.add音乐天地”;choice.add武术天地“;choice.add“象棋乐园”;choice.add交友聊天”;add=new ButtonH添力口”卜del=new ButtonH删除”;add.addActionListenerthis;del.addActionListenerthis;choice.addltemListenerthis;addchoice;adddel;addtext;addadd;addarea;}public voiditemStateChangedhemEvente{String name=;int index=choice.getSelectedlndex;area.setTextn\n+index+:,+name;}public voidactionPerformedActionEvente{ife.getSource==add e.getSource==text{String name=text.getText;ifname.length0{choice.addname;choice.selectname;area.append\n添加T+name;else ife.getSource==del{choice.remove;area.append In删除+choice.getSelectedltem;第1处choice.getSelectedltem第2处:choice.getSelectedlndex【解析】第1处是获取当前选中项的数据;第2处清除选中项的索引号
四、综合应用题共18分本题的功能是定义自已的组件类窗口中排布着12个按钮,鼠标移动按钮时,按钮背景颜色改变,用鼠标单击按钮时,后台将显示该按钮对应的字符import java.awt.*;import java.awt.event.*;import java.util.*;classjava3extends Frame{String keys=l23456789*0#;java3{superCJavaS;addWindowListenernew WindowAdapter{public voidwindowClosingWindowEvent e{System.exitO;};setLayoutnew GridLayout4,3,6,6;forint i=0;iKeyButton kb=new KeyButtonkeys.charAt⑴;kb.addkeyListenerthis;kb.setBackgroundColor.pink;kb.setForegroundColor.black;addkb;setSize200,200;show;class KeyEventHandlerextends KeyAdapter{public voidkeyTyPedKeyEvent evt{System.out.printlnevt.getChar;public staticvoid mainString[]args{newjava3;class KeyButtonextends ComponentKeyListener keyListener;boolean highlighted;char key;KeyButtonchar k{this.key=k;addMouseListenernew MouseEventHandler:public voidpaintGraphicsg{int W=getSize.width;int h=getSize.height;String s=+key;FontMetrics fm=g.getFontMetrics;ifhighlighted{g.setColorgetBackground;g.fillRoundRect0,0,w-1,h-1,10,10;g.setColorgetForeground;g.drawRoundRect0,0,w-1,h-1,10,10;g.drawStrings,w-fm.stringWidths/2,h-fm.getHeight/2+fm.getAscent;}class MouseEventHandlerextendsMouseAdapter{public voidmousePressedMouseEventevt{ifkeyListener!=null{keyListener.keyTyped newKeyEventKeyButton.this,KeyEvent.KEY TYPEDSystem.currentTimeMillis,0,KeyEvent.VK_UNDEFINEDkey;public voidmouseEnteredMouseEvent evt{highlighted=true;repaint;public voidmouseExitedMouseEvent evt{highlighted=false;repaint;public synchronizedvoid addKeyListernerKeyLis-tener l{keyListener=AWTEventMuhieaster.addkey-Listener,1;public synchronizedvoid removeKeyListenerKey-Listener l{keyListener=AWTEventMuhicaster.remove下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素keyListener,1;第1处int i=0;i第2处kb.addKeyListenernew KeyEventHandler第3处system.out.printlnevt.getKeyChar【解析】第1处是作为遍历keys中元素的条件,而keys中的字符元素就是各个按钮对应的字符第2处注册键盘事件监听功能,KeyButton实现了KeyListener接口,而kb是Key Button类的对象,所以它是合格的监听者第3处将从键盘读到的字符输出5♦有下列二叉树,对此二叉树前序遍历的结果为()A.XZCYABB.XYZABCC.XYABCZD.XYAZBCDo【解析】对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树6•下列叙述中正确的是()A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述3种说法都不对Co【解析】面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系7•软件工程的理论和技术性研究的内容主要包括软件开发技术和()A.消除软件危机B.软件工程管理C.程序设计自动化D.实现软件可重用Bo【解析】基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括软件开发技术和软件工程管理8在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送()A.调用语句B.命令C.H令D.消息Do【解析】在面向对象方法中,对象之间通过消息进行通信消息中只包含传递者的要求,但并不指示接受者应该怎么完成这些处理9•下列选项中,是软件调试技术的是()A.错误推断B.集成测试C.同溯法D.边界值分析Co【解析】软件调试技术包括强行排错法、回溯法和原因排除法边界值分析、错误推断都是黑盒测试的方法
10.数据库DB数据库系统DBS数据库管理系统DBMS〉间的关系是()A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.没有任何关系Co【解析】数据库系统(DBS)由数据库(DB)、数据库管理系统(DBMS)数据库管理员、硬件平台和软件平台5个部分组成,因此DB和DBMS都是DBS的组成部分11•下列()不是高级程序设计语言A.FORTRANB.JavaC.C++D.Visual ASMDo【解析】高级语言是一类人工设计的语言,因为它对具体的算法进行了描述,所以又称为算法语言它是面向程序设计独立于计算机的硬件目前,计算机常用的高级语言有BASIC语言、FORTRA语言、COBOL语言、PASCALS言、C语言、PROLOG言、而当前流行的,面向对象的程序设计语言有C++和用于网络环境的程序设计语言Java等
12.16根地址总线的寻址范围是()A.531KBB.64KBC.640KBD.1MBBo【解析】假设地址总线有n条,内存的寻址范围是2n13•在一所大学中,每个系都有自己的局域网,则连接各个系的校园网()A.是广域网B.还是局域网C.是地区网D.这些局域网不能互连Bo【解析】广域网是指远距离的计算机互联网络,分布范围可达几千千米乃至上万千米甚至跨越国界、州界、遍及全球范围局域网是指一个局部区域中的、近距离的计算机互联网络,通常采用有线方式连接,分布范围从几百米到儿千米例如,一座大楼内或相邻的几座楼之间的互联网络一个单位、学校内部的网络多为局域网14♦下列关于信息加密的叙述中,正确的是()A.加密通过加密算法实现B.加密前的文件称为密文C.加密后的文件称为明文D.将明文变为密文的过程称为解密Ao【解析】一般人们将加密前的文件称为明文,而加密后的文件称为密文,因此加密的目的就是将明文变为密文而反过来将密文变为明文的过程则称为解密
15.下列关于域名和IP地址的叙述中,不正确的是()OA.在Internet中访问一台主机必须使用它的主机名B.
200.
201.
202.203是一个C类I P地址C.IP地址采用的是分层结构D.主机名与I P地址是---------对应的Ao【解析】每台直接连接到Internet上的计算机、路由器都必须有唯一的IP地址IP地址是Internet赖以工作的基础Internet中的计算机与路由器的IP地址采用分层结构,它是由网络地址与主机地址两部分组成对于C类地址,其网络地址空间长度为21位,主机地址空间长度为8位,C类IP地址范围从
192.
0.
0.0-
223.
255.
255.255主机名与它的IP地址——对应,因此在Internet上访问一台主机既可以使用它的主机名,也可以使用它的IP地址
16.Java语言中负责并发管理的机制是()A.垃圾回收B.虚拟机C.代码安全D.多线程〃【解析】多线程是Java程序的并发机制,它能同步共享数据、处理不同的事件
17.下列描述中,错误的是()A.Java要求编程者管理内存B.Java的安全性体现在多个层次上C.Applet要求在支持Java的浏览器上运行D.Java有多线程机制A【解析】为了充分利用资源,Java有一个系统级的线程,用来对内存的使用进行跟踪,它可以在系统空闲时对不用的内存空间进行回收,从而使程序员从繁忙的内存管理中解放出来
18.Java为移动设备提供的平台是()A.J2ME B.J2SEC.J2EE D.JDK
5.0Ao[解析】Java2平台包括J2ME平台、J2SE平台和J2EE平台其中J2ME是为嵌入式和移动设备提供的Java平台;J2SE是面向企业级应用与服务的综合性标准开发平台;J2EE是面向大型企业级用容器管理专用构件的应用平台而JDK
5.0是一个Java开发软件包
19.JDK中提供的文档生成器是()A.javadoc.exeB.javap.exeC.java.exeD.javaprof.exeAo[解析]在JDK中javadoc.exe是文档生成器,将Java源代码和包以MMI格式生成AP文档;java.exe是Java解释器;javap.exe是Java反汇编器;javaprof,exe是Java剖析工具,提供解释器剖析信息
20.下列不属于Swing中构件的是()A.JPanelB.JTable C.Menu D.JFrameCo[解析]JPanel是Swing的中间容器;JTable是Swing中可编辑信息的构件;JFrame是Swing的顶层容21•阅读下面程序importjava.io.*;public classTypeTransition{public staticvoid main(String args口){char a=h;int占100;int J=97;int aa=a+i;System.out.printin aa=+aa;char bb=charj;System,out.println,,bb=,,+bb如果输出结果的第二行为bb=a,那么第一行的输出结果是A.aa=lB.aa=204C.aa=v D.aa=156B【解析】本题考查的是Java的基本数据类型及其运算程序开始生成了一个字符型变量a和3个整型变量i、j、aa而整型变量aa的初始值是a+i,其中a是一个字符o型变量如何进行加法运算呢?Java语言规定,char型数据可以自动转换成int类型,转换的结果就是该字符的ASCII码值因此,整型变量aa的初始值为字符h”的ASCII码值加上100如果记住h的ASCII码值是104,则直接就确定aa的初始值是204,选项B为正确答案如果记不得h的ASCII码,题目中则给出提示题目中说”输出结果的第二行为bb=a,也就是字符bb的值为字符a,bb的生成语句是char bb=charj,是把整型变量j的值强制转换为字符型同样,把ASCII码值为j97所对应的字符赋值给bb显然,字符a的ASCII码值为97,字符b的ASCII码值为98,依次类推,字符h的ASCII码为104因此,本题的正确答案是Bo
22.阅读下面程序public classOperators And Expressionsvoid equalsMethodl{Stringsl------new String*how are you;Strings2=new StringHhow areyou;System.out.printlns1==s2:public staticvoid mainStringargs[]{Operators And Expressions OperAndExp=new OperatorsAndExpressions;0〃用于复合类型数据的==运算符OperAndExp.equalsMethodl;程序运行结果是,A.==B.trueC.falseD.equalCo【解析】本题考查的是Java语言中运算符的特殊用法相等比较运算符不仅可用于基本类型的数据之间的比较,还可以用于复合类型数据之间的比较但是,对于复合类型数据的运算,其比较的目标是两个操作数是否是同一个对象如果需要比较两个对象的值是否相同,则可以调用equals()方法题目中函数equalsMethodl()的代码非常简单,首先生成两个字符串对象si和s2,然后输出表达式sl==s2”的结果根据上面介绍的相等比较运算符的用法,字符串对象si和S2是复合类型数据,因此表达式”sl==s2”比较的是si和s2是否同一个对象显然,si和s2虽然具有相同的值,即howareyou,但它们是两个不同的对象因此,本题的正确答案是Co
23.阅读下面代码if(x==0){System.out.printin(“冠军”);)elseif(x—3){System.Out printin(“亚军”);}else{System.out.printin(“季军”);}若要求打印字符串季军”,则变量X的取值范围是()A.x=dx=-3B.x0C.x-3D.x=-
323.D【解析】本题考查的是条件分支语句if-else oif-else根据判定条件的真假来执行两种操作中的一种当条件为真时,执行if语句后面的代码块;当条件为假时,执行else后面的代码块题目中的代码段是一个if-else的嵌套语句,根据if-else语句的执行过程来进行分析当x的值为0时,布尔表达式“x==0”的结果为真,就输出“冠军”;当x的值不为时,则执行else语句中的内容else语句中的代码又是一个if・else语句,还是和上面一样进行分析工当X的值不等于0且大于・3时,布尔表达式“x-3”的结果为真,输出“亚军当x的值不等于0且不大干-3,也就是X的值不等于0同时x的值小于等于-3时,则输出“季军”经过上述分析可知,要想输出“季军”,x所满足的条件为x!=Oxv=-3,但是当xv=-3时,x的值一定不会为0所以,X所满足的条件可以简写为x=-3o因此,本题的正确答案为Do24♦下列关于构造方法的叙述中,错误的是()A.Java语言规定构造方法名与类名必须相同B.Java语言规定构造方法没有返回值,但不用void声明C.Java语言规定构造方法不可以重载D.Java语言规定构造方法只能通过new自动调用Co【解析】本题考查的是构造方法的使用Java语言中,构造方法是一种特殊的方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态Java中的每个类都有构造方法,它也是由方法名、参数和方法体组成的构造方法有如下特点•构造方法的名字必须与类名相同•构造方法不返回任何数据,但不用void来声明•用户不能直接调用构造方法,必须通过关键字new自动调用•构造方法可由用户在类中定义,默认时由Java语言自动生成但它是个空方法,变量被赋予该数据。
个人认证
优秀文档
获得点赞 0