(备考2023年)湖北省宜昌市全国计算机等级考试Java语言程序设计真题(含答案).docx
(备考2023年)湖北省宜昌市全国计算机等级考试Java语言程序设计真题(含答案)学校:班级:姓名:考号:一、单选题(10题)Uava程序与数据库的连接机制是()°A.()DBCBJDBCC.()DBCAPID.SQ1/C1.I2.Swing与aWT的区别不包括()A.Swing是由纯Java实现的轻量级构件B.Swing没有本地代码C.Swing不依赖操作系统的支持D.Swing支持图形用户界面3 .类变量必须带有的修饰符是A.staticB.finalC.publicD.Volatile4 .如果线程调用下列方法,不能保证使该线程停止运行的是()oA.sleep()B.stop()C.yield()D.wait()5 .下列的哪个赋值语句是正确的()A.chara=12B.inta=12.0C.inta=12.0fD.inta=(int)12.06 .对下列程序的叙述中,正确的是IipublicclassXextendsThreadimplementsRunnable2:publ主cvoidrun()3: System.out.println(4thisisrun。”);4:5:publicstaticvoidmain(Stringargs()6:Threadt二newThread(newX();7:t.start();8:9:)A.第1行会产生编译错误B.第6行会产生编译错误C.第6行会产生运行错误D.程序正常运行7 .软件(程序)调试的任务是()。A.诊断和改正程序中的错误B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质8 .下面属于面向对象语言的是()oAJava语言B.机器语言C.C语言D.汇编语言9,下面代码段的输出是()0,y!demWPmIn(TrUCA.编译出错B.5752CtrueD.无任何输出10.在JaVa应用程序中,商品价格类的数据最好使用()数据类型的变量存储。A.intB.StringC.charD.double二、2.填空题(10题)I1.JaVa中方法的参数传递是调用,方法不能改变参数值,但可以改变变量值,两个对象之间的参数字段不能相互交换。12 .在面向对象的程序设计中,用来请求对象执行某一处理或回答某些信息的要求称为O13 .Java源程序是由类定义组成的,每个程序中可以定义若干个类,但是只有一个类是主类,在JaVaAPPliCatiOn程序中,这个主类是指包含【】方法的类,在JaVaAPPICt里,这个主类是一个系统类【】的子类。14 .在实现SerialiZabIe的类中,静态变量和使用】关键字可以使某些数据不被串行化。15 .系统运行时,通过机制周期性地释放无用对象所使用的内存,完成对象的清除。16 .在计算机软件系统的体系结构中,数据库管理系统位于用户和【】之间。17 .一棵二叉树第六层(根结点为第一层)的结点数最多为【】个。18 .在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【】。19 .Java语言中访问限定符有,protected,private和default等。20 .Frame默认的布局管理器是。三、1.选择题(10题)21 .下列安全控制命令中,用于帮助用户管理密钥表工具的是()。A.keytoolB.kinitC.kiistD.ktab22 .下列对JaVa语言的叙述中,错误的是AJava虚拟机解释执行字节码BJDK的库文件目录是binCJava的类是对具有相同行为对象的一种抽象DJava中的垃圾回收机制是一个系统级的线程23 .下列说法中,错误的是oAJava虚拟机屏蔽了具体平台相关的信息BJava虚拟机是实现Java语言与平台的无关性这一特点的关键C.引入Java虚拟机后,Java语言在不同平台上运行时,仍需要重新编译DJava虚拟机在实际的计算机上通过软件模拟或硬件来实现24 .关系数据库管理系统能实现的专门关系运算包括()0A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表25 .下列程序的输出结果是classAinti,j;A(inti,intj)thisi=i;this.jj;voidprint()System.out.println("i=n+i+,11+,j=,'+j)classBextendsAintin;B(inti,intj,intm)super(a,B);thism=m;voidprint()Sytem.out.println(11m+,+m);classCpublicstaticvoidmain(strangargsII)Bb:newB(l,2,3);brint();A.i=lj=2m=3B.m=3C.i=3j=2D.m=li=l26 .下列叙述中正确的是()。A.在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节C.在模块程序设计中,一个模块内部的控制结构也要符合结构化原则D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法27.关于以下代码段的说法正确的是()。(1)Strings=,'abcde11;(2)StringBuffersi=newStringBuffer(,abcde");(3)if(s.equals(s1)(4)s1=null:(5)if(sl.equals(三)(6)s=null;A.第(1)行编译错误,String的构造器必须明确调用B.第(3)行编译错误,因为S与Sl有不同的类型C.编译成功,但执行时在第(5)行有异常抛出D.编译成功,执行过程中也没有异常抛出28 .概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()。A.A.把软件划分成模块B.确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码29 .若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaeckf1则其后序遍历的结点访问顺序是()。A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca30 .下列说法正确的是()oA.捕获异常要求在程序的方法中预先声明B.运行异常在编程时必须定义CJava语言中,异常处理分为编译异常、运行异常、捕获异常3种D.以上说法都正确四、综合应用题(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.本题的功能是展示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);五、单选题(0题)33 .下列可以获得构件前景色的方法是()。A.getsize()B.getForeground()C.getBackground()D.paint()六、单选题(0题)34 .“商品”与“顾客”两个实体集之间的关系一般是A.一对一B.一对多C.多对一D.多对多参考答案1.B本题考查Java程序与数据库的连接。JDBC(JaVaDataBaseConneCtiVity)是Java程序与数据库连接的一种机制。在Java虚拟机中有个特殊模块JDBCDriv-erManager,既负责管理针对各种类型数据库软件的JDBC驱动程序,也负责和用户应用程序交互。2 .D3 .AAo类变量用StatiC修饰。4 .Cn线程的方法中sleep(u3000u3000)方法的作用是使比当前线程优先级低的线程运行。该方法使-个线程暂停运行-段固定时间。在休眠时间内,线程将不运行,低优先级的线程将有机会运行。yield(u3000u3000)方法为只让给同等优先级的线程运行。如果没有同等优先级的线程是可运行状态,yield(u3000u3000)方法将什么也不做,即线程将继续运行。stop(u3000u3000)方法是强行终止线程。wait(u3000u3000)方法是线程问交互的方法,是使一个线程停止运行,进入等待状态。n5 .D解析:主要要熟悉数据类型的赋值和两种类型转换方法(即自动转换和强制转换)的使用方法。字符变量以Char类型表示,它在内存中占16位bit,它不能当做整数使用。选项B)中的12.0为double类型,赋给a时需要强制转换。选项C)中的12.Of为float类型,赋给a时也需要强制转换。选项D)用到了强制类型转换将double类型赋给整形a,所以正确。6.B7 .A解析:软件调试的任务是诊断和改正程序中的错误,本题正确答案为A)o其他二项描述不正确,选项B)描述不全面,选项C)描述太绝对,选项D)描述不符合定义。8 .AA。【解析】本题考查JaVa语言的特点。JaVa语言是面向对象的,将客观世界看成由各种对象组成的,机器语言是计算机实际处理时使用的语言,把客观世界都看成由。和1组成;过去的高级语言大多数是面向过程的,比如C语言等,它们是通过数据结构与算法来描述客观世界;汇编语言属于低级语言。考生应注意区分各种语言的区别。本题正确答案为选项A。9 .A本题考查对位运算符和逻辑运算符的理解。位运算符"&”和”用于按位将两个数进行与和或的操作,两个操作数可以是整型、字节型、长整型和短整型,但不能是浮点型数据。逻辑运算符只能对两个布尔型的数据进行运算,返回的结果也是布尔型的。10 .D11 .传值传值解析:本题考查JaVa中方法的参数传递。Java中方法的参数传递是传值调用,而不是地址调用。方法不能改变参数值,但可以改变变量值,两个对象之间的参数字段不能互相交换。参数传递是JaVa中一个重要概念,注意理解。12 .消息消息解析:消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。13 .main14 .transienttransient解析:静态变量和使用transient关键字可以使某些数据不被串行化,这样可以使这些敏感数据不能写入流中,也不会通过串行化进行恢复。在这种情况下,提高了安全性。15 .垃圾回收垃圾回收16 .操作系统(或OS)操作系统(或OS)17.3232解析:根据二叉树的性质:二叉树第i(il)层上至多有2i-l个结点。得到第6层的结点数最多是26-1=32。18.消息【】消息解析:在面向对象技术中,主要用到对象(Objee。、类(ClaSs)、方法(methoD)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。9.publicopublico解析:修饰符可以分为访问限定符和非访问限定符两类。访问限定符有PUblic、protected,privatedefault0其他都属于非访问限定符,有Static、finalsabstract和SynCroniZed等。20.Border1.ayoutBorder1.ayout解析:Flow1.ayout是Pane和Applet默认的布局管理器,构件在容器中从上到下、从左到右进行放置;Border1.ayout是WindowsFrame和Dialog的默认布局管理器,在Border1.ayout布局管理器中构件分成5个区域,每个区域只能放置一个构件Arid1.ayout使容器中各个构件呈网状布局,平均占据容器的空间;Gard1.ayout把容器分成许多层,每层只能放置一个构件。21.D解析JaVa语言的安全控制命令包括:keytoolJarsignerspolicytoolxkinit.klistsktab0其中,ktab用于帮助用户管理密钥表工具,相当于SoIariS操作系统中的工具ktabo22.B解析:JDK目录中,bin目录下存放编译器、解释器和许多工具;demo目录下有各种演示例子;lib目录下都是库文件;jre目录是JaVa程序运行环境的根目录;include目录是Win32子目录,都是本地方法文件。所以答案B错误。23.C解析:JaVa虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行,所以不需要重新编译。24.B解析:此题为数据库的基本概念,可以对照办工软件的电子表格进行如下理解:选择:我们根据某条件选择出一行或多行元组(一个元组即为二维表中的一行)。投影:按字段(也称属性,比如学生关系(学号,姓名,出生年月,性别),学号、姓名都是属性)选取一列或多歹J(一个二维表中所有元组在某一列或几列上截取出来)。连接:2个或2个以上的表连接组成一张新的表,通常有条件连接。比如学生关系(学号,姓名,系号),又有一张系表(系号,系名,主任),2张表可以合并为一张这样的表(学号,姓名,系号,系名,主任)。1 5.B解析:在对象b调用Prin()方法时,使用了类B内定义的Print()版本,即在类B内的Print()版本覆盖了在类A中的Print()方法。26 .C解析:在模块化设计中,要求将一个大程序按人们能理解的大小规模进行分解,使每个模块都能易于理解,各模块的功能尽量单一,各模块之间的联系尽量少。因此,选项A错误。在自顶向下、逐步细化的设计过程中,是按照先全局后局部、先整体后细节、先抽象后具体的方法设计程序。因此,选项B错误。在模块化程序设计中,每个模块完成一个功能,相对独立,要求一个模块内部的控制结构也要符合结构化原则。因此,选项C正确。在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则,所以在程序设计过程中,要同时采用结构化程序设计方法与模块化程序设计方法。因此,选项D错误。27 .D28 .D解析:概要设计是软件系统结构的总体设计,其目的就是要按照需求规格说明书,把软件按照功能划分为多个模块,然后确定每个模块要实现的功能,最后确定模块之间的调用关系。而设计每个模块的伪代码则属于详细设计。所以只有最后一个不属于概要设计范畴。29.D30 .A解析:捕获异常要求在程序的方法中预先声明,在调用方法时用try-catch-finally语句捕获并处理,用throws子句声明异常和定义自己的异常类,用throw语句抛出异常。异常不只三类,还有抛出异常、声明异常等。31 .第1处:extendsFrame,implementsAction1.istener,Item-Xn1.istenern第2处:for(inti=0;i<l.getltemCount;i+)n第3处:PUbIiCvoidhemStateChanged(ItemEventevt)11【解析】第1处类可以实现多个接口,接口之间用隔开;第2处reverseselections方法实现的是反选,遍历列表获得列表元素数应使用的是getltemCount方法;第3处nJava是大小写敏感的。32 .第1处:extendsJFrame.implementsAction1.istener第2处:publicvoidactionPerformed(ActionEvente)第3处:JBUttoninstantce=(JButton)e.getSource()第1处是实现与ActionEvent事件对应的接口,使之能够处理ActionEvent事件,相应的接口应为ACtiOn1.iStener;第2处是actionPerfo11ned方法通过读取ActionEvent对象的相关信息来得到事件发生时的情况,Java是大小写敏感的;第3处是在Java的事件类中java.util.Eventrnobject类是所有事件对象的基础父类,通过getSource()方法可以得到事件源对象。33.BB。【解析】A是获得控件大小,B是获得构件的前景色,C是获得构件的背景色,D是继承APPlet的子类需要实现的方法。34.D解析:本题考核实体集之间的联系。实体集之间的联系有3种:一对一、一对多和多对多。因为一类商品可以由多个顾客购买,而一个顾客可以购买多类商品,所以,“商品”与“顾客”两个实体集之间的联系一般是“多对多”,选项D正确。