第1页共13页诚信应考考出水平考出风格浙江大学城市学院2009—2010学年第二学期期末考试试卷《面向对象程序设计》开课单位:计算学院;考试形式:闭卷;考试时间:2010年6月30日;所需时间:120分钟题序一二三四五总分得分评卷人一._填空题_(本大题共14个填空项,每个填空项1分,共14分。)1.构造方法是一种特殊的成员方法,构造方法名与(1)相同。2.对于字符串Strings1=newString(“ok”);Strings2=newString(“ok”);则表达式s1==s2的值为(2),表达式s1.equals(s2)的值为(3)。3.对于StringBuffer串StringBufferstr=newStringBuffer(“abcdef”);str=str.delete(2,4)执行后str的值为(4)。4.对于两个int类型变量intm=120,n=240;则m^m的结果为(5),m^n^n的结果为(6)。5.关键字this(7)出现在构造方法中,(8)出现在实例方法中,(9)出现在类方法中。(填“可以”或“不可以”)6.在java的源文件中,为说明一个类是属于一个命名为tom.jiafei的包,需要编写的语句是:(10),该语句所在的位置为(11)。7.如果我们要对一个二进制文件进行读写,可使用java.io包中提供的FileInputStream类和(12)类。8.LinkedListE定义了表示(13)这种数据结构的(14)类。二.选择题(本大题共30题,每题1分,共30分。)请选择一个最合适的选项,填入到答题卷中。得分得分年级:_____________专业:_____________________班级:_________________学号:_______________姓名:__________________…………………………………………………………..装………………….订…………………..线………………………………………………………第2页共13页1、用Java虚拟机执行类名为Hello的应用程序的正确命令是()。A.javaHello.classB.Hello.classC.javaHello.javaD.javaHello2、一个包含Java类A,B,C,且A为主类的源程序,编译产生的类文件是()。A.A.classB.A.class,B.class,C.classC.A.class,B$.class,C$.classD.A$.class,B$.class,C$.class3、设Hello.html文件嵌入一个Applet类Hello,运行这个Applet的命令是()。A.appletviewerHello.htmlB.点击Hello.classC.appletviewerHello.classD.点击Hello.java4、下列表达式正确的是()。A.byte=340B.Boolean=1C.longl=-2fD.double=0.9239d5、执行下列代码后,哪个结论是正确的?()String[]s=newString[10]A.s[10]为””B.s[9]为nullC.s[0]为未定义D.s.length()为106、下列语句不正确的是()。A.inta[][]=newint[][3];B.inta[][]={{1,3},{2,3,4},{1,2}};C.Strings[][]=newString[2][];D.Strings[][]={{“can”,“I”},{“help”,”you”}};7、分析以下程序的输出结果()publicclassX{publicstaticvoidmain(String[]args){Strings1=newString(“true”);Booleanb1=newBoolean(true);if(s1.equals(b1){System.out.println(“Equal”);}}}A.无输出B.输出”Equal”C.在第五行出现编译错误D.程序执行后产生异常8、下述声明中哪一种可防止该类产生子类?()A.staticclassfooBar{}B.privateclassFoobar{}C.abstractclassFooBar{}D.finalpublicclassFooBar{}9、如果要求子类可以在任何包中访问父类中的成员,下面哪一个修饰符是可以达到这个目标的最为严格的修饰符?()A.publicB.privateC.ProtectedD.没有任何修饰符10、下面对methoda()方法的哪一种声明是调用该方法时不需要建立methoda()方法所在类的实例?()A.abstractpublicvoidmethoda();B.publicabstractdoublemethoda();C.staticvoidmethoda(doubled1){}D.publicnativedoublemethoda(){}11、下列哪个不是对方法publicvoidadd(inta)的重载()。A.publicintadd(inta)B.publicvoidadd(longa)C.publicvoidadd(inta,intb)D.publicvoidadd(floata)第3页共13页12、分析下列程序:1)classA{2)publicfloatgetNum(){return3.0f;}3)}4)publicclassBextendsA{5)//这里要插入方法6)}在该程序的第5行中插入下面哪个方法会引起编译错误?()A.publicfloatgetNum(){return4.0f;}B.publicvoidgetNum(){}C.publicvoidgetNum(doubled){}D.publicdoublegetNum(floatd){return4.0d;}13、下面对默认构造方法的说法正确的是()A.默认的构造方法会为方法中的变量进行初始化。B.编译程序会为每一个类创建默认的构造方法。C.默认的构造方法会调用其超类的无参数构造方法D.当一个类仅定义了带参数的构造方法,编译程序还是会为这个类创建一个默认的无参数构造方法。14、Java语言与其他主要语言相比较,独有的特点是()。A.面向对象B.多线程C.平台无关性D.可扩展性15、下列哪种方法返回String中的字符数?()A.size()B.length()C.width()D.girth()16.假设X,Y,Z都是接口,下列哪条是正确的代码()。A.publicinterfaceAimplementsX{voidaMethod();}B.interfaceBimplementsY{voidaMethod();}C.interfaceCextendsX,Y,Z{voidaMethod();}D.interfaceCextendsX{protectedvoidaMethod();}17.对于每个try块,下列结论正确的是()。A.必须只有一个catch块B.必须有至少一个catch块C.必须有finally块D.必须有try-try-again块18.符合对象和类关系的是:()A、人和老虎B、书和汽车C、楼和土地D、汽车和交通工具19.字符流与字节流的区别在于()A.前者带有缓冲,后者没有B.前者是块读写,后者是字节读写C.二者没有区别,可以互换使用D.每次读写的字节数不同20.在Java中,关于final关键字的说法不正确的是()。A.如果修饰变量,则一旦赋了值,就等同一个常量B.如果修饰类,则该类只能被一个子类继承C.如果修饰方法,则该方法所在的类不能被继承D.final关键字既可以修饰成员变量也可以修饰成员方法。21.设一数组由以下语句定义:intage=newint[10];则数组的第一个元素的正确引用方法为()A.age[1]B.Age[0]C.age[]D.age[0]22.有一JAVA语言定义的类Worker是类Person的子类,Worker的构造方法中有一句”super()”,第4页共13页该语句()。A.调用类Worker中定义的super()方法B、调用类Person中定义的super()方法C.调用类Person的构造方法D、语法错误23.设有数组的定义:charm[]=newchar[6],则m.length的值为()。A.5B.6C.10D.1224.下列代码哪个是错误的:A.doublea=1000000000.0;B.floata=1000000000;C.inta=1000000;D.longa=100000000000000;25.关于Java中的包,提法错误的是:()A.一个包中可以有多个不同类名的类B.一个Java源代码文件中只能有一条package语句。C.一个包只能有一个public类D.不同包中的类文件一般需要放到不同的目录下。26.下面程序代码的输出是:inti=98;i=i9898;System.out.println(i);A.0B.98C.99D.上述答案都不正确27.若y的值为3,则Java语句System.out.println(“3+2=”+y+2)将输出的结果是A.3+2=32B.3+2=5C.3+2=3+2D.3+2=328.下面提法错误的是():A.一个包中的公有类对于其它包是可见的(即其它包可访问该公有类)。B.如果类A是公有类,那么类A所在的源代码文件名须为A.java.C.非公有类不能被扩展(即不能被继承)。D.公有类的子类未必一定是公有类。29.下列不可作为java语言修饰符的是()A.eatB.$1C._1D.17ap630.如下代码定义了一个类Test:classTest{privateinty;Test(intx){y=x;}}现在为Test类生成一个对象,正确的语句是()。A.Testt=newTest();B.Testt=newTest(10,20);C.Testt;D.Testt=newTest(10);三.程序改错题(本大题共7题,每题2分,共14分。)下面所有题目至少包含1处错误,请指出错误及错误原因,并修改这个错误。得分第5页共13页1、publicclassX{publicstaticvoidmain(String[]args){byteb=127;bytec=126;byted=b+c;}}2、publicabstractclassTest{publicabstractvoidmethodA();publicabstractvoidmethodB(){System.out.println(“Hello”);}}3、classA{publicinti=0;publicA(Stringtext){i=1;}}publicclassBextendsA{publicB(Stringtext){i=2;}}4、classExceptionTest{publicstaticvoidmain(String[]args){check(-1);}staticvoidcheck(inti)throwsException{if(i0)thrownewException();}}5、interfaceIA{voidshow();voidshow(inti);}classAimplementsIA{publicvoidshow(inti){System.out.println(Ashow());}}6、classAaa{inti;Aaa(){i=-1;}Aaa(inta){i=a;}Aaa(doubled){Aaa((int)d);}}第6页共13页7、//包aaa中定义了以下类Apackageaaa;publicclassA{voidabc(){System.out.println(abc);}}//缺省包中的类Testimportaaa.A;classTest{publicstaticvoid