OOP期中考试试卷及答案_第1页
OOP期中考试试卷及答案_第2页
OOP期中考试试卷及答案_第3页
OOP期中考试试卷及答案_第4页
OOP期中考试试卷及答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2006年5月9日一、单选题:1.下面哪些是short类型的取值范围?A.-27--2-17B.0--2-1C.1615----2-115D.-2312-131答案C解读:短整型的数据类型的长度是16bits,有符号。另外需要说明的是java中所有的整(Integral)数(包括byte,short,int,long)全是有符号的。2.下列代码哪一行会出错:{1)publicintvoidmodify()2)I,j,k。。{3)I=10004)while(I>)5)j==I*2。。。。}6)System.out.printlnk("Thevalueofjis"+j)7)k+18)I--9)10)}A.line4B.line6C.line7D.line8答案C3.哪些语句是将一个八进制值赋值给一个long型变量?A.B.C.longlonglongnumbernumbernumber==345L。。。0345=0345LD.longnumber=0x345L。答案C解读:八进制数以0开头,十六进制数以0x开头,long型数以(大小写均可,一般使用大写,因为小写的l和数字1不易区分)。4.publicclassPerson{staticintarr[]=newint[10]。publicstaticvoidmain(Stringa[]){System.out.println(arr[1])。1/8}}A.编译时将产生错误B.编译时正确,运行时将产生错误C.输出零D.输出空答案C5.paint()方法使用哪种类型的参数?A.GraphicsB.Graphics2DC.StringD.Color答案A6.A.程序开发者必须自己创建一个线程进行内存释放的工作。B.。关于垃圾收集的哪些叙述是对的?垃圾收集将检查并释放不再使用的内存C.垃圾收集允许程序开发者明确指定并立即释放该内存。D.垃圾收集能够在给定的时间释放被java对象使用的内存。答案B解读:Java语言将内存分配和释放的工组交给了自己,程序员不必做这些工作,它提供一个系统级的线程跟踪每个内存的分配,在JVM的空闲处理中,垃圾收集线程将检查和释放不再使用的内存(即可以被释放的内存)。垃圾收集的过程在java程序的生存期中是自动的,不需要分配和释放内存,也避免了内存泄漏。可以调用System.gc()方法建议(suggest)JVM执行垃圾收集以使得可被释放的内存能立即被使用,当此方法返回的时候,JVM已经做了最大的努力从被丢弃的对象上回收内存空间。程序员不能指定收集哪些内存,一般而言也不用关心这个问题,除非是程序的内存消耗很大,特别是有很多临时对象时可以建议进行垃圾收集以提高可用内存。需要指出的是调用System.gc()方法不能保证JVM立即进行垃圾收集,而只能是建议,因为垃圾收集线程的优先级很低(通常是最低的)。7.给出下面的代码:}if(x>0)if{System.out.println("first")。elseelsex(x>-3){System.out.println("second")。}{System.out.println("third")。}的取值在什么范围内时将打印字符串"second"。0A.B.C.D.x>x>-3-3-3x<=x<=0&x>答案D解读:x>0时打印"first",x>-3&&x<=0时打印"second",x<=-3时打印"third"。这个题目没有什么难的,只要理解if语句的语法就可以了。8.给定如下代码段:1)classPerson{2/82)publicvoidprintValue(inti,intj){/*…*/i){/*...*/}3)publicvoidprintValue(int}4)}5)publicclassTeacherextendsPerson{/*...*/i)main(StringTeacher(){6)publicpublicpublicvoidvoidstaticprintValue()}7)printValue(intvoid{/*...*/}8)args[]){9)Persont=new。。}10)11)12)t.printValue(10)}第十行的语句将调用哪些方法?2367A.onlinelinelinelineB.onononC.D.答案D解读:变量t是一个Person对象,但是它是用Teacher实例化的,这个问题涉及到java的编译时多态和运行时多态的问题,就编译时多态来说,t实际上是一个Person类,这涉及到类型的自动转换(将一个子类的实例赋值给一个父类的变量是不用进行强制类型转换,反之则需要进行强制类型转换,而且被赋值的变量实际上应该是一个子类的对象),如果对t调用了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将根据t实际指向的类型调用对应的方法,对于本例来说,t.print(10)将调用t实际指向的Teacher类的对应方法。在java中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时是一个父类实例,在运行时可能是一个子类实例。9.作为程序入口的main()方法的返回类型是什么?intA.B.C.D.voidbooleanstatic答案B解读:在java中,程序运行的入口就是方法,它必须是这样的形式:publicstaticvoidmain(Stringargs[])。但是严格来讲这个题目的答案还可以加上a和,因为并没有限定是程序入口的方法,而方法是可以重载的。一般意义上的当然就是指我们刚开始所说的方法了。10.A.B.C.D.int的取值范围是哪个?-27----2-1702-132-215-231----2-1152-1313/8答案D解读:int型是32位的。参看第一题的论述。二、多选题:11.A.B.C.D.下面哪些不是java的基本数据类型。shortBooleanunitfloat答案B,C解读:Java的原始数据类型一共就八个,分别是:byte,short,int,long,boolean,char,float,double。注意这些是大小写敏感的,而Boolean是booelan的封装类(wrapperclass)。12.A下面关于继承个的只哪些叙述是正确的?。。.在java中允只许单一继承B.在java中一类能实现一个接口C.在java中一个类不能同时继承一个类和实现一个接口。D.java的单一继承使代码更可靠。答案A,D解读:在java中一个类只能有一个直接父类,但是可以实现多个接口,在继承的同时可以实现接口,之所以取消多继承的原因是多继承使得代码产生很多问题,而使用单一继承则可以使代码更可靠。13.A.B.C.D.E.下列哪些不是Java关键字?TRUEsizeofconstsupervoid答案A,B解读:A:不是,Java中有true,但是这也不是关键字而是字面量(literal)。B:不是,Java中不需要这个操作符,所有的类型(原始类型)的大小都是固定的。C、D、E都是,需要说明的是const是java中未被使用的关键字。14.A.intif下列哪些代码段不会出现编译错误?i=0(i)。{System.out.println(“Hi”)。}4/8B.booleanb=true。。{booleanb2=trueif(b==b2)System.out.println(“Sotrue”)。}C.inti=1j=2。。intif(i==1||j==2)。System.out.println(“OK”)D.inti=1j=2。。intif(i==1&|j==2)System.out.println(“OK”)。答案B,C解读:选项A错,因为if语句后需要一个boolean类型的表达式。逻辑操作有、、|和&&、但是“&|”是非法的,所以选项D不正确。15.下列哪两个选项体现了组合(”hasa”)关系?}}}}}}}}}A.publicinterfaceEmployeeinterfacePersonextendsShape{publicB.classPerson{{publicpublicC.interfacepublicclassRectandleinterfaceextendsColorableShape{{{publicD.ShapeimplementsclassColorablepublicSpecies{speciesComponent{implementspublicE.classAnimal{privateSerfaceContainerComponent[]classprivate}Component{children。答案D,E解读:在Java中代码重用有两种可能的方式,即组合(“has关系)和继承(“is关系)。“has关系是通过定义类的属性的方式实现的;而“isa”关系是通过类继承实现的。本例中选项、B、C体现了“isa”关系;选项D、E体现了“hasa”关系。16.在//pointx处的哪些语句在语法上合法的?{classprivatepublic}Personinta。}intchange(intm){returnm。publicclassTeacherextendsPerson{5/8publicpublicPersonTeacherintintb。arg[]){。staticvoidmain(Stringp==newnewPerson()Teacher()t。i。//pointx}}A.ii=m。B.==bp.a。。C.iD.i=p.change(30)。E.i=t.b.答案D,E解读明:。A:m没有被申过,不能使用B:虽然b是类Teacher的public成员变量,但是在静态方法中不能使用类中的非静态成员。C:a是类Personprivate成员,在类外不能直接引用。:change(int方法是public方法,并且返回一个int型值,可以通过类的实例变量p引用并赋值给一个int。的型变量E:b是类Teacher的public成员变量,且是int型,可以通过类的实例变量t引用并赋值给一个int型变量。17.下面的哪些程序片断可能导致错误?。。。A.Strings="Gonewiththewind"StringStringt="good"tk=st+B.StringStrings=="Gonewithwiththethewind"wind"。。。Stringt=s[3]+"one"C.s"Gone=。。Stringstandards.toUpperCase()D.Stringts=s"home-directory"。。String="directory"答案B,D解读:A:String类型可以直接使用+进行连接运算。B:String是一种Object,而不是简单的字符数组,不能使用下标运算符取其值的某个元素,错误。C:toUpperCase()方法是String对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的6/8结果(String类型运)。。D:String类型不能进行减(-)算,错误18.A.B.C.D.E.下面哪些是合法的标识符?$personsTwoUsers*pointthis_endline答案A,B,E解读:Java的标识符可以以一个Unicode字符,下滑线(_$)开始,后续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字。19.执行代码String[]s=new后,哪个结论是正确的?A.s[10]为""B.s[9]为null。C.s[0]为未定义D.s.length为10答案B,D20.下面的表达式哪个是正确的?A.String你好。inti=3。。B.String你好。inti=3。if(i==s){。C.String你好。inti=3。s=i+s。D.String你好。inti=3。。E.Strings=i=(s!=null)&&(s.length()>0)?s.length():0。答案A,C,E三、判断题:1.在具有继承关系的两个类中,子类继承父类的所有方法。正确错误答案错误2.抽象类中可以有非抽象方法。正确错误答案正确3.2.接口()中可以有非抽象方法。正确错误答案错误4.在具有继承关系的两个类中,父类的引用可以指代子类对象

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论