java期末复习资料 13页

  • 204.69 KB
  • 2022-07-30 发布

java期末复习资料

  • 13页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
一、单选题1.下列不可作为java语言修饰符的是(D)A)alB)$1C)_1D)112.有一段java应用程序,它的主类名是al,那么保存它的源文件名可以是(八A)al.javaB)al.classC)alD)都对3.整型数据类型屮,需要内存空IX!最少的是(D)C)intD)byteA)shortB)long4.Java中(C)A)一个子类可以有多个父类,一个父类也可以有多个子类B)—个子类可以有多个父类,但一个父类只可以有一个子类0一个子类可以有一个父类,但一个父类可以有多个子类D)上述说法都不对5.下列哪些语句关于Java内存回收的说明是止确的。(B)八.程序员必须创建一个线程来释放内存B.内存冋收程序负责释放无用内存C.内存回收程序允许程序员直接释放内存D.内存回收程序可以在指定的时间释放内存对象6.下面的哪个赋值语句是不对的?(A)八.floatf=11.1;B.doubled=5.3E12;C.doubled=3.14159;D.doubled=3.14D;7.以卜*由do-while语句构成的循环执行的次数是(B)。intk二0;do{++k;}while(k<1);A.一次也不执行B.执行1次C.无限次D.有语法错,不能执行8.若有定义Stingjerry=〃IloveTom〃,si;则sl=jerry,substring(2)的值为(C)A.1B.loveC.loveTomD.Tom9.类的设计要求它的某个成员变量不能被外部类直接访问,应该使用下面的哪些修饰符获得需要的访问控制(D)ApublicBdefaultCprotectedDprivate10.在异常处理屮,如释放资源、关闭文件、关闭数据库等由(C)来完成。A.try子句B.catch子句C.finally子句D.throw子句11.在Java中,用Package®句说明一个也时,该也的M次结构必须是(B)八.与文件的结构相同B.与文件目录的层次相同C.与文件类型相同D.与文件大小相同12.Java的int型变量占内存的字节是(C)AlB2C4D与机器有关13.为丫区分类中重载的同名的不同方法,要求(A).八.釆用不同的形式参数列表B.返回值类型不同C.调用时用类名或对象名做前缀D.参数名不同14.下而关于数组的说法,错误的是(B)。A.数组是最简单的复合数据类型,是一系列数据的集合B.声明数组时,必须分配内存C.数组的元素可以是值(基木数据类型)、对象或其他数组D.一个数组中的所有值都必须是相同的类型\n1.下列语句片段inta=10,b=4,c=20,d=6;System,out.println(a++氺b+c氺——d);的结果为(c)A.144B.28C.140D.不能执行2.在Java中,所有类的根类是(A)A.java.lang.ObjectB.java.lang.ClassC.java,applet.AppletD.java.awt.Frame3.int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是(DA.publicintMAX_LENGTH=100B.finalintMAX_LENGTH=100C.publicconstintMAX_LENGTH=100D.publicfinalintMAX_LENGTH=1004.下列关于构造方法的特点描述中错误的是(A)A.不可重载B.方法名同类名C.无返回类型D.系统0动调用5.下面的是关于类及其修饰符的一些描述,不正确的是:(B)。A.abstract类只能用來派企子类,不能用來创建abstract类的对象。B.final类不但可以用来派生子类,也可以用来创建final类的对象。C.abstract不能与final同时修饰一个类。D.abstract方法必须在abstract矣中声明,但abstract矣定义中可以没有abstract方法。6.下列构造方法的调用方式中,正确的是(C)A.按照一般方法调用B.由用户直接调用C.只能通过new自动调用D.被系统调用7.复合语句用(B)括起来的一段代码。A.小拈号()B.大拈号C.中拈号〔〕D.单引号‘’8.下列关于构造方法的叙述中,错误的是(C)八.Java语言规定构造方法名与类名必须相同B.Java语言规定构造方法没有返网值,但不用void声明C.Java语言规定构造方法不可以重载D.Java语言规定构造方法只能通过new自动调用9.若a是int型变量,计算表达式a=25/3%3后,a为(B)八.1B.2C.3D.410.Java变量屮,以下不属于引用类型的数据类型是(B)A.类B.字符型C.数组型D.接门11.编译一个定义了两个类和三个方法的Java源程序文件,总共会产生(D)个字节码文件。A.5个字节码文件,以“.java”为扩展名B.2个字节码文件,以java”为扩展名C.5个字节码文件,以“.class”为扩展名D.2个字节码文件,以class”为扩展名12.关于实例方法和类方法,以下描述正确的是:(D)A.实例方法只能访问实例变量B.类方法既可以访问类变景,也可以访问实例变景C.类方法只能通过类名来调用D.实例方法只能通过对象来调用13.在编写异常处理的Java程序中,每个catch语句块都应该与(C)语句块对应,使得用该语句块来启动Java的异常处理机制。A.if-elseB.switchC.tryD.throw\n1.类Testl定义如下:1.publicclassTestl{2.publicfloataMethod(floata,floatb){}3.3.}将以下哪种方法插入行3是不合法的。(B)A.publicfloataMethod(floata,floatb,floatc){}B.publicfloataMethod(floatc,floatd){}C.publicintaMcthod(inta,intb){}D.privatefloataMethod(inta,intb,intc){}2.关于接U的定义和实现,以下描述止确的是:(A)A.接U定义中的方法都只有定义没有实现B.接门定义中的变量都必须写明final和staticC.如果一个接口由多个类来实现,则这些类在实现该接口屮的方法吋应采用统一的代码D.如果一个类实现一个接口,则必须实现该接口中的所有方法,但方法未必声明为public.3.下列省关事件监视器的说法正确的是(B)八.一个组件上不可以注册多个事件监视器A.一个事件监视器可以被注册到多个组件上B.一个组件上注册多个事件监视器会发生冲突,不会起作用。C.一个组件上注册多个事件监视器,只有最后一个事件监视器会起作用4.在java中,字符申由java.lang.String和(B)定义A.java.lang.StringCharB.java.lang.StringBufferC.java.io.StringCharD.java.io.StringBuffer5.对于catch子句的排列,下列哪种是正确的(B)A.父类在先,子类在后B.了类在先,父类在后C.有继承关系的异常不能在同一个try程序段内D.先有子类,其他如何排列都无关6.下列关于抽象类的说法四个是正确的?(C)A.某个抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法:B.接U和抽象类是同一回事;C.绝对不能用抽象类去创建对象;D.抽象类中不可以有非抽象方法。7.下列描述正确的是(C)A.多态性就是指子类的某个方法被其父类重写时,可以各自产生自己的功能行为。B.多态性就是指了类的某个方法被其父类重写时,不能各0产生0己的功能行为。C.多态性就是指父类的某个方法被其子类重写吋,可以各自产生自己的功能行为。D.以上都不对8.下列说法正确的是(D)A.try-catch-finally代码块屮的finally子句只有在try子句和catch子句都执行执行之后xl‘执行B.如果try代码块中出现了异常并被catch子句捕捉到,那么final1y子句就不再执行了C.只有try代码块中没有Hi现异常时,finally子句才会执行D.不管try代码块屮是否出现异常,或荞catch子句是否捕捉到异常,finally子句都将被执行\n1.下面(D)赋值语句不会出现编译警告或错误。A.floatf=1.3;B.charc=/’a";C.byteb=257;D.inti=10;2.将类的成员的访问权限设置为默认的,则该成员能被(A)A同一包中的类访问B其他包中的类访问C所有的类访问D所有的类的子类访问3.下列关于Java语言的特点,描述错误的是(C)A.Java是跨T:m的编程诏•言B.Java支持分布式计算C.Java是面向过程的编程语言D.Java支持多线程4.System,out.println("5〃+2);的输出结果应该是(A)。A.52B.7C.2D.55.在Java中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是(B)包。A.java,ioB.java,awtC.java,appletD.java.awt.event\n1.假设已经有一个类已经实现了ActionListcm^接口,下而哪个方法可以把这个类注册到按钮控件上?(B)。B.addActionListener()D.setListener()C)C.UnicodeD.BCDA.addListener()C.addButtonListener()2.Java语言使用的字符集是(A.ASCIIB.EBCDIC)o3.JAVA中,为了辩别用户是否关闭窗口,要实现监听器接口A.MouseListenerB.ActionListenerC.WindowListenerD.以上都要4.菜单的事件源是用鼠标点击某个菜单项,ActionListener,要实现的接口方法是actionPcrformcd(ActionEvcntc),获得事件源的方法是gctSourccO,处理该事件的接口是(A)A.ActionListenerB.actionPerformedC.getSourceD.ItemListener5.关键字s叩per的作用是(D)A用來访问父类被隐藏的成员变量B用來调用父类中被重载的方法C用来调用父类的构造函数D以上都是6.下列定义形式错误的是(B)Afloata[];Bfloata[5];Cinta[]=newint[5];Dfloat[]c;7.—个事件源必须注册监听器才能接收一个事件通知,以将产生的事件对象传输给(D)来处理。A.事件代理(监听器)B.事件源C.主程序D.事件处理方法8.Java中main()函数的返回值是什么?(D)A、StringB、intC、charD、void9.如下哪个字串在Java中可作为自定义标识符?(A)A.$numberB.superC.3numberD.#number10.如下哪个不是Java中有效的关键字?(B)A.constB.NULLC.falseD.this11.如下哪个不是Java屮正确的整数表示?(D)A.22B.0x22C.022D.22H二、填空题1.若x=5,y=10,则乂〈y和x>=y的逻辑值分别为]_和Q。Java的图形界而技术经历了两个发展阶段,分别通过提供AWT#发包和swing开发包来实现。2.如果在子类中想使用被子类隐藏了的父类成员变量或方法就可以使用关键字3.使用关键字boolean来定义逻辑变量。4.在Java中,所有炎的根矣是java,lang.Object。5.如果一个Java程序文件中定义有3个类,编译该源程序文件将产生1个文件名与类名相同而扩展名为.class的字节码文件。6.Java提供了java,io包,其中包括一系列的类来实现输入/输出处理。7.在Java的基木数据类型中,char型采用Unicode编码方案,每个Unicode码占用2_字节内存空间。8.在java语言中,所有的数组都有一个Length属性,这个属性存储了该数组的元的个数(数组长度)。9.一个对象通过调用从Objecto类屮继承的toString方法,可以获得该对象的字符申表示,该字符串的形式为:对象的类的名字@对象的引用地址。10.“3cat”.matches(\\dcat)的值是true。\n1.在循环体屮,如果想结束本次循环可以用continue语句。2.在循环体中,如果想跳出循环,结束整个循环可以用break语句。13..Swing的事件处理机制仅括事件源、事件和事件处理。14.Java源文件中最多只能有一个public或公共类,其它类的个数不限。15.如果一个方法被修饰为Hnal方法,则这个方法不能被重写。16.“Look”.equals(“look”)的值是false。17.创建一个标识有“关闭”字样的按钮对象gb的语句为(Buttongb=newButton(“关闭”))。18.数组声明后,必须使用^运算符分配内存空间。19.类体有两部分构成:一•部分是变量的定义,另一•部分是方法的定义。20.抽象方法是一种仅有方法头,没有具体方法体和操作实现的方法。21.Java的图形界而技术经历了两个发展阶段,分别通过提供AWT开发包和Swing开发包来实现。22.在类方法中只能调用类变量和类方法,不能调用实例方法。23.Java中不用修饰的成员变量称为友妊变量。24.访问权限是private变量,只能在木类中使用,不能在类外使用。25.访问权限是public变量,不但在本类中使用,还可以在任何另外一个类中使用。26.访问权限是友好变量,只能在本类和与本类同一个包屮的其他类使用。27.继承是一种由已有的类创建新类的机制。28.在编写异常处理的Java程序中,每个catch语川块都应该与语川块对应,使得用该语川块来启动Java的;Wi常处理机制。29.方法体中抛ill异常的关键字是throw。30.用修饰符static说明的成员变量是类变量。(private同一个类可以访问,public是全局都可以访问,子类,同一个包,同一个类都可以访问),protected是同一矣,同一个ti,了矣可以访问,无修饰符号是缺省矣型一default,可以在同一个类,同一个包访问)31.为了能使用Java提供的类,我们可以使用import语句來引入所需的类。32.Object类有一个public方法是toString,一个对象通过调用该方法可以获得该对象的字符串表O33.在Java中,负责对字节代码解释执行的是Java虚拟机jvm。34.在Java中,巾Java编译概自动导入,而无需在程序中用import导入的包是Java,lang。35.创建可修改的字符率对象,我们会基于(StringBuffer)类來创建。36.Java语言的各种数据类型之1X1提供两种转换:强制转换和H动转换。37.可以使用String类直接调用valueOfO方法将数值转化为字符串。38.开发与运行Java程序需要经过的三个主要步骤为编盥、编译和运行。(编辑源程序、编译生成字节码和解释运行字节码。...)39.Java程序中可以向容器添加组件,一个容器可以使用add()方法将组件添加到该容器中。40.创建数组后,系统会给每一个数组元素一个默认的值,如float型是2^。41.在java程序中,用关键字final修饰的常量对象创建后就不能再修改了。42.若省定义int[]a=newint[8];则a的数组元素中第7个元素和第8个元素的下标分别是§_和7o43.接门是一种只含有抽象方法或常量的一种特殊抽象类。44.如果一个类屮定义了几个名为method的方法,这些方法的参数都是整数,则这些方法的参数个数必须是不同的,这种现象称为方法的重载。45.接U体中所食的成员,其访问权限一定是(pub1ic)。46.接U中所有属性均为public,static和final的。47.在一个类的A部被嵌套定义的类称为内部类。48.接口屮的方法被默认的访问权限是public。49.“RedBird”.indexOf(“Bird”)的值是3。50.标识符是以字母、下划线、美元符号作首字母的字符申序列。\n14.final类不能被继承,即不能有子类。15.javax.swing包屮的JFrame类或子类所创建的一个对象就是一个窗口。16.捕获异常的统一出U通过finally语句实现。17.定义类的构造方法不能有返回值类型,其名称与j名相同18.下列选项中,用丁•实现接U的关键字是(implements)56..程序吋以处理的异常对应的类是java,lang.Exception及其子类。57.Java程序屮件,一个容器可以使用@立方法将组件添加到该容器屮。58.成员变量在整个类内都有效,局部变量只在定义他的方法内有效。59.同一段程序可能产生不止一种异常。可以放置多个catch了•句,其中每一种异常类型都将被检齊,第一个与之匹配的就会被执行。60.String类是不可变类,对象所包含的字符申内容永远不会被改变。61.在java语言屮,boolean型常量只有true和false两个值。62.Java中能够产生事件的对象都可以成为事件源,如文本框、按钮、键盘等。63.局部变量的名字与成员变量的名字相同,若想在该方法内使用成员变量,必须使用关键宁•this。64.局部变量的名字与成员变量的名字相M,若想在该方法内使用成员变量,必须使用关键字this。65.在java程序中,把关键字super()加到方法名称的前血,來实现子类调用父类的方法。66.使用关键字interface来定义接口。67.异常处理的方法有两种:应用try…catch"*finally结构对异常进彳捕捉和处理、通过throws与throw语句抛ill异常进行处理。68..在Java中用关键字package来创建包。69.在Java程序中,通过类的定义只能实现垔重继承,但通过接门的定义可以实现葢重继承关系。70.容器里的组件的位置和大小是由布局管理器决定的。71.创建一个引用名为button,标识为”计算”的按钮,请写出创建语句。JButtonbutton=newJBuUon(“计算”。72.创建一个菜单时,菜单放在菜单条里,菜单选项放在菜单里。73.在窗U111增加菜申条,必须使川Frame笑1的方法:setMenuBar(Menubar)。74.Java.awt包屮的Menu类是负贵创迷菜单的。它的一个实例就是一个菜单。75.在Menu类的方法中,add(Strings)方法是向菜单增加指定的选项。76.在Menu类的方法屮,getltem(intindex)方法是得到指定索引处的选项。77.在Menu类的方法中,getTtemCoimt()方法是得到菜单选项的数目。78.在Menu类的方法屮,remove(intindex)方法楚删除菜单的指定位S的菜单选项。79.在Menu类的方法屮,removeAl1()方法是删除菜单的所存选项。80.Java.awt包中的炎是负责创建菜单项的,它的一个实例就足一个菜单项。三、程序填空题1.按注释说明,在下划线处填入正确的语句publicclassExam3{publicstaticvoidmain(Stringargs[]){byted[]=/zHowareyoiT.getBytes0;System,out.println("数组d的长度是:"+);Strings=;//用字节数组构造字符串。System,out.println(s);//输出:Howareyou}}2.已知3*3矩阵如下:123456789假设(159)为该矩阵的正对角线。以下程序是求该矩阵的正对角线的值的和。请完成程序。\npublicclassTest{publicstaticvoidmain(String[]args){inti,j,sum=0;intcount=1;inta[][]=newint[3][3];for(i=0;i<3;i++){for(j=0;j<3;j++){a[i][j]=count;//初始化数组count++;}}//打印二维数组for(i=0;i<3;i++){for(j二0;j〈3;j++){System,out,print(a[i][j]+”");}System,out.println(/z〃);}//显示对角线之和for(i=0;i〈3;i++){sum=sum+a[i][i];}System,out.println(〃对角线之和:〃+sum);}}1.下面程序决断用户从键盘输入的字符序列是否全部由英文字母组成,请填空。importjava.util.Scanner;publicclassE{publicstaticvoidmain(Stringargs[]){Stringregex="fa-zZ-Z]+";Scannerscanner=newScanner(System.in);//从键盘输入文本。Stringstr=scanner.nextLine();if(str.matches(regex))//字符串分析是否全部由英文字母组成。{System.out.println(str+”中的字符都是英文字母");}}}2.如下java源程序文件屮,程序的功能是在数组屮查找键盘键入的整数。如果找到则输出该整数在数组屮的序号,否则输出“notfounds例如,运行程序,输入99,程序输出:99在数组屮的序号是5;输入59,程序输出:notfoundo请仔细阅读程序,补充相应的语句,使整个程序能够正常运行。(注意:不改动程序的结构,不得增行或删行)【程序代码】importjava.io.氺;importjava.util.Scanner;publicclassJ_Test{\npublicstaticvoidmain(String[]args)throwsIOException{inta[]={83,75,92,67,55,99,78,61};Scannerin=newScanner(System,in);intx=Integer.parseTnt(in.readLine());intindex=-1;for(inti=0;i<8;++i){if(a[i]==x){index=i;break;}}if(index==-1)System,out.println(〃notfound”);elseSystem,out.println(x+〃在数组中的序号是〃+index);}}四、简答题:1、在继承关系屮,方法的重写要遵循“两同两小一大”规则,简述两同两小一大原则的含义。参考答案:“两同”即方法名相同、形参列表相同,“两小”指的是子类方法返回值类型应比父类方法返回值类型更小或相等,了类方法声明抛出的异常应比父类方法声明抛出的异常类更小或相等。“一大”指的是子类方法的访问权限应比父类方法更大或相等。2、子类继承父类的哪些成员变量和方法?子类在什么情况下隐藏父类的成员变量和方法?在子类中是否允许有一个方法和父类的方法名字相同,而类型不同?参考答案:①子类和父类在同一个包屮时,子类可以继承父类的除private属性的所有方法和成员变量,当了类与父矣不在同一个包中吋,子类只能继承父矣的protected和public/4性的成员变量和方法。②子类中定义的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量;子类中定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同,子类就隐藏从父类继承来的方法(方法的重写)。③在了类中允许有一个方法和父类的方法名字相同而类型不同。3、下列代码是否可以编译成功?由此得出的结论是什么?classAnimal{publicvoidcat()throwsIOExccption{System,out.println("Animaliseating.");thrownewIOException();}}classHorseextendsAnimal{publicvoideat()throwsException{System,out.println(z,Horseiseating,);thrownewException0;\n结论:重写方法子类不能抛出比父类更为广泛的异常,及异常范岡不能扩大4、下列代码输出结果为?由此得出的结论是什么?classAnimal{publicstaticvoideat(){System,out.println("Animaliseating,);}}classHorseextendsAnimal{publicstaticvoideat(){System,out.println(’’llorseiseating,);}}publicclassHidden{publicstaticvoidmain(String[]args){Animalh=newHorse();h.eat();}}答案:Animaliseating.结论:静态方法和所属的类进行绑定,实例方法和所属的对象进行绑定5、如果在某个方法中访问名为a的变量,简述系统查找变量a的顺序参考芥案:先杳找木方法中是否有a局部变量,再齊找当前类巾是否有a的成员变量,最后齊找当前类的直接父类中是否包含a成员变景,依次上溯到间接父类,直到java.lang.Object类,如果最终不能找到,则系统Hi现编译错误。6、下列代码的输出结果是什么?原因是什么?StringBuffersbl=newStringBuffer(〃a〃);StringBuffersb2=newStringBuffer("a");System,out.println(sbl.equals(sb2));Stringsi=newString(〃a〃);Strings2=newString(〃a〃);System,out.println(si.equals(s2));答案:falsetrueStringBuffer秃中没有重新定义equals这个方法,而String类中重新定义了equals这个方法。五、编程题1、请写出完整的程序代码,定义一个类,类名为Test,求1到10的阶乘publicclassTest{publicstaticvoidmain(String[]argv){longresult=1;for(inti=1;i<=10;i++){result=result氺i;\n}}2、请写出完整的程序代码,类名为Test,利用for语句打印九九乘法表。publicclassTest{publicstaticvoidmain(String[]argv){longresult=1;for(inti=l;i<=9;i++){for(intj=l;j<=i;j++){result二i*j;System,out.print(i+”*”+j+”=”+result+“\t”);}System,out.printIn(“”);3、请写出完整的程序代码,类名为Test,求1+2+3+……100的奇•数的和publicclassTest{publicstaticvoidmain(String[]args){longresult=1;for(inti=1;i〈=100;i++){if(i%2==0)continue;result=result+i;}System,out.println(“1到100奇数的和是:”+result);}4.请写出完整的程序代码,类名为Test,实现求出1一100之和publicclassabc{publicstaticvoidmain(StringE]args){for(inti=l,sum=0;i〈=100;i++)sum+=i;System,out.printIn(“sum=”+sum);}}5.请写出完整的程序代码,类名为Test,实现1-100之间的偶数输出publicclassFor{publicstaticvoidmain(String[]args){for(inti=l;i<=100;i++){if(i%2!=0)continue;\nSystem,out.printIn(“偶数”+i);\n6.编写程序去除一个字符串屮的全部数字字符importjava.util.publicclassE{publicstaticvoidmain(Stringargs[])Scannerreader=newScanner(System,in);Stringstr=reader,next();Stringregex=//\\d+/,;str=str.replace八11(regex,〃〃);System,out.println(str);}}

相关文档