《【备考2023年】贵州省六盘水市全国计算机等级考试Java语言程序设计真题一卷(含答案).docx》由会员分享,可在线阅读,更多相关《【备考2023年】贵州省六盘水市全国计算机等级考试Java语言程序设计真题一卷(含答案).docx(23页珍藏版)》请在课桌文档上搜索。
1、【备考2023年】贵州省六盘水市全国计算机等级考试Java语言程序设计真题一卷(含答案)学校:班级:姓名:考号:一、单选题(10题)1 .请阅读下面程序publicclassThreadTestpublicstaticvoidmain(Stringargs)throwsExceptioninti=0;Hellot=newHello();while(true)System.out.println(GoodMoming11+i+);if(i=2&t.isAlive()System.out.println(MainwaitingforHello!);t.join();/等待t运行结束if(i=5)b
2、reak;classHelloextendsThreadinti;publicvoidrun()while(true)System.out.println(Hello,+i+);if(i=5)break;为使该程序正确执行,下划线处的语句应是A.t.sleep()B.t.yield()C.t.interrupt()D.t.start()2 .分析如下所示的Java代码,编译运行后的输出结果是()。publicstaticvoidmain(Stringarg)booleanb=true;System.out.print(b);if(b)System.outprint(W);elseSystem.
3、out.print(ig);)A.trueB.true真Ctrue假D.l3 .下列关键字中可以表示常量的是A.finalB.defaultC.privateD.transient4 .如果应用程序要在APPlet上显示输出,则必须重写的方法是()oA.Graphics.drawstringB.repaintC.paintD.update5 .下列叙述中正确的是()oA.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对6 .在面向对象方法中,不属于“对象”基本特点的是()oA.一致性B.分类性C.多态性D.标识唯一性A.创建
4、一个Java项目B.手动创建Java源程序C.编译并运行Java程序D.以上全部8 .在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是()oAjava.appletB.java.awtC.java.utilD.java.lang9 .一个JavaApplication运行后,在系统中是作为一个()。A.线程B.进程C.进程或线程D.不确定10 .下列哪个赋值语句是正确的?A.chara=12;B.inta=12.0;C.inta=12.0f;D.inta=(int)12.0;二、2.填空题(10题)11 .按照JaVa的线程模型,代码和构成了线程体。12 .sum
5、的值为0,则reSUlt=SUm=0?l:num/sum的值为13 .java虚拟机能自动处理【】异常。14 .每个APPIet程序必须有一个类是类的子类。15 .在一个类的内部嵌套定义的类称为【】。16 .若有inta=2,b=0;表达式b=(i+)+(i+)+(i+)的值是17 .Java中的线程由CPU、【】、数据等3部分构成。18 .关系数据库管理系统能实现的专门关系运算包括选择、连接和19 .软件生命周期一般可分为以下阶段:问题定义、可行性研究、【】、设计、编码、【】、运行与维护。20 .下面的程序是声明某类型变量S1并通过三元条件运算符的结果给变量S赋值,请将该程序补充完整:pub
6、licclassTestpublicstaticvoidmain(Stringargs)s=(99%2=l)?奇数偶数;System.out.println(三);三、1.选择题(10题)21 .复合语句是用()括起来的一段代码。A.单引号B.中括号C.大括号D.小括号()AJava源程序一编译成机器码一运行BJava源程序一编译成字节码一解释执行CJava源程序一直接解释执行DJava源程序一优化一运行23.创建一个标识有“关闭按钮的语句是()。A.TextFieldb=newTeXtField(“关闭”);B.Buttonb=newBUttOn(“关闭”);C-Checkboxb=newC
7、heCkbOx(“关闭”);D.1.abelb=new1.abe1(“关闭”);24 .下列构造函数中创建了一个为20行,30歹IJ的文本区的是()。A.TextField(20,30)B.TextArea(20,30)C.TextField(20,30,”)D.TextArea(20,30,”“)25 .下列叙述中正确的是()oA.一个算法的空间复杂度大,则其时间复杂度也必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述三种说法都不对26 .Java中break语句可以用来“标签化中断”,对其描述正确的是()。A.可以使用程序退出多
8、重循环B.标签是一种界面符号C.使程序退出本此循环D.以上说法都不对27 .二元算术表达式的两个操作数全是short类型的数据,则表达式的结果是()。A.shortB.intC.byteD.long28 .已知如下代码PublicclassTestpublicstaticvoidmain(Stringarg)longa=newlong1OJ;System.out.Println(a6);下列选项正确的是0。A.输出为nullB.输出为OC编译时出错D.运行时出错29 .在JaVa中,实现用户界面功能的包是()。A.java.appletB.java.transactionC.java.util
9、D.java.awt30 .下列程序的输出结果是()。PublicclassArrayTestPublicstaticvoidmain(Stringargs1.J)intJintArray=newint3fr(inti=O;i=0;j)intArrayj=j*3;system.out.println(11hello,+intArrayj);A.编译未通过B.编译通过,但运行错误C.可以运行,但有错误D.以上都不对四、综合应用题(2题)31.本题的功能是对图形进行操作,包括旋转、移位、放大和剪切。窗口中有4个单选按钮和一个图形面板,图形面板中有一个矩形和该矩形移位操作后的图形,任选其中一个单选按
10、钮,则图形面板中将显示该操作后的图形。importjava.awt.*;importjava.awt.event.*;importjava.awt.geom.*;importjava.util.*;importjavax.swing.*;publicclassjava3(publicstaticvoidmain(Stringargs)(JFrame.frame=newTransformTestFrame;frame.setDefaultCloseOperation(JFrame.EXIT_ON.C1.oSE);frame.show;)CIaSSTranSformTeStextendsJFram
11、eFpublicTransfbrmTestFrame(setTitle(,java311);setSize(WIDTH,HEIGHT);ContainercontentPane=getContentPane;canvas=newTransformPanel;ContentPane.add(canvas,Border1.ayout.CENTER);JPanelbuttonPanel=newJPanel:ButtonGroupgroup=newButtonGroup;JRadioButtonrotateButton=newJRadioButton(旋转:true);buttonPanel.add(
12、rotateButton);group.add(rotateButton);rotateButton.addAction1.istener(newAction1.istener(publicvoidactionPerformed(ActionEventevent)(canvas.SetRotate;);JRadioButtontransateButton=newJRadioButton(移位,false);buttonPanel.add(translateButton);group.add(translateButton);translateButton.addAction1.istener(
13、newAction1.iatenerpublicvoidactionPerformed(ActionEventevent)(canvas.SetTranslate;);JRadioButtonScaleButton=newJRadioButton(放大,false);buttonPanel.add(scaleButton):group.add(scaleButton);ScaleButton.addAction1.istener(newAction1.istener(publicvoidactionPerformed(ActionEventevent)(canvas.setScale;);JR
14、adioButtonShearButton=newJRadioButton(剪切false);buttonPanel.add(shearButton):group.add(shearButton);ShearButton.addAction1.istener(newAction1.istener(publicvoidactionPerformed(ActionEventevent)(canvas.setShear;);ContentPane.add(buttonPanel,Border1.ayout.NORTH):)privateTransfbrmPanelcanvas;privatestat
15、icfinalintWIDTH=300;privatestaticfinalintHEIGHT=300;)CIaSSTranSformPaneIextendJPaneIFpublicTransfbrmPanel(square=newRectangle2D.Double(-50j-50,100,100);t=newAffineTransform;SetRotate;)PUbIiCVOidPainteomPonent(super.paintComponent(g);Graphics2Dg2=(Graphies2D)g;g2.translate(getWidth/2,getHeight/2):g2.
16、setPaint(Color.gray);g2.draw(square);g2.transform(t);g2.setPaint(Color.black);g2.draw(square);)publicvoidSetRotate(t.setToRotation(Math.toRadians(30);repaint;publicvoidSetTranslatet.setToTranslation(20,15);repaint;)publicvoidsetScale(t.setToScale(2.0,1.5):repaint;)publicvoidsetShear(t.setToShear(-0.
17、2,O);repaint;)privateRectangle2Dsquare;privateAffineTransform.t;)32 .本题的功能是跟踪鼠标在窗口的操作,以及在窗口的坐标,包括移进、移出、移动、单击、释放和拖曳,并将这些信息显示在窗口的文字标签上。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassjava3extendsJFramv.implementsMouse1.-istenerMC)USeMOtiOn1.iStenerFprivateJ1.abelStatusBar;SUPer(
18、java3);statllsBar=newT1.abel;getContentPanc.add(statusBar,BOrder1.ayOUt.SOUTH);addMouse1.istener(this);addMouseMotion1.istener(this);setSize(275,100);show;)publicvoidmouseClicked(MouseEvente)(StatusBar.setText(,Clickedat,+e.getX+,tj11+e.getY+11);)PUbIiCVoidmousePressed(MouseEvente)(StatusBar.setText
19、(,Pressedat,+e.getX+,+e.getY+T);)publicvoidmouseReleased(MouseEvente)(StatusBar.setText(11Releasedat11+e.getX+,e.getY+T);)publicvoidmouseln(MouseEvente)(StatusBar.setText(,Mouseinwindow);publicvoidmouseExited(MouseEvente)StatusBar.setText(,Mouseoutsidewindowu);publicvoidmouseDragged(MouseEvente)(Sta
20、tusBar.setText(nDraggedat,+e.getX+,e.getY+T);)publicvoidmouseMoved(MouseEvente)(StatusBar.setText(,Movedat,+e.getX+,t,+e.getY+);)publicstaticvoidmain(Stringargs)(java3app=newjava3;app.addWindow1.istener(newWindowAdapter(publicvoidwindowClosing(WindowEvente)(System.exit(O););五、单选题(O题)33 .给出下面的代码段,下面的
21、哪些陈述为真?()publicvoidcreate()VectormyVect;myVect=newVector();I:第2行的声明不会为变量myVect分配内存空间。II:第2行的声明分配一个到Vector对象的引用的内存空间。III:第2行语句创建一个VeCtor类对象。IV:第3行语句创建一个Vector类对象。A.II、III、IVB.I.IIRIVC.I、11ID.I、IV六、单选题(0题)34.已知一棵二叉树前序遍历和中序遍历分别为Abdegcfh和dbgeachfj则该二叉树的后序遍历为()。A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG参考答
22、案1.D解析:本题考查线程的基本知识。程序中通过继承Thread类来创建线程,而JaVa中新创建的线程不会自动运行,必须调用线程的Start()方法,才能运行该线程。因此,下划线处的语句应调用线程的Start()方法,即t.start。Thread类还提供了一些方法对线程进行基本控制,其中,join()方法使当前线程暂停执行,等待调用该方法的线程结束后,再恢复执行:isAlive()方法用来测试线程是否活着。因此,本题的正确答案是选项D。2.B3 .A解析:final关键字声明的变量不能再修改,即为常量。default关键字用于在switch分支里作默认分支项;private关键字则用于声明私
23、有变量和方法类;transient关键字用于修饰变量以表明此变量易变,不需要串行化处理。4 .CCo【解析】Paint是画APPlet界面的基本方法。5 .D解析:本题考核软件测试、软件调试和软件维护的概念。软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。软件测试具有挑剔性,测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷,就是说,测试是程序执行的过程,目的在于发现错误;一个好的测试在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误。由于测试的这一特征,一般应当避免由开发者测试自己的程序。
24、所以,选项A的说法错误。调试也称排错,目的是发现错误的位置,并改正错误,经测试发现错误后,可以立即进行调试并改正错误;经过调试后的程序还需进行回归测试,以检查调试的效果,同时也可防止在调试过程中引进新的错误。所以,选项B的说法错误。软件维护通常有4类:为纠正使用中出现的错误而进行的改正性维护;为适应环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。所以,选项C的说法错误。
25、综上所述,选项A、B、C的说法都错误,所以,选项D为正确答案。6 .A对象具有如下特征:标识唯一性、分类性、多态性、封装性和模块独立性。7 .D8 .D解析:本题考查Java中包的概念。Java中用import语句来导入包,但需注意的是,Java语言中的JavaJang包是由编译器直接自动导入的,因此,编程时使用该包中的类,可省去import导入。使用其他包中的类,必须用import导入,选项D为正确答案。9.BBo【解析】线程为一个程序中的单个执行流;进程是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程。一个JaVaAP
26、PIiCatiOn运行后,在系统中应该就是一个进程了(动态)。10 .D解析:主要要熟悉数据类型的赋值和两种类型转换方法(即自动转换和强制转换)的使用方法。字符变量以Char类型表示,它在内存中占16位,它不能当做整数使用。选项B)中的12.0为double类型,赋给a时需要强制转换。选项C)中的12.0f为float类型,赋给a时也需要强制转换。选项D)用到了强制类型转换将double类型赋给整形aj所以正确。11 .数据数据解析:JaVa中的线程的模型就是一个CPU、程序代码和数据的封装体。线程体自然就是由代码和数据构成的。12 .11解析:本题考查条件运算符“?”的用法。该运算符是三元运
27、算符,一般形式为:表达式?语句1:语句2,其中,表达式的值为一个布尔值,如果这个值为true,就执行语句1,否则执行语句2o此外语句1和语句2需要返回相同的数据类型,而且该类型不能是void0本题中SUm=O成立,故值为1。13 .运行运行14 .AppletApplet解析:本题考查Applet的概念。Applet是考试重点内容,涉及知识点较多,注意全面复习。生成APPlet必须创建APPIet类的子类,APPlet的行为框架由APPlet来决定。所以每个APPIet程序必须有一个类是APPIet类的子类:15 .内部类内部类解析:内部类是嵌套在一个类的内部使用的,与普通类一样,内部类也具有
28、自己的成员变量和成员方法。16.917 .代码代码解析:JaVa中的线程由CPU、代码、数据3部分构成。18 .投影投影解析:关系数据库管理系统的专门关系运算包括选择、连接和投影。选择运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集:投影运算是在给定关系的某些域上进行的运算。通过投影运算可以从一个关系中选择出所需要的属性成分,并且按要求排列成一个新的关系,而新关系的各个属性值来自原关系中相应的属性值:连接运算是对两个关系进行的运算,其意义是从两个关系的笛卡儿积中选出满足给定属性间一定条件的那些元组。19 .需求分析测试需求分析,测试解析:本题考
29、查软件生命周期有哪些阶段。属于基本概念题,需要好好掌握。软件生命周期包括:问题定义、可行性研究、需求分析、设计、编码、测试、运行与维护这些主要阶段。20.StringString解析:首先,看一下s二(99%2=l)?奇数偶数;这个赋值语句,(99%2=1)的返回值是true,那么给S赋第2个表达式的值,在这里是字符串奇数所以要在定义S的时候,前面加String来说明S的数据类型是字符串。21.C解析:JaVa语言中的语句既包括单一语句,也包括由多条单一语句组成的复合语句。用大括号将单一语句括起来就是复合语句。22.B解析:创建JaVa源程序,编译源程序,运行JaVa程序是开发一个Java程序
30、的3个步骤。源程序经过编译器编译生成字节码文件,然后将字节码文件交由JaVa解释器解释执行,所以选项B正确。23.B解析:本题考查对AWT基本组件的了解。选项A错误,创建的是一个初始显示为“关闭的文本框;选项B正确,创建的是一个标识有“关闭”的按钮;选项C错误,Checkbox为复选框类,只能设定是否含标签;选项D错误,创建的是一个标记为“关闭”的标签。故本题答案是B。24.B解析:本题考查java中常用组件的基本知识。选项A错误,TexField创建的是文本框;选项B正确,创建了一个20行30列的文本区;选项C错误,TexField创建的是文本框;选项D错误,构造TeXtArea时,第1个参
31、数定义初始的文本,应该是TeXtArea(”,20,30,)。故本题答案是Bo25.D解析:时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项A、B、C的说法都是错误的。故本题的正确答案是D。26.A27.B解析:当二元算术表达
32、式的两个操作数全是short类型的数据时,整个表达式的结果应该是i11t类型,这个规则也适用于byte类型。28.B29.D解析:抽象窗口工具包AWT是Java提供的建立图形用户界面的开发包。30.B解析:这是一道考查数组引用的题,目的是考查如何在程序中弓I用初始化后的数组。引用的方式为arrayNamefindex,其中index为数组的下标,可以为整数,变量和表达式,范围从0开始,一直到数组的长度减1。在JaVa语言中,是要对数组下标进行检查的。因此当程序运行到数组的长度值时,就发生了越界现象。31.第1处:classTransformTestFrame.extendsJFramen第2处
33、:classTransformPanelextendsJFramen第3处:publicvoidpaintComponent(Graphicsg)n【解析】第1处类中公有对象名称应与类名一致;第2处为继承的父类不正确;第3处从下面的SUPer.pa血COmPement(g);可判断出应有参数Graphicsgo32.第1处:extendsJFrame.implementsMouse1.istener,MouseMotion1.istenern第2处:9etContentPane.add(statusBar,Border1.ayout.SOUTH)n第3处:PUbliCvoidmouseEnte
34、red(MouseEvente)n【解析】第1处实现了两个接口,前者是鼠标单击事件的监听者,后者是鼠标移动事件的监听者;第2处实现初始化容器并添加一些控件StatusBar状态栏控件;第3处mouseEntered的作用是当鼠标进入某个组件时触发相应的动作,如实现本题的信息显示功能。33.D本题是考查对VeCtor的应用和理解。要为一个新对象分配空间,必须执行newXxx()调用,new调用执行以下的操作:首先为新对象分配空间并将其成员初始化为0或者null:执行类体中的初始化(如在类中有一个成员声明inta=10,在第1步后a=O,执行到第2步后a=10);然后执行构造函数;最后变量被分配为
35、一个到内存堆中的新对象的引用。34.B遍历是按照一定规则对树中全部结点逐一访问的方法。二叉树可由根结点、左子树和右子树三个部分组成。根据对根结点访问的先后顺序,可将遍历方法分为先序遍历、中序遍历和后序遍历三种。先序遍历首先访问根结点,再先序遍历左子树,最后先序遍历右子树,可见遍历是一个递归的过程。求树的遍历这种问题的关键在于认清每棵子树的根结点的访问顺序。题目给出了一棵树的先序遍历和中序遍历的结点顺序,先序遍历的第一个结点为整棵树的根结点,即根结点为A,而在中序遍历的顺序中,结点A的前面还有DBGE四个结点,表示这四个结点构成以A为结点的二叉树的左子树,同理,中序遍历中A结点后面的CHF三个结点构成以A为结点的二叉树的右子树。于是原来的对一棵二叉树的分析变为对该二叉树的左右子树的分析。以左子树为例,左子树结点的先序遍历为BDEG,中序遍历为DBGE1该子树的根结点为B,B结点的左子树为一个结点D,右子树为以E为根结点,结点G是E的左孩子。同理,可对CHF三个结点进行分析。最后得到整棵树的结构后,按照后序遍历写出所有结点的顺序:Dgebhfcao