(备考2023年)四川省绵阳市全国计算机等级考试Java语言程序设计测试卷(含答案).docx
(备考2023年)四川省绵阳市全国计算机等级考试Java语言程序设计测试卷(含答案)学校:班级:姓名:考号:一、单选题(10题)1.下列语句片段:inta=-67,b=116,c=78;intd=-a|b&c;SyStem.out.println(d)的结果为()A.70B.67C.78D.562Java虚拟机(JVM)运行Java代码时,不会进行的操作是()。A.加载代码B.校验代码C.编译代码D.执行代码3.下列不是InPUtStream子类的是A.文件输入流FileInputStreamB.对象输入流ObjeCtInPUtStreamC.字符输入流CharInputStreamD.压缩文件输入流ZipInputStream4 .构造方法名必须与()相同,它没有返回值,用户不能直接调用它,只能通过new调用。A.类名B.对象名C.包名D.变量名5 .main方法是Javaapplication程序执行的入口点,关于main方法的方法头,以下哪项是合法的?()A.publicstaticvoidmain()B.publicstaticvoidmain(Stringargs)C.publicstaticintmain(Stringarg)D.publicvoidmain(Stringarg)6 .和resume。方法相互搭配,使线程停止执行,然后调用resume。方法恢复线程的是()oA.interrupt()B.stop()C.suspend()D.yield()7 .以下构件中处于JaVa虚拟机下方的是()。A.JavaOSBJava基本APICJava基本类DJava应用程序和Applet8 .下列方法中,不属于类String的方法是()。A.to1.owerCase()B.valuef()C.charAt()D.append()9 .下面语句会产生编译错误的是A.floatF=1024.0F;B.doubleD=1024.0;CbyteB=1024;D.charC=1024;10.下列关于JaVa多线程并发控制机制的叙述中,错误的是()oAJava中对共享数据操作的并发控制是采用加锁技术B.线程之间的交互,提倡采用suspend/resume方法C.共享数据的访问权限都必须定义为privateDJava中没有提供检测与避免死锁的专门机制,但程序员可以采用某些策略防止死锁的发生二、2.填空题(10题)I1.AWT事件分为两大类:低级事件和高级事件。其中【】一是指基于语义的事件,它可以不和特定的动作相关联,而依赖于触发此事件的类。12 .在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程”的联系为。13 .下面是用户程序对APPlet类中方法Paint()的重新定义。根据程序功能,在指定的空白处填上适当的语句或语法成分。publicvoidpaint(Graphicsg)g.(“你好!”,10,20);)14 .在下面JaVaAPPIet程序的下画线处填入代码,使程序完整并能够正确运行。importjava.applet.*;importjava.awt.*;publicclassHelloWorldpublicvoidpaint(Graphicsg)g.drawString(,HelloWorld!n,25,25);15 .Java虚拟机(JVM)的执行过程有3个特点:多线程,,异常处理。16 .线程的【】方法只会使具有与当前线程相同优先级的线程有运行的机会O17 .下列程序的功能是创建了一个显示5个”HenOv的线程并启动运行,请将程序补充完整。publicclassThreadTestextendsThreadpublicstaticvoidmain(Stringargs)ThreadTestt=newt.start();)publicvoidrun()inti=0;while(true)System.out.println("Hello!11);if(i+=4)break;8.下列程序的输出结果是【】。classTestpublicstaticvoidmain(Stringargs)intm=6;dom-;while(m>0);System.out.println(,m="+m);19 .Java中的方法的参数传递是调用。20 .冒泡排序算法在最好的情况下的元素交换次数为【】。三、1.选择题(10题)21 .以下内容不屈于算法程序所占的存储空间的是()。A.算法程序所占的空间B.输入的初始数据所占的存储空间C.算法程序执行过程中所需要的额外空间D.算法执行过程中所需要的存储空间22 .下列运算符中不能进行位运算的是A.>>B.>>>C.<<D.<<<23 .下列不屈于J2SDK命令的是()。ARMI命令B.网络传输命令C.J2SDK基本命令D.安全控制命令24 .main方法是JavaApplication程序执行的入口点,关于main方法头以下()是合法的。A.publicstaticvoidmain()B.publicstaticvoidmain(Stringargs)C.publicstaticintmain(Stringarg)D.publicvoidmain(Stringarg)25 .在结构化设计方法中,生成的结构图(SC)中,带有箭头的连线表示A.A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向26 .在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有()A.数据无冗余B.数据可共享C.专门的数据管理软件D.特定的数据模型27 .在七类内聚中具有最强内聚的一类是()。A.功能内聚B.通讯内聚C.偶然内聚D.顺序内聚28 .能够支持javadoc命令的注释语句是()oA./*./B./*.*/C./D./*.*/29 .定义一个表示10个值为null的字符串数组,下面选项正确的是A.Stringa;B.Stringa;C.chara1.10;D.Stringa=newString10;30 .下列安全控制中,()是管理密钥库和证书的命令。A.keytoolB.kintC.ktabD.klist四、综合应用题(2题)31 .本题的功能是用键盘上的方向键来控制直线的绘制方向。如果一直按向上的方向键,则在窗口中从焦点开始向上缓慢绘制直线,按其他方向键也会向对应的方向缓慢地绘制直线,如果按下Shift键的话,绘制直线的速度会加快。importjava.awt.*;importjava.awt.geom.*;importjava.util.*;importjava.awt.event.*;importjavax.swing.*;publicclassjava3publicstaticvoidmain(Stringargs)(SketchFrame.frame=newSketchFrame;frame.setDefauhCloseOperation(JFrame.EXIT_ON.C1.OSE);frame.show;classSketchFrame.extendsJFrame(publicSketchFrame(setTitle(',java311);setSize(DEFAU1.TWIDTH,DEFAU1.THEIGHT);SketehPanelpanel=newSketchPanel;ContainercontentPane=getContentPane;ContentPane.add(panel);)publicstaticfinalintDEFAU1.T_WIDTH=300;publicstaticfinalintDEFAU1.T_HEIGHT=200;)classSketehPanelextendsJPanel(PUbIiCVOidSketehPanel(last=newPoint2D.Double(100,100);lines=newArray1.ist;KeyHandlerlistener=newKeyHandler;addkey1.istener(this);setFocusable(true);Point2Dend=newPoint2D.Double(last.getX+dx,last.getY+dy):1.ine2Dline=new1.ine2D.Double(last,end);lines.add(line):repaint;last=end:)publicvoidpaintComponent(Graphicsg)(super.paintComponent(g);Graphics2Dg2=(Graphics2D)g;for(inti=0;i<lines.size;i+)92.draw(1.ine2D)lines.get(i);)privatePoint2Dlast:privateArray1.istlines;privatestaticfinalintSMA1.1.JNCREMENT=1:privatestaticfinalint1.ARGE_INCREMENT二5;privateclassKeyHandlerimplementsKey1.istener(publicvoidkeyPressed(KeyEventevent)(KEYkeyCode=event.getKeyCode;intd;if(event.isShiftDown)d=1.ARGEJNCREMENT;elsed=SMA1.1.JNCREMENT;if(keyCode=KeyEvent.VK_1.EFT)add(-d,0);elseif(keyCode=KeyEvent.VK_RIGHT)add(d,0);elseif(keyCode=KeyEvent.VK_UP)add(0,-d):elseif(keyCode=KeyEvent.VK_DOWN)add(0,d);)publicvoidkeyReleased(KeyEventevent)publicvoidkeyTyped(KeyEventevent)(charkeyChar=event.getKeyChar;intd;if(Character.isUpperCase(keyChar)(d=1.ARGEJNCREMENT;keyChar=Character.to1.owerCase(keyChar);elsed=SMA1.1.JNCREMENT;32.本题的功能是展示4种不同的对话框。窗口中有4个按钮:“消息”、“输入”、"确定''和“选择”,单击任意一个按钮,就能弹出一个对应的对话框。其中,消息对话框只有一个提示信息和一个“确定”按钮,输入对话框有一个供输入的文本框及“确定”和“撤销”两个按钮;确定对话框中有一个提示信息和三个按钮“是"、“否”和“撤销”;而选择对话框中有一个提示信息和两个按钮“确定”和“取消”。importjavax.swing.*:importjava.awt.event.*;importjava.awt.*;Publicclassjava3extendsJFrame.implementsBUttOnSeIeCtnACtiOn1.iStenerJButtonbtnMessage=newJBUttOn("消息”);JButtonbtnlnput=newJBUtton(“输入”);JButtonbtnConfirm=newJBUttOnC'确认”);JButtonbtnption=newJBUttOn(“选择”);publicjava3()super(',java311);btnMessage.addAction1.istener(this);btnlnput.addAction1.istener(this);btnConfirm.addAction1.istener(this);btnOption.addAction1.istener(this);getContentPane().set1.ayout(newFIow1.avout();getContentPane().add(btnMessage);getContentPane().add(btnlnput);getContentPane().add(btnConfirm);getContentPane().add(btnption);addWindow1.istener(newWindowAdapter()publicvoidwindowClosing(WindowEvente)System.exit(O););)publicstaticvoidmain(Stringargs)java3fr=newjava3();fr.pack();fr.setVisible(true);)PUbIiCVoidactionperformed(ActionEvente)ObjeCtopt=“确认”,“取消");JBUttoninstance:(JBUtton)e.getbject();if(instance=btnMessage)JOptionPane.showMessageDialog(this,”消息对话框”);elseif(instance=btnlnput)JOptionPane.showInputDialog(this,”输入对话框”);elseif(instance=btnConfirm)JOptionPane.showConfirmDialog(this,”确认对话框”);elseJOptionPane.showOptionDialog(this,”选择对话框“,“选择”,JOptionPane.YES_OPTION,JOptionPane.QUESTION_MESSAGE,null,opt,optl);五、单选题(O题)33 .下列选项默认的布局管理器不是Border1.ayout的是()oA.WindowB.PanelC.FrameD.Dialog六、单选题(0题)34 .下列JaVa组件中,不属于容器的是()。A.PanelB.WindowC.FrameD.1.abel参考答案1.B2 .AJaVa虚拟机加载代码是在运行前的操作。运行代码时会校验、编译和执行代码。3 .C解析:本题考查考生对Java中InputStream非字符输入流的掌握。所有的字节输入流都是从InputStream继承,包括:ByteArrayInputStream,以字节数组作为输入流:FileInputStream,可对一个磁盘文件设计的数据进行处理;PipedInputStream,实现线程之间通信的一个类;FilterInputStream,过滤器输入流;SequenceInputStream,将多个输入流首尾相接;ObjeCtInPUtStream,实现ObjeCtlnPUt接口。选项D中压缩文件输入流ZipInputStream是InfIaterlnPUtStream的子类,而InflaterInputStream是FilterInputStream的子类,只有选项C中字符输出流CharlnputStream类是字符流。本题涉及内容较多,要求对整个输入输出流有所了解。4 .A解析:构造方法是类中的一种特殊方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。构造方法名必须与类名相同,它没有返回值,用户不能直接调用它,只能通过new自动调用。5.B6 .C解析:在一个线程中调用SUSPend(),将使线程暂停执行,要想恢复线程,必须由其他线程调用resume。恢复该线程的执行。不提倡这两种方法,容易产生死锁。7 .A解析:本题考查对JaVa虚拟机的理解。选项A正确,Java虚拟机处于核心位置,它的下方是移植接口,移植接口中依赖平台和不依赖平台的两部分组成,依赖平台的部分称为适配器,不依赖平台的部分为JavaOS:选项BsC、D错误。在Java虚拟机上方,是Java的类和JavaAPIo在JaVaAPl上,可以编写Java应用程序和JaVaAPvlet。8 .D解析:String的方法中,to1.owerCase()方法是转换成小写,VaIUeOf()方法是获得相应数值,charAt()方法是提取字符中中指定位置的字符。append。是StringBuffer的方法。9 .C解析:本题考查考生对JaVa中数据类型的理解。为了防止计算机高低位字节存储顺序不同,通常byte类型用来表示数据避免出错,因为它只有8位bit,范围是:-128+127,选项C超出了此范围,所以是错误的。float类型数的表示范围是:-3.40282347E383.40282347E38;double类型数的表示范围是:-1.79769313486231570E3081.79769313486231570E308;Char类型在内存中占16位bit,表示范围是065535。10.B本题考查多线程的并发控制机制。Java中对共享数据操作的并发控制采用传统的加锁技术,也就是给对象加锁,选项A说法正确。线程之间的交互,提倡采用wait。和notify。方法,这两个方法是javalang.ObjeCt类的方法,是实现线程通信的两个方法,不提倡使用SUSPend()和resume。方法,它们容易造成死锁,所以选项B说法错误。共享数据的访问权限都必须定义为PriVate,不能为PUbIiC或其他,选项C说法正确。JaVa中没有提供检测与避免死锁的专门机制,因此完全由程序进行控制,但程序员可以采用某些策略防止死锁的发生,选项D说法正确。11 .高级事件【】高级事件解析:AWT事件分为两大类:低级事件和高级事件。低级事件是指基于构件和容器的事件,当在一个构件上发生事件,如:鼠标的点击、拖入等;高级事件是指基于语义的事件,它可以不和特定的动作相关联,而依赖于触发此事件的类。12 .多对多多对多解析:一名学生可以选择多门课程,一门课程也可以由多名学生选择,因此是多对多的联系。13 .Drawstring14 .extendsApplet15 .动态连接动态连接16 .yield()yield()解析:运行状态是线程占有CPU并实际运行的状态,如果当前线程执行了yield或者当前线程因调度策略(执行过程中,有一个更高优先级的线程进入可运行状态,这个线程立即被调度之行,当前线程占有的CPU被抢占;或在分时方式时,当前执行线程执行完当前时间片),就会导致当前线程进入可运行状态。17 .ThreadTest()ThreadTest()解析:本题考查线程的创建。题目程序的功能是按要求实现输出,通过继承Thread类来创建线程。Thread类本身实现了RUnnabIe接口,所以在java.Iang的Thread类的定义中可以发现run()方法,通过继承Thread类,必须重写其中的nm()方法定义线程体,然后创建该子类的对象创建线程。题目缺少线程创建的语句,因此应该填写:ThreadTestt=newThreadTestOo类ThreadTeSt继承了Thread类,并将Thread类的11m()方法进行了重写,11m()方法的功能是实现输出字符串。18 .【】0【】0解析:本题主要考查do-while循环和运算符的用法。注意do-while与while的区别及前缀-和后缀-的区别。19 .传值传值解析:JaVa中的方法的参数传递是传值调用,而不是地址调用,方法不能改变参数值,但可以改变变量值,两个对象之间的参数字段不能相互交换。20 .【】0【】0解析:根据冒泡排序算法思想可知,若待排序的初始序列为“正序”序列,则只需进行一趟排序,在排序过程中进行n-1次关键字间的比较,且不移动和交换记录,这种情况是冒泡排序的最好情况,故冒泡排序算法在最好的情况下的元素交换次数为Oo21 .D解析:一个算法程序所占的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法程序执行过程中所需要的额外空间,而不单是算法执行过程中所需要的存储空间。因此,答案为Do22.D解析Java中的移位运算符包括>>、<<、>>>、&、I、八、。其中>>表示算术右移,<<表示算术左移,>>>表示逻辑右移。不存在<<<运算。23.B24.B25 .A解析:让考生对常用的软件结构设计工具要有较深入的了解。常用的软件结构设计工具是结构图(SC-StrUCUn*eChart),也称程序结构图。其中,矩形内用于注明模块的功能和名字;箭头表示模块间的调用关系,带实心圆的箭头表示传递的是控制信息,带空心圆的箭头表示传递的是数据。注意:根据结构图设计思想,了解结构图构成的基本形式。26 .D解析:在文件系统中,相互独立的记录其内部结构的最,简单形式是等长同格式记录的集合,易造成存储空间大量浪费,不方便使用。而在数据库系统中,数据是结构化的,这种结构化要求在描述数据时不仅描述数据本身,还要描述数据间的关系,这正是通过采用特定的数据模型来实现的。27 .A28 .DDo【解析】本题考查JaVa中的注释语句。注释是程序设计的重要组成部分,应熟练掌握。JaVa中有三类注释语句:文档注释/*.*/,被javadoc处理,可以建立类的n一个外部说明性文件,所以本题正确答案是选项D;C语言注释风格/*.*/,用于去掉当前不再使用但仍想保留的代码等,单行注释/,格式上要求注释符/后必须紧跟一个空格,然后才是注释信息。29 .D解析:本题考查字符串数组变量的声明。选项A和选项B的效果是一样的,都是用来定义一个字符串数组,但没有指明数组个数,不满足题B-要求。选项C是一个二维的字符数组,在C语言中,一个二维的字符数组就可以表示一个一维的字符串数组,而在JaVa中,字符Char是基本类型,字符串Smng则是以对象的形式来表示的。选项D正确,它定义了一个含有10个元素的字符串数组,如果没有给字符串数组赋值,则默认为null。30 .A解析:keytool工具不仅是管理密钥库和证书的命令,而且还具有产生密钥、输出签名者的公钥证书的功能。31 .第1处:PUIiCSketchPaneln第2处:addKey1.istener(listener)n第3处:intkeyCode=event.getKeyCoden【解析】第1处SketChPaneI是构造方法,构造方法是给对象赋初值,所以没有返回值,但不用VOid来声明;第2处注册时间的监听器,参数应为事件源;第3处getKeyCode方法获得的是int型的键码。32 .第1处:extendsJFrame.implementsAction1.istener第2处:publicvoidactionPerfbrmed(ActionEvente)第3处:JButtoninstantce=(JButton)e.getSource()第1处是实现与ACtiOnEVent事件对应的接口,使之能够处理ActionEvent事件,相应的接口应为ACtion1.iStener;第2处是actionPerformed方法通过读取ActionEvent对象的相关信息来得到事件发生时的情况,Java是大小写敏感的;第3处是在Java的事件类中java.util.Eventrnobject类是所有事件对象的基础父类,通过getSource()方法可以得到事件源对象。33.BBo【解析】本题考查JaVa中的布局管理器。Pane和APPIet默认的布局管理器是FloW1.ayO*构件在容器中放置规律是从上到下、从左到右进行放置;Border1.ayout是WindowsFrame和Dialog的默认布局管理器,在Border1.ayOUt布局管理器中构件分成5个区域North、South、East、WeSt和Center,每个区域只能放置一个构件。考生应注意区分各个布局管理器的区别和联系,以及各个布局管理器的特点。34.DDo【解析】本题考查对Java组件中容器的基本知识的理解。选项A错误,Panel类派生自容器类COntainer,属于容器的一种;选项B错误。WindoW类也派生自容器类Container,也属于容器的一种;选项C错误,Frame类派生自WindOW类,也是一种容器;选项D正确,1.abel组件是标签组件,不属于容器。故本题答案选项是D。