當前位置:學問谷 >

校園範例 >考試 >

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

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

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 .容器是用來組織其他界面成分和元素的單元,它不能嵌套其他容器。

  • 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flxy/kaoshi/kkn0j.html