【备考2023年】河北省石家庄市全国计算机等级考试Java语言程序设计真题二卷(含答案).docx
【备考2023年】河北省石家庄市全国计算机等级考试Java语言程序设计真题二卷(含答案)学校:班级:姓名:考号:一、单选题(10题)1 .树最适合用来表示()oA.有序数组元素B.无序数组元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据2 .为使下列代码正常运行,应该在下划线处填入的选项是int()numbers=newintn;fbr(Inti=0;i<numbers.;i+)numbersi=i+l;A.sizeB.lengthC.dimensionD.measurement3 .下面关于JaVa命名规则的约定,错误的是()A.变量名、方法名首字母小写,其余单词只有首字母大写B.常量完全小写C._、$不作为变量名、方法名开头D.接口名、类名首单词第一个字母大写4 .在数据库设计中,将ER图转换成关系数据模型的过程属于()。A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段5 .在一棵二叉树的先序遍历、中序遍历、后序遍历所产生的序列中,所有叶子结点的先后顺序()oA渚R不相同B.完全相同C.先序和中序相同,而与后序不同D.中序和后序相同,而与先序不同6 .在读字符文件Employee.dat时,使用该文件作为参数的类是()。A-BufferedReaderB-DataInputStreamC-DataOutputStreamD1FileInputStream7 .能向内存直接写入数据的流是A.FileOutputStreamB.FileInputStreamC-ByteArrayOutputStreamD-ByteArrayInputStream8 .下列表达式中不合法的是()。A.,b,=9B.C,%9C.,m,-7D.A>=5=b<49 .若要把变量声名为暂时性变量,应使用如下哪种修饰符?()A.protectedB.provateC.transientD.volatile10软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指OA.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程二、2.填空题(10题)11 .在JaVa新的I/O功能中,通过文件锁定来实现多个线程的【】,避免了可能存在的安全隐患。12 .是运行JaVa小应用程序的一个软件单元,对JaVa小应用程序的访问权限加以限制。13 .Java线程模型中的数据和【】构成了线程体。14 .有些情况下如多线程对共享数据操作时,这种线程运行顺序的不确定性将会产生执行结果的不确定性,使共享数据的一致性被破坏,因此,在某些应用程序中必须对线程进行.15 .Java中流是一个流动的【】,数据从数据源流向数据目的地。16 .阅读下面代码:importjava.awt.*;publicclassExaml1_1(privateFrame,f;privateButtonbl,b2,b3,b4;publicstaticvoidmain(Stringargs(Examl1_1that=newExaml11();that.go();publicvoidgo()f.set1.ayout(newFlow1.ayout();bl=newButton("Button,);b2=newButton("Button211);b3=newButton("Button311);b4=newButton("Button411);f.add(bl);f.add(b2);f.add(b3);f.add(b4);f.pack();EsetVisible(true);请在程序中画线处填写正确的语句【】,以便编译运行程序后得到正确的结果。17 .下面的Applet获取了相对于getDocumentBase()方法返回的目录路径为graphjavagif的图像文件,并将它显示出来。在下面程序的划线处填入相应的语句。importjava.awt.*;importjava.applet.Applet;publicclassTestextendsAppletImageimg;publicvoidinit()publicvoidpaint(Graphicsg)g.drawlmage(img,30,25,this);18 .Jackson方法是一种面向的结构化方法。19 .数据库系统中实现各种数据管理功能的核心软件称为【】。20 .捕获异常的统一出口通过从句,因此对CatCh而言,无论由哪个捕获异常,最后一定去执行该语句。三、1.选择题(10题)21 .下面描述中,符合结构化程序设计风格的是()。A.使用顺序、选择和重复(循环)3种基本控制结构表示程序的控制逻辑B.模块只有一个入口,可以有多个出口C.注重提高程序的执行效率D.不使用GOTO语句22 .下列JaVa标识符,错误的是()。A._sys_varlB.SchangeC.User_nameD.l_file23 .下列关于JaVa程序结构描述不正确的是()。AJaVa是区分大小写的B.如果java文件包含一个公共类,那么它必须使用与公共类名相同的文件名CJava程序不一定都必须有main方法,比如Applet就不需要D.源文件可以有多个PUbliC类,其他类的数量也不限24 .下列语句片段:intresultinta=17,b=6;result=(a%b>4)?a%b:a/b;SyStem.out.println(result)的结果为()A.OB.1C.2D.525 .下列组件不能添加进Frame主窗口的是()。A.PanelB.CheckBoxC.DialogD.Choice26 .概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()。A.A.把软件划分成模块B.确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码27 .下列说法错误的是()。AJava是一种网络编程语言BJava小应用程序在网络上的传输不受CPU的限制CJava提供了类库支持TCP/IP协议DJava语言允许使用指针访问内存28 .下列叙述正确的是()。A.非空线性表可以有几个节点没有前件B.线性表的数据元素不可以由若干个数据项构成C.除根节点和终端节点,其他节点都有且只有一个前件,也有且只有一个后件D.线性表必须要有数据元素29 .Sun公司的网络计算机又称为()oA.PCB.NCC.NetPCDProfessor30 .关于下面程序段的说法,正确的是importjavA.applet.*;importjava.awt,*;publicclassTestextendsAppletImageIMGnClick=over(this)title=放大;publicvoidinit()IMGnClick=over(this)title=放大=newImage();publicvoidpaint(Graphicsg)g.drawlmage(IMGnClick=over(this)title=放大,0,0,this);A.该程序段可以正常运行B.程序中所创建的Image为空,但可以显示C.程序中所创建的Image不为空D.程序中所创建的Image为空,不能显示四、综合应用题(2题)31 .本题的功能是定义图形按钮。窗口中有两个图形按钮,当鼠标移上去时,图形按钮的图形将改变,用鼠标单击按钮时图形按钮的图形又发生改变,当鼠标左键松开或者移开鼠标后,图形按钮的图形又恢复原importjavax.swing.importjava,awt,PUbhJda!sjava3CXlendJBUUon,:publicjava3(lconicon.Iconpressed.Iconrollover)(IhiMicon)setFocusPainted(false)setRoIlovcrEnabIed(true)SCtRO11。VerkOn(rollover)sctPresscdlcon(prcsiscd)t5ctBordcrPamted(false)JictContentAreaEil1cd(fa5c)oIpublicStAficvoidmain(Stringargt)<JaVn3bl:newjav3(newIm”XCIcOn-rcdcubc.ri(")newInUIXCleon"jmv3rcdMW.gf>>newImagclcon("java3-reddiamond.g(">)javn3b2-newjav*3(new!mBgelcon("jftva3-bluccube.g«f">newltnnc!con("java3-blurpaw.gif"),newlmagckon("jav3-Ulucdiamond.Rif">)JFmmef-newJFramc(>f.5ctTidc("jftva3").et(ultCloMf<>pcrnton(JFramc.EXlT_ON_C1.OSE)tC=f,RelCOrHEanC)c. 5et1.aynui(newFlowIutyoulO):d. add(bl)Ie. dd(b2)f.>ack<>f.setVisibk(true)32.下面程序中,在主窗口单击鼠标后,就会生成一个新窗importjava.aw.importjva.wi.event.publiccb5j4jav/3extendsFrnme'lj*va3()<*uj>cr("j«v«3")taddNoti(y(>addWindowl.istcnrr(newWndow.<laptcr()publicvoidwindowt,losinR(WindowEvcntc)System.cxit(O);)Insctxnscls-gcln*cu():ctSe<mnci!i.left÷i11Mis.right+150»insets,lop+insets,bottomhl50>Ih瓜nddMoucj?UCnCrMoUcEvcnHAndICr():ClanM。UMEVCnIH“ntHcrimkmmaMoucA4PtCrlPUbIiCVOidmouePrc*C(MOU*cEvcnevtIRectanglebounds7gctHonds<)ntxcv.getX(),bounds,xny,cvt.getY()+bounds,ytjava3m=newjava3()tm.edx>Cion(x.y)m.show()iIMalicpublicvoidmAin(Sringars>(newjava3(>).ShOW«)11o1五、单选题(O题)33.下列关于ACCeSS控件的说法中,正确的是()。A.标签控件用来在窗体或报表上显示说明性文本、显示字段或表达式的数值B.文本框主要用来输入字段数据,但不能编辑字段数据C.复选框、切换按钮和选项按钮不能作为单独的控件来显示表或查询中的“是”或“否”的值D.选项组是由一个组框及一组复选框、选项按钮或切换按钮组成六、单选题(0题)34.破坏死锁的4个必要条件之-就可以预防死锁。假如规定一个进程在请求新资源之前首先释放已占有的资源,则是破坏了哪个条件?()A.互斥使用B.部分分配C.不可剥夺D.环路等待参考答案1.C2.C程序正常运行时,i的值必须小于或等于数组的长度,则numbers.size用来测数组长度。3.B4.BE-R图是概念设计阶段的产物,得到的是一个与具体DBMS无关的概念模式;逻辑设计的目的是把概念设计阶段设计好的E-R图转换为与所选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构。5.BnB。【解析】根据“根一左一右","左一根一右","左一右一根”的先序、中序、后序遍历原则,可以知道,在3种遍历所产生的序列中,所有叶子结点的先后顺序是完全相同的On6 .D解析:本题考查javaio包中的字符输入流。Java的输入输出包括字节流、文件流、对象流等,要注意区分不同流使用的不同类。字符类输入流都是抽象InPUtStreamReader及其子类FileReadersBufferedReader等O选项A中BufferedReader是把缓冲技术用于字符输入流,提高了字符传送的效率,但它不能处理文件流。选项B中DateInPUtStream类是用来处理字节流,实现了DatakIPUt接口,不能处理文件流。选项C中DataOutputStream类实现了DataOutput接口,不能处理文件流。选项D中FileInputStream可对一个磁盘文件涉及的数据进行处理,满足题目要求。7 .C解析:本题考查JaVa的内存读写。在javaio中,还提供了ByteArrayOutputStrem、ByteArrayInputStrem和StringBUfferInPUtStream类可直接访问内存,它们是InputStream和OutputStream的子类。用ByteAiTayOUtPUtStrem可向字节数组写入数据;ByteAITayInPUtStrem可从字节数组中读取数据。因此,本题的正确答案是选项C。8 .A9 .C10B软件设计包括软件的结构设计、数据接口设计和过程设计。其中软件结构设计主要包括系统由哪些子系统构成,以及这些子系统之间的关系是怎样的,并将这些内容编写成文档;数据接口设计的任务是为每个子系统设计其与其他子系统间的接口,并编写成文档,这个接口要是一个无二义的接口,不需要子系统的操作知识就可以使用;过程设计是指系统结构部件转换成软件的过程描述。H.同步访问同步访问解析:J2SE1.4提供了一些新的I/O功能,被封装在javani。包中。其特点是:使用内存映射技术、文件锁定、字符及编码、非阻塞I/O等。文件锁定:当多个线程对于同一个文件进行访问时,文件锁定实现对多个线程的访问同步,避免了可能的文件安全隐患。12 .Java沙箱Java沙箱解析:Java沙箱是运行Java小应用程序的一个软件单元,对JaVa小应用程序的访问权限加以限制,防止它访问计算机的关键部分,如磁盘驱动器、网络套接口和内存区。JaVa沙箱由3部分组成:字节码检验器、类装载器和安全管理器,这3部分共同完成装载和运行时对JaVaAPPlet的检验,用以限制其对文件系统和网络的访问以及对浏览器内部的访问。13 .代码代码解析:在Java线程模型中,一个具体的线程是由虚拟的CPU、代码和数据组成的,其中,数据和代码构成了程序中的线程体。14.并发控制并发控制15 .数据缓冲区数据缓冲区解析:流是从数据源流向数据目的地的一个数据序列,数据源的数据首先被放在一个数据缓冲区中,然后由这个缓冲区将数据带到数据目的地,这个缓冲区是流动的。16 .f=newFrame(11GUIexample,')f=newFrame(,GUIexample1)解析:本题考查容器和布局管理器的基本知识,属于综合题。在本程序里,缺少建立Frame的语句,而且该Frame的名字为GUIexample,而4个按钮的布局方式被压缩至最小,因此是Fk)W1.ayOU布局方式。17 .img=getlmage(getDocumentBase(),graphjava.gif,);img=getlmage(getDocumentBase(),graphjava.gif);解析:根据题意得知,此程序的基本功能为Applet获得图像文件并显示出来。程序第1和第2行用来弓I用程序执行所必需的Java类库;第3行定义了类Test,此类继承了java,applet.Applet类。程序最后的paint方法是将图像文件显示出来,显然,在init()中应该获取图像,并存入img中。18 .数据结构数据结构解析JaCkSOn方法是一种面向数据结构的结构化方法。19 .数据库管理系统数据库管理系统(DBMS)20 .finally21 .A解析:符合结构化程序设计风格中,应该选择只有一个入口和一个出口的模块,故选项B错误;首先要保证程序正确,然后才要求提高效率,故选项C错误;严格控制使用goto语句,必要时可以使用,故选项D错误。22 .D解析:本题考查Java标识符的命名。属于考试重点内容,应该掌握。JaVa中标识符的命名规则是:标识符以字母、下划线、美元符作为首字符的字符串序列;标识符是区分大小写的;标识符的字符数没有限制。由此可见JaVa中标识符不能以数字开头,所以选项D是错误的。23 .D解析:源文件最多只能有一个PUbIiC类,其他类的数量也不限。也可以没有public类。比如在Applet中就不需要。24 .D解析:本题考查的是混合运算,混合运算经常考,一定要把一些运算符的用法以及优先级掌握好。首先理解三目条件运算符exl?ex2:ex3表示的意思,它所表示的是如果满足条件exl则执行ex2,否则执行ex3;其次,要知道是求余,/是求商。本题中a%b=5>4,所以结果应该是a%b,即5o25 .CC。【解析】本题考查对JaVa组件容器中添加容器的基本知识。选项A错误,Panel组件是容器,可以添加到Frame窗口;选项B错误,CheekBox组件是复选框组件,可以添加到Frame窗口;选项C正确,Dialog继承自Windows类,Windows类型(或子类)的对象不能包含在其他容器中;选项D错误,Choice组件是选择框组件,可以添加到Frame窗口。26 .D解析:概要设计是软件系统结构的总体设计,其目的就是要按照需求规格说明书,把软件按照功能划分为多个模块,然后确定每个模块要实现的功能,最后确定模块之间的调用关系。而设计每个模块的伪代码则属于详细设计。所以只有最后一个不属于概要设计范畴。27 .D28 .C解析:非空线性表有且只有一个节点没有前件,所以A是错误的。线性表的数据元素不一定是简单项,可以由若干个数据项构成,所以B是错误的。线性表可以没有数据元素,称为空线性表,所以D是错误的。本题正确答案是选项C。29.B30 .D解析:本题考查Image的概念和用法。程序的目的是想要使用drawlmage(lmageimg,intx,i11ty,ImageObserverObSerVer)方法将img在APPlet中画出,但由于程序段所创建的Image为空,不能显示,应该先调用getlmage()获取已经存在的图像。所以选项D正确。31 .解析:第1处:publicclassjava3extendsJButton第2处:super(icon)第3处:Containerc=f.getContentPane()【解析】第1处继承父类应使用关键字extends;第2处弓I用父类应使用super;第3处变量C使用前类型未定义。32 .解析:第1处:this.addMouse1.istener(newMouseEven-tHandler()第2处:classMouseEventHandlerextendsMouseAdapter第3处:PUbliCvoidmousePressed(MouseEventevt)【解析】第1处参数应为实例化对象;第2处继承父类应使用extends,implements实现的是接口;第3处单击鼠标后事件应为mousePressed033 .D解析:选项组是由一个组框及一组复选框、选项按钮或切换按钮组成。34 .B若一个进程请求新资源之前首先释放已占有的资源,这破坏了部分分配条件。