OOP期中考試試卷及答案_第1頁(yè)
OOP期中考試試卷及答案_第2頁(yè)
OOP期中考試試卷及答案_第3頁(yè)
OOP期中考試試卷及答案_第4頁(yè)
OOP期中考試試卷及答案_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2006年5月9日一、單選題:1.下面哪些是short類型的取值范圍?A.-27--2-17B.0--2-1C.1615----2-115D.-2312-131答案C解讀:短整型的數(shù)據(jù)類型的長(zhǎng)度是16bits,有符號(hào)。另外需要說(shuō)明的是java中所有的整(Integral)數(shù)(包括byte,short,int,long)全是有符號(hào)的。2.下列代碼哪一行會(huì)出錯(cuò):{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.哪些語(yǔ)句是將一個(gè)八進(jìn)制值賦值給一個(gè)long型變量?A.B.C.longlonglongnumbernumbernumber==345L。。。0345=0345LD.longnumber=0x345L。答案C解讀:八進(jìn)制數(shù)以0開(kāi)頭,十六進(jìn)制數(shù)以0x開(kāi)頭,long型數(shù)以(大小寫均可,一般使用大寫,因?yàn)樾懙膌和數(shù)字1不易區(qū)分)。4.publicclassPerson{staticintarr[]=newint[10]。publicstaticvoidmain(Stringa[]){System.out.println(arr[1])。1/8}}A.編譯時(shí)將產(chǎn)生錯(cuò)誤B.編譯時(shí)正確,運(yùn)行時(shí)將產(chǎn)生錯(cuò)誤C.輸出零D.輸出空答案C5.paint()方法使用哪種類型的參數(shù)?A.GraphicsB.Graphics2DC.StringD.Color答案A6.A.程序開(kāi)發(fā)者必須自己創(chuàng)建一個(gè)線程進(jìn)行內(nèi)存釋放的工作。B.。關(guān)于垃圾收集的哪些敘述是對(duì)的?垃圾收集將檢查并釋放不再使用的內(nèi)存C.垃圾收集允許程序開(kāi)發(fā)者明確指定并立即釋放該內(nèi)存。D.垃圾收集能夠在給定的時(shí)間釋放被java對(duì)象使用的內(nèi)存。答案B解讀:Java語(yǔ)言將內(nèi)存分配和釋放的工組交給了自己,程序員不必做這些工作,它提供一個(gè)系統(tǒng)級(jí)的線程跟蹤每個(gè)內(nèi)存的分配,在JVM的空閑處理中,垃圾收集線程將檢查和釋放不再使用的內(nèi)存(即可以被釋放的內(nèi)存)。垃圾收集的過(guò)程在java程序的生存期中是自動(dòng)的,不需要分配和釋放內(nèi)存,也避免了內(nèi)存泄漏。可以調(diào)用System.gc()方法建議(suggest)JVM執(zhí)行垃圾收集以使得可被釋放的內(nèi)存能立即被使用,當(dāng)此方法返回的時(shí)候,JVM已經(jīng)做了最大的努力從被丟棄的對(duì)象上回收內(nèi)存空間。程序員不能指定收集哪些內(nèi)存,一般而言也不用關(guān)心這個(gè)問(wèn)題,除非是程序的內(nèi)存消耗很大,特別是有很多臨時(shí)對(duì)象時(shí)可以建議進(jìn)行垃圾收集以提高可用內(nèi)存。需要指出的是調(diào)用System.gc()方法不能保證JVM立即進(jìn)行垃圾收集,而只能是建議,因?yàn)槔占€程的優(yōu)先級(jí)很低(通常是最低的)。7.給出下面的代碼:}if(x>0)if{System.out.println("first")。elseelsex(x>-3){System.out.println("second")。}{System.out.println("third")。}的取值在什么范圍內(nèi)時(shí)將打印字符串"second"。0A.B.C.D.x>x>-3-3-3x<=x<=0&x>答案D解讀:x>0時(shí)打印"first",x>-3&&x<=0時(shí)打印"second",x<=-3時(shí)打印"third"。這個(gè)題目沒(méi)有什么難的,只要理解if語(yǔ)句的語(yǔ)法就可以了。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)}第十行的語(yǔ)句將調(diào)用哪些方法?2367A.onlinelinelinelineB.onononC.D.答案D解讀:變量t是一個(gè)Person對(duì)象,但是它是用Teacher實(shí)例化的,這個(gè)問(wèn)題涉及到j(luò)ava的編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài)的問(wèn)題,就編譯時(shí)多態(tài)來(lái)說(shuō),t實(shí)際上是一個(gè)Person類,這涉及到類型的自動(dòng)轉(zhuǎn)換(將一個(gè)子類的實(shí)例賦值給一個(gè)父類的變量是不用進(jìn)行強(qiáng)制類型轉(zhuǎn)換,反之則需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,而且被賦值的變量實(shí)際上應(yīng)該是一個(gè)子類的對(duì)象),如果對(duì)t調(diào)用了子類中新增的方法則造成編譯時(shí)錯(cuò)誤編譯將不能通過(guò),而在運(yùn)行時(shí),運(yùn)行時(shí)系統(tǒng)將根據(jù)t實(shí)際指向的類型調(diào)用對(duì)應(yīng)的方法,對(duì)于本例來(lái)說(shuō),t.print(10)將調(diào)用t實(shí)際指向的Teacher類的對(duì)應(yīng)方法。在java中,可以用一個(gè)子類的實(shí)例實(shí)例化父類的一個(gè)變量,而變量在編譯時(shí)是一個(gè)父類實(shí)例,在運(yùn)行時(shí)可能是一個(gè)子類實(shí)例。9.作為程序入口的main()方法的返回類型是什么?intA.B.C.D.voidbooleanstatic答案B解讀:在java中,程序運(yùn)行的入口就是方法,它必須是這樣的形式:publicstaticvoidmain(Stringargs[])。但是嚴(yán)格來(lái)講這個(gè)題目的答案還可以加上a和,因?yàn)椴](méi)有限定是程序入口的方法,而方法是可以重載的。一般意義上的當(dāng)然就是指我們剛開(kāi)始所說(shuō)的方法了。10.A.B.C.D.int的取值范圍是哪個(gè)?-27----2-1702-132-215-231----2-1152-1313/8答案D解讀:int型是32位的。參看第一題的論述。二、多選題:11.A.B.C.D.下面哪些不是java的基本數(shù)據(jù)類型。shortBooleanunitfloat答案B,C解讀:Java的原始數(shù)據(jù)類型一共就八個(gè),分別是:byte,short,int,long,boolean,char,float,double。注意這些是大小寫敏感的,而B(niǎo)oolean是booelan的封裝類(wrapperclass)。12.A下面關(guān)于繼承個(gè)的只哪些敘述是正確的?。。.在java中允只許單一繼承B.在java中一類能實(shí)現(xiàn)一個(gè)接口C.在java中一個(gè)類不能同時(shí)繼承一個(gè)類和實(shí)現(xiàn)一個(gè)接口。D.java的單一繼承使代碼更可靠。答案A,D解讀:在java中一個(gè)類只能有一個(gè)直接父類,但是可以實(shí)現(xiàn)多個(gè)接口,在繼承的同時(shí)可以實(shí)現(xiàn)接口,之所以取消多繼承的原因是多繼承使得代碼產(chǎn)生很多問(wèn)題,而使用單一繼承則可以使代碼更可靠。13.A.B.C.D.E.下列哪些不是Java關(guān)鍵字?TRUEsizeofconstsupervoid答案A,B解讀:A:不是,Java中有true,但是這也不是關(guān)鍵字而是字面量(literal)。B:不是,Java中不需要這個(gè)操作符,所有的類型(原始類型)的大小都是固定的。C、D、E都是,需要說(shuō)明的是const是java中未被使用的關(guān)鍵字。14.A.intif下列哪些代碼段不會(huì)出現(xiàn)編譯錯(cuò)誤?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解讀:選項(xiàng)A錯(cuò),因?yàn)閕f語(yǔ)句后需要一個(gè)boolean類型的表達(dá)式。邏輯操作有、、|和&&、但是“&|”是非法的,所以選項(xiàng)D不正確。15.下列哪兩個(gè)選項(xiàng)體現(xiàn)了組合(”hasa”)關(guān)系?}}}}}}}}}A.publicinterfaceEmployeeinterfacePersonextendsShape{publicB.classPerson{{publicpublicC.interfacepublicclassRectandleinterfaceextendsColorableShape{{{publicD.ShapeimplementsclassColorablepublicSpecies{speciesComponent{implementspublicE.classAnimal{privateSerfaceContainerComponent[]classprivate}Component{children。答案D,E解讀:在Java中代碼重用有兩種可能的方式,即組合(“has關(guān)系)和繼承(“is關(guān)系)?!癶as關(guān)系是通過(guò)定義類的屬性的方式實(shí)現(xiàn)的;而“isa”關(guān)系是通過(guò)類繼承實(shí)現(xiàn)的。本例中選項(xiàng)、B、C體現(xiàn)了“isa”關(guān)系;選項(xiàng)D、E體現(xiàn)了“hasa”關(guān)系。16.在//pointx處的哪些語(yǔ)句在語(yǔ)法上合法的?{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沒(méi)有被申過(guò),不能使用B:雖然b是類Teacher的public成員變量,但是在靜態(tài)方法中不能使用類中的非靜態(tài)成員。C:a是類Personprivate成員,在類外不能直接引用。:change(int方法是public方法,并且返回一個(gè)int型值,可以通過(guò)類的實(shí)例變量p引用并賦值給一個(gè)int。的型變量E:b是類Teacher的public成員變量,且是int型,可以通過(guò)類的實(shí)例變量t引用并賦值給一個(gè)int型變量。17.下面的哪些程序片斷可能導(dǎo)致錯(cuò)誤?。。。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類型可以直接使用+進(jìn)行連接運(yùn)算。B:String是一種Object,而不是簡(jiǎn)單的字符數(shù)組,不能使用下標(biāo)運(yùn)算符取其值的某個(gè)元素,錯(cuò)誤。C:toUpperCase()方法是String對(duì)象的一個(gè)方法,作用是將字符串的內(nèi)容全部轉(zhuǎn)換為大寫并返回轉(zhuǎn)換后的6/8結(jié)果(String類型運(yùn))。。D:String類型不能進(jìn)行減(-)算,錯(cuò)誤18.A.B.C.D.E.下面哪些是合法的標(biāo)識(shí)符?$personsTwoUsers*pointthis_endline答案A,B,E解讀:Java的標(biāo)識(shí)符可以以一個(gè)Unicode字符,下滑線(_$)開(kāi)始,后續(xù)字符可以是前面的符號(hào)和數(shù)字,沒(méi)有長(zhǎng)度限制,大小寫敏感,不能是保留字。19.執(zhí)行代碼String[]s=new后,哪個(gè)結(jié)論是正確的?A.s[10]為""B.s[9]為null。C.s[0]為未定義D.s.length為10答案B,D20.下面的表達(dá)式哪個(gè)是正確的?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.在具有繼承關(guān)系的兩個(gè)類中,子類繼承父類的所有方法。正確錯(cuò)誤答案錯(cuò)誤2.抽象類中可以有非抽象方法。正確錯(cuò)誤答案正確3.2.接口()中可以有非抽象方法。正確錯(cuò)誤答案錯(cuò)誤4.在具有繼承關(guān)系的兩個(gè)類中,父類的引用可以指代子類對(duì)象

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論