java語言期末考試試題答案2017

來源:果殼範文吧 1.39W
Java語言期末考試試卷及答案

一、單選擇題(每小題2分,共10分)

java語言期末考試試題答案2017

1、編譯Java Application 源程式檔案將產生相應的位元組碼檔案,這些位元組碼檔案的副檔名為( )。

A. B. s

C. D.

2、設 x = 1 , y = 2 , z = 3,則表示式 y+=z--/++x 的值是( )。

A. 3 B. 3. 5

C. 4 D. 5

3、在Java Applet程式使用者自定義的Applet子類中,一般需要過載父類的( )方法來完成一些畫圖操作。

A. start( ) B. stop( )

C. init( ) D. paint( )

4、不允許作為類及類成員的訪問控制符的是( )。

A. public B. private

C. static D. protected

5、為AB類的一個無形式引數無返回值的方法method書寫方法頭,使得使用類名AB作為字首就可以呼叫它,該方法頭的形式為( )。

A. static void method( ) B. public void method( )

C. final void method( ) D. abstract void method( )

二、填空題(每空格1分,共20分)

1、開發與執行Java程式需要經過的三個主要步驟為 、

和 。

2、如果一個Java Applet源程式檔案只定義有一個類,該類的類名為MyApplet,則類MyApplet必須是 類的子類並且儲存該源程式檔案的檔名為 。

3、如果一個Java Applet程式檔案中定義有3個類,則使用Sun公司的JDK編譯

器 編譯該源程式檔案將產生 個檔名與類名相同而副檔名為 的位元組碼檔案。

4、在Java的基本資料型別中,char型採用Unicode編碼方案,每個Unicode碼佔

用 位元組記憶體空間,這樣,無論是中文字元還是英文字元,都是佔

用 位元組記憶體空間。

5、設 x = 2 ,則表示式 ( x + + )/3 的值是 。

6、若x = 5,y = 10,則x < y和x >= y的邏輯值分別為 和 。

7、 方法是一種僅有方法頭,沒有具體方法體和操作實現的方法,該方法必須在抽象類之中定義。 方法是不能被當前類的子類重新定義的方法。

8、建立一個名為 MyPackage 的包的語句是 ,

該語句應該放在程式的位置為: 。

9、設有陣列定義:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 則執行以下幾個語句後的輸出結果是 。

int s = 0 ;

for ( int i = 0 ; i < th ; i + + )

if ( i % 2 = = 1 ) s += MyIntArray[i] ;

tln( s );

10、在Java程式中,通過類的定義只能實現 重繼承,但通過介面的定義可以實現 重繼承關係。

三、寫出下列程式完成的功能。(每小題5分,共20分)

1、public class Sum

{ public static void main( String args[ ])

{ double sum = 0.0 ;

for ( int i = 1 ; i <= 100 ; i + + )

sum += 1.0/(double) i ;

tln( "sum="+sum );

}

}

2、 import .* ;

public class Reverse

{ public static void main(String args[ ])

{ int i , n =10 ;

int a[ ] = new int[10];

for ( i = 0 ; i < n ; i ++ )

try {

BufferedReader br = new BufferedReader(

new InputStreamReader());

a[i] = eInt(Line( )); // 輸入一個整數

} catch ( IOException e ) { } ;

for ( i = n-1 ; i >= 0 ; i ?? )

t(a[i]+" ");

tln( );

}

}

3、 import .*;

public class abc

{ public static void main(String args[])

{ new FrameOut(); }

}

class FrameOut extends Frame // Frame為系統定

{ Button btn; // 義的窗框類

FrameOut( )

{ super("按鈕");

btn = new Button("按下我");

setLayout(new FlowLayout( ));

add(btn);

setSize(300,200);

show( );

}

}

4、import .*;

public class abc

{ public static void main(String args[])

{ SubClass sb = new SubClass( );

tln(( ));

}

}

class SuperClass

{ int a = 10 , b = 20 ; }

class SubClass extends SuperClass

{ int max( ) { return ((a>b)?a:b); } }

四、寫出下面程式的執行結果(每小題10分,共30分)

1、 import .*;

public class abc

{ public static void main(String args[ ])

{ AB s = new AB("Hello!","I love JAVA.");

tln(ring( ));

}

}

class AB {

String s1;

String s2;

AB( String str1 , String str2 )

{ s1 = str1; s2 = str2; }

public String toString( )

{ return s1+s2;}

}

2、 import .* ;

public class abc

{

public static void main(String args[ ])

{ int i , s = 0 ;

int a[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 };

for ( i = 0 ; i < th ; i ++ )

if ( a[i]%3 = = 0 ) s += a[i] ;

tln("s="+s);

}

}

3、import .* ;

public class abc

{

public static void main(String args[ ])

{ SubSubClass x = new SubSubClass(10 , 20 , 30);

();

}

}

class SuperClass

{ int a,b;

SuperClass(int aa , int bb)

{ a=aa; b=bb; }

void show( )

{ tln("a="+a+"b="+b); }

}

class SubClass extends SuperClass

{ int c;

SubClass(int aa,int bb,int cc)

{ super(aa,bb);

c=cc;

}

}

class SubSubClass extends SubClass

{ int a;

SubSubClass(int aa,int bb,int cc)

{ super(aa,bb,cc);

a=aa+bb+cc;

}

void show()

{ tln("a="+a+"b="+b+"c="+c); }

}

五、使用Java語言編寫程式。(每小題10分,共20分)

1、編寫一個字元介面的Java Application 程式,接受使用者輸入的10個整數,並輸出這10個整數的最大值和最小值。

2、編寫一個完整的Java Applet 程式使用複數類Complex驗證兩個複數 1+2i 和3+4i 相加產生一個新的複數 4+6i 。

複數類Complex必須滿足如下要求:

(1) 複數類Complex 的屬性有:

RealPart : int型,代表複數的實數部分

ImaginPart : int型,代表複數的虛數部分

(2) 複數類Complex 的方法有:

Complex( ) : 建構函式,將複數的實部和虛部都置0

Complex( int r , int i ) : 建構函式,形參 r 為實部的初值,i為虛部的.初值。

Complex complexAdd(Complex a) : 將當前複數物件與形參複數物件相加,所得的結果仍是一個複數值,返回給此方法的呼叫者。

String ToString( ) : 把當前複數物件的實部、虛部組合成 a+bi 的字串形式,其中a 和 b分別為實部和虛部的資料。

JAVA語言期末考試參考答案及評分標準

一、單選擇題(每小題2分,共10分)

1、B 2、A 3、D 4、C 5、A

二、填空題(每空格1分,共20分)

1、編輯源程式、編譯生成位元組碼、解釋執行位元組碼

2、Applet、MyApplet

3、、3、 . class

4、2 、2

5、0

6、true 、 false

7、抽象(abstract)方法、最終(final)方法

8、package MyPackage ; 應該在程式第一句。

9、120

10、單、多

三、寫出下列程式完成的功能。(每小題5分,共20分)

1、計算 1/1+1/2+1/3+...+1/100 的值。

2、從標準輸入(即鍵盤)讀入10個整數存入整型陣列a中,然後逆序輸出這10個整數。

3、建立一個標題為"按鈕"的窗框,窗框中顯示有"按下我"字樣的按鈕。

4、求兩個數的最大值。

四、寫出下面程式的執行結果(每小題10分,共30分)

1、Hello! I love JAVA.

2、s = 180

3、a=60

b=20

c=30

五、使用Java語言編寫程式。(每小題10分,共20分)

1、參考程式如下:

import .* ;

public class abc

{

public static void main(String args[ ])

{ int i , n = 10 , max = 0 , min = 0 , temp = 0;

try {

BufferedReader br = new BufferedReader(

new InputStreamReader());

max = min = eInt(Line( ));

} catch ( IOException e ) { } ;

for ( i = 2 ; i <= n ; i ++ ) {

try {

BufferedReader br = new BufferedReader(

new InputStreamReader());

temp = eInt(Line( ));

if (temp > max ) max=temp;

if (temp < min) min=temp;

} catch ( IOException e ) { } ;

}

tln("max="+max+"min="+min);

}

}

2、參考程式如下:

import et.* ;

import .* ;

public class abc extends Applet

{

Complex a,b,c ;

public void init( )

{

a = new Complex(1,2);

b = new Complex(3,4);

c = new Complex();

}

public void paint(Graphics g)

{

c=lexAdd(b);

String("第一個複數:"+ring(),10,50);

String("第二個複數:"+ring(),10,70);

String("兩複數之和:"+ring(),10,90);

}

}

class Complex

{

int RealPart ; // 複數的實部

int ImaginPart ; // 複數的虛部

Complex() { RealPart = 0 ; ImaginPart = 0 ; }

Complex(int r , int i)

{ RealPart = r ; ImaginPart = i ; }

Complex complexAdd(Complex a)

{

Complex temp = new Complex( ); // 臨時複數物件

Part=RealPart+Part;

inPart=ImaginPart+inPart;

return temp;

}

public String toString( )

{ return ( RealPart+" + "+ImaginPart+" i "); }

}

java期末考試題

1.談談final, finally, finalize的區別。

final關鍵字:

a) 如果一個類被宣告為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被宣告為abstract的,又被宣告為final的。

b) 將變數或方法宣告為final,可以保證它們在使用中不被改變。

c) 被宣告為final的變數必須在宣告時給定初值,而在以後的引用中只能讀取,不可修改。

d) 被宣告為final的方法也同樣只能使用,不能過載。

finally關鍵字:在異常處理時提供 finally 塊來執行任何清除操作。如果丟擲一個異常,那麼相匹配的 catch 子句就會執行,然後控制就會進入finally 塊。

finalize:方法名,不是關鍵字。Java技術允許使用 finalize() 方法在垃圾收集器將物件從記憶體中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個物件沒有被引用時對這個物件呼叫的。它是在Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize()方法是在垃圾收集器刪除物件之前對這個物件呼叫的。

是什麼? 為什麼要有GC?

GC是垃圾收集器。Java 程式設計師不用擔心記憶體管理,因為垃圾收集器會自動進行管理。要請求垃圾收集,可以呼叫下面的方法之一:

()

untime()()

d(11.5)等於多少? d(-11.5)等於多少?

寫程式

d(11.5) = 12

d(-11.5) = -11

4.給我一個你最常見到的runtime exception

ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,

ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

ract class和interface有什麼區別

宣告方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要建立一個體現某些基本行為的類,併為該類宣告方法,但不能在該類中實現該類的情況。不能建立abstract 類的例項。然而可以建立一個變數,其型別是一個抽象類,並讓它指向具體子類的一個例項。不能有抽象建構函式或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。

介面(interface)是抽象類的變體。在介面中,所有方法都是抽象的。多繼承性可通過實現這樣的介面而獲得。介面中的所有方法都是抽象的,沒有一個有程式體。介面只可以定義static final成員變數。介面的實現與子類相似,除了該實現類不能從介面定義中繼承行為。當類實現特殊介面時,它定義(即將程式體給予)所有這種介面的方法。然後,它可以在實現了該介面的類的任何物件上呼叫介面的方法。由於有抽象類,它允許使用介面名作為引用變數的型別。通常的動態聯編將生效。引用可以轉換到介面型別或從介面型別轉換,instanceof 運算子可以用來決定某物件的類是否實現了介面。

6.面向物件的特徵有哪些方面?

1.抽象:

抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是資料抽象。

2.繼承:

繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。物件的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和例項變數,並且類可以修改或增加新的方法使之更適合特殊的需要。

3.封裝:

封裝是把過程和資料包圍起來,對資料的訪問只能通過已定義的介面。面向物件計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的物件,這些物件通過一個受保護的介面訪問其他物件。

4. 多型性:多型性是指允許不同類的物件對同一訊息作出響應。多型性包括引數化多型性和包含多型性。多型性語言具有靈活、抽象、行為共享、程式碼共享的優勢,很好的解決了應用程式函式同名

中如何跳出當前多重迴圈?

用break; return 方法.

8.說出一些常用的類、包和介面,各舉5個

類 String Integer Long File Date

包 .*;.*;.*;.*;

.*;

介面: Comparable ,Connection,Map,List,Runable,

ng類是否可以被繼承?填空並上機除錯

public class test2

{

public static void main(String args[])

{

int aa[]=new int[15];

tln(“before entering method:”);

for(int i=0;i<5;i++)

tln(“aa[“+i+”]=”+___________);

__________________;

tln(“after method:”);

for(int i=0;i<5;i++)

tln(“aa[“+i+”]=”+aa[i]);

}

Static void test( int [] x)

{

int i=10;

tln(“in mathod:”);

for(;i<15;i++)

{

x[i-10]+=i;

tln(“x[“+(i-10)+”]=”+x[i-10]);

}

}

}

執行結果:

String類是final類故不可以繼承.

10.填空並上機除錯

public class Father

{ int a=100;

public void miner()

{

a--;

}

public static void main(String args[])

{ Father x=________________;

son y=new son();

tln(“The a of son is:”+y.a);

tln(“The a of son’s super is:”+_________________);

r();

tln(“The a of son is:”+y.a);

tln(“The a of son’s super is:”+());

}

}

class son_____________________Father

{

int a=0;

public void plus()

{

a++;

}

public int getA()

{

_____________________;

}

}

Java期末考試判斷題集錦

1 . Java 程式裡 , 建立新的類物件用關鍵字 new ,回收無用的類物件使用關鍵字 free 。

2 .物件可以賦值,只要使用賦值號(等號)即可,相當於生成了一個各屬性與賦值物件相同的新物件。

3 .有的類定義時可以不定義建構函式,所以建構函式不是必需的。

4 .類及其屬性、方法可以同時有一個以上的修飾符來修飾。

5 . Java 的螢幕座標是以畫素為單位,容器的左下角被確定為座標的起點

6 .抽象方法必須在抽象類中,所以抽象類中的方法都必須是抽象方法。

7 . Final 類中的屬性和方法都必須被 final 修飾符修飾。

8 .最終類不能派生子類,最終方法不能被覆蓋。

9 .子類要呼叫父類的方法,必須使用 super 關鍵字。

10 .一個 Java 類可以有多個父類。

11 .如果 p 是父類 Parent 的物件,而 c 是子類 Child 的物件,則語句 c = p 是正確的。

12 .一個類如果實現了某個介面,那麼它必須過載該介面中的所有方法。

13 .當一個方法在執行過程中產生一個異常,則這個方法會終止,但是整個程式不一定終止執行。

14 .介面是特殊的類,所以介面也可以繼承,子介面將繼承父介面的所有常量和抽象方法。

15 .用“ + ”可以實現字串的拼接,用 - 可以從一個字串中去除一個字元子串。

16 .使用方法 length( ) 可以獲得字串或陣列的長度。

17 .設 String 物件 s=”Hello ” ,執行語句 tln(at(“World!”)); 後 String 物件 s 的內容為 ”Hello world!” ,所以語句輸出為Hello world!

18 .建立 Vector 物件時建構函式給定的是其中可以包容的元素個數,使用中應注意不能超越這個數值。

19 .所有的滑鼠事件都由 MouseListener 監聽介面的監聽者來處理。

20 .一個容器中可以混合使用多種佈局策略。

21 . Java 中,並非每個事件類都只對應一個事件。

22 .一個執行緒物件的具體操作是由 run() 方法的內容確定的,但是 Thread 類的 run() 方法是空的 , 其中沒有內容 ; 所以使用者程式要麼派生一個 Thread 的子類並在子類裡重新定義 run() 方法 , 要麼使一個類實現 Runnable 介面並書寫其中 run() 方法的方法體。

23 . Java 的原始碼中定義幾個類,編譯結果就生成幾個以 s 為字尾的位元組碼檔案。

24 . Java Applet 是由獨立的直譯器程式來執行的。

25 . Java Applet 只能在圖形介面下工作。

26 . Java 的字元型別採用的是 ASCII 編碼。

27 . Java 的各種資料型別佔用固定長度,與具體的軟硬體平臺環境無關

28 . Applet 是一種特殊的 Panel ,它是 Java Applet 程式的最外層容器。

29 .子類的域和方法的數目一定大於等於父類的域和方法的數目。

30 . System 類不能例項化,即不能建立 System 類的物件。

31 .使用者自定義的圖形介面元素也可以響應使用者的動作,具有互動功能

32 . Java 中陣列的元素可以是簡單資料型別的量,也可以是某一類的物件。

33 . Vector 類中的物件不能是簡單資料型別。

34 . Java 中的 String 類的物件既可以是字串常量,也可以是字串變數。

35 .容器是用來組織其他介面成分和元素的單元,它不能巢狀其他容器。

熱門標籤