【备考2023年】陕西省西安市全国计算机等级考试Java语言程序设计真题二卷(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【备考2023年】陕西省西安市全国计算机等级考试Java语言程序设计真题二卷(含
答案)
学校:班级:姓名:考号:
一、单选题(10题)
1.下列变量的定义中,错误的是()o
A.intx=3;
B.floatf;d;
C.StringS=n Hello n;
D.booleanb=true;
2Java语言与C++语言相比,最突出的特点是()
A.面向对象
B.高性能
C.跨平台
D.有类库
3.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的()o
A.抽象和信息隐蔽
B.局部化和封装化
C.内聚性和耦合性
D.激活机制和控制方法
4Java变量中,以下标识符错误的是()。
A._com
B.!org
C.fate
D.Sstablel
5.下列()是不合法的Java标识符。
A.Tree&Glasses
B.firstJavaApplet
C._$the1.astOne
D.$2735
6.在方法内部使用,代表对当前对象自身引用的关键字是()o
A.super
B.This
C.Super
D.this
7.
有如下语句:s=Int(100*RnD.执行完毕,S的值是()。
A.[0,99]的随机整数
B.[0,100]的随机整数A[l,99]的随机整数D.[l,100]的随机整数
8.分析如下所示的Java代码,编译运行后的输出结果是()。
publicstaticvoidmain(Stringarg[]){
booleanb=true;
System.out.print(b);
if(b){
SyStemQUt.print,真");
}else{
SyStemQUt.print,假");
)}
A.true
B.true真
C.true假
D.l
9∙下列叙述中,不属于测试的特征的是()o
A.测试的挑剔性
B.完全测试的不可能性C测试的可靠性D.测试的经济性10∙下列描述中正确的是()o
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
二、2.填空题(10题)
11.下列JAPPIet对鼠标单击事件进行处理,当鼠标在JPanel中单击时, 在J1.abel中显示单击次数。
请在横线处填写正确的代码【importjava.awt.event.*;
importjavax.swing.*;
importjava.awt.*;
publicclassTestextendsJApplet(
staticintent;
publicvoidinit()(
Containercp=getContentPane();
MyPanejp=newMyPane1();
jp.addMouse1.istener(newMouseAdapterQ( publicvoidmouseClicked(MouseEventme)(ent++;
jb.setText(Integer.toString(cnt});
)
});
cp.add(',South",jB);
cp.add("Center",jp);
)
)
classMuPanelextendsJPanel(
publicMyPanel()
1)
publicvoidpaintComponent(Graphicsg)(
super.panitComponent(g);
g.drawRect(O,O,getSize().width-l,getSize().hight-l);
))
12.一般在APPlet中,声音文件的加载只需要进行一次,一般在
方法中。
13.软件工程包括3个要素,分别为方法、工具和【】。
14.Throwable类有两个子类,分别是Error和o
15.int型PUbliC成员变量MAX_1.ENGTH,该值保持为常数200,则定义这个变量的语句是 ___________ O
16.布局管理器中将构件从上到下、从左到右进行的排列的布局管理器是【】。
17.Java的类库具有的特点,保证了软件的可移植性。
18.每个应用程序可以包括许多方法,但必须有且只能有一个方
法。
19.凡生成SbingBURer一个对象后,还可用【】方法或ensureCapacity()方法设定缓存大小。
20.Java通过过滤流对I/O访问提供【】机制。
21.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做O
A.软件投机
B.软件危机
C.软件工程
D.软件产生
22.对关键字和值带来更多操作功能的类是()。
A.Class类
B.Object类C,Hashtable类D.Properties类
23.给出下列的程序,其叙述正确的是publicclassMan{staticintarr[]= newint[10] ;publicstaticvoidmain(Stringa
1.J){System.out.println(arr[1]);}}
A.编译时将发生错误
B.编译时正确但是运行时出错
C.输出为0
D.输出为null
24.在编写JaVaAPPIiCatiOn程序时,若需要使用标准输入输出语句,则必须在程序的开关写上()语句。
A.importjava.awt.*;
B.importjava.applet.Applet;
C.importjava,io.*;
D.importjava.awt.Graphics;
25.下列关于内部类的说法不正确的是()o
A.内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用
B.内部类可以使用它所在类的静态成员变量和实例成员变量
C.内部类不可以用abstract修饰符定义为抽象类
D.内部类可作为其他类的成员,而且可访问它所在类的成员
26.整型变量中,byte类型表示数据的范围是()。
A.-127〜+128
B.-126〜+127
C.-128〜+127
D.-127~+126
27.关于对象的删除,下列说法正确的是()
A.必须由程序员完成对象的清除
BJava把没有引用的对象作为垃圾收集起来并释放
C.只有当程序中调用SyStem.gc()方法时才能进行垃圾收集
DJava中的对象都很小,一般不进行删除操作
28.下列说法错误的是()。
A.Throwable类分为Error和Excepfion两子类
BJava语言中的类库,已定义有许多异常类可利用
C.异常对象用new来创建
D.捕获异常在调用方法时用throw子句捕获并处理
29.给出下列代码段:inti=3,j;outer:while(i>0){j=3;inner:while(j>0){if(j<=2)breakouter;System.ou t.println(j+,,and11+i);j—;}i—;)下列选项中哪个会被输出到屏幕?()
A.3and3
B.3and2
C.3and1
D.3and0
30.在OUtPUtStream类的常用方法中哪个是清空输出流的方法?
()A.flush()B.close()C.write(intb)D.write(byteb[])
31.本题的功能是对图形进行操作,包括旋转、移位、放大和剪切。
窗口中有4个单选按钮和一个图形面板,图形面板中有一个矩形和该矩形移位操作后的图形,任选其中一个单选按钮,则图形面板中将显示该操作后的图
importjava.αwt.∙∣importjava^awt.event.∙∣ιm∣>orijava.awt.gcom.♦∣I mpOrljava.util.∙∣ιm∣x>rtjavnχ.swing.∙:publicclas^jι∣va3( publicvoidmai11(String[]Λrgs)(
JFrnmCfrnnu∙τnewTransformTcstFrnmcOjframe,sctDe(nultClo^c<)j >cration(JFramc.EXIT_()∖,CIΛ)SE)tframe,show()l})d、TranUorrnTECXICndsJFnImC~
publicTransformTcs∣Framc()(
5<∙<Titlc(,'java3")»
5c∣Sαc(WIDTH.HElGHT)J
ContainerCOntcntPancgetContcntPane<)ι
CanVaKnewTrans(ormPanel<>:contf11(Pane,11dd(cnnvas.Bordcrlu iyout.CEN
TER):
JPanelbUUOnPanelnewJPaneiOi
BuuonGroupgroup=;newHUttonGrOUP《)】
JRadioBultonrotaιcBυtιonnewJRadioButionC*⅛tH',.true):
butIonPanel.add<rotatcButton)∣group,add(rotaleButtnn)∣rota<e Uutto11.ftddAciton1.⅛unvr(new
Actionl.iMcner()IpublicvoidactionPerformed(ActionEvcntevent)tca nvas.sctRotatc<)ι))>>
JRaciioButtontrnn^hlrButton
-
newJRadioBuiton<,*(⅛f-.fal5e)tbuitonPanc1.add(IranslateButton)ιgr oup,add(frΛ115∣ΛtcKuUon)1translaic*Button.addΛc∣ionI.ιstcner( newActιon1.istcncr()
publicvoidactιonf*erformcd(ActionEvenievent)(
canvas.5vlTran5Iatc()∣
>>ι
JRadioButtonncaleButton
--newJRadioBut<on<"jJftΛz"∙fake)ιbuttonPnnd.add(s<aleButton);
group.ndd<sc8∣cButton)ι
5CΛ∣eBuιιon.Add∕∖ctionl.istcner(newΛction1.ιstcner<)(
publicvoidactιonPcrforme<l<ActionEvcntevent)(
CanVa$.5ciScalc()1)))∣
JRadiuBuHonκhcar½uuonτnewJRadioBuiton《"剪切"∙false);
buttonpanel,ad<l(shcarBulion)«group,“dd(ShearBUIton);
shcarButton.addΛctionl.iMener(newAcuon1.iMenerO(publicvoidac∣!onl,crformcd(AciionEvcntevent)(canvas.
⅛ctShcar():]}):contentPane.Add(buttonPancl(Border1.ayout.
NORTH)1)privateTrans(oτmPanclcanvas∣privatestaticGnalintWIDTH三s30OtprivatestaticGnaIinlHEKlHT=300:> da」、TranHormPaneIexιendJPanCl
<~~publicTransformPancK)
square-newRcclangIeZI).lλ)ubk(-50,-50.100.100)t tnewAffincTransforTnOi5etR0t<i ∣c()I
) PUMiCVOidpniniComponcnM)
j<upcr.PaintCOmpOnCnMg)JGraphics2D R2(Graphιcs2D)gιg2.tr*njιlate<gelWidihO/2∙
getHcightO/2)∣R2.5cτP A in!(Color.gr«y)∣R2.draw(square)∣g2.transform”);
g2.MMPaint(Color,black):
g2.draw(square)∣
)
publicvoid5e(Roiaie()
(
∣.5ctToRot∙tion(Math.IORadian«30))trepθint()∣)
publicvoidsc<Tran5la∣e()
(
t.setToTranslatιo11(20.15)ι
repaint(>3
)
publicvoid5etScΛ∣e(>(
t.setToScalc<2.O.I.S)∣reρaint()t
)
publicvoidsetShear()
(
1. setToShcar(—0.2∙0)»repatnι()∣)
privateReEnae2Dsquare1privateAfGncTransformu)
32.本题是一个计时器。
窗口中有1个文字标签和3个按钮,名为“复位”、“开始”和“暂停”,初始状态时只有“开始''按钮可用,单击该按钮开始计时,并且“开始”按钮的标签变为“继续”且不可用「暂停”按钮变为可用,单击“暂停”按钮后“暂停”按钮变为不可用,“复位”和“继续”按钮变为可用,此时如果单击“复位”按钮将恢复到初始状态,如果单击“继续”按钮,则继续进行计数。
importjava.awt.*
importjava.awt.event.*;
PUbliCCIaSSiaVa3extendsFrame,extendsRUrmabIK(
1.abeltimeDisp=new1.abel(n0:011,1.abel.
CENTER);
ThreadtimerThread;
inttime=0:
ButtonbtReset=newBUttOn("复位");
ButtonbtStart=newBUttOn("开始”);
ButtonbtStop=newButton(“暂停”);
java3{
super(',java311);
PanelP=newPanel(newGrid1.ayout(1,0));
btReset.setEnabled(false);
btStop.setEnabled(true);
addWindow1.istener(newWindowAdapterJpublicvoidwindowClosing(WindowE vente){
System.exit(O);
)
});
btReset.addAction1.istener(newReset1.istener
);
btStop.addAction1.istener(newStop1.istener);
btStart.addAction1.istener(newStart1.istener);
P∙add(btReset);
P.add(btStart);
P.add(btStop);
add(P,Border1.ayout.SOUTH);
timeDisp.setFont(newFont(,'Courier11,Font.
BO1.D,60));
add(timeDisp,Border1.ayout.CENTER);
pack;
show;
)voidstop{
Threadt=timerThread;
if(t!=null){
timerThread=null:
try{t.join;}catch(Exceptione){}
)
)
publicvoidrun{
while(timerThread==Thread.CurrentThread
){
timeDisp.setText(11',+time/10+11:,'+time%
10+',011);
time++;
try{Thread.sleep(100);}catch(Exceptione)
();
classReset1.istenerimplementsAction1.istener{publicvoidactionPerfbrmed(Actio nEventevt){
IhiS.StOD;
timeDisp.setText(11O:0”);
time=0;
btReset.setEnabled(false);
btStart.setEnabled(true);
btStop.setEnabled(false);
btStart.Set1.abeI(“开始”);
)
)
classStop1.istenerimplementsAction1.istenerJpublicvoidactionPerformed(Action Eventevt){
java3.this.stop;
btReset.setEnabled(true);
btStart.setEnabled(true);
btStop.setEnabled(false);
btStart.Set1.abeI(“继续“);
)
)
classStart1.istenerimplementsAction1.istenerJpublicvoidactionPerformed(Actio nEventevt){
timerThread=newThread(java3.this);
timerThread.start;
btReset.setEnabled(false);
btStart.setEnabled(false);
btStop.setEnabled(true);
btStart.Set1.abeI(“继续“);
staticpublicvoidmain(String[]args){newjava3;
五、单选题(0题)
33.下列类中属于字节输入抽象类的是()。
A.FilelnputStream
B.ObieetInputStream
C-FiterlnputStream
DJnputStream
六、单选题(0题)
34.下面的()关键字通常用来对对象加锁,从而使得对对象的访问
是排他的。
A.serialize
B.transient
C.synchronized
D.static
参考答案
1.B
正确的方法是floatf,d;,中间应该使用“,”而不是“广,因为在JaVa中
“广表示一个语句结束。
2.C
解析:本题考查JaVa语言的特性。
JaVa语言与C++语言都是面向对象的语言。
因此,选项A是错误的。
Java语言与C++语言都是高性能的编程语言。
Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。
C++由于其极高的灵活性、强大的功能和非常高的效率,常常用于专业应用程序的开发,C++非常适合于编写各种编程环境下的高性能代码。
因此,选项B是错误的。
Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软
硬件平台上运行。
平台无关有两种:源代码级和目标代码级。
C和C++具
有一定程度的源代码级平台无关,C++语言支持程序员编写一些非常低级
的程序,从而能够访问机器硬件,并操纵实际内存地址。
但这些是以牺牲
可移植性为代价的,因为这时每个程序都是针对某种具体硬件环境的。
而Java主要靠Java虚拟机。
VM)在目标码级实现平台无关性。
JaVa编程人
员在编写完软件后,通过JaVa编译器将Java源程序编译为JVM的字节代
码。
任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管
这种字节码是在何种平台上生成的。
显然,JaVa语言与C补语言相比,最
突出的特点是跨平台。
因此,选项C是正确的。
JaVa语言和C++语言中都包含有类库,提供了大量的类以满足用户的多方
面需要。
因此,选项D是错误的。
经过上述分析可知,本题的答案是选项C。
3.C解析:模块的独立程度是评价软件设计好坏的重要度量标准。
衡量软
件的模块独立性经常使用耦合性和内聚性两个定性的度量标准。
故选项C
正确。
4.C
5.A
6.DD。
【解析】SUPer关键字为实现对父类变量的访问和对父类方法的调
用。
对当前对象自身的引用应使用this关键字。
7.A暂无解析,请参考用户分享笔记
8.B
9.C解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中
的错误,给出程序可靠性的鉴定。
它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。
其中没有测试的可靠性这一说法。
注意:软件测试与软件调试的概念,以及相应的方法。
10.C
∖r∖n
软件工程是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。
软件工程的主要思想是强调在软件开发工程中需要应用工程化的原则。
软件工程用来解决以下问题:软件需求的增长得不到满足、软件开发成本和进度无法控制、软件质量难以保证、软件不可维护或维护程度低、软件得成本不断提高、软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
软件项目的管理、软件产品的生产率、软件开发中的技术都是软件工程需要解决的部分问题。
因此选项C正确。
I1.finalJ1.abeljb=newJ1.abel(11ok")finalJ1.abeljb=newJ1.abel(,ok,)解析:在匿
名类中的扣对象的属性必须是final,否则编译会出错。
12.init()
13.【】过程【】过程解析:软件工程包括3个要素,即方法、工具和过
程。
方法是完成软件工程项目的基础上的技术手段;工具支持软件的开
发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。
注
意:软件工程的3个要素及各要素的作用。
14.ExceptionException解析:本题考查ThroWabIe类的概念。
ThroWable类
有ElTOr和EXCePtion两个子类,EiTOr类包括动态连接失败、硬件设备和
虚拟机出错等,通常的JaVa应用程序不会捕获和抛出这类异常,而是捕获
和抛出Exception这类异常,它包括运行时出现的异常,并对这类异常做出
处理。
15.publicfinalintMAX1.ENGTH=100publicfinalintMAX1.ENGTH=100解析:JaVa中定义常值变量使用的是final属性,说明该值赋值以后永不改变,所以正确答案为publicfinalintMAX.1.ENGTH=100o
16.Flow1.ayoutFlow1.ayout解析:Flow1.ayout是最简单的布局管理器,起组件按添加顺序从上到下、从左到右进行放置。
17.跨平台跨平台
18.main
19.set1.ength()set1.ength()解析:此题考查StringBuffer字符串的知识,生成String1Buffer一个对象后可用Set1.ength()或ensureCapacity()方法设定缓存大小,并保证其数组元素的初值都为0。
20.同步处理同步处理解析:FilterInputStream和Fi1terθutputStream抽象类及其子类是过滤流类,它们保证某I/O流同时只能被一个线程访问,从而为Java对I/O的同步处理机制提供保障。
21.B解析:软件工程概念的出现源自软件危机。
所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
总之,可以将软件危机归结为成本、质量、生产率等问题。
22.C
23.C解析:由于数组元素是整型,所以其初始值为0。
24.C
25.C解析:内部类的特点:①内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用。
②内部类可以使用它所在类的静态成员变量和实例成员变量。
③内部类可用abstract修饰定义为抽象类。
④内部类可作为
其他类的成员,而且可访问它所在类的成员。
⑤除StatiC内部类外,不能在类内声明StatiC成员。
26.C
27.B解析:在Java中定义对象时往往通过new运算符为其分配内存空间,于是当不再希望使用这个对象时需要释放掉它所占用的内存。
在Java中,释放内存的工作是由系统自动隐含的进行,编程人员无须关心。
所以选项B 说法是正确的。
28.D
29.A解析:本题考查循环语句与条件语句的嵌套使用。
break语句常用的一个作用是用于退出循环语句或Switch语句,其另外一个作用就是提供一个“标签化中断”的语句,可让程序退出多重嵌套。
题中循环变量i和j的初值都为3,开始进入循环体,输出3and3。
然后都执行j-语句,j的值为2,进入if分支,执行语句“breakouter;",即跳出整个循环体。
故程序代码最后的输出为3and3。
30.A解析fush()是清空输出流的方法,并将缓冲区中的数据强制送出;Ck)Se()关闭流;write(intb)将一个整数输出到流中;write(byteb[])将字节数组中的数据输出到流中。
31.解析:第1处:classTransformTestFrame.extendsJFrame第2处:classTransformPanelextendsJFrame第3处:publicvoidpaintComponent(Graphicsg)【解析】第1处类中公有对象名称应与类名-致;第2处为继承的父类不正确;第3处从下面的super.paintCompo-
nent(g);可判断出应有参数GraPhiCsg。
32.第1处:publicclassjava3extendsFrame
∖n第2处:btStop.setEnabled(false)
∖n第3处:java3.this.stop
∖n【解析】第1处定义一个继承了Frame窗口类的java3类;第2处暂停按钮StStop的SetEnable属性为false,不可用;第3处是单击“复位”调用StoP方法停止计时ReSet1.iStener主要作用是当用户单击“复位”时,它首先停止计时然后将时间清零,最后修改各个按钮的状态,即以是否可用的状态修改。
33.D
在JaVa中定义了两种类型的流,字节型和字符型,这两种流分别用4个抽象类表示:InputStream,OutputStream,Reader,Writer,其中InptutStream和C)Ut-Stream表示字节流,Reader和Reader是表示字符流,所以字节输入抽象类为InptutStreamo。
【解析】本题考查Java中对象加锁的概念。
Java是多线程的语言,多个线程可以“同时”访问同一数据区,而在处理某些数据时不希望其他的线程修改那些数据的值或者某些操作是不可打断的,要做到这个,可以使用synchronized关键字声明这一点。