备考2023年内蒙古自治区乌海市全国计算机等级考试Java语言程序设计真题二卷(含答案).docx
备考2023年内蒙古自治区乌海市全国计算机等级考试Java语言程序设计真题二卷(含答案)学校:班级:姓名:考号:一、单选题(10题)1 .下列属于合法的Java标识符是()。A.''ABC''B.&5678C.+rriwoD.saler2 .以下关于Java语句的说法正确的是()A.continue语句必须出现在多路按值选择结构或循环结构中B.return语句可以出现在方法体的外面C.编译系统会把单独的分号看成是空语句D.break语句的作用是提早结束当前轮次循环3 .main方法是Javaapplication程序执行的入口点,关于main方法的方法头,以下哪项是合法的?()A.publicstaticvoidmain()B.publicstaticvoidmain(Stringargs)C.publicstaticintmain(Stringarg)D.publicvoidmain(Stringarg)4 .关于APPIet,下面选项中错误的是()oA.Applet就是一个ApplicationB.Applet可以在浏览器中执行C-Application可以直接用Java解释器执行D.Applet也可以是一个Application5 .在窗体中添加了一个文本框和一个命令按钮(名称分别为tText和bCommand),并编写了相应的事件过程。运行此窗体后,在文本框中输入一个字符,则命令按钮上的标题变为“计算机等级考试”。以下能实现上述操作的事件过程是A.PrivateSubbCommand_Click()Caption="计算机等级考试”EndSub8 .PrivateSubtText_Click()bCommand.Caption=',计算机等级考试11EndSubC.PrivateSubbCommand_Change()Caption=,计算机等级考试11EndSubD.PrivateSubtText_Change()bCommand.Caption=,计算机等级考试11EndSub6 .在窗体中有一个命令按钮Commandl和一个文本框Testi,编写事件代码如下:PrivateSubCommandl_Click()ForI=ITo4x=3Forj=ITo3Fork=1To2x=x+3NextkNextjNext1Text1.Value=Str(x)EndSub打开窗体运行后,单击命令按钮,文本框TeXtl中输出的结果是()。A.6B.12C.18D.217 .线性表1.=(al,a2,a3,ai,an),下列说法正确的是()。A.每个元素都有一个直接前件和直接后件8 .线性表中至少要有一个元素C.表中诸元素的排列顺序必须是由小到大或由大到小D.除第一个元素和最后一个元素外,其余每个元素都有且只有一个直接前继和直接后继8 .包含在花括号中的语句组叫()A.组B.块A包D.堆9 .指出下列程序运行的结果()publicclassExampleStringstr=newStringCgood');chartch=,a7b,f,c,;publicstaticvoidmain(Stringargs11)Exampleex=newExample();ex.change(ex.str,ex.ch);System.out.print(ex.str+'and");System.out.print(ex.ch);)publicvoidchange(Stringstr;Charch)str='testok"chO='g')A.goodandabcB.goodandgbcC.testokandabcD.testokandgbc10 .在Applet的init()方法被调用后,接下来最先被调用的方法是A.run()B.start()C.stop()D.destroy()二、2.填空题(10题)11 .一棵二叉树第六层(根结点为第一层)的结点数最多为【】个。12 .下面的程序是列出目录C:Test中所有的.txt文件,请将程序补充完整。importjava.io.*;弓I入java.io包中所有的类publicclassFileFilterTestpublicstaticvoidmain(Stringargs)Filedir=-newFile("CTesf,);Filterfilter=newFilter("txt");System.out.println("listjavafilesindirectory,+dir);Stringfiles=dir,list(filter);for(inti=0;i<files.length;i+)Filer=;为目录dir下的文件或目录创建一个File对象if(f.isFile()System.out.println(11file"+f);elseSystem.out.pfintlnCsubdirectory"+f);classFilterimplementsFilenameFilterfStringextent;Filter(Stringextent)this.extent=extent;)publicbooleanaccept(Filedir,Stringname)returnname.endsWith(''.''+extent);返回文件的后缀名13 .在两种基本测试方法中,【】测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。14 .java.awt包主要包括3个概念:构件、容器和【】。15 .以下程序计算1+1/3+1/5+1(2N+1),直至1(2N+1)小于O.00001,请在横线处将程序补充完整。publicclassSunpublicstaticvoidmain(Stringargs)intn=l;doubleterm,sum=1.0;don=1;term=1.0/n;sum=sum+term;)while(term>=0.00001);System.out.printin(n);System.out.println(sum);)16 .下面ChangeTitle()中对bl和b2按钮构造监听器,实现当单击bl按钮时标题变为students,当单击b2按钮时标题变为teachers。请将程序补充完整。publicChangeTitleOsuper(,TitleBar'1);bl.addAction1.istener(this);Jpanelpane=newJpanel();Pane.add(bl);Pane.add(b2);SetContentPane(pane);)publicvoidactionPerformed(ActionEventevt)Objectsourve=evt.getSource();if(sourve=bl)SetTitle(nStudentsn);elseif(source=b2)SetTitle(nTeachersn);repaint();)17 .下面是用户程序对APPIet类中方法Paint()的重新定义,请在横线处填入正确的语句publicvoidpaint(Graphicsg)g(“你好!”,10,20);)18 .算法的复杂度主要包括【】复杂度和空间复杂度。19 .移位运算符可以起到对操作数乘2或者除2的作用,那么对操作数除2的移位运算符是【】。20 .使用BufferOutputStream时,数据首先写到【】,直到写满才将数据写入输出流。三、1.选择题(10题)21 .某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为0A.n+1B.n-1C.2nD.n/222 .在编写JaVaAPPlet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上()语句。A.importjava.io.*;B.importjava.awt.event.*;C.importjava.awt.*;D.importjava.applet.*;23 .用树形结构表示实体之间联系的模型是A.关系模型B.网状模型C.层次模型D.以上3个都是24 .在设计程序时,应采纳的原则之一是()oA.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解25 .如要求读取大文件的中间一段内容,最方便的是采用下列()流来操作。A.FileStreamB.PipeStreamC.RandomStreamD.FilterStream26 .下列关于基本数据类型的说法中,不正确的一项是oA.float是带符号的32位浮点数B.boolean是JaVa特殊的内置值,或者为真或者为假C.double是带符号的64位浮点数D.char是8位Unicode字符27 .当启动APPlet程序时,首先调用的方法是()oA.stopB.initC.startD.destroy28 .下列选项中,与成员变量共同构成一个类的是()oA.关键字B.方法C运算符D.表达式29 .下列程序段执行后,变量c的值为()opublicclassTestpublicstaticvoidmain(Stringargs)floata=10,b=9,c=8;if(a=B)c=-a/c;System.out.printin(C);A.1.125B.1.0C.1.25D.0.030 .编译运行以下程序后,关于输出结果的说明正确的是()。publicclassConditionalpublicstaticvoidmain(Stringargs)intx=2:System.out.println(nvalueis,÷(x<1)?2:2);A.输出结果为:valueis22.2B.输出结果为:valueis2C.输出结果为:valueis2.0D.编译错误四、综合应用题(2题)31.本题的功能是对列表项的操作,包括删除、添加和反选。窗司中有两个列表框和5个按钮,按钮标签代表着移除列表项的方向,“>”代表只移除选中的列表项,“>>”代表移除所有的列表项代表反向选择列表项。importjava.awt.*;importjava.awt.event.*;classjava3extendsFrameimplementsACtion1.iStener<Item1.istenrfinalstaticintITEMS=IO;1.istlt1.ist=new1.ist(ITEMS,true);1.istrt1.ist=new1.ist(O,true);java3super(',java311);addWindow1.istener(newWindowAdapterpublicvoidwindowClosing(WindowEvente)System.exit(O););GridBag1.ayoutgbl=newGridBag1.ayout;set1.ayout(gbl);add(It1.ist,O,O,1,5,1.0,1.0);add(rt1.isto2,O,1,5,1.O,1.0);It1.ist.addAction1.istener(this);It1.ist.addhem1.istener(this);rt1.ist.addAction1.istener(this);rt1.ist.addhem1.istener(this);Buttonb;add(b=newButton(,>,')j1,O,1,1,O,1.0);b.addAction1.istener(this);add(b=newButton(n>>11),1,1,1,11O11.0);b.addAction1.istener(this);add(b=newButton(n<11),1,2,1,1,O,1.0);b.addAction1.istener(this);add(b=newButton(',<<,)j1,3,1,1,Oj1.0);b.addAction1.istener(this);add(b=newButton(11!11),1,4,1,1,0,1.0);b.addAction1.istener(this);for(inti=0;i<ITEMS;i+)It1.ist.add(11item,+i);)pack;show;)voidadd(Componentcomp,intX,intY,intW,inth,doubleweightx,doubleweighty)GridBag1.ayoutgbl=(GridBag1.ayout)get1.ayoutGridBagConstraintsc=newGridBagConstraintse.fill=GridBagConstraints.BOTH;c.gridx=x;cgridy=y;c.gridwidth=W;c.gridheight=h;c.weightx=weightx;c.weighty=weighty;add(comp);gbl.setConstraints(comp,c);)voidreverseSelections(1.ist1)for(inti=0;i<l.Iength;i+)if(l.islndexSelected(i)1.deselect(i);else1.select(i);)voiddeselectAll(1.ist1)for(inti=0;i<l.gethemCount;i+)1.deseleet(i);voidreplacehem(1.ist1,Stringitem)for(inti=0;i<l.getltemCount;i+)if(l.gethem(i).equals(item)1.replacehem(item+,'*"ji);)voidmove(1.ist11,1.ist12,booleanall)if(all)for(inti=0;i<ll.getltemCount;i+)12.add(ll.gethem(i);)11.removeAll;elseString1.items=ll.getSelectedhems;intitemlndexes=l1.getSelectedlndexes;deselectA11(12);for(inti=0;i<items.length;i+)12.add(itemsi);12.select(12.getltemCount-1);if(i=0)12.makeVisible(12.getltemCount-1);)for(inti=itemlndexes.length-1;i>=0;i)11.remove(itemlndexesi);publicvoidactionPerformed(AetionEventevt)Stringar9=evt.getActionCommand;if(11>11.equals(arg)move(It1.ist,rt1.istjfalse);elseif(,>>11.equals(arg)move(It1.ist,rt1.ist,true);elseif(',<,',equals(arg)move(rt1.ist1It1.istjfalse);elseif(,<<11.equals(arg)move(rt1.ist1It1.ist,true);elseif(11!.equals(arg)if(lt1.ist.getSelectedhems.length>0)FeverseSelections(It1.ist);Jelseif(rt1.ist.getSelectedhems.length>0)(reverseSelections(rt1.ist);)elseObjecttarget=evt.getSouree;if(target=rt1.istIltarget=It1.ist)replacehem(1.ist)target,arg);)PUbIiCVOiditemStatedChanged(ItemEventent)1.isttarget=(1.ist)evt.getSouree;if(target=h1.ist)deselectA11(rt1.ist);elseif(target=rt1.ist)deselectA11(lt1.ist);)publicstaticvoidmain(Stringargs)newjava3;)32.本题的功能是用按钮来控制文本框中文本的颜色。窗口中有两个带有文字标题的面板“Sampletext”和“Textcol-orcontrol,j窗口的底部还有-个复选按钮“Disablechan-ges,0在“Sampletext”面板中有一个带有字符串的文本框,而在“Textcolorcontrol”面板中有三个按钮“Black"、“Red”和“Green”,并且每个按钮上都有一个对应颜色的圆。单击任意按钮,文本框的文本变成对应的颜色,如果选中“Disa-blechanges”复选恒则三个颜色按钮变为不可用,如果取消选中复选框,则三个按钮变为可用。importjavax.jwing.")importjava.wi.importpva.awt.cvcn.(publicc1a5*¾java3CXlendXJFramePriVAQCJPandupper,middle«IOWEpnvalcJTcxtEicIdIcxttPrlVatCJBUItonblack,red,greenprvH(cJChcckBoxdisablepublicjava3(SiringtilIcTrx<)supcr(titleTcxt)addWindow1.wicnerCnewWtndowdflpter()publicvoidw)n<Jowt,losing(WindowEvcntc),.System,exit(O)t)tupper=newJPane1()tupper.Sctllorder(BordcrFactory.CrcateTiiIcdBordcr("Sampletext">>Upper.SCllayoUMneWBOrdeU.ayw(),text-newJTeXtFie1d("Changethecolorofthistext->tupper.add(text.UordcrMyoui,CENTER>middle-newJPancK)middle.SCtBOrdCrBordcrFaciory.CreeleTiHedBordcr("Textcolorcontro)>middle,sedyou<newFlow1.ayouiCFIow1.ayoui.CENTER)xl>ftcknewJButtonC"Black".newCoiorIcon(Color,black)black,addAcUon1.istener<newi¾mon1.istener(*olor.black)»middle,add(bhck)(red-newJl¼ton("Red".ncwColorkon(Color.red)>Ired.Ad<Icinl.istcncr(newBUttQn1.1、ICrUr(Color.red);middle.add(red)grven:newJu<<on<-Green".newColorkon(Color,grcrn)>tgreen.addArhon1.htcner<newButton1.isicner(Color,green):middle,add(green)lowerqnewJI,a11cI()jlower,%ct1.ayout<newFlowyout(Flowlayout.RKiHT)tdM4bk-newJ<,hcckHox("T>isabkchanges")di52fblc.addhcml.istcncr(newItcm1.istenrH)IpublicvoidUemSlwchanRcd<ItcniEvcntv>booleanCnabkd-(e.RctSlatK'hangeC)-hemEvem.DESE1.ECTED)tblack.SCtEnabIecKenabled)1red.MctEru>blcd<erubled)tgreen.M11E11blcd(enabled)111lower.add(disable八Containercp:XeteOmCmPgH;cp.add(upper.Borderlyout.XORTH)cp.add(middle.Iiorder1.ayoutwCENTER)tcp.add(lower.Borderlyou.SOUTH>tpack(>1xeVisibk(true)t)Cla於KuNon1.ktcncrexiendaACtIOn1.iiencdprivateColorcpublicButin1.icner<COIOrc)thiCaJpublicvoidctonPerformed(ActionEventc».text.<tForcground(c)tcl*(>>lorlconimplementsIcon,:privateColorrprivatestaticIinnlntDIAMETER=IOpublicColorlco11(Colorc><cj*cpublicvoidpaintIco11(CompOnEcpGraphicsg*inix.iniy)g.5elC0lor(c)g.Gl()vnl(x.y.DIAMETER.DIAMETER>lg.5cteok>r(Color,black)g.draw<>vnl(x«y»DIAMETER.DIAMETER)?publicintgetIconHeight<)(returnDIAMETER.,*publicintgctlconWidth(),returnDIAMETERj).publicstaticvoidmain(StringJargs)(newjava3("jva3*)五、单选题(O题)33 .关于Java虚拟机的说法正确的是()AJava虚拟机只能由软件实现BJava虚拟机只能硬件实现C.在不同操作系统中JaVa虚拟机的实现方式不同,要么硬件实现、要么使用软件D.在手机和嵌入式领域,都使用硬件实现JaVa虚拟机六、单选题(0题)34 .软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展参考答案1 .DJaVa中标识符的命名规则是:标识符以字母、下画线、美元符作为首字符的字符串序列;标识符是区分大小写的;标识符的字符数没有限制。由此可见,Java中标识符不能以“叩开头,所以选项A错误,不能以开头,选项B错误,不能以开头,选项C错误,只有选项D是正确答案。2 .C3.B4.A解析:A是错误的,因为Applet中如果含有main。方法的话,它可以是一个JaVaAPPliCation,若没有的话,它仅是一个JaVa小应用程序,需要在支持Java的浏览器中运行;B选项是正确的,因为Applet一般是要在Web浏览器中执行的;2选项是正确的,APPliCatiOn是一个独立的应用程序,可以在任何环境下使用Java的解释器。avaVirtualMachine)直接执行,且它是从其中的main。方法开始运行的;D选项是正确的,解释见A选项的解释。5.D6.D7.DDo【解析】线性表可以为空表;第一个元素没有直接前驱,最后一个元素没有直接后继;线性表的定义中,元素的排列并没有规定大小顺序。8.B9.B10.B解析:APPlet生命周期包括APPIet的创建、运行与消亡几个状态。Applet类提供了在生命周期不同阶段响应主要事件的4种方法,这4种方法的调用次序如下图所示。由上图可知,在调用完init()方法后,接下来最先被调用的是Start()方法。因此,本题的正确答案是B。11.3232解析:根据二叉树的性质:二叉树第i(i8)层上至多有2i-l个结点。得到第6层的结点数最多是26-1=32。12 .newFile(dirfilesi)13 .白盒测试白盒测试解析:测试方法分为白盒测试和黑盒测试。白盒测试是开放性测试,即通过设计的测试用例,走完算法中的每一个分支(即路径),检查软件的正确性,核心是了解软件实现其功能的具体步骤和方法;黑盒测试是封闭性测试,即通过设计的测试用例,不关心软件的具体实现步骤和方法,用得到的结果与意料中需要的结果进行比较,如果相同则正确,否则错误。14 .布局管理器布局管理器解析:javaawt包主要包括3个概念,也对应3个类。它们是:构件(ComPOnent),是java.awt包的核心;容器(Comamer)用于管理构件;布局管理器(1.ayoUtManager)用于对容器内的构件进行布局。1 5.2*n+12+l解析:本题考查do-while循环的用法。题目中没有给出累加次数,故不能使用for循环,在do循环中,由累加项term的值作为退出循环的条件。根据题目要求,应该填写2*n+l°本题的关键点是while(term>=OOoOoI)语句,题目要求计算直至1(2N+1)小于0.00001,所以term=l(2N+l),因此n=251cn+lo16 .b2.addAction1.istener(this);b2.addAction1.istener(this);解析:在ChangeTitle()中将接收器添加到JBUttOn对象,但从程序段中可知程序只给bl添加了接收器,没有给b2添加接收器。actionPerformed(ACtionEVemeVt)中对来自两个JButton对象的动作事件做出响应,evt对象的getSource()方法决定了事件的来源。如果它等于bl按钮,则标题设置为Students;如果它等于b2,则标题设置为Teacherso需要调用repaint(),这样在方法中可能出现的标题改动之后可以重新绘制。17 .dcawString18 .时间时间解析:算法的复杂度主要指时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。9.>>>>解析右移移位运算符的运算结果相当于除以2的n次方。20 .缓冲区缓冲区解析:使用缓冲区机制提高了输出流的工作效率,当数据写入缓冲区的时候,可以让输出流有充分的时间处理输出,等到缓冲区写满了,再执行新的输出,减少了内存和外设的访问次数,从而提高了访问效率。21 .A解析:本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为n,而其度数为2的结点数为n2,则n=n2+l0根据这条性质可知,若二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为n+1。因此,本题的正确答案是选项A。22.B解析:在编写JavaApplet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上importjava.awt.event.*;语句。23 .C解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树形结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。因此,本题的正确答案是C。24 .D解析:滥用got。语句将使程序流程无规律,可读性差,因此选项A)不选;注解行有利于对程序的理解,不应减少或取消,选项B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项C)也不选。25.C26.D解析:char应该是16位Unicode字符。因此答案为Do27.Bn本题考查APPlet程序的运行方式。在APPlet运行时,首先由浏览器调用init(u3000u3000)方法,所以选项B正确。初始化完成后,将调用Start(u3000u3000)方法使APPlet成为激活状态。当APPlet被覆盖时,可用stop(u3000u3000)方法停止线程。关闭浏览器时调用destroy(u3000u3000),彻底终止Apptet,从内存中卸载并释放该Applet的所有资源。Applet的生命周期及其运行方式是考试重点,应该牢记。n28.BB。【解析】在类体中定义的两种成员,数据成员和成员函数,其中数据成员就是成员变量,而成员函数就是通常说的方法。29.B解析:-a相当于a=al,然后才使用a,if语句中,a变为9,条件为真,执行c=-ac,a先变为8,才进行除运算,所以选B。30.C31 .第1处:extendsFrame,implementsAction1.istener,Item-Xn1.istenern第2处:for(inti=0;i<l.getltemCount;i+)n第3处:PUbliCvoidhemStateChanged(ItemEventevt)11【解析】第1处类可以实现多个接口,接口之间用隔开;第2处reverseSelections方法实现的是反选,遍历列表获得列表元素数应使用的是getltemCount方法;第3处nJava是大小写敏感的。32 .解析:第1处:upper.setl.ayout(newBorderl.ayout()第2处:ClassButtonl.istenerimplementsActionloistenerM3处:this.c=C【解析】第1处Java是大小写敏感的;第2处Actionl.istener是接口,应用implements;第3处引用当前对象成员应用thiso33.D34.C解析软件工程的基本概念。软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。