JAVA期末試題及答案_第1頁
JAVA期末試題及答案_第2頁
JAVA期末試題及答案_第3頁
JAVA期末試題及答案_第4頁
JAVA期末試題及答案_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《Java程序設(shè)計》課程試卷1.使用Java語言編寫的源程序保存時的文件擴展名是()。(A).class(B).java(C).cpp(D).txt2.設(shè)inta=-2,則表達式a>>>3的值為()。(A)0(B)3(C)8(D)-13.設(shè)有數(shù)組的定義int[]a=newint[3],則下面對數(shù)組元素的引用錯誤的是()。(A)a[0];(B)a[a.length-1];(C)a[3];(D)inti=1;a[i];4.在類的定義中可以有兩個同名函數(shù),這種現(xiàn)象稱為函數(shù)()。(A)封裝(B)繼承(C)覆蓋(D)重載5.在類的定義中構(gòu)造函數(shù)的作用是()。

(A)保護成員變量(B)讀取類的成員變量(C)描述類的特征(D)初始化成員變量6.下面關(guān)鍵字中,哪一個不是用于異常處理語句()。(A)try(B)break(C)catch(D)finally7.類與對象的關(guān)系是()。

(A)類是對象的抽象(B)對象是類的抽象(C)對象是類的子類(D)類是對象的具體實例8.下面哪一個是Java中不合法的標(biāo)識符()。

(A)$persons(B)twoNum(C)_myVar(D)*point9.為AB類的一個無形式參數(shù)無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調(diào)用它,該方法頭的形式為()。(A)staticvoidmethod()(B)publicvoidmethod()(C)finalvoidmethod()(D)abstractvoidmethod()10.欲構(gòu)造ArrayList類的一個實例,此類繼承了List接口,下列哪個方法是正確的()。(A)ArrayListmyList=newObject()(B)ListmyList=newArrayList()(C)ArrayListmyList=newList()(D)ListmyList=newList()11.Java源文件和編譯后的文件擴展名分別為(

(A).class和

.java

(B).java和.class

(C).class和

.class

(D).java和

.java12.在JavaApplet程序用戶自定義的Applet子類中,一般需要重載父類的()方法來完成一些畫圖操作。(A)start()(B)stop()(C)init()(D)paint()13.對于一個Java源文件,import,class定義以及package正確的順序是:

(A)package,import,class

(B)class,import,package(C)import,package,class

(D)package,class,import14.下面哪個是非法的:(A)intI=32;

(B)floatf=45.0;

(C)doubled=45.0;

(D)charc=‘u’;//符號錯15.Java語言使用的字符碼集是

(A)ASCII(B)BCD(C)DCB(D)Unicode16.如果一個類的成員變量只能在所在類中使用,則該成員變量必須使用的修飾是(A)public(B)protected(C)private(D)static17.下面關(guān)于main方法說明正確的是(A)publicmain(Stringargs[])(B)publicstaticvoidmain(Stringargs[])(C)privatestaticvoidmain(Stringargs[])(D)voidmain()18.哪個關(guān)鍵字可以對對象加互斥鎖?()(A)transient(B)synchronized(C)serialize(D)static19.關(guān)于抽象方法的說法正確的是()(A)可以有方法體(B)可以出現(xiàn)在非抽象類中(C)是沒有方法體的方法(D)抽象類中的方法都是抽象方法20.java.io包的File類是

(A)字符流類(B)字節(jié)流類(C)對象流類(D)非流類21.Javaapplication中的主類需包含main方法,以下哪項是main方法的正確形參?()A、 Stringargs B、Stringargs[] C、Chararg D、StringBufferargs[]22.以下代碼段執(zhí)行后的輸出結(jié)果為() intx=-3;inty=-10; System.out.println(y%x);A、 -1 B、2 C、1 D、323.以下關(guān)于繼承的敘述正確的是()。A、在Java中類只允許單一繼承B、在Java中一個類只能實現(xiàn)一個接口C、在Java中一個類不能同時繼承一個類和實現(xiàn)一個接口D、在Java中接口只允許單一繼承24.若有定義:byte[]x={11,22,33,-66};其中0≤k≤3,則對x數(shù)組元素錯誤的引用是()A)x[5-3]B)x[k]C)x[k+5] D)x[0]25.paint()方法使用哪種類型的參數(shù)?()A、Graphics B、Graphics2D C、String D、Color26.以下哪個不是Java的原始數(shù)據(jù)類型()A、int B、Boolean C、float D、char27.在Java中,一個類可同時定義許多同名的方法,這些方法的形式參數(shù)的個數(shù)、類型或順序各不相同,傳回的值也可以不相同。這種面向?qū)ο蟪绦蛱匦苑Q為()A)隱藏B)重寫C)重載D)Java不支持此特性28.以下有關(guān)構(gòu)造方法的說法,正確的是:()A.一個類的構(gòu)造方法可以有多個B.構(gòu)造方法在類定義時被調(diào)用C.構(gòu)造方法只能由對象中的其它方法調(diào)用。D.構(gòu)造方法可以和類同名,也可以和類名不同29.在瀏覽器中執(zhí)行applet程序,以下選項中的哪個方法將被最先執(zhí)行()。A、init() B、start() C、destroy() D、stop()30.給出下面代碼,關(guān)于該程序以下哪個說法是正確的?()publicclassPerson{staticintarr[]=newint[5];publicstaticvoidmain(Stringa[]){System.out.println(arr[0]);}}A、編譯時將產(chǎn)生錯誤 B、編譯時正確,運行時將產(chǎn)生錯誤C、輸出零 D、輸出空31、有以下方法的定義,請選擇該方法的返回類型()。 ReturnTypemethod(bytex,doubley) { return(short)x/y*2; }A、byte B、short C、int D、double(1)復(fù)數(shù)類Complex的屬性有:RealPart:

int型,代表復(fù)數(shù)的實數(shù)部分ImaginPart:int型,代表復(fù)數(shù)的虛數(shù)部分(2)復(fù)數(shù)類Complex的方法有:Complex():構(gòu)造函數(shù),將復(fù)數(shù)的實部和虛部都置0Complex(intr,inti):構(gòu)造函數(shù),形參r為實部的初值,i為虛部的初值。ComplexcomplexAdd(Complexa):將當(dāng)前復(fù)數(shù)對象與形參復(fù)數(shù)對象相加,所得的結(jié)果仍是一個復(fù)數(shù)值,返回給此方法的調(diào)用者。StringToString():把當(dāng)前復(fù)數(shù)對象的實部、虛部組合成a+bi的字符串形式,其中a和b分別為實部和虛部的數(shù)據(jù)。4.求10個數(shù)中的最大值并輸出。5.建立一個學(xué)生類,其中成員變量為學(xué)號,姓名,及三門課成績。另外建立一個包含主方法的類,定義2個學(xué)生類的對象,求出這2個學(xué)生三門課總分的最高分,并將最高分這個學(xué)生的信息輸出。6.編寫一個Application,接受用戶輸入的帳號和密碼,給三次輸入機會.7.定義一個圓類circle,它有一個變量radius(半徑)、若干個構(gòu)造函數(shù)和一個求圓的面積的方法。在主類test的main()方法中隨機生成一個100以內(nèi)的整數(shù),通過構(gòu)造函數(shù)的參數(shù)傳遞給radius,調(diào)用圓類circle中的方法計算并輸出圓的面積。8.編寫Applet程序模擬屏幕保護程序,在屏幕上隨機畫圓。圓的位置和半徑是隨機的。50毫秒后再隨機畫下一個圓,一旦畫滿了50個圓,就清除屏幕。然后重新開始畫圓。9.請編寫一個實現(xiàn)如下功能的Application:比較從鍵盤輸入的兩個整數(shù)是否相等,并根據(jù)比較結(jié)果顯示“相等”或“不相等”。10.請編寫一個Applet,其中包含兩個標(biāo)簽(一個用于給出提示信息,另一個用來輸出結(jié)果)和一個文本框。要求從文本框中獲取用戶給出的一個整數(shù),并將該數(shù)的絕對值在標(biāo)簽上輸出。11.編寫一個Application,利用數(shù)組求出”HELLO”,”JAVA””PROGRAM”三個字符串的平均長度。12.SQLServer中有一個名為friends的表,如下圖,利用JDBC編程實現(xiàn)顯示表中記錄信息。一:application程序

publicclassa

{

publicstaticvoidmain(Stringargs[])

{

System.out.println("HelloWorld!");

}

}

2、applet程序

publicclassbextendsjava.applet.Applet

{

publicpaint(java.awt.Graphicsg)

{

g.outstring("HelloWorld!",10,10);

}

}二:publicclassComplex{privatefloatshibu;privatefloatxubu;Complex(){this(0,0);}Complex(floatshibu,floatxubu){this.shibu=shibu;this.xubu=xubu;}publicvoidAdd(Complexp){Complexresult=newComplex();result.shibu=this.shibu+p.shibu;result.xubu=this.xubu+p.xubu;System.out.print("加法果為:"+result.shibu+"+"+result.xubu+"i");}publicstaticvoidmain(String[]args){Complexfushu1=newComplex(1,2);Complexfushu2=newComplex(3,4);fushu1.Add(fushu2);}}三:importjava.lang.*;publicclassCOMplex{

intRealPart;

intImagePart;

COMplex(){

RealPart=0;

ImagePart=0;

}

COMplex(intreal,intimage){

RealPart=real;

ImagePart=image;

}

COMplexcomplexAdd(COMplexa){

COMplexrepart=newCOMplex();

repart.RealPart=this.RealPart+a.RealPart;

repart.ImagePart=this.ImagePart+a.ImagePart;

returnrepart;

}

voidToString(){

System.out.println(this.RealPart+"+"+this.ImagePart+"i");

}

publicstaticvoidmain(Stringargs[]){

COMplexC1=newCOMplex(2,3);

COMplexC2=newCOMplex(4,6);

COMplexC3=newCOMplex();

C1.complexAdd(C2).ToString();

C2.complexAdd(C3).ToString();

//C3.ToString();

}}四:importjava.util.Scanner;

publicclassTest{

publicstaticvoidmain(Stringargs[]){

intnum[]=newint[10];

intmax;

Scannerscan=newScanner(System.in);

System.out.print("請輸入10個數(shù)字:");

for(inti=0;i<10;i++){

num[i]=scan.nextInt();

}

max=num[0];

for(inti=1;i<10;i++){

if(max<num[i])max=num[i];

}

System.out.println("最大值是"+max);

}五://學(xué)生類publicclassStudent{privateStringstu_id;privateStringstu_name;privatefloatmath;privatefloatchinese;privatefloatcomputer;publicvoidsetStu_id(Stringstu_id){this.stu_id=stu_id;}publicStringgetStu_id(){returnstu_id;}publicvoidsetStu_name(Stringstu_name){this.stu_name=stu_name;}publicStringgetStu_name(){returnstu_name;}publicvoidsetMath(floatmath){this.math=math;}publicfloatgetMath(){returnmath;}publicvoidsetChinese(floatchinese){this.chinese=chinese;}publicfloatgetChinese(){returnchinese;}publicvoidsetComputer(floatcomputer){puter=computer;}publicfloatgetComputer(){returncomputer;}}//主方法的類publicclassStart{publicstaticvoidmain(String[]args){Studentstu1=newStudent();stu1.setStu_id("No1");stu1.setStu_name("張三");stu1.setMath(89.5f);stu1.setChinese(70f);stu1.setComputer(98f);Studentstu2=newStudent();stu2.setStu_id("No2");stu2.setStu_name("李四");stu2.setMath(79.5f);stu2.setChinese(90f);stu2.setComputer(68f);floatstu1Sum=stu1.getMath()+stu1.getChinese()+stu1.getComputer();floatstu2Sum=stu2.getMath()+stu2.getChinese()+stu2.getComputer();if(stu1Sum>stu2Sum){System.out.println("總分最高分為:"+stu1Sum);System.out.println("學(xué)號:"+stu1.getStu_id());System.out.println("姓名:"+stu1.getStu_name());System.out.println("數(shù)學(xué):"+stu1.getMath());System.out.println("語文:"+stu1.getChinese());System.out.println("計算機:"+stu1.getComputer());}elseif(stu1Sum<stu2Sum){System.out.println("總分最高分為:"+stu2Sum);System.out.println("學(xué)號:"+stu2.getStu_id());System.out.println("姓名:"+stu2.getStu_name());System.out.println("數(shù)學(xué):"+stu2.getMath());System.out.println("語文:"+stu2.getChinese());System.out.println("計算機:"+stu2.getComputer());}else{System.out.println("總分一樣高為:"+stu1Sum);System.out.println("學(xué)號:"+stu1.getStu_id());System.out.println("姓名:"+stu1.getStu_name());System.out.println("數(shù)學(xué):"+stu1.getMath());System.out.println("語文:"+stu1.getChinese());System.out.println("計算機:"+stu1.getComputer());System.out.println("學(xué)號:"+stu2.getStu_id());System.out.println("姓名:"+stu2.getStu_name());System.out.println("數(shù)學(xué):"+stu2.getMath());System.out.println("語文:"+stu2.getChinese());System.out.println("計算機:"+stu2.getComputer());}}}九:importjava.util.Scanner;publicclassCOMPare{

publicstaticvoidmain(Stringargs[]){

Scannertr=newScanner(System.in);

intb=tr.nextInt();

inta=tr.nextInt();

if(a==b)

System.out.println("相等");

else

System.out.println("不相等");

}}十一:classAverage{publicstaticvoidmain(Stringargs[]){Stringarray[]=newString[3];array[0]="HELLO";array[1]="JAVA";array[2]="PROGRAM";inttotal=array[0].length();total+=array[1].length();total+=array[2].length();System.out.println("平均字符串長度為:"+total/3);}}JAVA復(fù)習(xí)卷一、選擇題(2’*15=30’)1、如下哪個是Java中的標(biāo)識符()A、fieldnameB、super C、3number D、#number2、設(shè)x=1,y=2,z=3,則表達式y(tǒng)+=z--/++x的值是()。A.3B.3.5C.4D.53、下面的代碼段執(zhí)行之后count的值是什么() intcount=1; for(inti=1;i<=5;i++){ count+=i; } System.out.println(count);A、5 B、1 C、15 D、164、為AB類的一個無形式參數(shù)無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調(diào)用它,該方法頭的形式為()。A.staticvoidmethod()B.publicvoidmethod()C.finalvoidmethod()D.abstractvoidmethod()5、下列程序段執(zhí)行后的結(jié)果是()。Strings=newString("abcdefg");for(inti=0;i<s.length();i+=2){System.out.print(s.charAt(i));}A)acegB)ACEGC)abcdefgD)abcd6、下面程序段執(zhí)行后b的值是()。 Integerinteg=newInteger(9); booleanb=integinstanceofObject;A)9B)trueC)1D)false7.關(guān)于for循環(huán)和while循環(huán)的說法哪個正確?()A.while循環(huán)先判斷后執(zhí)行,for循環(huán)先執(zhí)行后判斷。B.while循環(huán)判斷條件一般是程序結(jié)果,for循環(huán)的判斷條件一般是非程序結(jié)果C.兩種循環(huán)任何時候都不可以替換D.兩種循環(huán)結(jié)構(gòu)中都必須有循環(huán)體,循環(huán)體不能為空8.關(guān)于對象成員占用內(nèi)存的說法哪個正確?()A.同一個類的對象共用同一段內(nèi)存B、同一個類的對象使用不同的內(nèi)存段,但靜態(tài)成員共享相同的內(nèi)存空間C.對象的方法不占用內(nèi)存D.以上都不對9.關(guān)于繼承的說法正確的是:()A、子類將繼承父類所有的屬性和方法。B、子類將繼承父類的非私有屬性和方法。C、子類只繼承父類public方法和屬性D、子類只繼承父類的方法,而不繼承屬性10.覆蓋與重載的關(guān)系是()A、覆蓋只有發(fā)生在父類與子類之間,而重載可以發(fā)生在同一個類中B.覆蓋方法可以不同名,而重載方法必須同名C.final修飾的方法可以被覆蓋,但不能被重載D.覆蓋與重載是同一回事11、下面哪一個import命令可以為我們提供編寫網(wǎng)絡(luò)應(yīng)用程序的類()A、importjava.sql.*; B、importjava.util.*;C、importjava.io.*; D、import.*;12、如果容器組件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");13、Frame對象默認的布局管理器是()A、FlowLayout B、BorderLayout C、CardLayout D、null14、如果需要從文件中讀取數(shù)據(jù),則可以在程序中創(chuàng)建哪一個類的對象()A、FileInputStream B、FileOutputStreamC、DataOutputStream D、FileWriter15、下面的程序創(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)ABCDEABCDEABCDE二、填空題(1’*10=10’)1、如果將類MyClass聲明為public,它的文件名必須是MyClass.java才能正常編譯。2.面向?qū)ο笥腥筇攸c分別是繼承、封裝、多態(tài)。3、設(shè)x=2,則表達式(x++)/3的值是0。4、在Java的基本數(shù)據(jù)類型中,char型采用Unicode編碼方案,每個Unicode碼占用2字節(jié)內(nèi)存空間5、Java中用于兩個數(shù)相等比較的運算符是:(==),用于不相等比較的運算符是(<>)。6、在Java中聲明一個字符串類型的變量str的語句是:Stringstr;,定義一個具有10個元素的整型數(shù)組a的語句是:int[]a=newint[10];。7、設(shè)有數(shù)組定義:intMyIntArray[]={10,20,30,40,50,60,70};則執(zhí)行以下幾個語句后的輸出結(jié)果是20+40+60=120。ints=0;for(inti=0;i<MyIntArray.length;i++)if(i%2==1)s+=MyIntArray[i];System.out.println(s);8、定義接口的保留字是(interface)。9、異常處理是由(try)、(catch)和finally塊三個關(guān)鍵所組成的程序塊。10.Socket通常也稱為(套接字),用于描述(IP地址)和(端口)。三、讀程題(6’*5=30’)1、以下程序的輸出結(jié)果為:publicclassPerson{ Stringname; intage; publicPerson(Stringname,intage){ =name; this.age=age; } publicstaticvoidmain(String[]args){ Personc=newPerson("Peter",17); System.out.println(+"is"+c.age+"yearsold!"); }}Peteris17yearsold!2、輸出結(jié)果為:publicclassSum{ publicstaticvoidmain(String[]args){ intj=10; System.out.println("jis:"+j); calculate(j); System.out.println("Atlast,jis:"+j); }staticvoidcalculate(intj){ for(inti=0;i<10;i++) j++; System.out.println("jincalculate()is:"+j); }}jis:

10jincalculate()is:20Atlastjis:

103、以下程序輸出的結(jié)果為:abstractclassShape{//定義抽象類Shape和抽象方法display abstractvoiddisplay();}classCircleextendsShape{ voiddisplay(){ //實現(xiàn)抽象類的方法 System.out.println("Circle"); }}classRectangleextendsShape{ voiddisplay(){//實現(xiàn)抽象類的方法 System.out.println("Rectangle"); }}classTriangleextendsShape{ voiddisplay(){ //實現(xiàn)抽象類的方法 System.out.println("Triangle"); }}publicclassAbstractClassDemo{ publicstaticvoidmain(Stringargs[]){ (newCircle()).display(); //定義無名對象來調(diào)用對應(yīng)的display方法 (newRectangle()).display(); (newTriangle()).display(); }}CircleRectangularTriangle4、以下程序的輸出結(jié)果為: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(); }}湯姆貓體重:20.0斤5、以下程序的輸出結(jié)果為: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;protectedcharsex;protectedintchinese;protectedintenglish;protectedStudentnext;staticStudentlist;Student(Stringname,charsex,intchinese,intenglish){=name;this.sex=sex;this.chinese=chinese;this.english=english;this.next=list;list=this;}staticvoidprint(){Studentfriend=list;if(friend==null)System.out.println("Thelistisempty.");else{do{System.out.println(friend.toString());friend=friend.next;}while(friend!=null);}}publicStringtoString(){returnnewString(name+"\t"+sex+"\t"+chinese+"\t"+english);}}namesexchineseenglishMaryf7686Jackm6689Tomm9088四、簡答題(4’*5=20’)JAVA的基本數(shù)據(jù)類型有那些?String是不是基本類型?float,int,char,byte,double,long,short,boolean。string不是基本類型什么是繼承?3、JavaI/O中字符流和字節(jié)流的區(qū)別?4.創(chuàng)建線程的兩種方法5.抽象類和接口的區(qū)別五、編程題(3’+7’=10’)1、按以下要求編寫程序(1)創(chuàng)建一個Rectangle類,添加width和height兩個成員變量(2)在Rectangle中添加兩種方法分別計算矩形的周長和面積(3)編程利用Rectangle輸出一個矩形的周長和面積2、編寫一個完整的JavaApplet程序使用復(fù)數(shù)類Complex驗證兩個復(fù)數(shù)1+2i和3+4i相加產(chǎn)生一個新的復(fù)數(shù)4+6i。復(fù)數(shù)類Complex必須滿足如下要求:(1)復(fù)數(shù)類Complex的屬性有:RealPart:int型,代表復(fù)數(shù)的實數(shù)部分ImaginPart:int型,代表復(fù)數(shù)的虛數(shù)部分(2)復(fù)數(shù)類Complex的方法有:Complex():構(gòu)造函數(shù),將復(fù)數(shù)的實部和虛部都置0Complex(intr,inti):構(gòu)造函數(shù),形參r為實部的初值,i為虛部的初值。ComplexcomplexAdd(Complexa):將當(dāng)前復(fù)數(shù)對象與形參復(fù)數(shù)對象相加,所得的結(jié)果仍是一個復(fù)數(shù)值,返回給此方法的調(diào)用者。StringToString():把當(dāng)前復(fù)數(shù)對象的實部、虛部組合成a+bi的字符串形式,其中a和b分別為實部和虛部的數(shù)據(jù)。一、AADAABBBBADCBAD二、MyClass.java封裝,多態(tài)02==,<>Stringstr;int[]arr=newint[10];120interfacetrycatch套接字IP地址端口三、1、Peteris17yearsold!2、jis:

10jincalculate()is:20Atlastjis:

103、CircleRectangularTriangle4、湯姆貓體重:20.0斤5、namesexchineseenglishMaryf7686Jackm6689Tomm9088四、1、float,intchar,byte,double,long,short,boolean。string不是基本類型2、通過必要的說明能夠?qū)崿F(xiàn)某個類無需重新定義就擁有另一個類的某些屬性和方法,并把這種關(guān)系稱為繼承,先定義的類稱為父類,后定義的類稱為子類,并且允許多層的繼承關(guān)系。3、java流在處理上分為字符流和字節(jié)流。字符流處理的單元為2個字節(jié)的Unicode字符,分別操作字符、字符數(shù)組或字符串,而字節(jié)流處理單元為1個字節(jié),操作字節(jié)和字節(jié)數(shù)組4、a.Thread類的子類創(chuàng)建線程包括繼承Thread類,重寫run方法,在應(yīng)用類中創(chuàng)建Thread之類的對象和調(diào)用start方法。B.使用Runnable接口包括實現(xiàn)Runnable接口,實現(xiàn)run方法,創(chuàng)建THread類對象,采用實現(xiàn)Runnable接口類的對象作為參數(shù)和調(diào)用start方法。5、a。接口中的所有方法都是抽象的,而抽象類可以定義帶有方法體的不同方法。b。一個類可以實現(xiàn)多個接口,而只能繼承一個抽象父類。c。接口與實現(xiàn)它的類不構(gòu)成繼承體系,而抽象類是屬于一個類的繼承體系。d。接口中的方法默認是publicabstract的,而成員變量默認是publicstatic常量。e。implements關(guān)鍵字用于實現(xiàn)接口,extends關(guān)鍵字用于繼承。五、1、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、importjava.applet.*;importjava.awt.*;publicclassabcextendsApplet{Complexa,b,c;publicvoidinit(){a=newComplex(1,2);b=newComplex(3,4);c=newComplex();}publicvoidpaint(Graphicsg){c=plexAdd(b);g.drawString("第一個復(fù)數(shù):"+a.toString(),10,50);g.drawString("第二個復(fù)數(shù):"+b.toString(),10,70);g.drawString("兩復(fù)數(shù)之和:"+c.toString(),10,90);}}classComplex{intRealPart;//復(fù)數(shù)的實部intImaginPart;//復(fù)數(shù)的虛部Complex(){RealPart=0;ImaginPart=0;}Complex(intr,inti){RealPart=r;ImaginPart=i;}ComplexcomplexAdd(Complexa){Complextemp=newComplex();//臨時復(fù)數(shù)對象temp.RealPart=RealPart+a.RealPart;temp.ImaginPart=ImaginPart+a.ImaginPart;returntemp;}publicStringtoString(){return(RealPart+"+"+ImaginPart+"i");}}《JAVA程序設(shè)計》期末考試試題(一)一、單選擇題1、編譯JavaApplication源程序文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,這些字節(jié)碼文件的擴展名為()。A.javaB..classC.htmlD..exe2、設(shè)x=1,y=2,z=3,則表達式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,則表達式(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=20 c=30《JAVA程序設(shè)計》期末考試試題(六)一、填空題1.定義類的保留字是(class),定義接口的保留字是(interface)。2.Socket通常也稱為(套接字),用于描述(IP地址)和(端口)。3.線程的優(yōu)先級在(1)至(10)之間,數(shù)值越大(任務(wù)越緊急)。4.構(gòu)造方法是一種特殊的成員方法,構(gòu)造方法名與(類名)相同。5.Java語言只允許單繼承,指每個類只能有一個(父類)。6.Java源程序的擴展名是(.java),經(jīng)過編譯后的程序的擴展名是(.class)。7.在一個時間只能由一個線程訪問的資源稱為(臨界資源)。訪問臨界資源的代碼(臨界代碼)。8.在多線程系統(tǒng)中,多個線程之間有(同步)和(互斥)兩種關(guān)系。二、選擇題1.關(guān)于選擇結(jié)構(gòu)下列哪個說法正確?()A.if語句和else語句必須成對出現(xiàn)B.if語句可以沒有else語句對應(yīng)C.switch結(jié)構(gòu)中每個case語句中必須用break語句D.switch結(jié)構(gòu)中必須有default語句2.while循環(huán)和do…while循環(huán)的區(qū)別是:()A.沒有區(qū)別,這兩個結(jié)構(gòu)任何情況下效果一樣B.while循環(huán)比do…while循環(huán)執(zhí)行效率高C.while循環(huán)是先循環(huán)后判斷,所以循環(huán)體至少被執(zhí)行一次D.do…while循環(huán)是先循環(huán)后判斷,所以循環(huán)體至少被執(zhí)行一次3.關(guān)于for循環(huán)和while循環(huán)的說法哪個正確?()A.while循環(huán)先判斷后執(zhí)行,for循環(huán)先執(zhí)行后判斷。B.while循環(huán)判斷條件一般是程序結(jié)果,for循環(huán)的判斷條件一般是非程序結(jié)果C.兩種循環(huán)任何時候都不可以替換D.兩種循環(huán)結(jié)構(gòu)中都必須有循環(huán)體,循環(huán)體不能為空4.下列修飾符中與訪問控制無關(guān)的是()A.private B.publicC.protected D.final5.void的含義:()A.方法沒有返回值 B.方法體為空C.沒有意義 D.定義方法時必須使用6.return語句:()A.只能讓方法返回數(shù)值 B.方法都必須含有C.方法中可以有多句return D.不能用來返回對象7.關(guān)于對象成員占用內(nèi)存的說法哪個正確?()A.同一個類的對象共用同一段內(nèi)存B、同一個類的對象使用不同的內(nèi)存段,但靜態(tài)成員共享相同的內(nèi)存空間C.對象的方法不占用內(nèi)存D.以上都不對8.下列說法哪個正確?A.不需要定義類,就能創(chuàng)建對象B.對象中必須有屬性和方法C.屬性可以是簡單變量,也可以是一個對象D、屬性必須是簡單變量9.下列說法哪個正確?()A、一個程序可以包含多個源文件B、一個源文件中只能有一個類C、一個源文件中可以有多個公共類D、一個源文件只能供一個程序使用10.關(guān)于方法main()的說法哪個正確?()A.方法main()只能放在公共類中Bmain()的頭定義可以根據(jù)情況任意更改C.一個類中可以沒有main()方法D.所有對象的創(chuàng)建都必須放在main()方法中11.構(gòu)造函數(shù)何時被調(diào)用?()A、創(chuàng)建對象時 B、類定義時C、使用對象的方法時 D、使用對象的屬性時12.

抽象方法:()A、可以有方法體B、可以出現(xiàn)在非抽象類中C、是沒有方法體的方法D、抽象類中的方法都是抽象方法13.關(guān)于繼承的說法正確的是:()A、子類將繼承父類所有的屬性和方法。B、子類將繼承父類的非私有屬性和方法。C、子類只繼承父類public方法和屬性D、子類只繼承父類的方法,而不繼承屬性14.關(guān)于構(gòu)造函數(shù)的說法哪個正確?()A、一個類只能有一個構(gòu)造函數(shù)B、一個類可以有多個不同名的構(gòu)造函數(shù)C、構(gòu)造函數(shù)與類同名D、構(gòu)造函數(shù)必須自己定義,不能使用父類的構(gòu)造函數(shù)15.this和super:A、都可以用在main()方法中B、都是指一個內(nèi)存地址C、不能用在main()方法中D、意義相同16.關(guān)于super的說法正確的是:A、是指當(dāng)前對象的內(nèi)存地址B、是指當(dāng)前對象的父類對象的內(nèi)存地址C、是指當(dāng)前對象的父類D、可以用在main()方法中17.覆蓋與重載的關(guān)系是()A、覆蓋只有發(fā)生在父類與子類之間,而重載可以發(fā)生在同一個類中B.覆蓋方法可以不同名,而重載方法必須同名C.final修飾的方法可以被覆蓋,但不能被重載D.覆蓋與重載是同一回事18.關(guān)于接口哪個正確?()A、實現(xiàn)一個接口必須實現(xiàn)接口的所有方法B.一個類只能實現(xiàn)一個接口C.接口間不能有繼承關(guān)系D.接口和抽象類是同一回事19.異常包含下列哪些內(nèi)容?()A.程序執(zhí)行過程中遇到的事先沒有預(yù)料到的情況B.程序中的語法錯誤C.程序的編譯錯誤D.以上都是20.

對于已經(jīng)被定義過可能拋出異常的語句,在編程時:()A、必須使用try/catch語句處理異常,或用throws將其拋出B.如果程序錯誤,必須使用try/catch語句處理異常C.可以置之不理D.只能使用try/catch語句處理21.

字符流與字節(jié)流的區(qū)別在于()A.前者帶有緩沖,后者沒有B.前者是塊讀寫,后者是字節(jié)讀寫C.二者沒有區(qū)別,可以互換使用D.每次讀寫的字節(jié)數(shù)不同22.下列流中哪個不屬于字節(jié)流()A.FileInputStreamB.BufferedInputStreamC.FilterInputStream D.InputStreamReader三、程序填空題1.publicclassSum{ publicstaticvoidmain(String[]args){ intj=10; System.out.println("jis:"+j); calculate(j); System.out.println("Atlast,jis:"+j); }staticvoidcalculate(intj){ for(inti=0;i<10;i++) j++; System.out.println("jincalculate()is:"+j); }}輸出結(jié)果為:jis:

(1)jincalculate()is:(2)Atlastjis:

(3)答案:(1)10;(2)20;(3)10。2.按要求填空abstractclassSuperAbstract{ voida(){…} abstractvoidb(); abstractintc(inti);}interfaceAsSuper{ voidx();}abstractclassSubAbstractextendsSuperAbstractimplementsAsSuper{publicvoidb(){…} abstractStringf();}publicclassInheritAbstractextendsSubAbstract{ publicvoidx(){…} publicintc(inti){…} publicStringf(){…} publicstaticvoidmain(Stringargs[]){ InheritAbstractinstance=newInheritAbstract(); instance.x(); instance.a(); instance.b(); instance.c(100); System.out.println(instance.f()); }}在以上這段程序中:抽象類有:SuperAbstract和(1)(寫出類名)非抽象類有:(2)(寫出類名)接口有:(3)(寫出接口名)AsSuper中的x()方法是(4)方法,所以在InheritAbstract中必須對它進行(5)答案:(1)SuperAbstract;(2)InheritAbstract;(3)AsSuper;(4)抽象;(5)覆蓋和實現(xiàn)。3.按注釋完成程序publicclassLeaf{ privateinti=0;//此屬性值用于檢驗 Leafincrement(){//定義方法increment(),返回值是Leaf類的對象 i++; return(this);//將當(dāng)前對象的地址作為返回值返回 } voidprint(){ System.out.println("i="+i); } publicstaticvoidmain(Stringargs[]){ Leafx=(newLeaf(););//創(chuàng)建Leaf類的對象x x.increment().increment().increment().print(); }//多次調(diào)用方法increment(),返回的都是x的地址,i值表示調(diào)用次數(shù)}輸出結(jié)果為i=(3)答案:this;newLeaf();34.

按注釋提示完成文件復(fù)制的程序//FileStream源代碼如下:importjava.io.*;classFileStream{ publicstaticvoidmain(Stringargs[]){ try{FileinFile=newFile("file1.txt"); //指定源文件FileoutFile=newFile("file2.txt"); //指定目標(biāo)文件FileInputStreamfis=(1);FileOutputStreamfos=newFileOutputStream(outFile); intc;//逐字節(jié)從源文件中輸入,再輸出到fos流while((c=fis.read())!=-1) fos.write(c); fis.close(); fos.close(); }catch(Exceptione){ System.out.println("FileStreamsTest:"+e); }}}答案:(1)newFileInputStream(inFile);(2)fos.write(c);5.

閱讀程序,給出結(jié)果://AbstractClassDemo.java源代碼如下:abstractclassShape{//定義抽象類Shape和抽象方法display abstractvoiddisplay();}classCircleextendsShape{ voiddisplay(){ //實現(xiàn)抽象類的方法 System.out.println("Circle"); }}classRectangleextendsShape{ voiddisplay(){//實現(xiàn)抽象類的方法 System.out.println("Rectangle"); }}classTriangleextendsShape{ voiddisplay(){ //實現(xiàn)抽象類的方法 System.out.println("Triangle"); }}publicclassAbstractClassDemo{ publicstaticvoidmain(Stringargs[]){ (newCircle()).display(); //定義無名對象來調(diào)用對應(yīng)的display方法 (newRectangle()).display(); (newTriangle()).display(); }}輸出結(jié)果是?答案:(1)Circle;(2)Rectangle;(3)Triangle。一、選擇題(20題,每題2分,共40分)1.在面向?qū)ο蟮姆椒ㄖ?,一個對象請求另一個對象為其服務(wù)的方式是通過發(fā)送(

D)

A、調(diào)用語句

B、命令

C、口令

D、消息2.Java語言具有許多優(yōu)點和特點,下列選項中,哪個反映了Java程序并行機制的特點:(B

A、安全性

B、多線程

C、跨平臺

D、可移值3.編寫和運行Javaapplet程序與編寫和運行Javaapplication程序不同的步驟是:(B

A、編寫源代碼

B、編寫HTML文件調(diào)用該小程序,以.html為擴展名存入相同文件夾

C、編譯過程

D、解釋執(zhí)行4.Java的字符類型采用的是Unicode編碼方案,每個Unicode碼占用____個比特位。(B

A、8

B、16

C、32

D、645.關(guān)于下列程序段的輸出結(jié)果,說法正確的是:(

D基本類型數(shù)值數(shù)據(jù)的默認初始值為0

publicclassMyClass{

staticinti;

publicstaticvoidmain(Stringargv[]){

System.out.println(i);

}

}

A、有錯誤,變量i沒有初始化。

B、null

C、1

D、06.下列代碼的執(zhí)行結(jié)果是:(

B

publicclassTest3{

publicstaticvoidmain(Stringargs[]){

System.out.print(100%3);

System.out.print(",");

System.out.println(100%3.0);

}

}

A、1,1

B、1,1.0

C、1.0,1

D、1.0,1.07.下列程序段的輸出結(jié)果是:(

B

voidcomplicatedExpression(){

intx=20,y=30;

booleanb;

b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60;

System.out.println(b);

}

A、true

B、false

C、1

D、08.給出下列代碼片段:(

D

if(x>0){System.out.println("first");}

elseif(x>-3){System.out.println("second");}

else{System.out.println("third");}

請問x處于什么范圍時將打印字符串“second”?

A、x>0

B、x>-3

C、x<=-3

D、x<=0&&x>-39.若要把變量聲名為暫時性變量,應(yīng)使用如下哪種修飾符?(C)

A、protected

B、provate

C、transient(臨時變量)

D、volatile(共享變量)10.在Java中,一個類可同時定義許多同名的方法,這些方法的形式參數(shù)的個數(shù)、類型

或順序各不相同,傳回的值也可以不相同,這種面向?qū)ο蟪绦蛱匦苑Q為:(

C

A、隱藏

B、覆蓋

C、重載

D、Java不支持此特性11.如要拋出異常,應(yīng)用下列哪種子句?(

B

A、catch

B、throws

C、try

D、finally12.在使用interface聲明一個接口時,只可以使用____修飾符修飾該接口。(

D

A、private

B、pro

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論