第1页/共8页装订线华南农业大学期末考试试卷(A卷)2012学年第2学期考试科目:面向对象程序设计考试类型:闭卷考试考试时间:120分钟学号姓名年级专业题号一二三四总分得分评阅人试卷说明:1.所有答案必须写在答卷上,否则不得分,试卷和答卷均填写学号和姓名。2.考试结束时,只上交答卷,试卷自行带走。3.常用关键字:classimplementsextendspublicprivateprotectedstaticfinal4.常用类和接口:MathCloneableSerializableStringObject一、单项选择(30分)说明:每小题只有一个正确的选项,每小题2分。1.针对以下Java接口的定义:publicinterfaceMovable{}编辑、保存并编译该接口,则源代码与目标代码的文件名应该是:AMovable.java和Movable.classBMovable.inter和Movable.classCMovable.java和Movable.interDMovable.java和Movable.exe2.下面哪个强制类型转换是错误的?Acharc='A';inti=(int)c;Bbooleanb=true;inti=(int)b;Cfloatf=1.0F;inti=(int)f;Ddoubled=1.0F;inti=(int)d;3.在类Tester中定义方法method如下:publicvoidmethod(doublex){}在类Tester中增加哪个方法是对method方法的重载(overload)?Apublicvoidmethod(doubley){}Bintmethod(doublex)Cpublicintmethod(intx){}Dpublicvoidmethod2(intx){}4.定义如下数组:int[]array={1,2,3,4,5};则如下哪条语句可以输出数组的最后一个元素?ASystem.out.println(array[5]);得分第2页/共8页BSystem.out.println(array[4]);CSystem.out.println(array[array.length]);DSystem.out.println(array[array.size]);5.下面类Tester代码中有数据域age,publicclassTest{privateintage;}若为该数据域提供修改器方法,则如下定义中哪个是正确的?ApublicvoidsetAge(intage){age=age;}BpublicintgetAge(intage){returnage;}CpublicvoidsetAge(intage){this.age=age;}DpublicintgetAge(){returnage;}6.在定义类时,希望该类的方法method(),可以被同包及不同包中的子类继承该方法,但不能被其他包的非子类中的代码直接调用,则该方法应该使用哪个可见性修饰符?AprivateB不使用可见性修饰符CprotectedDpublic7.现在要定义一个类Tester,其无参构造方法头应该是:ApublicTester()BpublicvoidTester()CpublicTesterTester()DpublicConstructor()8.现在要定义一个类Circle,01.publicclassCircle{02.privatedoubleradius;03.publicCircle(){this(1.0);}04.publicCircle(doubleradius){this.radius=radius;}05.publicvoidsetRadius(doubleradius){this.radius=radius;}06.publicdoublegetRadius(){returnthis.radius;}07.}上面代码中哪一行的this是调用构造方法的?A第03行B第04行C第05行D第06行9.给定如下类的定义:classA{...}classBextendsA{...}classCextendsA{...}则下面语句的输出结果是:Aobj=newB();if(objinstanceofA)System.out.print(1);if(objinstanceofC)System.out.print(2);第3页/共8页装订线A无输出B1C2D1210.假设在父类中有如下方法:protecteddoubleaMethod(intx){......}则在子类中定义如下哪个方法是对上述方法的覆盖?AprivatedoubleaMethod(intx){......}BprotectedintaMethod(doublex){......}CpublicdoubleaMethod(doublex){......}DpublicdoubleaMethod(intx){......}11.给出接口的定义如下:publicinterfaceMovable{voidfly();voidrun();}下面哪个类对该接口的实现是没有语法错误的?ApublicclassAnimalimplementsMovable{voidfly(){}voidrun(){}}BpublicclassAnimalimplementsMovable{publicvoidfly(){}}CpublicclassAnimalimplementsMovable{publicvoidrun(){}}DpublicclassAnimalimplementsMovable{publicvoidfly(){}publicvoidrun(){}}12.要使一个类的对象能够使用对象流方式直接将整个对象写入文件,则其中一个条件是该类在定义时应该实现如下哪个接口?Ajava.io.SerializableBjava.lang.CloneableCjava.lang.ComparableDjava.io.Closeable13.关于Java语言类的构造方法,下列说法中正确的是:A一个类可以有多个构造方法B构造方法在定义类时被调用C构造方法可以被同一类的实例方法直接调用D构造方法名字由程序员自行确定第4页/共8页14.Java语言中定义常量时使用的关键字是:AstaticBfinalCconstDfixed15.如下关于Java语言中类定义的说法中正确的是:A定义类时可以同时继承多个父类B定义类时可以同时实现多个接口C定义类时可以不继承父类D定义类时必须实现接口二、程序填空(20分)说明:按照每小题的要求填充程序中的空白,使程序能够正确运行,每空2分。注意填写答卷时按空号顺序。1.具体类Hero继承Person类并实现Action接口。//Action.javapackageaction;publicinterfaceAction{//省略接口的具体定义}//Person.javapackageperson;publicclassPerson{//省略类的具体定义}//Hero.javapackageperson;_(1)____;publicclassHero_(2)____Person_(3)____Action{//省略类的具体定义}2.以下程序创建一个int型二维数组,第1行为1列,以后每行的列数比前1行多1列。publicclassTester{publicstaticint[][]createArray(intnumberOfRows){int[][]array=_(4)____;for(inti=0;iarray.length;i++){array[i]=_(5)____;}_(6)____;}publicstaticvoidmain(String[]args){int[][]list=createArray(10);}}3.定义类Leaf,在空白处填写恰当的关键字,满足该行中注释的要求。public(7)___classLeaf{//使该类不能被继承public(8)___intcounter;//使方法increase中对该变量访问合法publicstaticvoidincrease(){counter++;}}得分第5页/共8页装订线4.填写空白,使程序可以输出ArrayList中字符串的首字母。publicclassTester{publicstaticvoidmain(String[]args){ArrayListlist=newArrayList();list.add(Java);list.add(1000);list.add(C++);for(inti=0;ilist.size();i++){Objectelement=list.get(i);if(element(9)___String){Strings=(10)___element;System.out.println(s.charAt(0));}}}}三、阅读程序(20分)说明:阅读以下每段程序,写出运行的结果,每小题4分。1.阅读程序1classCounter{privateintcount=0;publicintgetCount(){returncount;}publicvoidincrease(){count++;}}publicclassOutput01{publicstaticvoidmain(String[]args){intx=0;Countery=newCounter();;System.out.println(x+,+y.getCount());inc(x,y);System.out.println(x+,+y.getCount());}publicstaticvoidinc(inta,Counterc){a++;c.increase();}}得分第6页/共8页2.阅读程序2classCounter{privatestaticinta=0;privateintb=0;publicCounter(){a++;b++;}publicvoiddisplay(){System.out.println(a+,+b);}}publicclassOutput02{publicstaticvoidmain(String[]args){Counterc1=newCounter();c1.display();Counterc2=newCounter();Counterc3=newCounter();c2.display();c3.display();Counterc4=newCounter();c4.display();}}3.阅读程序3classAnimal{publicvoidsay(){System.out.println(Iamanimal.);}}classDogextendsAnimal{publicvoidsay(){System.out.println(IamDog.);}}classBirdextendsAnimal{}classChickenextendsBird{publicvoidsay(){System.out.println(IamChicked.);}}publicclassOutput03{publicstaticvoidmain(String[]args){Animal[]animals={newAnimal(),newDog(),newBird(),newChicken()};for(inti=0;ianimals.length;i++){animals[i].say();}}}第7页/共8页装订线4.阅读程序4publicclassOutput04{publicstaticvoidmain(String[]args){try{method();}catch(Exceptione){System.o