您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > Java期中测试试题卷及答案
第1页(共17页)装订线考试类型:一纸闭卷();完全闭卷(√);开卷()第2学期期中测试试卷学院班级姓名学号一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.关于对象成员占用内存说法正确的是()A.同一个类的对象共用一段内存B.同一个类的对象使用不同一段内存,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对2.关于方法的说法正确的是()A.方法中的形参可以和方法所属类的属性相同B.方法必须有形参C.同类不同的方法中不能有同名的自变量,否则会产生不可预测的结果D.没有返回值的方法可以用void来表示,也可以不加3.类Test1定义如下:1.publicclassTest1{2.publicfloataMethod(floata,floatb){}3.4.}将以下方法插入行3不合法的是()A.publicfloataMethod(floata,floatb,floatc){}题号一二三四五六七总分统分人复核人得分得分评卷人第2页(共17页)B.publicfloataMethod(floatc,floatd){}C.publicintaMethod(inta,intb){}D.privatefloataMethod(inta,intb,intc){}4.构造函数被调用于()A.创建对象时B.类定义时C.使用对象的方法时D.使用对象的属性时5.下面说法正确是()A.每个Java类都至少有一个构造方法,如果没有则机器自动生成一个默认的构造方法。B.如果类里定义了一个或多个构造方法,Java也提供默认的构造方法。C.每个Java类中用户必须定义至少一个构造方法D.以上都不对6.关于继承的说法正确是的()A.子类将继承父类所有的属性和方法B.子类继承父类的非私有属性和方法C.子类只能继承父类public方法和属性D.子类只能继承父类的方法,而不能继承属性7.下列说法正确的是()A.子类只能覆盖父类的方法,而不能重载B.子类只能重载父类的方法,而不能覆盖C.子类不能定义和父类同名同形参的方法,否则系统将不知道使用哪个方法D.重载就是一个类中有多个同名但有不同形参或方法体的方法8.this和super()A.都可以用在main()方法中B.指向一个内存地址C.不能用在main()方法中D.意义相同9.下列关于修饰符混用说法中,错误的是()。A.abstract不能与final并列修饰同一个类B.abstract类中不可以有private的成员第3页(共17页)装订线C.abstract方法必须在abstract类和接口中D.static方法中能处理非static的属性10.所谓方法重载,就是在类中创建了多个方法,它们具有相同的名称()。A.有不同的参数个数或不同的参数数据类型B.有不同返回类型C.有不同的参数名称D.有不同的方法体11.以下程序段的哪行有错误()。1importjava.Applet.*;2importjava.awt.*;3classChengji{4protectedfloatf(floatx,floaty){5returnx*y;6}7}8classXiangjiaextendsChengji{9privatefloatf(floatx,floaty){10returnx+y;11}12}A.8行B.9行C.4行D.10行12.下列说法正确的是()A.package语句作为Java源文件的第一个语句B.import语句作为Java源文件的第一个语句C.package语句作为Java源文件的类中的一条语句D.import语句作为Java源文件的类中的一条语句13.下列说法正确的是()。A.编译后的Java的源程序根据文件中定义的类和接口的个数产生的相应第4页(共17页)个数的.class字节码B.Java语言的源文件中不是任何地方都可以加注释的C.一个文件中可以有多个访问权限为public的类D.含有main()方法的类可以定义为public类,也可以为其他类14.下列有关抽象类的说法正确的是()。A.抽象类中必须包含抽象方法B.抽象类不能实例化C.抽象类不一定被继承D.用interface定义抽象类15.下列循环的循环体是():while(inti7);{i++;System.out.println(“iis“+i);}A.{i++;System.out.println(“iis“+i);}B.i++;C.;D.System.out.println(“iis“+i);二.判断题(本大题共15小题,每小题1分,共15分)(正确的打√,错误的打×)1.有的类定义时可以不定义构造函数,所以构造函数不是必需的。(×)2.一个类可以生成多个对象,并且这些对象都具有相同的属性。(√)3.使用静态属性必须以类名作为前缀。(×)4.由继承性可知,程序中子类拥有的成员数目一定大于或等于父类拥有的成员数目。(×)5.如果q是父类Parent的对象,而c是子类Child的对象,则语句q=c是正确的。(√)6.重载和覆盖是一回事。(×)7.子类要调用父类的方法,必须使用super关键字。(√)得分评卷人第5页(共17页)装订线8.与未加访问控制符的缺省情况相比,public和protected修饰符扩大了类及其属性和方法的被访问范围,private修饰符则缩小了这种范围。(√)9.抽象方法必须在抽象类中,所有抽象类中的方法都必须是抽象方法。(×)10.最终类不能派生子类,最终方法不能被覆盖。(√)11.一个类如果实现了某个接口,那么它必须覆盖该接口中的所有方法。(√)12.当子类继承某个抽象类时,如果没有将全部的抽象方法重写,则它仍然是一个抽象类,声明时必须要用abstract修饰。(√)13.在Java程序设计语言中,“方法和函数”是与类分不开的,每一个方法必定属于某一个类。(√)14.Java程序中,创建新的类对象用关键字new。(√)15.构造函数没有返回值类型,所以是void。(×)三.读程序,按要求填空(本大题共5小题,每小题4+4+9+4+4分,共25分.)1.下面这段程序的功能是:importjava.io.*;publicclassReverse{publicstaticvoidmain(Stringargs[]){inti,n=10;inta[]=newint[10];for(i=0;in;i++)try{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));a[i]=Integer.parseInt(br.readline());//输入一个整数}catch(IOExceptione){};for(i=n-1;i=0;i--)System.out.print(a[i]+”#”);得分评卷人第6页(共17页)System.out.println();}}2.下列程序函数调用顺序是:(写函数名,从进入到返回到结束都要写)main、fac、sumf、jiechen、sumf、main.,程序的功能是,执行结果是publicclassFac{Fac(){}publiclongsumf(intx){longs=0;for(intj=1;j=x;j++)s=s+jiechen(j);returns;}publiclongjiechen(inti){longf=1;for(intj=1;j=i;j++){f=f*j;}returnf;}publicstaticvoidmain(Stringargs[]){Facf=newFac();System.out.print(1!+2!+3!=+f.sumf(3));}}3、下面是父类Employee和子类Boss的定义,根据程序内容在下划线①到⑨上填空。1.classEmployee{2.①Stringname;//限制name的使用范围限于本类。3.protectedintid;//限制id的使用范围限于本包和所有子类。4.publicdoublesalary;5.Employee(Stringaname,doubleasalary){6.name=aname;7.salary=asalary;}8.Employee(intaid,doubleasalary){第7页(共17页)装订线9.10.this(“Employee#”+aid,asalary);//调用第5行的构造方法语句,使name属性为“employee#”+id11.}12.doublegetSalary(){returnsalary;}13.②getName(){returnname;}14.intgetId(){returnid;}15.}16.//定义Employee的子类Boss17.③ClassBossextendsEmployee{18.doublebonus;19.Boss(Stringaname,doubleasalary,doubleabonus){④super(aname,asalary,);20.bonus=abonus;}21.Boss(intaid,doubleasalary,doubleabonus){22.super(aid,asalary);23.bonus=abonus;24.}25.//19行、21行方法同名现象称为类多态中的⑤现象。26.voidsetBonus(doubleb){bonus=b;}27.doublegetSalary(){returnsalary+bonus;}28.//27行的方法是对父类同名方法的⑥。29.publicstaticvoidmain(Stringargs[]){//main函数头部30.//下面是新建一个Boss对象b,工号是3,底薪为3000,奖金为1000。⑦Bossb=newBoss(3,3000,1000);//在下面打印刚新建的Bossb的姓名和工号、工资。31.System.out.println(b.getName()+b.getId()+b.getSalary());32.}}/*从上面的类中可以看出,构造方法的特点是:⑧构造函数没有返回第8页(共17页)值、其主要作用是完成类对象的初始化工作、⑨构造函数可以有1个或者多个、构造函数不能由编程人员显式直接调用、创建类的新对象的同时,系统会自动调用构造函数为新对象进行初始化。*/4.下面这段程序的13行和第17行是省略的默认构造函数,写出17行构造函数包括函数内省略的语句:,程序的输出结果是:。1.importjava.io.*;2.publicclassabc3.{4.publicstaticvoidmain(Stringargs[])5.{6.SubClasssb=newSubClass();7.System.out.println(sb.max());8.}9.}10.classSuperClass11.{12.inta=10,b=20;13.14.}15.classSubClassextendsSuperClass16.{17.18.intmax(){return((ab)?a:b);}19.}5.对下列代码:第10行语句将调用语句的行是第行。本题中这种同名函数调用时自动定位绑定对应函数的现象称为面向对象的现象。1classPerson{2publicvoidprintValue(inti,intj){//……}3publicvoidprintValue(inti){//……}4}5publicclasssTeacherextendsPerson{6publicvoidprintValue(){//……}7publicvoidprintValue(inti){//……}8publicstaticvoidmain(Stringargs[]){第9页
本文标题:Java期中测试试题卷及答案
链接地址:https://www.777doc.com/doc-5434088 .html