【备考2023年】福建省泉州市全国计算机等级考试Java语言程序设计测试卷一(含答案).docx
【备考2023年】福建省泉州市全国计算机等级考试Java语言程序设计测试卷一(含答案)学校:班级:姓名:考号:一、单选题(10题)1 .数据库应用系统中的核心问题是()oA.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训2 .设A为已定义的类名,下列是声明A类的对象a的语句中正确的是A.publicAa=newA();B.publicAa=A();C.Aa=newclass();D.aA;3 .首先访问结点的左子树,然后访问该结点,最后访问结点的右子树,这种遍历称为()。A.前序遍历B.后序遍历C.中序遍历D.层次遍历4 .用来导入已定义好的类或包的语句是()A.mainB.importC.publicclassD.classpubliccl55Person(iniRrr£=ncwint10jspublicsla>cvoidmain(Stringfgj<tJ)Sy»!em.out.prtndn(arrCl)5 .阅读下列代码后:正确的说法是()oA.编译时将产生错误B.编译时正确,运行时将产生错误C输出零D.输出空6 .下列关于JaVa多线程并发控制机制的叙述中,错误的是()。AJava中对共享数据操作的并发控制是采用加锁技术B.线程之间的交互,提倡采用suspend/resume方法C.共享数据的访问权限都必须定义为privateDJava中没有提供检测与避免死锁的专门机制,但程序员可以采用某些策略防止死锁的发生7 .下列关于TeSt类的定义中,正确的是()ocla*xTcsiImplementsRunnnblclpublicvoidrun()publicvoidh<>dj<'A.)c15>Tvxiiml<'n><*nsRunnAblHpublicvoidrun()tBjclftssTcsiimplementsRunnnbleCpublicvoid5nmMethod',c.)das*TEimplcmcnt5RunnablclpublicvoidMinwMcthod()D.8 .下列程序的输出结果是()classDeraovoidtest()Systeme.out.print(',NO11);voidtest(inti)System.out.print(八);voidtest(inta,intb)System.out.print(a+b);classTestpublicstaticvoidmain(Stringargs)Demode=newDemo();de.test();de.test5.;de.test(618);)A.No568B.568NoC.No514D.86No59 .已知表达式intm=0,1,2l3,4,5,6);,下面表达式的值与数组下标量总数相等的是()oA.m.length()B.m.lengthC.m.length()÷lD.m.length+110 .定义了二维数组B(2to6,4),则该数组的元素个数为oA.25B.36C.20D.24二、2.填空题(10题)11 .下列程序实现的功能是当按下键盘时,在APPIet中通过Paint()方法,在(50,50)位置处显示出按下的键的名称。在横线处填写正确的语句。importjava.awt.*;importjava.awt.event.*;importjava.applet.*;publicclassTest7extendsApplet(Stringstr=,'11;publicvoidinit()(addKey1.istener(newKeyAdapterO(publicvoidkeyPressed(KeyEventke)(;repaint(););requestFocus();)publicvoidpaint(Graphicsg)(g.drawString("你按下的键是:,+str,50,50);)12 .Java语言中,临界区用【】关键字标识。13 .数据库管理系统提供了数据库的操纵和运行控制功能。14 .以下程序计算1÷13+15÷+1(2N+1),直至1(2N+1)小于0.00001,请在横线处将程序补充完整。publicclassSunpublicstaticvoidmain(Stringargs)intn=l;doubleterm,sum=1.0;don=;term=1.0n;sum=sum+term;)while(term>=0.00001);System.out.println(n);System.out.println(sum);15 .Class类是一个特殊类,它在编译时由【】自动生成,并伴随每一个类。16 .执行下面的程序段,辅出结果为上【】。publicclassQ(publicstaticvoidmain(Stringargv)(intanar=newint5;System.out.pfintln(anar0);)17 .抛出异常的语句是语句。18 .进程是一个内核级别的实体,而线程是一个【】级的实体。19 .Jackson方法是一种面向的结构化方法。20 .为了向一个APPIet传递参数,可以在HTM1.文件的APPIet标志中使用PARAM选项。在Applet程序中获取参数时,应使用的方法是【】。三、1.选择题(10题)21 .下列叙述中,正确的是()A.声明变量时必须指定一个类型B.Java认为变量number与Number相同CJava中唯一的注释方式是“"D.源文件中public类可以有O或多个22 .下列用于JaVa解析类文件的命令是()。AjavaBjavacCjavapDjar23 .计算机系统的组成是()。A.主机、外设B.运算器、控制器C.硬件系统和软件系统D.CPU、存储器24 .Java语言的字节代码是一种()。A.文本文件B.图形文件C.二进制文件D.压缩文件25 .下列()语句是声明一个含有10个String对象的数组。A.charstr;B.charstrU;C.Stringstr=newString10;D.StringStiIl0;26 .Java中,”符号是指()。A.位运算符B.算述运算符C.关系运算符D.分量运算符27 .下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是A.选择B.连接C.投影D.并28 .若有数组名作为实参,则传递给形参的是()。A.数组的首地址B.第一个元素的值C数组中全部元素的值D.数组元素的个数29 .Java.语言中所有的简单数据类型都被包含在()中。Ajava.sqlBjava.awtC.java.IangDjava.math30 .能将程序补充完整的选项是classPersonprivateinta;publicintchange(intm)returnm;publicclassTeacherextendsPersonpublicintb;publicstaticvoidmain(Stringarg)Personp=newPerson();Teachert=newTeacher();inti;A.i=mB.i=bC.i=p.aD.i=p.change(50)四、综合应用题(2题)31 .本题的功能是获得系统剪贴板中的内容。窗口中有一个菜单“Edit”和一个文本域“Edit”中有菜单项“Cut”、“Copy”和“Paste”,在文本域中输入内容,可以通过菜单进行剪切、复制和粘贴操作,如果系统剪贴板为空,又做粘贴操作的话,则设置文本域中背景颜色为红色,并显示错误信息。importJava.awt.*;importjava.io.*;importjava.awt.datatransfer.*importjava.awt.event.*;classjava3extendsFrame,implementsAction1.istener,Clipboardwner(TextAreatextArea=newTextArea;java3super(',java311);addWindow1.istener(newWindowAdapterpublicvoidwindowClosing(WindowEvente)System.exit(O););MenuBarmb=newMenuBar;Menum=newMenu(uEditn);set1.ayout(newBorder1.ayout);add("Center11,textArea);m.add(11Cut11);m.add(11Copy11);m.add(11Paste11);mb.add(m);SetMenUBar(this);for(inti=0;i<m.gethemCount;i+)m.itern(i).addAction1.istner(this);)setSize(300,300);show;publicvoidactionPerformed(ActionEventevt)if(',Paste11.equals(evt.getActionCommand)booleanerror=true;Transferablet=getToolkit.getSystemClipboard.getContents(this);tryif(t!=nullt.isDataFlavorSupported(Dat-aFlavor.StringFlavor)textArea.setBackground(Color.white);textArea.setForeground(Color.black);textArea.replaceRange(String)t.getTransferData(DataFlavor.StringFla-vor),textArea.getSelectionStart,textArea.getSelectionEnd);error=false;)catch(UnsupportedFlavorExceptione)catch(IOExceptione)if(error)textArea.setBackground(Color.red);textArea.setForeground(Color.white);textArea.repaint;textArea.setText(11ERROR:nEithertheclipboard',+',isemptyorthecontentsisnotflstring.11);Jelseif(,Copy,'.equals(evt.getActionCommand)SetContents;elseif(11Cut11.equals(evt.getActionCommand)(SetContents;textArea.replaceRange(,11,jtextArea.getSelec-tionStart,textArea.getSelectionEnd);)voidSetContentsS=textAea.getSelectedText;StringSelectioncontents=newStringSelection;getToolkit.getSystemClipboard.SetContents(contents,this);)publicvoidlostOwnership(Clipboardclipboard,Transferablecontents)System.out.println(,lostownership*1);publicstaticvoidmain(Stringargs)newjava3;32 .下面程序中,在主窗口单击鼠标后,就会生成一个新窗口。importjava.awt.*;importjava.awt.event.*;publicclassjava3extendsFramejava3()super(',java311);addNotify();addWindow1.istener(newWindowAdapter()publicvoidwindowClosing(WindowEvente)System.exit(0););Insetsinsets=getlnsets();setSize(insets.left+insets.right+150,insets.top÷insets.bottom+150);this.addMouse1.istener(MouseEventHandler():CIaSSMe)USeEVentHandIerimplementsM。USeAdaPterPUbIiCVOidmousePresse(MouseEventevt)Rectanglebounds=getBounds();intx=evt.getX()+bounds.x;inty=evt.getY()十bounds.y;java3m=newjava3();m.set1.ocation(x,y);m.show();)staticpublicvoidmain(Stringargs)(newjava3().show();五、单选题(0题)33 .下列描述中正确的是()。A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发中的技术问题六、单选题(0题)34 .下面程序段的输出结果为()。publicclassTestpublicstaticvoidmain(Stringargs)booleana,b,c;a=(3<5);b=(a=true);System.out.println(11a=,'+a+"b=',+b);c=(b=false);System.out.println("b="+b+,'c="÷c);)A.a=trueb=falseb=truec=trueB.a=trueb=falseb=truec=falseC.a=trueb=trueb=truec=falseD.a=falseb=falseb=truec=false参考答案1.A数据库应用系统中的核心问题是数据库的设计。故答案为A选项。2 .A解析:本题考查对象的声明。对象的生成包括声明、实例化和初始化3个方面的内容。一般格式是先定义一个对象变量,再用关键字new生成一个对象,并为对象中的变量赋初值。如下所示:IypeObjectName=newtype(参数J);也可以用类名对象名声明一个对象,如:CirclemyCircle;所以本题中A选项是正确的。3 .C前序遍历是指若二叉树为空树,则空操作。否则:访问根结点:先序遍历左子树;先序遍历右子树。中序遍历二叉树是指若二叉树为空树,则空操作。否则:中序遍历左子树;访问根结点;中序遍历右子树。后序遍历二叉树是指若二叉树为空树,则空操作。否则:后序遍历左子树;后序遍历右子树;访问根结点。因为根结点是在中间访问的,即中序遍历。4.BnB。【解析】本题考查Java中的import语句。Java中使用import语句来导入已定义好的类或包,需要注意JaVa语言的javaIang包是编译器自动导入的,编程时如果使用该包中的类,可省去import导入如果要使用其他包中的类,必须用import导入。n5.An本题考查考生对Java中数组的定义及使用。intarr=newint10表示数组air是一个含有10个元素的整数数组。JaVa中的数据类型必须实例化后才能使用,但是有种情况例外,就是该成员是用static声明的。题目中对于数组并没有实例化,因此不能使用,所以选项A说法正确。如果加上static修饰符,改为staticintarrJ=newi11t10或者将该数组实例化即可,输出为0。6.B本题考查多线程的并发控制机制。Java中对共享数据操作的并发控制采用传统的加锁技术,也就是给对象加锁,选项A说法正确。线程之间的交互,提倡采用wait()和notify。方法,这两个方法是javalang.ObjeCt类的方法,是实现线程通信的两个方法,不提倡使用SUSPend()和resume。方法,它们容易造成死锁,所以选项B说法错误。共享数据的访问权限都必须定义为PriVate,不能为PUbliC或其他,选项C说法正确。JaVa中没有提供检测与避免死锁的专门机制,因此完全由程序进行控制,但程序员可以采用某些策略防止死锁的发生,选项D说法正确。7.Anjava中实现多线程的方法之-就是实现Runnable接口中的run方法,把实现RUnnabIe接口的子类对象传递给Thread类的构造函数。n8.C9.B10.C解析:数组是在有规则的结构中包含一种数据类型的一组数据,也称作数组元素变量。数组变量由变量名和数组下标构成,通常用Dim语句来定义数组,定义格式为:Dim数组名(下标下限下标上限)缺省情况下,下标下限为0,数组元素从“数组名(0)”至“数组名(下标上限)”:如果使用to选项,则可以安排非0下限。例如:DimA(5,5)ASlnteger,B(1To3,10to20,2),则A有36个元素,而B则有3*11*3=99个元素。本题中三维数组a(3,4,5)的元素个数为4*5*6=120个元素。H.str=ke.getKeyText(ke.getKeyCode()str=ke.getKeyText(ke.getKeyCode()解析:程序通过使用匿名类实现在APPIet中对键盘事件的处理,在匿名类中将键盘事件含有的相关信息传递给成员变量str,然后调用repaint()方法实现APPlet的重新绘制,输出该消息。12.synchronizedsynchronized解析:在Java中,使用synchronized关键字标识临界区。JaVa平台将每个由SynChroniZed语句设置的对象设置一个锁,称为对象锁,它是一种独占的排他锁,即同一时刻最多只能有一个线程获取该锁。13.定义定义14.2*n+12*n+l解析:本题考查do-while循环的用法。题目中没有给出累加次数,故不能使用for循环,在d。循环中,由累加项term的值作为退出循环的条件。根据题目要求,应该填写2*n+l0本题的关键点是While(term>=0.00001)语句,题目要求计算直至1(2N+1)小于0.00001,所以term=1(2N+1),因此n=2*n+1o15.编译器编译器解析ClaSS类是由编译器自动生成对象的一个特殊类,它伴随每个类,这个CIaSS类是一个特殊类,它有一个final类,所有的方法都用类变量来调用,即对CIaSS类不可能实例化。16.00解析:本题考查JaVa中数组的定义和初始化。在该方法里定义并动态初始化了一个整型数组anar,由于没有赋初值,系统给默认的初始值是数组中的每个元素全部为零。所以输出数组中的第一个元素anar1.0时,自然也是等于零。17 .throwthrow解析:异常对象从产生和被传递提交给Java运行系统的过程称为抛出异常。在捕获一个异常之前,必须先有异常抛出,才能生成一个异常对象,这就是通过抛出异常来实现。抛出异常、生成异常对象都是通过throw语句实现的。18 .用户用户解析:进程运行于系统的内核空间中,普通用户程序对其数据进行访问,但是线程运行于用户空间中,一般的用户级方法就可以对其进行直接访问。19 .数据结构数据结构解析JaCkSOn方法是一种面向数据结构的结构化方法。20 .getParameter()getParameter()解析APPlet被下载时,在Applet的init()方法中使用getParameter()方法获取参数。getParameter()方法定义为:publicStringgetParameter(Stringname)ogetParameter()方法的入口参数是所取参数的名字(必须与param标记中的name指示的名字相同),返回值是参数的值。21 .A解析:本题考查Java中的基本概念。关于Java的基本概念是考试重点,应该重视。在JaVa中,声明变量时,必须指定类型,否则将会出错,所以选项A说法正确。JaVa标识符是区分大小写的,这是与C语言不同的,变量number和NUmber对Java来说是不同的,选项B说法错误。Java中有三种注释方式:文档注释/*.*/,被javadoc处理,可以建立类的一个外部说明性文件;C语言注释风格/*.*/,用于去掉当前不再使用但仍想保留的代码等;单行注释,格式上要求注释符后必须紧跟一个空格,然后才是注释信息,选项C说法错误。源文件中PUbliC类可以有。或1个,不能多于1个,选项D说法错误。22.C解析:JaVa基本命令包括:javacsjava、javadocsappletviewerxjafsjdbsjavailxjavapsextchecko其中,命令javap是JaVa类文件解析器,用于解析类文件。如果没有使用选项,javap将输出类的PUbIiC域及方法。23.C24.C25.C26.A27.B选择,连接,投影是专门的关系运算,选择是选择满足条件的元组,而投影是选择满足条件的属性或者说列。并是传统的关系运算,是将两个关系中的元组合并在一起再去掉重复的部分。选择,投影,并三个运算得到的结果属性数并没有改变或者说还有减少,而连接时将两个关系进行笛卡尔积运算,在挑选满足条件的项。其属性个数一般会多于原来关系中的属性数。28 .A解析:本题考查数组作为函数形参方面的应用。当将数组传递给函数时,被调用的函数中可用不带下标的数组名。这实际上是传递数组第1个元素的地址给函数。在JaVa语言中,不可以把整个数组作为一个参数来传递,而是通过指针来完成。故本题答案是A。29 .CCo【解析JaVa语言中,所有的简单数据类型都被包含在包java.Iang中。30 .D解析:本题考查类的声明。选项A中m没有被声明过,不能使用;选项B中虽然b是类TeaCher的PUbliC成员变量,但在静态方法中,不能使用类中的非静态成员;选项C中a是类Person的private成员,在类外不能直接引用;选项D中Change(intm)方法是public方法,并且返回一个int型值,可以通过类的实例变量p引用并赋值给一个int型变量。31 .第1处:SetMenUBar(mb)n第2处:m.getltem(i).addAction1.istener(this)n第3处:Strings=textArea.getSelectedTextn【解析】第1处设定菜单栏,SetMenuBar参数应为菜单栏,此处this为Frame;第2处获得菜单项应使用gethem方法。第3处变量S使用前未定义,从getSelectedText可以看出,数据为文本域中选择的内容,故为String类型。32.第1处:this.addMouse1.istener(newMouseEventHandler()第2处:classMouseEventHandlerextendsMouseAdapter第3处:publicvoidmousePressed(MouseEventevt)第1处参数应为实例化对象;第2处继承父类应使用extends,implements实现的是接口;第3处单击鼠标后事件应为mousePressedo33.Crn软件工程是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。软件工程的主要思想是强调在软件开发工程中需要应用工程化的原则。软件工程用来解决以下问题:软件需求的增长得不到满足、软件开发成本和进度无法控制、软件质量难以保证、软件不可维护或维护程度低、软件得成本不断提高、软件开发生产率的提高赶不上硬件的发展和应用需求的增长。软件项目的管理、软件产品的生产率、软件开发中的技术都是软件工程需要解决的部分问题。因此选项C正确。34.CCo【解析】本题考查关系运算符<和=。题目中a=(3<5);比较3和5的大小,因为3<5,返回true给a;b=(a=true);判断a是否为真,因为a确实为真,返回true给b;c=(b=false);判断b是否为假,因为b不为假,返回false给e。最后结果a=true,b=true,b=true,e=false,选项C正确。