《备考2023年山西省阳泉市全国计算机等级考试Java语言程序设计真题(含答案).docx》由会员分享,可在线阅读,更多相关《备考2023年山西省阳泉市全国计算机等级考试Java语言程序设计真题(含答案).docx(18页珍藏版)》请在课桌文档上搜索。
1、备考2023年山西省阳泉市全国计算机等级考试Java语言程序设计真题(含答案)学校:班级:姓名:考号:一、单选题(10题)1.给出下列的程序代码片段,下列的哪个选项是不正确的?publicvoidcreate()Vectormy;my=newVector();A.第二行的声明不会为变量my分配内存空间B.第二行语句创建一个Vector类对象C.第三行语句创建一个Vector类对象D.第三行语句为一个Vector类对象分配内存空间2.Java语言中,下列标识符错误的是()。A.NameB.7questionC.$numberD._tree3.int类型的取值范围为()0A._亦*-1B.-*-D
2、.-22-l4 .下面属于面向对象程序设计语言的是OAJava语言B.机器语言CC语言D.汇编语言5 .当浏览器重新返回Applet所在页面时,将调用Applet类的方法是A.start()B.init()C.stop()D.destroy()6 .概要设计的结果是提供一份()A.模块说明书B.框图C.程序D.数据结构7 .下列关于JaVa多线程并发控制机制的叙述中,错误的是()。AJava中对共享数据操作的并发控制是采用加锁技术8 .线程之间的交互,提倡采用SUSPend()/resume()方法C.共享数据的访问权限都必须定义为privateDJava中没有提供检测与避免死锁的专门机制,但
3、程序员可以采用某些策略防止死锁的发生8 .若一个元素序列基本有序,则选用方法较快。A.直接插入排序B.直接选择排序C.堆排序D.快速排序9 .下列不是DataoUtPUtStream方法的是A.writeDouble(doublev)B.writelnt(intv)C.writeString(intv)D.writeChar(intv)10 .下列关于Java的说法正确的是AJava中的类可以有多个直接父类B弗象类不能有子类C.最终类可以作为其他类的父类DJava中接口支持多继承二、2.填空题(10题)11 .多线程是JaVa语言的【】机制,它能够处理同步共享数据和各种不同的事件。12 .Ap
4、plet生命周期是指从Applet到浏览器,到用户退出浏览器,终止Applet运行的过程。13 .Java语言的【】包是编译器自动导入的,因此,编程时使用该包中的类,可省去import导入。14 .CRC技术的全称是o15 .在J2SEvl.4运行环境中,编译JaVa源程序的命令是【】。16 .有以下程序#includeusingnamespacestd;intmain()(inti=010,j=10;cout(+i),11j0);D.intn=5;while(n1)n-;if(nO)break;)25 .在下列说法中正确的是()。AJava语言是以类为程序基本单元的BJava语言是不区分大小
5、写的C.多行注释语句必须以“/”开始D.在JaVa语言中,类的源文件名和该类名可以不相同26 .面向对象设计时,对象信息的隐藏主要是通过实现的。()A.对象的封装性B.子类的继承性C.系统模块化D.模块的可重用性27 .应用数据库的主要目的是A.A.解决数据保密问题B.解决数据完整性问题C.解决数据共享问题D.解决数据量大的问题28 .数据库的故障恢复一般是由()A.数据流图完成的B.数据字典完成的C.DBA完成的D.PAD图完成的29 .在长度为n的有序线性表中进行二分查找,需要的比较次数为A.log2nB.nlog2nC.n/2D.(nl)230 .RUnnabIe接口中包括的抽象方法是(
6、)。A.run()B.start()C.sleep()D.isAlive()四、综合应用题(2题)31 .本题的功能是展示4种不同的对话框。窗口中有4个按钮:“消息”、“输入”、“确定”和“选择”,单击任意-个按钮。就能弹出,个对应的对话框。其中,消息对话框只有一个提示信息和一个“确定”按钮,输入对话框有一个供输人的文本框及“确定”和“撤销”两个按钮;确定对话框中有一个提示信息和三个按钮“是”、“否”和“撤销”;而选择对话框中有一个提示信息和两个按钮“确定”和取importjavax.swing.importjava.awt.event.:importjava.awt.,publicc55jv
7、a3CXlCndSJFrameimplement,BuUmSdeClCAction1.iMncrJButionbnMc!*sagc三newJButionCa(浦总*)JButtonbininputnewJBuuonC镂人):JBuiionbtnConfi11n-newJHuttonC确认)JButionbtn()pnon=ncwJBuiton(舞hpublicjava3()(super-jav3)jbtnMessRgc.aidctionl.istcncr(btnlnput.add?Xctionl.j5icnrrthis)sbtrtConfirn).id(!Action1.istcncr(thi
8、s)btn)ption.addActiOn1.iSItner(ihis);ReiContenlPane().1.ayoutnewFlowlayoutC)gcl(.*onientPane().add(bsagc)getContentPanc().add(btnlnput)RCtCQnIEPanC().add(btnCon(irm)tKctContcntPanc().ndd(bn)plon)addWmdow1.EcnEnewWindowzXdapicrC),publicvoidwindowC,osing(WindowEvente):System.cxit(O)ipublicSIntiCvol11M
9、tn(Slrngrr)(JAVn3ftnewjkva3()(,pack()Ifr.ciVj5ibke.ReiObjecM)if(instance三tbinMcsaRc)JOpiionPane.showMesgcDialog(thn.iXfi框elseif(instance三btnlnu)J()ptionPanc.ShowJnpuiDialog(h输入对话枢”elseif(instancer-=btnConfi11n)JOptionPane.showCon(rmDjalog(this.”认对话枢elcJOptionPanr.show32 .注意:下面出现的“考生文件夹”均为USER%在考生文件夹
10、中存有文件名为Java_3.java的文件,该程序是不完整的,请在注释行“*FOUnd*“下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。本题的要求是:编写程序完成类JaVa_3的完整功能,该类定义了几何点对象的操作。该程序运行结果如下:x=5y=51.ocationis(5,5)x=8y=91.ocationis(8,9)给定源程序:publicclassJava_3点的坐标i11tx,y;publicJava_3()*Found*publicJava_3(intx,inty)*Found*
11、publicJava_3(Java_3p)以对象的形式返回当前点的位置publicJava_3get1.ocation()*Found*Java_3p=;/实例化一个JaVa_3对象p,其坐标是(,y)*Found*;返回对象P)返回点的横坐标publicintgetX()returnx;返回点的纵坐标publicintgetY()returny;把当前点移到新的位置(x,y)上publicvoidmove(intx,inty)this.x=x;this.y=y;以(x,y)的格式返回点的位置publicStringtoString()return11(11+x+,+y+)11;)在原有坐标上
12、分别增加X和ypublicvoidtranslate(intx,inty)this.x+=x;this.y+=y;publicstaticvoidmain(Stringargs)*Found*Java_3p=;生成一个对象(5,5)System.out.println(11x=+p.x+ny=+p.y);System.out.println(1.ocationis+p.toString();以(x,y)的方式打印坐标的位置*Found*;在原有位置上增加(3,4)System.out.println(11x=11+p.x+y=11+p.y);打印横坐标和纵坐标的值System.out.prin
13、tln(,1.ocationis11+p.toString();以(x,y)的方式打印坐标的位置五、单选题(0题)33 .下列表达式中不合法的是0。A.,b,=9B.C,%9C.,m,-7D.A=5=b4六、单选题(0题)34 .软件详细设计主要采用的方法是()。A.模块设计B.结构化设计C.PD1.语言D.结构化程序设计参考答案1.B解析:要为一个新对象分配空间必须执行newXxx()调用,new调用执行以下的操作:为新对象分配空间并将其成员初始化为0或者nullo执行类体中的初始化(例如在类中有一个成员声明inta=10;在第一步后a=0,执行到第二步后a=10)。执行构造方法。变量被分配
14、为一个到内存堆中的新对象的引用。2.B3.B本题考查int类型的取值范围。int类型是最常用的整数类型,存储时占32位bit,能表示的范围是一2的31次方至2的31次方一1,选项B正确。而ShOrt类型在存储时占16位bit,能表示的范围是一2的16次方至2的16次方一1。Iong类型存储时占64位bit,数据范围是一2的64次方至2的64次方一1。正确答案为选项B。4 .A解析:JaVa语言是面向对象的,将客观世界看成由各种对象组成。机器语言是计算机实际处理时所使用的语言,用。和1来描述客观世界。C语言是面向过程的,它是通过数据结构和算法来描述世界的。汇编语言是低级语言。5 .A解析:本题考
15、查APPlet的运行方式。当init()方法完成后,将调用Start()方法,使APPIet成为激活状态。该方法在APPIet每次显示时都要调用。例如浏览器由最小化复原,或浏览器从一个UR1.返回该Applet所在的页面,一般常在Start()中启动动画或播放声音等的线程。6 .A7.B本题考查多线程的并发控制机制。Java中对共享数据操作的并发控制采用传统的加锁技术,也就是给对象加锁,选项A说法正确。线程之间的交互,提倡采用wait。和notify。方法,这两个方法是javalang.ObjeCt类的方法,是实现线程通信的两个方法,不提倡使用suspend(环口resume。方法,它们容易造
16、成死锁,所以选项B说法错误。共享数据的访问权限都必须定义为PriVate,不能为PUbliC或其他,选项C说法正确。JaVa中没有提供检测与避免死锁的专门机制,因此完全由程序进行控制,但程序员可以采用某些策略防止死锁的发生,选项D说法正确。8 .A解析:因为队列是基本有序的,所以选用直接插入排序最快。9 .C解析:本题考查DataOutputStream方法。DataOutputStream备有读写各种类型数据的方法,例如:WriteDOUbIe(doubleV)写8个字节长的二进制双精度浮点数;WriteIntCintV)写出4个字节长的二进制整数;writeChar(intV)写字符(Un
17、icode码)oDataOutputStream并没有writeString(intV)方法。10 .D解析:java中接口支持多继承。选项A)JaVa语言只允许类间有单继承关系。选项D)抽象类是专门为别的类继承它而定义的。选项C)final声明一个类后,这个类不能被其他类继承,它是最终类。11 .并发并发解析:JaVa语言的开发运行环境都是互联网,在这种分布式的环境中,并发和共享是很常见的事务,要能并行地处理很多的事务,就要求Java语言提供一种可靠和高效的机制来满足高并发事务处理的要求。多线程很好地解决了网络上的瓶颈问题,很好地解决了大数量地网络访问问题。12 .下载下载解析:Applet
18、程序的生命周期是从浏览器调用init()方法,即在装载APPIet时被调用开始,到关闭浏览器时调用destroy。,彻底终RApplet,从内存中卸载并释放APPIet的所有资源。13 .java.lang14 .CyclicRedundancyCheCk(循环冗余校验)CyclicRedundancyCheCk(循环冗余校验)15 .javacjavac解析:在bin目录中包含的可执行文件javac.exeJava编译器,用javac命令将写好的JaVa源程序编译成字节码。16 .9109,10解析:本题考核自增运算符和自减运算符的使用以及常量的表示形式。程序中i的值是八进制,代表十进制中的
19、8,+i是在语句运算前自身加1,而j-是在语句运算结束后减U17 .国际化命令国际化命令18 .类类解析:面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化;将属性集和方法集相同的所有对象组合在一起,可以构成一个类。19 .b2.addAction1.istener(this);b2.addAction1.istener(this);解析:本题考查动作事件及响应的概念。在ChangeTitIeo中将接收器添加到JButton对象,但从程序段中可知程序只给bl添加了接收器,没有给b2添加接收器OaCtionPerfOrmed(ACtionEVenteVt)中对来自两个JButt
20、on对象的动作事件做出响应,evt对象的getSource()方法决定了事件的来源。如果它等于bl按钮,则标题设置为Students:如果它等于b2,则标题设置为Teacherso需要调用repaint(),这样在方法中可能出现的标题改动之后可以重新绘制。20 .事件源【】事件源解析:在事件处理的过程中,主要涉及到的3个对象分别是:事件:用户对界面操作在Java语言上的描述,以类的形式出现。事件源:事件所发生的场所,通常就是各个构件。事件处理者:接收事件对象并对其进行处理的对象。21 .C解析:本题考查考生对附属类的掌握。题目看起来很难,其实不用去理解程序即可回答,按照Java中的语法规则,只
21、有选项C满足题目。在题目中出现了“out”变量,只有选项C中“PrintWriterouE有该变量。选项A只是用来定义一个数组,选项B是一个常量,不能用在这里,选项D中“BUfferedWriter”后缺少参数。这个题目考点有些含糊,容易让考生莫名其妙,如果将程序整个给出也许更好一些,了解即可,本题的关键是明白附属类的概念。22 .C解析:选项A错误,在模块化设计中,要求将一个大程序按人们能理解的大小规模进行分解,使每个模块都能易于理解,各模块的功能尽量单一,各模块之间的联系尽量的少。选项B错误,自顶向下、逐步细化的设计过程土要包括两个方面:将复杂问题的解法分解和细化成由若干模块组成的层次结构
22、;将一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。即在自顶向下、逐步细化的设计过程中,是按照先全局后局部、先整体后细节、先抽象后具体的方法设计程序。选项D错误,由于在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则,所以,在程序设计过程中,结构化程序设计方法与模块化程序设计方法是要同时采用的。选项C为正确答案。23 .A解析:本题考查对象加锁的相关概念。对于对象加锁的使用有些注意事项。对象的锁在某些情况下可以由持有线程返还,比如当SynChroniZed语句块执行完成后;当在SynChrOniZed语句块中出现异常;当持有锁的线程调用该对象的
23、wait()方法,由此可见选项D说法错误。共享数据的所有访问都必须作为临界区,使用SynChrOniZed进行加锁控制,选项A说法正确。用SynChroniZed保护的共享数据必须是私有的,选项B说法错误。JaVa中对象加锁具有可重入性,选项C说法错误。24 .A25 .A解析:JaVa语言是区分大小的,B选项是错误的,这点在初学JaVa时要特别注意;选项C错误,以“/7开始的应该是单行的注释语句IaVa程序源文件名必须和PUbliC类名相同,否则编译出错,故选项D是错误的。因此正确的答案应该是选项A。26 .A解析:面向对象设计时,对象信息的隐蔽主要是通过对象的封装性实现的。封装是一种把代码
24、和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制。封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所定义的其他代码任意访问。27 .C数据库是对数据进行操作和管理的,可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。数据库可以被直观地理解为存放数据的仓库,数据库可以对大量数据进行管理和应用。一个应用数据库的主要目的就是要实现数据的共享,能使应用数据库的数据被大量用户使用。28 .C解析:数据库管理员DBA(DataBaSeAdminiStrator)对数据库进行统一管理、包括数据库故障恢复,数据更新、维护优化等操作。29 .A解析:在长度为n的有
25、序线性表中进行二分查找,需要的比较次数为log2n。选项A正确C30 .A解析:本题考查线程创建和使用的基本知识。RUnnableo接口中只有一个抽象方法run(),Thread类的主要方法有run。、start()xsleep()xisAlive()等。选项A正确,从上面的分析可知run。是RUnnable()接口中的唯一的抽象方法;选项B错误,Start()方法是将线程从不可运行状态转到可运行状态,Start()方法产生了线程运行需要的系统资源,并调用线程体,也就是run()方法,但它不是抽象方法;选项C错误,SleePo方法将线程从可运行状态转到阻塞状态,它也不是抽象方法;选项D错误,i
26、sAlive()方法是判断线程是否存于可运行状态。31 .解析:第1处:extendsJFrame.implementsAction1.istener第2处:publicvoidactionPerformed(ActionEvente)第3处:JButtoninstantce=(JButton)e.getSource()【解析】第1处是实现与ActionEvent事件对应的接口,使之能够处理AetiOnEVent事件,相应的接口应为Aetion1.-istener;第2处是actionPerformed方法通过读取Action-Event对象的相关信息来得到事件发生时的情况,Java是大小写敏
27、感的;第3处是在JaVa的事件类中java.util.Event()-bject类是所有事件对象的基础父类,通过9etSource()方法可以得到事件源对象。32.this.x=x;this.y=y;x=p.x;y=p.y;newJava_3(x,y);retump;newJava_3(5,5);p.translate(3,4)第1处:点的坐标,需填入this.x=x;this.y=y;第2处:点的坐标,需填入x=p.x;y=p.y;第3处:实例化一个JaVa_3对象p,其坐标是(x,y),需填入newJava_3(x,y)第4处:返回对象,需填入returnp第5处:实例化一个JaVa_3对象p,其坐标是(5,5),需填入newJava_3(5,5)第6处:在原有位置上增加(3,4),需填入p.translate(3,4)33.A34.D