《JAVA語言程序設(shè)計》期末考試試題答案與解析_第1頁
《JAVA語言程序設(shè)計》期末考試試題答案與解析_第2頁
《JAVA語言程序設(shè)計》期末考試試題答案與解析_第3頁
《JAVA語言程序設(shè)計》期末考試試題答案與解析_第4頁
《JAVA語言程序設(shè)計》期末考試試題答案與解析_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.41/41《JAVA語言程序設(shè)計》期末考試試題及答案〔應(yīng)考必備題庫一、單選擇題1、編譯JavaApplication源程序文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,這些字節(jié)碼文件的擴展名為<>。A.javaB..classC.htmlD..exe2、設(shè)x=1,y=2,z=3,則表達(dá)式y(tǒng)+=z--/++x的值是<>。A.3B.3.5C.4D.53、不允許作為類及類成員的訪問控制符的是<>。A.publicB.privateC.staticD.protected4、為AB類的一個無形式參數(shù)無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調(diào)用它,該方法頭的形式為<>。A.staticvoidmethod<>B.publicvoidmethod<>C.finalvoidmethod<>D.abstractvoidmethod<>二、填空題1、開發(fā)與運行Java程序需要經(jīng)過的三個主要步驟為編輯源程序、編譯生成字節(jié)碼和解釋運行字節(jié)碼。2、在Java的基本數(shù)據(jù)類型中,char型采用Unicode編碼方案,每個Unicode碼占用2字節(jié)內(nèi)存空間,這樣,無論是中文字符還是英文字符,都是占用2字節(jié)內(nèi)存空間。3、設(shè)x=2,則表達(dá)式<x++>/3的值是0。4、若x=5,y=10,則x<y和x>=y的邏輯值分別為true和false。5、抽象<abstract>方法是一種僅有方法頭,沒有具體方法體和操作實現(xiàn)的方法,該方法必須在抽象類之中定義。最終<final>方法是不能被當(dāng)前類的子類重新定義的方法。6、創(chuàng)建一個名為MyPackage的包的語句是packageMyPackage;,該語句應(yīng)該放在程序的位置為:應(yīng)該在程序第一句。7、設(shè)有數(shù)組定義:intMyIntArray[]={10,20,30,40,50,60,70};則執(zhí)行以下幾個語句后的輸出結(jié)果是120。ints=0;for<inti=0;i<MyIntArray.length;i++>if<i%2==1>s+=MyIntArray[i];System.out.println<s>;8、在Java程序中,通過類的定義只能實現(xiàn)單重繼承,但通過接口的定義可以實現(xiàn)多重繼承關(guān)系。三、寫出下面程序的運行結(jié)果1、importjava.io.*;publicclassabc{publicstaticvoidmain<Stringargs[]>{ABs=newAB<"Hello!","IloveJAVA.">;System.out.println<s.toString<>>;}}classAB{Strings1;Strings2;publicAB<Stringstr1,Stringstr2>{s1=str1;s2=str2;}publicStringtoString<>{returns1+s2;}}運行結(jié)果:Hello!IloveJAVA.2、importjava.io.*;publicclassabc{publicstaticvoidmain<Stringargs[]>{inti,s=0;inta[]={10,20,30,40,50,60,70,80,90};for<i=0;i<a.length;i++>if<a[i]%3==0>s+=a[i];System.out.println<"s="+s>;}}運行結(jié)果:s=1803、importjava.io.*;publicclassabc{publicstaticvoidmain<Stringargs[]>{System.out.println<"a="+a+"\nb="+b>;}}classSubClassextendsSuperClass{intc;SubClass<intaa,intbb,intcc>{super<aa,bb>;c=cc;}}classSubSubClassextendsSubClass{inta;SubSubClass<intaa,intbb,intcc>{super<aa,bb,cc>;A=aa+bb+cc;}voidshow<>{System.out.println<"a="+a+"\nb="+b+"\nc="+c>;}}運行結(jié)果:a=60b=20c=30《JAVA語言程序設(shè)計》期末考試試題及答案2〔應(yīng)考必備題庫一.判斷題1.Java的源代碼中定義幾個類,編譯結(jié)果就生成幾個以.class為后綴的字節(jié)碼文件?!病?.Java程序里,創(chuàng)建新的類對象用關(guān)鍵字new,回收無用的類對象使用關(guān)鍵字free?!病?.Java有垃圾回收機制,內(nèi)存回收程序可在指定的時間釋放內(nèi)存對象。〔×4.構(gòu)造函數(shù)用于創(chuàng)建類的實例對象,構(gòu)造函數(shù)名應(yīng)與類名相同,返回類型為void?!病?.在異常處理中,若try中的代碼可能產(chǎn)生多種異常則可以對應(yīng)多個catch語句,若catch中的參數(shù)類型有父類子類關(guān)系,此時應(yīng)該將父類放在后面,子類放在前面?!病?.擁有abstract方法的類是抽象類,但抽象類中可以沒有abstract方法?!病?.Java的屏幕坐標(biāo)是以像素為單位,容器的左下角被確定為坐標(biāo)的起點。〔×8.靜態(tài)初始化器是在其所屬的類加載內(nèi)存時由系統(tǒng)自動調(diào)用執(zhí)行?!病?.在Java中對象可以賦值,只要使用賦值號〔等號即可,相當(dāng)于生成了一個各屬性與賦值對象相同的新對象?!病炼畣雾椷x擇題1.Javaapplication中的主類需包含main方法,以下哪項是main方法的正確形參?〔A、Stringargs B、Stringar[] C、Chararg D、StringBufferargs[]2.以下關(guān)于繼承的敘述正確的是〔。A、在Java中類只允許單一繼承B、在Java中一個類只能實現(xiàn)一個接口C、在Java中一個類不能同時繼承一個類和實現(xiàn)一個接口D、在Java中接口只允許單一繼承3.paint<>方法使用哪種類型的參數(shù)?〔A、GraphicsB、Graphics2DC、StringD、Color4.以下哪個不是Java的原始數(shù)據(jù)類型〔A、int B、Boolean C、float D、char5.以下哪項可能包含菜單條〔 。A、Panel B、Frame C、Applet D、Dialog6.若需要定義一個類域或類方法,應(yīng)使用哪種修飾符?〔A、staticB、package C、privateD、public7.在瀏覽器中執(zhí)行applet程序,以下選項中的哪個方法將被最先執(zhí)行〔。A、init<> B、start<> C、destroy<> D、stop<>8.給出下面代碼,關(guān)于該程序以下哪個說法是正確的?〔publicclassPerson{staticintarr[]=newint[5];publicstaticvoidmain<Stringa[]>{System.out.println<arr[0]>;}}A、編譯時將產(chǎn)生錯誤B、編譯時正確,運行時將產(chǎn)生錯誤C、輸出零D、輸出空9.下列哪些語句關(guān)于Java內(nèi)存回收的說明是正確的?〔A、程序員必須創(chuàng)建一個線程來釋放內(nèi)存B、內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存C、內(nèi)存回收程序允許程序員直接釋放內(nèi)存D、內(nèi)存回收程序可以在指定的時間釋放內(nèi)存對象10.以下哪個關(guān)鍵字可以用來對對象加互斥鎖?〔A、transientB、synchronizedC、serializeD、static11.以下代碼段執(zhí)行后的輸出結(jié)果為〔 intx=-3;inty=-10; System.out.println<y%x>;A、 -1 B、2 C、1 D、312.有以下程序片段,下列哪個選項不能插入到行1?!?.2.publicclassInteresting{3.//dosth4.}A、importjava.awt.*; B、packagemypackage; C、classOtherClass{} D、publicclassMyClass{}13.設(shè)有下面兩個賦值語句:a=Integer.parseInt<"12">;b=Integer.valueOf<"12">.intValue<>;下述說法正確的是〔。A、a是整數(shù)類型變量,b是整數(shù)類對象。B、a是整數(shù)類對象,b是整數(shù)類型變量。C、a和b都是整數(shù)類對象并且值相等。 D、a和b都是整數(shù)類型變量并且值相等。14.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父類,以下哪個類可能是FilterOutputStream構(gòu)造函數(shù)的參數(shù)類型?A、OutputStream B、File C、InputStream D、BufferedOutputStream15.在編寫JavaApplet程序時,需在程序的開頭寫上<>語句。A、importjava.awt.*;B、importjava.applet.Applet;C、importjava.io.*;D、importjava.awt.Graphics;16.類Parent、Child定義如下:1. publicclassParent2.{publicfloataFun<floata,floatb>throws3.IOException{}4.}5.publicclassChildextendsParent{6.7.} 將以下哪種方法插入行6是不合法的?!睞、floataFun<floata,floatb>{}B、publicintaFun<inta,intb>throwsException{}C、publicfloataFun<floatp,floatq>{}D、publicintaFun<inta,intb>throwsIOException{}17.在使用interface聲明一個接口時,只可以使用〔修飾符修飾該接口。A、private B、protected C、privateprotectedD、public18、有以下方法的定義,請選擇該方法的返回類型〔。ReturnTypemethod<bytex,doubley> { return<short>x/y*2; }A、byte B、short C、int D、double19、關(guān)于以下代碼段的說法正確的是〔1.Strings="abcde";2.StringBuffers1=newStringBuffer<"abcde">;3.if<s.equals<s1>>4.s1=null;5.if<s1.equals<s>>6.s=null;A、第1行編譯錯誤,String的構(gòu)造器必須明確調(diào)用B、第3行編譯錯誤,因為s與s1有不同的類型C、編譯成功,但執(zhí)行時在第5行有異常拋出D、編譯成功,過程中也沒有異常拋出20、編譯并運行以下程序,以下描述哪個選項是正確的〔1.classX{2. protectiedStringtoString<>i{3. returnsuper.toString<>;}4. }A、編譯通過運行無異常 B、編譯通過但運行時出錯C、行2出錯,不能成功編譯 D、不能成功編譯,行3出錯三.程序閱讀題1.以下程序的輸出結(jié)果為相等。classStringTest1{ publicstaticvoidmain<String[]args> { Strings1="hello"; Strings2=newString<"hello">; if<s1.equals<s2>>{ System.out.println<"相等">; }else{ System.out.println<"不相等">; } }}2.以下程序段的輸出結(jié)果為56789。publicclassTestArray{publicstaticvoidmain<Stringargs[]>{inti,j;inta[]={5,9,6,8,7};for<i=0;i<a.length-1;i++>{intk=i;for<j=i;j<a.length;j++>if<a[j]<a[k]>k=j;inttemp=a[i];a[i]=a[k];a[k]=temp;}for<i=0;i<a.length;i++>System.out.print<a[i]+"">;System.out.println<>;}}3.寫出以下程序的功能。importjava.io.*;publicclassTestFile{publicstaticvoidmain<Stringargs[]>throwsException{BufferedReaderbr=newBufferedReader<newInputStreamReader<System.in>>;BufferedWriterbw=newBufferedWriter<newFileWriter<"input.txt">>;Strings;while<true>{System.out.print<"請輸入一個字符串:">;System.out.flush<>;s=br.readLine<>;if<s.length<>==0>break;bw.write<s>;bw.newLine<>;}bw.close<>;}}功能:從鍵盤逐一輸入字符串,逐一輸出至input.txt文件中,直至輸入空行。4.閱讀以下程序,寫出輸出結(jié)果。classAnimal{Animal<>{System.out.print<"Animal">;}}publicclassDogextendsAnimal{Dog<>{System.out.print<"Dog">;}publicstaticvoidmain<String[]args>{Dogsnoppy=newDog<>;}}輸出結(jié)果:AnimalDog《JAVA語言程序設(shè)計》期末考試試題及答案3〔應(yīng)考必備題庫一、單項選擇題1、如下哪個是Java中的標(biāo)識符〔A、public B、super C、3number D、width2、如下哪個是Java中的標(biāo)識符<>A、fieldnameB、super C、3number D、#number3、已知如下定義:Strings="story";下面哪個語句不是合法的<>A、s+="books"; B、s=s+100;C、intlen=s.length; D、Stringt=s+"abc";4、如下哪個是Java中有效的關(guān)鍵字<>A、name B、hello C、false D、good5、下面的代碼段執(zhí)行之后count的值是什么<>intcount=1;for<inti=1;i<=5;i++>{ count+=i; } System.out.println<count>;A、5 B、1 C、15 D、166、定義一個類,必須使用的關(guān)鍵字是<>A、public B、class C、interface D、static7、定義一個接口必須使用的關(guān)鍵字是〔A、public B、class C、interface D、static8、如果容器組件p的布局是BorderLayout,則在p的下邊中添加一個按鈕b,應(yīng)該使用的語句是〔 A、p.add<b>; B、p.add<b,"North">;C、p.add<b,"South">; D、b.add<p,"North">;9、聲明并創(chuàng)建一個按鈕對象b,應(yīng)該使用的語句是〔A、Buttonb=newButton<>; B、buttonb=newbutton<>;C、Buttonb=newb<>; D、b.setLabel<"確定">;10、Frame對象默認(rèn)的布局管理器是〔A、FlowLayout B、BorderLayout C、CardLayout D、null11、下列哪一個import命令可以使我們在程序中創(chuàng)建輸入/輸出流對象〔A、importjava.sql.*; B、importjava.util.*;C、importjava.io.*; D、.*;12、下面哪一個import命令可以為我們提供編寫網(wǎng)絡(luò)應(yīng)用程序的類〔A、importjava.sql.*; B、importjava.util.*;C、importjava.io.*; D、.*;13、如果需要從文件中讀取數(shù)據(jù),則可以在程序中創(chuàng)建哪一個類的對象〔A、FileInputStream B、FileOutputStreamC、DataOutputStream D、FileWriter二、填空題1、如果將類MyClass聲明為public,它的文件名稱必須是〔MyClass.java才能正常編譯。2、Java程序中的單行注釋符是〔//,多行注釋符是〔/**/。3、Java中布爾類型的常量有兩種,它們是〔true和〔false。4、Java中用于定義小數(shù)的關(guān)鍵字有兩個:〔float和〔double,后者精度高于前者。5、Java中用于兩個數(shù)相等比較的運算符是:〔==,用于不相等比較的運算符是〔<>。6、在Java中定義一個字符串類型的變量str的語句是:〔Stringstr;,定義一個具有10個元素的整型數(shù)組a的語句是:〔int[]arr=newint[10];。7、導(dǎo)入mypackage包中的所類的命令是〔importmypackage.*;。8、當(dāng)聲明一個數(shù)組intarr[]=newint[5];時,這代表這個數(shù)組所保存的變量類型是〔int,數(shù)組名是〔arr,數(shù)組的大小為〔5,數(shù)組元素下標(biāo)的使用范圍是〔0到4。9、假設(shè)x=13,y=4,則表達(dá)式x%y!=0的值是〔true,其數(shù)據(jù)類型是〔boolean。10、異常處理是由〔try、〔catch和finally塊三個關(guān)鍵所組成的程序塊。11、以下程序段的輸出結(jié)果是〔三角形intx=5,y=6,z=4;if<x+y>z&&x+z>y&&z+y>x> System.out.println<"三角形">;else System.out.println<"不是三角形">;12、下面程序段的執(zhí)行結(jié)果是〔65432inta[]={2,3,4,5,6};for<inti=a.length-1;i>=0;i--> System.out.print<a[i]+"">;三、程序閱讀題1、以下程序的輸出結(jié)果為_Peteris17yearsold!___。publicclassPerson{ Stringname;intage;publicPerson<Stringname,intage>{=name;this.age=age; }publicstaticvoidmain<String[]args>{ Personc=newPerson<"Peter",17>; System.out.println<+"is"+c.age+"yearsold!">; }}2、以下程序的輸出結(jié)果為__課程號:101課程名:ASP學(xué)分:3___。publicclassCourse{privateStringcNumber;privateStringcName;privateintcUnit;publicCourse<Stringnumber,Stringname,intunit>{cNumber=number;cName=name;cUnit=unit; }publicvoidprintCourseInfo<>{ System.out.println<"課程號:"+cNumber+"課程名:"+cName+"學(xué)分:"+cUnit>; }}classCourseTest{publicstaticvoidmain<String[]args>{ Coursec; c=newCourse<"101","ASP",3>; c.printCourseInfo<>; }}3、以下程序的輸出結(jié)果為__湯姆貓體重:20.0斤___。publicclassTom{privatefloatweight;privatestaticStringname;publicvoidsetWeight<floatweight>{this.weight=weight; }privatevoidout<>{ System.out.println<name+"體重:"+weight+"斤">; }publicstaticvoidmain<String[]args>{ T="湯姆貓"; Tomcat=newTom<>; cat.setWeight<20>; cat.out<>; }}4、以下程序的輸出結(jié)果_姓名:Tom年齡:15家庭住址:金水區(qū)電話:66123456學(xué)校:九中_。publicclassFather{ Stringname,address,tel;intage;publicFather<Stringname,intage>{=name;this.age=age; }voidout<>{ System.out.print<"姓名:"+name>; System.out.print<"年齡:"+age>; }voidoutOther<>{ System.out.print<"家庭住址:"+address>; System.out.print<"電話:"+tel>; }}classSonextendsFather{ Stringschool;publicSon<Stringname,intage>{super<name,age>; }voidout<>{super.out<>;super.outOther<>; System.out.println<"學(xué)校:"+school>; }publicstaticvoidmain<Stringargs[]>{ Sonson=newSon<"Tom",15>; son.address="金水區(qū)"; son.school="九中"; son.tel="66123456"; son.out<>; }}5、下列程序的運行結(jié)果是__12345____。publicclassMyClass{inta[]={1,2,3,4,5};voidout<>{for<intj=0;j<a.length;j++> System.out.print<a[j]+"">; }publicstaticvoidmain<String[]args>{ MyClassmy=newMyClass<>; my.out<>; }}四、簡答題1、簡述Java中異常處理的機制?答:首先Java的異常是面向?qū)ο蟮摹R粋€Java的Exception是一個描述異常情況的對象.當(dāng)出現(xiàn)異常情況時,一個Exception對象就產(chǎn)生了,并放到異常的成員函數(shù)里。Java的異常處理是通過5個關(guān)鍵詞來實現(xiàn)的:try,catch,throw,throws和finally。1.異常處理:在Java語言的錯誤處理結(jié)構(gòu)由try,catch,finally三個塊組成。其中try塊存放將可能發(fā)生異常的Java語言,并管理相關(guān)的異常指針;catch塊緊跟在try塊后面,用來激發(fā)被捕獲的異常;finally塊包含清除程序沒有釋放的資源,句柄等。不管try塊中的代碼如何退出,都將執(zhí)行finally塊。2.拋出異常:Java語言可以不在方法中直接捕獲,而用throw語句將異常拋給上層的調(diào)用者。Throw語句就是來明確地拋出一個異常;首先你必需得到一個Throwable的實例句柄,通過參數(shù)傳到catch中,或者采用new操作符來創(chuàng)建一個。2、什么是繼承?答:通過必要的說明能夠?qū)崿F(xiàn)某個類無需重新定義就擁有另一個類的某些屬性和方法,并把這種關(guān)系稱為繼承,先定義的類稱為父類,后定義的類稱為子類,并且允許多層的繼承關(guān)系。3、請簡述重載和重寫的區(qū)別?答:方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫<Overriding>。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被"屏蔽"了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載<Overloading>。Overloaded的方法是可以改變返回值的類型。五、程序設(shè)計題1、按以下要求編寫程序<1>創(chuàng)建一個Rectangle類,添加width和height兩個成員變量<2>在Rectangle中添加兩種方法分別計算矩形的周長和面積<3>編程利用Rectangle輸出一個矩形的周長和面積解答:publicclassRectangle{floatwidth,height;publicRectangle<floatwidth,floatheight>{this.width=width;this.height=height; }publicfloatgetLength<>{return<this.width+this.height>*2; }publicfloatgetArea<>{returnthis.width*this.height; }publicstaticvoidmain<String[]args>{ Rectanglerect=newRectangle<10,20>; System.out.println<"周長是:"+rect.getLength<>>; System.out.println<"面積是:"+rect.getArea<>>; }}2、按以下要求編寫程序<1>編寫Animal接口,接口中聲明run<>方法<2>定義Bird類和Fish類實現(xiàn)Animal接口<3>編寫B(tài)ird類和Fish類的測試程序,并調(diào)用其中的run<>方法解答:publicinterfaceAnimal{voidrun<>;}classBirdimplementsAnimal{publicvoidrun<>{ System.out.println<"鳥兒在飛...">; }}classFishimplementsAnimal{publicvoidrun<>{ System.out.println<"魚兒在游...">; }}publicclassTestAnimal{publicstaticvoidmain<String[]args>{ Birdbird=newBird<>; bird.run<>; Fishfish=newFish<>; fish.run<>; }}3、編寫一個Frame框架應(yīng)用程序,要求如下:<1>在窗口設(shè)置兩個菜單"文件"、"編輯"<2>在"文件"菜單里添加三個菜單項"打開"、"保存"、"關(guān)閉"<3>在"編輯"菜單里添加兩個菜單項"復(fù)制"、"粘貼"<4>點擊關(guān)閉菜單項時,使程序關(guān)閉。解答:importjava.awt.Color;importjava.awt.Frame;importjava.awt.Menu;importjava.awt.MenuBar;importjava.awt.MenuItem;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;/**主窗體*/publicclassMyFrameextendsFrame{privatestaticfinallongserialVersionUID=6895463895656626294L;privateFramefrmMain;//窗體 MenuBarmb; //菜單欄 MenumnuFile;//"文件"菜單 MenumnuEdit;//"編輯"菜單 MenuItemmiOpen; //"打開"菜單項 MenuItemmiSave;//"保存"菜單項 MenuItemmiClose;//"關(guān)閉"菜單項 MenuItemmiCopy;//"復(fù)制"菜單項 MenuItemmiPaste;//"粘貼"菜單項publicMyFrame<>{frmMain=newFrame<"主窗體">;//創(chuàng)建菜單欄mb=newMenuBar<>;//創(chuàng)建菜單mnuFile=newMenu<"文件">;mnuEdit=newMenu<"編輯">;//創(chuàng)建菜單項miOpen=newMenuItem<"打開">;miSave=newMenuItem<"保存">;miClose=newMenuItem<"關(guān)閉">;miCopy=newMenuItem<"復(fù)制">;miPaste=newMenuItem<"粘貼">; }publicvoidshowFrame<>{frmMain.setSize<800,600>;frmMain.setLocation<100,100>;frmMain.setBackground<Color.white>;frmMain.setVisible<true>;frmMain.setLayout<null>;frmMain.addWindowListener<newWindowHandler<>>;//注冊窗口監(jiān)聽器//將菜單欄放入窗體中frmMain.setMenuBar<mb>;//將菜單放入菜單欄中mb.add<mnuFile>;mb.add<mnuEdit>;//將菜單項放入菜單中mnuFile.add<miOpen>;mnuFile.add<miSave>;mnuFile.add<miClose>;mnuEdit.add<miCopy>;mnuEdit.add<miPaste>;//注冊動作事件監(jiān)聽器miClose.setActionCommand<"miClose_Clicked">;miClose.addActionListener<newMenuHandler<>>; }//定義一個內(nèi)部類,在這個類中編寫窗口關(guān)閉事件處理程序。privateclassWindowHandlerextendsWindowAdapter{publicvoidwindowClosing<WindowEvente>{ System.exit<0>;//退出應(yīng)用程序,狀態(tài)碼0表示正常終止,非0表示異常終止。 } }//定義一個內(nèi)部類,在這個類中編寫動作事件處理程序。privateclassMenuHandlerimplementsActionListener{publicvoidactionPerformed<ActionEvente>{if<e.getActionCommand<>=="miClose_Clicked">{ System.exit<0>;//退出應(yīng)用程序 } } }}publicclassTestMyFrame{publicstaticvoidmain<String[]args>{//啟動主窗體 MyFrameguiWindow=newMyFrame<>; guiWindow.showFrame<>; }}《JAVA語言程序設(shè)計》期末考試試題及答案4〔應(yīng)考必備題庫單選題1、下列程序段執(zhí)行后的結(jié)果是<>。Strings=newString<"abcdefg">;for<inti=0;i<s.length<>;i+=2>{System.out.print<s.charAt<i>>;}A>acegB>ACEGC>abcdefgD>abcd2、有整型數(shù)組:int[]x={12,35,8,7,2};,則調(diào)用方法Arrays.sort<x>后,數(shù)組x中的元素值依次是<>.A>2781235 B>1235872C>3512872 D>87123523、下面的程序段創(chuàng)建了BufferedReader類的對象in,以便讀取本機c盤my文件夾下的文件1.txt。File構(gòu)造函數(shù)中正確的路徑和文件名的表示是<>。Filef=newFile<填代碼處>;file=newFileReader<f>;in=newBufferedReader<file>;A>"./1.txt"B>"../my/1.txt"C>"c:\\my\\1.txt"D>"c:\my\1.txt"4、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是<>。Strings1=newString<"abc">;Strings2=newString<"abc">;booleanb1=s1.equals<s2>;booleanb2=<s1==s2>;System.out.print<b1+""+b2>;A>truefalseB>falsetrueC>truetrueD>falsefalse5、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是<>。Hashtablehashtable=newHashtable<>;hashtable.put<"x","12345">;hashtable.put<"y","67890">;hashtable.put<"a","abcde">;System.out.println<hashtable.get<"a">>;A>aB>abcdeC>12345D>678906、下面語句的功能是<>。 RandomAccessFileraf2=newRandomAccessFile<"1.txt","rw">;A>打開當(dāng)前目錄下的文件1.txt,既可以向文件寫數(shù)據(jù),也可以從文件讀數(shù)據(jù)。B>打開當(dāng)前目錄下的文件1.txt,但只能向文件寫入數(shù)據(jù),不能從文件讀取數(shù)據(jù)。C>打開當(dāng)前目錄下的文件1.txt,但不能向文件寫入數(shù)據(jù),只能從文件讀取數(shù)據(jù)。D>以上說法都不對。7、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是<>。 Strings="12345#aaa#bbb#67890"; intn=s.indexOf<"#">; intk=s.indexOf<"#",n+1>;intm=s.indexOf<"#",k+1>; Strings2=s.substring<m+1>; System.out.println<s2>; A>123456B>67890C>aaaD>bbb8、下面程序段執(zhí)行后b的值是<>。 Integerinteg=newInteger<9>;booleanb=integinstanceofObject;A>9B>trueC>1D>false9、應(yīng)用程序Test.java的源程序如下,在命令行鍵入: javaTestaaabbc回車后輸出的結(jié)果是<>。publicclassTest{publicstaticvoidmain<Stringargs[]>{intk1=args.length;intk2=args[1].length<>;System.out.print<k1+""+k2>;}}A>32B>12C>13D>3310、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是<>。 intb[][]={{1},{2,2},{2,2,2}};intsum=0;for<inti=0;i<b.length;i++>{for<intj=0;j<b[i].length;j++>{sum*=b[i][j];}}System.out.println<"sum="+sum>;A>32B>11C>2D>311、應(yīng)用程序的main方法中有以下語句,則執(zhí)行后輸出的結(jié)果是<>。int[]x={125,21,5,168,98};intmax=x[0];for<inti=1;i<x.length;i++>{ if<x[i]>max>max=x[i];}System.out.println<max>;A>125B>5C>98D>16812、程序Test.java編譯運行后輸出的結(jié)果是<>。publicclassTest{Strings1="java";publicstaticvoidmain<Stringargs[]>{intz=2;Testt=newTest<>;System.out.println<t.s1+z>;}}A>java2B>2C>沒有輸出結(jié)果D>java13、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是<>。Strings1="0.5",s2="12";doublex=Double.parseDouble<s1>;inty=Integer.parseInt<s2>;System.out.println<x+y>;A>12.5B>120.5C>12D>"12.5"14、下面的程序創(chuàng)建了一個文件輸出流對象,用來向文件test.txt中輸出數(shù)據(jù),假設(shè)程序當(dāng)前目錄下不存在文件test.txt,編譯下面的程序Test.java后,將該程序運行3次,則文件test.txt的內(nèi)容是<>。importjava.io.*;publicclassTest{ publicstaticvoidmain<Stringargs[]>{ try{ Strings="ABCDE"; byteb[]=s.getBytes<>; FileOutputStreamfile=newFileOutputStream<"test.txt",true>; file.write<b>; file.close<>; } catch<IOExceptione>{ System.out.println<e.toString<>>; } }}A>ABCABCB>ABCDEC>TestD>ABCDEABCDEABCDE15、下面那些方法不是接口Collection中已聲明的方法<>?A>添加元素的add<Objectobj>方法B>刪除元素的remove<Objectobj>方法C>得到元素個數(shù)的length<>方法D>返回迭代器的iterator<>方法,迭代器用于元素遍歷二、多選題1、下面main<>方法的定義哪些是正確的<>?A>publicstaticvoidmain<Stringargs[]>{}B>publicstaticvoidmain<String[]>{}C>publicstaticvoidmain<String[]args>{}D>publicstaticvoidmain<String[]x>{}2、線程對象的生命周期中,通常經(jīng)歷下面哪些狀態(tài)〔。A>新建B>運行C>就緒D>死亡3、下面說法正確的是<>。A>final可修飾類、屬性<變量>、方法。 B>abstract可修飾類、方法。C>抽象方法只有方法頭,沒有方法體。 D>關(guān)鍵字final和abstract不能同時使用。4、下面關(guān)于java中輸入/輸出流的說法正確的是<>。A>FileInputStream與FileOutputStream類用讀、寫字節(jié)流。B>Reader與Writer類用來讀、寫字符流。C>RandomAccessFile既可以用來讀文件,也可以用來寫文件。D>File類用來處理與文件相關(guān)的操作。5、下面說法正確的是<>。A>如果某公共接口被聲明在一個源文件中,則接口必須與源文件具有相同名字。B>如果源文件包含import語句,則該語句必須是除空行和注釋行外的第一個語句行。C>如果某源文件包含package語句,則該語句必須是第一個非空、非注釋行。D>接口中的方法必定是抽象方法,但可以不用關(guān)鍵字abstract修飾。6、下面關(guān)于Java中異常處理try塊的說法正確的是<>?A>try塊后通常應(yīng)有一個catch塊,用來處理try塊中拋出的異常。B>catch塊后必須有finally塊。C>可能拋出異常的方法調(diào)用應(yīng)放在try塊中。D>對拋出的異常的處理必須放在try塊中7、下面關(guān)于進(jìn)程、線程的說法正確的是<>。A>進(jìn)程是程序的一次動態(tài)執(zhí)行過程。一個進(jìn)程在其執(zhí)行過程中,可以產(chǎn)生多個線程——多線程,形成多條執(zhí)行線索。B>線程是比進(jìn)程更小的執(zhí)行單位,是在一個進(jìn)程中獨立的控制流,即程序內(nèi)部的控制流。線程本身不能自動運行,棲身于某個進(jìn)程之中,由進(jìn)程啟動執(zhí)行。C>Java多線程的運行與平臺相關(guān)。D>對于單處理器系統(tǒng),多個線程分時間片獲取CPU或其他系統(tǒng)資源來運行。對于多處理器系統(tǒng),線程可以分配到多個處理器中,從而真正的并發(fā)執(zhí)行多任務(wù)。8、關(guān)于BufferedReader類的readLine<>方法,以下說法正確的是〔。A>方法readLine<>每次讀取一行數(shù)據(jù)。B>方法readLine<>每次讀取一個字節(jié)。C>該方法可能拋出IOException異常,調(diào)用該方法時通常應(yīng)將它放到try塊中,并通過catch塊處理異常。D>如果讀到流的末尾,該方法返回的結(jié)果為null。三、程序閱讀題1、閱讀下面的程序,回答問題<問3分,問3分,共6分>。importjava.awt.*;importjavax.swing.*;publicclassTextendsJFrame{publicT<>{super<"GridLayout">;Containercon=this.getContentPane<>;con.setLayout<newGridLayout<2,3>>;con.add<newJButton<"a">>;con.add<newJButton<"b">>;con.add<newJButton<"c">>;con.add<newJButton<"d">>;con.add<newJButton<"e">>;con.add<newJButton<"f">>;setSize<200,80>;setVisible<true>;}publicstaticvoidmain<Stringargs[]>{newT<>;}}畫圖表示程序運行后的圖形界面。如果程序通過實現(xiàn)某個接口處理按鈕的動作事件,則該接口名為何?接口中的方法頭聲明如何?答案:接口名:ActionListener接口中的方法:publicvoidactionPerformed<ActionEvente>2、閱讀下面的程序,回答問題<問3分,問3分,共6分>。。importjava.util.*;publicclassT{publicstaticvoidmain<Stringargs[]>{Setset=newTreeSet<>;set.add<newInteger<10>>;set.add<newInteger<5>>;set.add<newInteger<15>>;set.add<newInteger<5>>;set.add<newInteger<10>>;System.out.println<"size="+set.size<>>;Iteratorit=set.iterator<>;while<it.hasNext<>>{System.out.print<it.next<>+"">;}}}程序運行后輸出的結(jié)果如何?說明java中的集合<Set接口>和映射<Map接口>的主要區(qū)別。答案:size=351015Set接口是不包含重復(fù)元素的集合;Map接口將鍵映射到值,鍵可以重復(fù),但每個鍵最多只能映射一個值。3、閱讀下面的程序,并回答問題<問3分,問3分,共6分>。importjava.io.*;publicclassTest{publicstaticvoidmain<Stringargs[]>throwsIOException{BufferedReaderbuf=newBufferedReader<newInputStreamReader<System.in>>;while<true>{Stringstr=buf.readLine<>;if<str.equals<"quit">>break;intx=Integer.parseInt<str>;System.out.println<x*x>;}}}編譯運行上面的程序:從鍵盤輸入5,回車后輸出的結(jié)果如何?從鍵盤輸入quit,回車后程序執(zhí)行情況如何?答案:25終止應(yīng)用程序的運行?!禞AVA程序設(shè)計》期末考試試題〔五單選題1、當(dāng)某一線程正處于休眠狀態(tài),而另一個線程用Thread類中的interrupt<>方法中斷它時,拋出的異常類型是〔。A>IOExceptionB>RuntimeExceptionC>InterruptedExceptionD>ClassNotFoundException2、下面的程序段的功能是<>。Filefile1=newFile<"d:\\xxx\\yyy\\zzz">;file1.mkdirs<>;A>在當(dāng)前目錄下生成子目錄:\xxx\yyy\zzzB>生成目錄:e:\xxx\yyy\zzzC>在當(dāng)前目錄下生成文件xxx.yyy.zzzD>以上說法都不對3、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是<>。 Strings="xxxxxxxxxxxxxxx#123#456#zzzzz"; intn=s.indexOf<"#">; intk=s.indexOf<"#",n+1>; Strings2=s.substring<n+1,k>; System.out.println<s2>; A>123456B>123C>xxxxxxxxxxxxxxxD>zzzzz4、關(guān)于下面的程序Test.java說法正確的是<>。publicclassTest{Stringx="1";inty;publicstaticvoidmain<Stringargs[]>{intz=2;System.out.println<x+y+z>;}}A>3B>102C>12D>程序有編譯錯誤5、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是<>。 intb[][]={{1,1,1},{2,2},{3}};intsum=0;for<inti=0;i<b.length;i++>{for<intj=0;j<b[i].length;j++>{sum+=b[i][j];}}System.out.println<"sum="+sum>;A>10B>6C>9D>136、應(yīng)用程序的main方法中有以下語句,則執(zhí)行后輸出的結(jié)果是<>。int[]x={125,21,5,168,98};intmin=x[0];for<inti=1;i<x.length;i++>{ if<x[i]<min> min=x[i];}System.out.println<min>;A>125B>5C>98D>1687、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是<>。Hashtablehashtable=newHashtable<>;hashtable.put<"100","aaa">;hashtable.put<"200","bbb">;hashtable.put<"300","ccc">;System.out.println<hashtable.get<"300">.toString<> +hashtable.get<"200">.toString<>+hashtable.get<"100">.toString<>>;A>aaaB>bbbC>cccD>cccbbbaaa8、以下關(guān)于java異常說法不正確的是〔。A>Throwable類是Java語言中Error類和Exception類的父類。B>當(dāng)異常對象是Exception類〔或其子類的實例時,能通過Java虛擬機或者throw語句拋出該異常對象,并能通過try…catch…finally處理。C>如果只用一個catch塊捕捉多個異常對象,則catch子句中的參數(shù)類型應(yīng)是所有異常對象的父類。D>以上說法都不對。9、下面的程序創(chuàng)建了一個文件輸出流對象,用來向文件test.txt中輸出數(shù)據(jù),假設(shè)程序當(dāng)前目錄下不存在文件test.txt,編譯下面的程序Test.java后,將該程序運行3次,則文件test.txt的內(nèi)容是<>。importjava.io.*;publicclassTest{ publicstaticvoidmain<Stringargs[]>{ try{ Strings="ABCDE"; byteb[]=s.getBytes<>; FileOutputStreamfile=newFileOutputStream<"test.txt",true>; file.write<b>; file.close<>; } catch<IOExceptione>{ System.out.println<e.toString<>>; } }}A>ABCABCB>ABCDEC>TestD>ABCDEABCDEABCDE10、下面說法不正確的是<>?A>列表<List>、集合<Set>和映射<Map>都是java.util包中的接口。B>List接口是可以包含重復(fù)元素的有序集合。C>Set接口是不包含重復(fù)元素的集合。D>Map接口將鍵映射到值,鍵可以重復(fù),但每個鍵最多只能映射一個值。二、多選題1、下面哪些關(guān)鍵字能用來控制對類成員的訪問<>?A>publicB>protectedC>privateD>default2、下面關(guān)于Java中異常處理try塊的說法正確的是<>?A>try塊后通常應(yīng)有一個catch塊,用來處理try塊中拋出的異常。B>catch塊后必須有finally塊。C>可能拋出異常的方法調(diào)用應(yīng)放在try塊中。D>對拋出的異常的處理必須放在try塊中3、線程對象的生命周期中,通常經(jīng)歷下面哪些狀態(tài)〔。A>新建B>運行C>就緒D>死亡4、定義如下的二維數(shù)組b,下面的說法正確的是<>。intb[][]={{1,2,3},{4,5},{6,7,8}}};A>b.length的值是3。 B>b[1].length的值是3。C>b[1][1]的值是5。 D>二維數(shù)組b的第一行有3個元素5、類B是一個抽象類,類C是類B的非抽象子類,下列創(chuàng)建對象x1的語句中正確的是<>。A>Bx1=newB<>;B>Bx1=newC<>;C>Cx1=newC<>;D>Cx1=newB<>;6、下面關(guān)于進(jìn)程、線程的說法正確的是<>。A>進(jìn)程是程序的一次動態(tài)執(zhí)行過程。一個進(jìn)程在其執(zhí)行過程中,可以產(chǎn)生多個線程——多線程,形成多條執(zhí)行線索。B>線程是比進(jìn)程更小的執(zhí)行單位,是在一個進(jìn)程中獨立的控制流,即程序內(nèi)部的控制流。線程本身不能自動運行,棲身于某個進(jìn)程之中,由進(jìn)程啟動執(zhí)行。C>Java多線程的運行與平臺相關(guān)。D>對于單處理器系統(tǒng),多個線程分時間片獲取CPU或其他系統(tǒng)資源來運行。對于多處理器系統(tǒng),線程可以分配到多個處理器中,從而真正的并發(fā)執(zhí)行多任務(wù)。7、下面關(guān)于外部類和內(nèi)部類成員的相互訪問的規(guī)則中,正確的選項是<>。A>內(nèi)部類可以直接訪問外部類的成員B>外部類可以直接訪問內(nèi)部類的成員C>外部類不能訪問內(nèi)部類的成員D>外部類可通過創(chuàng)建內(nèi)部類的實例來訪問內(nèi)部類的成員三、程序閱讀題1、閱讀下面的程序代碼,并回答問題<問3分,問3分,共6分>。Strings1=newString<"abcde">;Strings2=newString<"abcde">;booleanb1=s1.equals<s2>;booleanb2=s1==s2;System.out.print<b1+""+b2>;程序段執(zhí)行后,在命令行的輸出結(jié)果如何?解釋輸出<1>的結(jié)果的原因?答案:truefalseequals方法比較兩個字符串的內(nèi)容是否相等;運算符"=="判斷兩個對象是否指向同一個引用,即是否為同一個對象。 2、閱讀下面的程序,并回答問題<問3分,問3分,共6分>。importjava.io.*;publicclassTest{publicstaticvoidmain<Stringargs[]>throwsIOException{BufferedReaderbuf=newBufferedReader<newInputStreamReader<System.in>>;while<true>{Stringstr=buf.readLine<>;if<str.equals<"quit">>break;intx=Integer.parseInt<str>;System.out.println<x*x>;}}}編譯運行上面的程序:從鍵盤輸入10,回車后輸出的結(jié)果如何?從鍵盤輸入exit,回車后程序能正確執(zhí)行嗎?為什么?答案:100不能;因為方法Integer.parseInt<str>不能將字符串"exit"轉(zhuǎn)化為整數(shù),拋出異常。3、寫出下面的程序編譯、運行后的結(jié)果<6分>。publicclassTest{publicstaticvoidmain<Stringargs[]>{newStudent<"Tom",'m',90,88>;newStudent<"Jack",'m',66,89>;newStudent<"Mary",'f',76,86>;System.out.println<"name\tsex\tchinese\tenglish">;Student.print<>;}}classStudent{protectedStringname;

溫馨提示

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

評論

0/150

提交評論