备考2023年安徽省合肥市全国计算机等级考试Java语言程序设计测试卷(含答案).docx
备考2023年安徽省合肥市全国计算机等级考试Java语言程序设计测试卷(含答案)学校:班级:姓名:考号:一、单选题(10题)1 .下列关于Applet的安全限制的叙述中,错误的是()oA.通常情况下,禁止APPlet读、写本地文件系统B.通常情况下,禁止Applet向Applet源主机之外的任何主机建立网络连接C.通常情况下,禁止Applet读取系统信息D.通常情况下,禁止APPlet加载本地库或方法2 .树最适合用来表示()oA.有序数组元素B.无序数组元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据packagete5tpublicdessCla*xAin(x,201staticinty-r6publicstaticvoidman<Stri11Rarg5J)CbIS*Bb=newCIssH()b.go(10)tSystem,out.r>nln("x三"÷b.x)t)ClASSClassBvoido(nty)iClaSSAa=new1,ass()txja.y3 .下面程序段的输出结果为()。;A.X=10B.x=20C.x=6D.编译不通过4 .有下列二叉树,对此二叉树前序遍历的结果为A.XZCYABB.XYZABCC.XYABCZD.XYAZBC5Java的核心包中,提供编程应用的基本类的包是()oAJava.langBJava.utilC.Java.appletDJava.rmi6 .若数组a定义为inta=newint,则a是()oA.-维数组B.二维数组C.三维数组D.四维数组7 .下列选项中,不能输出100个整数的是A.for(inti=0;i<100;i+)System.out.println(i);B.inti=0;doSystem.out.println(i);i+;while(i<100);C.inti=0;while(i<100)System.out.println(i);i+;)D.inti=0;while(i<100)i+;if(i<100)continue;System.out.println(i);8 .下列不属于SWing构件的是AJMenuBJAppletCJOptionPaneD.Panel9 .在浏览器中执行applet程序的四个方法的最先执行的是()A.init()B.start()C.destroy()D.stop()10 .在Java中,表示换行符的转义字符是()A.nB.fC.,n,DAdd二、2.填空题(10题)11 .一个类只有实现了接口,它的对象才是可串行化的。12 .Java中流的实现是在【】的类层次结构内部定义的。13 .Java中的对象锁是一种独占的【】锁。14 .字符类输出流的各个类都是抽象类【】的子类。15 .面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个【】。16 .类是一个支持集成的抽象数据类型,而对象是类的【】。17 .请完成下列语句中应填的内容:FilepathName=newFile(argsO);String1.fileNames=pathName.;18 .Java源文件中最多只能有一个【】类,其他类的个数不限。19 .任何一个Java程序都默认引入了一个包,这个包的名字叫20 .在算法正确的前提下,评价一个算法的两个标准是【】。三、1.选择题(10题)21 .方法resume。负责恢复哪些线程的执行()。A.通过调用stop()方法而停止的线程B.通过调用SIeeP()方法而停止运行的线程C.通过调用wait()方法而停止运行的线程D.通过调用SUSPend()方法而停止运行的线程22 .下列叙述中,错误的是()。AjavaApplication与Applet所用编译命令相同B.通常情况下JaVaAPPliCation只能有一个main()方法CJavaApplet必须有HTM1.文件才能运行DJavaApplet程序的.class文件可用Java命令运行23 .下列语句序列执行后,X的值是()。inta=3,b=4,x=5;if(+a<b)x=x+l;A.5B.3C.4D.624 .以下各项中不属于i。包中接口的是()。A.DatalnputB.DataOutputC.DataInputStreamD.Objectlnput25 .给出下列代码,如何使成员变量m被方法fun()直接访问?ClaSSTeStprivateintm;publicstaticvoidfun().A.将privateintm改为protectedintm26 将privateintm改为publicintmC.将privateintm改为staticintmD.将privateintm改为intm26.关于被保护访问控制符ProteCted修饰的成员变量,下面说法正确的是()。A.可以被3种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B.可以被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问27 .下列关于字符流的叙述中,正确的是()oA.字符流类BufferedReader可以提高字符传送的效率B.字符输入流首先要实现DatalnPUt接口C.字节输入流都是Reader子类D.只有字节输入流具有read()方法,字符输入流不具有该方法。28 .下面对于Java的继承机制描述错误的是()A.继承是面向对象方法的一个重要基本特征B.声明子类时使用extends子句CJava支持多重继承D.继承时子类可以添加新的方法和状态29 .数据库系统的核心是()A.数据库B.数据库管理系统C.数据模型D.软件工具30 .下列关于APPlet生命周期的说法,正确的是()oA.voidinit()在Applet下载前调用B.voidstart()只在初始化之后调用C.voidstop()在关闭浏览器时调用D.stop()总在Voiddestroy()之前被调用四、综合应用题(2题)31.本题是一个计时器。窗口中有1个文字标签和3个按钮,名为“复位''、“开始”和“暂停”,初始状态时只有“开始”按钮可用,单击该按钮开始计时,并且“开始”按钮的标签变为“继续”且不可用暂停”按钮变为可用,单击“暂停”按钮后“暂停”按钮变为不可用,“复位”和“继续”按钮变为可用,此时如果单击“复位”按钮将恢复到初始状态,如果单击“继续”按钮,则继续进行计数。importjava.awt.*;importjava.awt.event.*;PUbliCCIaSSiaVa3extendsFrame,extendsRUrmabIe1.abeltimeDisp=new1.abel(11O:Ou,1.abel.CENTER);ThreadtimerThread;inttime=0:ButtonbtReset=newBUttOn("复位");ButtonbtStart=newBUttOn("开始”);ButtonbtStop=newButton(“暂停”);java3super(',java311);PanelP=newPanel(newGrid1.ayout(1,0);btReset.setEnabled(false);btSlop.selEnabled(true);addWindow1.istener(newWindowAdapterpublicvoidwindowClosing(WindowEvente)System.exit(O););btReset.addAction1.istener(newReset1.istener);btStop.addAction1.istener(newStop1.istener);btStart.addAction1.istener(newStart1.istener);P.add(btReset);P.add(btStart);P.add(btStop);add(P,Border1.ayout.SOUTH);timeDisp.setFont(newFont(,'Courier11,Font.BO1.D,60);add(timeDisp,Border1.ayout.CENTER);pack;show;)voidstopThreadt=timerThread;if(t!=null)timerThread=null:tryt.join;catch(Exceptione)publicvoidrunwhile(timerThread=Thread.CurrentThread)timeDisp.setText(11',+time/10+11:,'+time%10+',011);time+;tryThread.sleep(100);catch(Exceptione)();)classReset1.istenerimplementsAction1.istenerpublicvoidactionPerformed(ActionEventevt)this.StOP;timeDisp.setText(11O:O");time=O;btReset.setEnabled(false);btStart.setEnabled(true);btStop.setEnabled(false);btStart.Set1.abeI("开始”);)classStop1.istenerimplementsAction1.istenerpublicvoidactionPerformed(ActionEventevt)java3.this.stop;btReset.setEnabled(true);btStart.setEnabled(true);btStop.setEnabled(false);btStart.Set1.abel(“继续“);)classStart1.istenerimplementsAction1.istenerJpublicvoidactionPerformed(ActionEventevt)timerThread=newThread(java3.this);timerThread.start;btReset.setEnabled(false);btStart.setEnabled(false);btStop.setEnabled(true);btStart.Set1.abel(“继续“);)staticpublicvoidmain(Stringargs)newjava3;32 .本题的功能是监听鼠标的拖曳操作。窗口中有一个列表框,列表框中列出了当前目录的所有文件,鼠标选中一个或多个文件后拖曳出窗口,此操作的功能是将拖曳的文件复制一份在拖曳的目的目录importjava.aw.:importjava.awt.(IalatranUCr.importjava.aw.dnd.importjava.w.event.importjava.to.importjava.util.importjavax.swing.publicda*sjva3<puhlicstaticvoidmin(Stringarg5)(JFrameframe=newDragSourceFrnnc(>tframe.SCIDefaUhClOScOPCral沁nJFrame.EXIT.()N.C1.()SE)frame,nhow<)tJ)classDragSourccFramcextend5JFramepublic>ragSourceFrme(>(aetTitlc("java3w)dSize(WIDTH.HEIGHT)*ContainerCOnIEPanC=KelCOntentPanc()FilCf-newFikX".").gciabxo1utcFCe():Filefiles=f.IwtFilesOimodel=newDefauIt1.itModcK)forim»-0IiVfile.kngth(>.i+)try(model.AddEIemcnt(ties,i.getCanonicalFile()CatCh(K)Exceptionexception)JOphonPanc.showMessac)ialo(this,cxccp-tion)filcl.is-newJ1.ist(model)contentpane,add(newJScroIIPaneffile1.ist)«Borderluiyout.CENTER):ConientPanr.HdcKnCWJ1.abd("从列*中推义出文件)Borderljiyout.NORTH):DragSourccdragSourccDragSourcc.gcDc(au)tDragSourcc()tdragSource.CrcaieDefauItDragGcMUrcRccogniwr(Gk1.ist.)nI)C0nMan5.AC'T1C)N_COPY_OR.MOVE,newDragGEUre1.i、ICnCrc<publicvoiddrag<jestureRecognued<DragGesturcEvenlevent)<drRRt-<lValues=ftlcl.ist.getSclcctedVnlucs()TransferabletransferablenewFik1.IrTnlnSfenIble(draggedValues)event,startDng(null,transferable.newFile1.i5ll)ragS0urce1.5encr()t)11)PrWCIaSsFile】.Er)TagSource1.isiencrimplemcntsOrngSourctAdaptcr(publicvoiddragDropEnd(DragSourctDroEvcne-vcnt>(if<event.gct>ropSuccess()(iniaction=event.get>ropcuon()if(action=DnlX*onMan*.ACTION.MOVE)(for(inti0t<draggedValues,le11hti-4)model.rcmovrElemrnt(drAggedValuc1.i-)tprivateJ1.5tfik1.i5()privateDefauIt1.istModeImodelprivate()biecl(IraRKedValuesiprivatestaticfinaliniWIDTH=3001privatestaticfinalntHEIGHT=2001>classFik1.istTransferablcimplementsTransferablepublicFile1.stTransfcrablc(>bjectjfiles)(filc1.is=newArray1.istCArrays.as1.ist<files)publicDataFIavorCgelTrandcrDaiaFIaYorJ)(returnflavorspublicbooleanif)AaFlavorSuppone<i(DaiaFIavorflavor)(returnArray*.as1.is(flavors),conui115(flavor)JpublicObjectgetTransferD*la(OttaFlavorflavor)throwsUn9upportedFtavorException(if(flavor,equh(DaiaFIavor.JavaFiIe1.ixtFlBvor)returnFiIe1.istielseif(flavor.«quah(>a(aFIvor.StringFlavor)>return(ilc1.ist.toString()risethrownewUn5upportcdFlavorExccption(flavor)privateEaIiCDaQaFIaVOWJflavorsUDntaFIavor.jvaFi!el.istFlavor«DataFIavor.StnngFlavorhprivatejava.util.1.iMGIe1.isttI五、单选题(O题)33 .函数String(njsg的功能是()。A.把数值型数据转换为字符串B.返回由n个字符组成的字符串C.从字符串中取出n个字符D.从字符串中第n个字符的位置开始取字符串六、单选题(0题)34 .下列关于项目中“移出”文件的说法,正确的是()oA.被移出的文件将直接从磁盘中删除B.被移出的文件将不能被任何项目添加C.被移出的文件只是将文件移出项目,但文件保留在磁盘中D.被移出的文件,以后不能再次添加到原项目中,但可以添加到其他项目中参考答案l.CCo【解析】本题考查APPIet的安全限制。许多浏览器为了保护本地主机一般情况下,对APPlet作了如下安全限制:APPlet不能运行任何本地可执行程序;禁止Applet读、写本地计算机的文件系统;禁止加载本地库或方法。Applet只能使用自身的代码或APPIet浏览器提供的JavaAPl;禁止向提供Applet之外的任何主机建立网络连接;不能读取某些系统信息。除了Java版本号、操作系统名等一些简单信息外,Applet不能获得与本地计算机有关的任何信息。根据上述介绍可知,APPlet只能读取有限的系统信息,但不是一点儿都不能读取。因此,本题的正确答案是C。2 .C3 .Cn本题考查在Java中静态变量(类变量)的用法。在题目程序段中生成了一个StatiCinty=6类变量,在CIaSSA中调用的b.go(10),只不过是在QaSSB中的一个局部变量,通过调用ClaSSB中的go方法可以生成一个ClaSSA对象,并给这个新生成的对象赋以ClassA中的类变量y的值。从main(u3000u3000)方法作为入口执行程序,首先生成一个ClaSSB的对象,然后b.go(10)会调用CIaSSA,会给X和y赋值,x=a.y后,X值为6,再返回去执行System.out.PrintInex="+bx)语句,输出为x=6,可见,正确答案为选项C。n4 .D解析:对二叉树的前序遍历是指先访问根结点,然后访问左于树,最后访问右子树,并且在访问左、右子树时,先访问根结点,再依次访问其左、右于树。5 .AJaVa核心包共有12个。JavaJang包封装所有编程应用的基本类,如Object、Class>System、Integer>Thread等。Ova.util包提供实用程序类和集合类,如系统特性定义和使用、日期方法类、集合ConeCtion、M叩、1.ist、AlTayS等常用工具类。Java.applet包为APPIet提供执行需要的所有类,主要是访问APPlet内容的通信类。Javirmi包提供程序远程方法调用所需的类。6.B二维数组有两种定义方式:typearrayName;typearrayName;从题目中的语句可以看出,本题定义了一个二维数组。7 .D8 .D解析:SWing组件都继承自JCOmPOnent类,所有组件基本都以“J”开头。PaneI是awt中的组件。9.B10.A解析:本题考查Java转义符的概念。在Java中用反斜杠()开头,n表示换行,所以选项A正确。Wf表示走纸换页,Wdd表示12位的八进制数据(dD)表示所代表的字符。I1.serializableSerializable解析:一个类只有实现了SerialiZabIe接口,它的对象才是可串行化的。因此如果要串行化某些类的对象,这些类就必须实现SeriaHZabIe接口。实际上,SeriaIiZabIe是一个空接口,它的目的只是简单地标识一个类的对象可以被串行化。12 .java.i0包java.i包13 .排他排他解析:当一个对象获得了对象锁时,就拥有了操作该对象的所有权力,在这期间其他任何线程不能够对该对象进行任何操作。14 .WriterWriter解析:在Java中,字符都是以16位Unicode码的形式表示的。处理Unicode码的所有类都是从Reader和Writer两个抽象超类中衍生的。字符输入流均为Reader的子类,而字符输出流均为Writer的子类。15 .实体实体解析:面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属性和可执行的一组操作组成。16 .实例实例解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,对象则是其对应类的一个实例。17 .getPathgetPath解析:该题考查的是怎样创建文件。下面语句用来创建一个文件:其中构造方法的参数,可以是路径文件名,也可以是路径和文件名。18 .publicpublic解析:JaVa源文件中最多只能有一个PUbliC类,其他类的个数不限,这是JaVa程序结构的要求。相类似的要求还有:一个源文件中package语句只能有O个或1个;import语句可以有0个或多个。19.1anglang解析:JaVa语言的java.lang包是编译器自动导入的。20 .时间复杂度和空间复杂度【】时间复杂度和空间复杂度21 .D解析本题是考查线程中能弓I起resume。方法调用的情况,在Thread的APl文档中的说明是该方法恢复被挂起的(SUSPendeD)线程。该方法首先调用该线程的无参的CheCkACCeSS()方法,这可能在当前线程上抛出SeCUrityEXCePtion异常,如果该线程是活着的(alive)但被挂起(SUSPenD),则它被恢复并继续执行。22 .DD。【解析】本题考查的是Java中的Applet以及Applet与Application的区别。APPlet是能够嵌入HTM1.语言中,并能够在浏览器中运行的类。Applet的运行环境是Web浏览器,所以必须建立HTM1.文件,告诉浏览器如何加载与运行Applet0因为Applet是不能直接通过Java命令行启动运行的。所以选项D的说法错误。23 .A24 .C解析:DatalnputStream类实现了DatalnPUt接口,实现对字节输入的基本数据类型的判断,所以不是接口。25 .C解析:在静态方法中不能直接访问非静态的成员,如果要在fun()中直接访问变量m,应将变量m用static修饰。26 .A解析:ProteCted成员允许类本身、子类以及在相同包中的类访问,而只能被该类所修改。所以选项A的说法是正确的。27 .A解析:在Java中,字符都是以16位Unicode码的形式表示的。处理Unicode码的所有类都是从Reader和Writer两个抽象超类中衍生的。字符输入流均为Reader的子类,而字符输出流均为Writer的子类。BufferedReader具有缓冲功能,可以提高I/O的传输效率。28 .C解析:JaVa不支持多重继承。继承性是面向对象方法的一个重要特征,它使代码可重用,可降低程序的复杂性。JaVa语言中,所有的类都是通过直接或间接地继承javakmg.0bject而得到的。对一个类的继承是指在现有类(父类)的基础上构建一个新类(子类),子类重用(继承)了父类的方法和状态,同时还可以向新类中增添新的方法和状态。29 .B数据库管理系统是对数据库进行管理的系统软件,它的职能是有效地组织和存储数据,获取和管理数据,接受和完成用户提出的访问数据的各种请求,是数据库系统的核心30 .D解析:本题考查Applet生命周期的概念。Applet生命周期是考试重点考查内容,应该加以重视。Voidinit()在APPIet下载时调用,而不是下载前调用,选项A错误。VoidStart()在初始化之后以及在APPIet被重新访问时调用,不仅仅只是在初始化之后调用,选项B错误。VoidStOPo在停止执行时调用,关闭浏览器时调用的是VoiddeStroy(),选项C错误。VoiddeStrOy()在关闭浏览器Applet从系统中撤出时调用,此时Applet必然调用StOPo方法停止其运行,然后才能调用VoiddeStroy()方法从内存卸载并释放该Applet的所有资源。注意理解Applet的执行过程。31 .第1处:PUbliCCIaSSjava3extendsFramen第2处:btStop.setEnabled(false)n第3处:java3.this.stopn【解析】第1处定义一个继承了Frame窗口类的java3类;第2处暂停按钮StStop的SetEnable属性为false,不可用;第3处是单击“复位”调用StoP方法停止计时ReSet1.iStener主要作用是当用户单击“复位”时,它首先停止计时然后将时间清零,最后修改各个按钮的状态,即以是否可用的状态修改。第1处:FiletnewFik(-.").getb50lutcFile()第2处:inii-0i(ilcIcnglhiiI十笫3处:privateclassFile1.istDraxSourcc1.istenerc-32 .解析;lendsDraeSourccAdapter【解析】第1处是通过绝对路径创建一个File对象f;第2处是files中f文件所在目录下的所有文件名列表,此处就是遍历这些文件名;第3处是定义了一个File1.istDrag-Source1.istener类继承用于接收拖动源事件的抽象适配器类DragSourceAdaptero33.B解析:本题考查Sting(Number,Character)函数的用法。String(NUmber,Character。函数的功能是返回包含指定长度重复字符的字符串。其中,CharaCter参数的第一个字符将用于建立返回的字符串,Number参数决定返回字符串的长度。Str(NUmber)函数的功能是把数值型数据转换为字符串。选项A指的是Str(NUmber)函数。答.案为B。34.CCo【解析】在数据库中移除不代表删除,从项目中移除是指文件只是从项目中移除,但文件还保存在磁盘中,如果需要仍然可再次添加到此项目中。当在项目中删除文件后,文件才能被添加到其他的项目中。所以答案选择C。