- 相關(guān)推薦
java語(yǔ)言期末考試試題答案2017
Java語(yǔ)言期末考試試卷及答案
一、單選擇題(每小題2分,共10分)
1、編譯Java Application 源程序文件將產(chǎn)生相應的字節碼文件,這些字節碼文件的擴展名為( )。
A. .java B. .class
C. .html D. .exe
2、設 x = 1 , y = 2 , z = 3,則表達式 y+=z--/++x 的值是( )。
A. 3 B. 3. 5
C. 4 D. 5
3、在Java Applet程序用戶(hù)自定義的Applet子類(lèi)中,一般需要重載父類(lèi)的( )方法來(lái)完成一些畫(huà)圖操作。
A. start( ) B. stop( )
C. init( ) D. paint( )
4、不允許作為類(lèi)及類(lèi)成員的訪(fǎng)問(wèn)控制符的是( )。
A. public B. private
C. static D. protected
5、為AB類(lèi)的一個(gè)無(wú)形式參數無(wú)返回值的方法method書(shū)寫(xiě)方法頭,使得使用類(lèi)名AB作為前綴就可以調用它,該方法頭的形式為( )。
A. static void method( ) B. public void method( )
C. final void method( ) D. abstract void method( )
二、填空題(每空格1分,共20分)
1、開(kāi)發(fā)與運行Java程序需要經(jīng)過(guò)的三個(gè)主要步驟為 、
和 。
2、如果一個(gè)Java Applet源程序文件只定義有一個(gè)類(lèi),該類(lèi)的類(lèi)名為MyApplet,則類(lèi)MyApplet必須是 類(lèi)的子類(lèi)并且存儲該源程序文件的文件名為 。
3、如果一個(gè)Java Applet程序文件中定義有3個(gè)類(lèi),則使用Sun公司的JDK編譯
器 編譯該源程序文件將產(chǎn)生 個(gè)文件名與類(lèi)名相同而擴展名為 的字節碼文件。
4、在Java的基本數據類(lèi)型中,char型采用Unicode編碼方案,每個(gè)Unicode碼占
用 字節內存空間,這樣,無(wú)論是中文字符還是英文字符,都是占
用 字節內存空間。
5、設 x = 2 ,則表達式 ( x + + )/3 的值是 。
6、若x = 5,y = 10,則x < y和x >= y的邏輯值分別為 和 。
7、 方法是一種僅有方法頭,沒(méi)有具體方法體和操作實(shí)現的`方法,該方法必須在抽象類(lèi)之中定義。 方法是不能被當前類(lèi)的子類(lèi)重新定義的方法。
8、創(chuàng )建一個(gè)名為 MyPackage 的包的語(yǔ)句是 ,
該語(yǔ)句應該放在程序的位置為: 。
9、設有數組定義:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 則執行以下幾個(gè)語(yǔ)句后的輸出結果是 。
int s = 0 ;
for ( int i = 0 ; i < MyIntArray.length ; i + + )
if ( i % 2 = = 1 ) s += MyIntArray[i] ;
System.out.println( s );
10、在Java程序中,通過(guò)類(lèi)的定義只能實(shí)現 重繼承,但通過(guò)接口的定義可以實(shí)現 重繼承關(guān)系。
三、寫(xiě)出下列程序完成的功能。(每小題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 ;
System.out.println( "sum="+sum );
}
}
2、 import java.io.* ;
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(System.in));
a[i] = Integer.parseInt(br.readLine( )); // 輸入一個(gè)整數
} catch ( IOException e ) { } ;
for ( i = n-1 ; i >= 0 ; i ―― )
System.out.print(a[i]+" ");
System.out.println( );
}
}
3、 import java.awt.*;
public class abc
{ public static void main(String args[])
{ new FrameOut(); }
}
class FrameOut extends Frame // Frame為系統定
{ Button btn; // 義的窗框類(lèi)
FrameOut( )
{ super("按鈕");
btn = new Button("按下我");
setLayout(new FlowLayout( ));
add(btn);
setSize(300,200);
show( );
}
}
4、import java.io.*;
public class abc
{ public static void main(String args[])
{ SubClass sb = new SubClass( );
System.out.println(sb.max( ));
}
}
class SuperClass
{ int a = 10 , b = 20 ; }
class SubClass extends SuperClass
{ int max( ) { return ((a>b)?a:b); } }
四、寫(xiě)出下面程序的運行結果(每小題10分,共30分)
1、 import java.io.*;
public class abc
{ public static void main(String args[ ])
{ AB s = new AB("Hello!","I love JAVA.");
System.out.println(s.toString( ));
}
}
class AB {
String s1;
String s2;
AB( String str1 , String str2 )
{ s1 = str1; s2 = str2; }
public String toString( )
{ return s1+s2;}
}
2、 import java.io.* ;
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 < a.length ; i ++ )
if ( a[i]%3 = = 0 ) s += a[i] ;
System.out.println("s="+s);
}
}
3、import java.io.* ;
public class abc
{
public static void main(String args[ ])
{ SubSubClass x = new SubSubClass(10 , 20 , 30);
x.show();
}
}
class SuperClass
{ int a,b;
SuperClass(int aa , int bb)
{ a=aa; b=bb; }
void show( )
{ System.out.println("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()
{ System.out.println("a="+a+" b="+b+" c="+c); }
}
五、使用Java語(yǔ)言編寫(xiě)程序。(每小題10分,共20分)
1、編寫(xiě)一個(gè)字符界面的Java Application 程序,接受用戶(hù)輸入的10個(gè)整數,并輸出這10個(gè)整數的最大值和最小值。
2、編寫(xiě)一個(gè)完整的Java Applet 程序使用復數類(lèi)Complex驗證兩個(gè)復數 1+2i 和3+4i 相加產(chǎn)生一個(gè)新的復數 4+6i 。
復數類(lèi)Complex必須滿(mǎn)足如下要求:
(1) 復數類(lèi)Complex 的屬性有:
RealPart : int型,代表復數的實(shí)數部分
ImaginPart : int型,代表復數的虛數部分
(2) 復數類(lèi)Complex 的方法有:
Complex( ) : 構造函數,將復數的實(shí)部和虛部都置0
Complex( int r , int i ) : 構造函數,形參 r 為實(shí)部的初值,i為虛部的初值。
Complex complexAdd(Complex a) : 將當前復數對象與形參復數對象相加,所得的結果仍是一個(gè)復數值,返回給此方法的調用者。
String ToString( ) : 把當前復數對象的實(shí)部、虛部組合成 a+bi 的字符串形式,其中a 和 b分別為實(shí)部和虛部的數據。
JAVA語(yǔ)言期末考試參考答案及評分標準
一、單選擇題(每小題2分,共10分)
1、B 2、A 3、D 4、C 5、A
二、填空題(每空格1分,共20分)
1、編輯源程序、編譯生成字節碼、解釋運行字節碼
2、Applet、MyApplet
3、javac.exe、3、 . class
4、2 、2
5、0
6、true 、 false
7、抽象(abstract)方法、最終(final)方法
8、package MyPackage ; 應該在程序第一句。
9、120
10、單、多
三、寫(xiě)出下列程序完成的功能。(每小題5分,共20分)
1、計算 1/1+1/2+1/3+...+1/100 的值。
2、從標準輸入(即鍵盤(pán))讀入10個(gè)整數存入整型數組a中,然后逆序輸出這10個(gè)整數。
3、創(chuàng )建一個(gè)標題為"按鈕"的窗框,窗框中顯示有"按下我"字樣的按鈕。
4、求兩個(gè)數的最大值。
四、寫(xiě)出下面程序的運行結果(每小題10分,共30分)
1、Hello! I love JAVA.
2、s = 180
3、a=60
b=20
c=30
五、使用Java語(yǔ)言編寫(xiě)程序。(每小題10分,共20分)
1、參考程序如下:
import java.io.* ;
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(System.in));
max = min = Integer.parseInt(br.readLine( ));
} catch ( IOException e ) { } ;
for ( i = 2 ; i <= n ; i ++ ) {
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
temp = Integer.parseInt(br.readLine( ));
if (temp > max ) max=temp;
if (temp < min) min=temp;
} catch ( IOException e ) { } ;
}
System.out.println("max="+max+" min="+min);
}
}
2、參考程序如下:
import java.applet.* ;
import java.awt.* ;
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=a.complexAdd(b);
g.drawString("第一個(gè)復數:"+a.toString(),10,50);
g.drawString("第二個(gè)復數:"+b.toString(),10,70);
g.drawString("兩復數之和:"+c.toString(),10,90);
}
}
class Complex
{
int RealPart ; // 復數的實(shí)部
int ImaginPart ; // 復數的虛部
Complex() { RealPart = 0 ; ImaginPart = 0 ; }
Complex(int r , int i)
{ RealPart = r ; ImaginPart = i ; }
Complex complexAdd(Complex a)
{
Complex temp = new Complex( ); // 臨時(shí)復數對象
temp.RealPart=RealPart+a.RealPart;
temp.ImaginPart=ImaginPart+a.ImaginPart;
return temp;
}
public String toString( )
{ return ( RealPart+" + "+ImaginPart+" i "); }
}
java期末考試題
1.談?wù)刦inal, finally, finalize的區別。
final關(guān)鍵字:
a) 如果一個(gè)類(lèi)被聲明為final,意味著(zhù)它不能再派生出新的子類(lèi),不能作為父類(lèi)被繼承。因此一個(gè)類(lèi)不能既被聲明為abstract的,又被聲明為final的。
b) 將變量或方法聲明為final,可以保證它們在使用中不被改變。
c) 被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。
d) 被聲明為final的方法也同樣只能使用,不能重載。
finally關(guān)鍵字:在異常處理時(shí)提供 finally 塊來(lái)執行任何清除操作。如果拋出一個(gè)異常,那么相匹配的 catch 子句就會(huì )執行,然后控制就會(huì )進(jìn)入finally 塊。
finalize:方法名,不是關(guān)鍵字。Java技術(shù)允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對象沒(méi)有被引用時(shí)對這個(gè)對象調用的。它是在Object 類(lèi)中定義的,因此所有的類(lèi)都繼承了它。子類(lèi)覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個(gè)對象調用的。
2.GC是什么? 為什么要有GC?
GC是垃圾收集器。Java 程序員不用擔心內存管理,因為垃圾收集器會(huì )自動(dòng)進(jìn)行管理。要請求垃圾收集,可以調用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
3.Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
寫(xiě)程序
Math.round(11.5) = 12
Math.round(-11.5) = -11
4.給我一個(gè)你最常見(jiàn)到的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
5.abstract class和interface有什么區別
聲明方法的存在而不去實(shí)現它的類(lèi)被叫做抽象類(lèi)(abstract class),它用于要創(chuàng )建一個(gè)體現某些基本行為的類(lèi),并為該類(lèi)聲明方法,但不能在該類(lèi)中實(shí)現該類(lèi)的情況。不能創(chuàng )建abstract 類(lèi)的實(shí)例。然而可以創(chuàng )建一個(gè)變量,其類(lèi)型是一個(gè)抽象類(lèi),并讓它指向具體子類(lèi)的一個(gè)實(shí)例。不能有抽象構造函數或抽象靜態(tài)方法。Abstract 類(lèi)的子類(lèi)為它們父類(lèi)中的所有抽象方法提供實(shí)現,否則它們也是抽象類(lèi)為。取而代之,在子類(lèi)中實(shí)現該方法。知道其行為的其它類(lèi)可以在類(lèi)中實(shí)現這些方法。
接口(interface)是抽象類(lèi)的變體。在接口中,所有方法都是抽象的。多繼承性可通過(guò)實(shí)現這樣的接口而獲得。接口中的.所有方法都是抽象的,沒(méi)有一個(gè)有程序體。接口只可以定義static final成員變量。接口的實(shí)現與子類(lèi)相似,除了該實(shí)現類(lèi)不能從接口定義中繼承行為。當類(lèi)實(shí)現特殊接口時(shí),它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實(shí)現了該接口的類(lèi)的任何對象上調用接口的方法。由于有抽象類(lèi),它允許使用接口名作為引用變量的類(lèi)型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉換到接口類(lèi)型或從接口類(lèi)型轉換,instanceof 運算符可以用來(lái)決定某對象的類(lèi)是否實(shí)現了接口。
6.面向對象的特征有哪些方面?
1.抽象:
抽象就是忽略一個(gè)主題中與當前目標無(wú)關(guān)的那些方面,以便更充分地注意與當前目標有關(guān)的方面。抽象并不打算了解全部問(wèn)題,而只是選擇其中的一部分,暫時(shí)不用部分細節。抽象包括兩個(gè)方面,一是過(guò)程抽象,二是數據抽象。
2.繼承:
繼承是一種聯(lián)結類(lèi)的層次模型,并且允許和鼓勵類(lèi)的重用,它提供了一種明確表述共性的方法。對象的一個(gè)新類(lèi)可以從現有的類(lèi)中派生,這個(gè)過(guò)程稱(chēng)為類(lèi)繼承。新類(lèi)繼承了原始類(lèi)的特性,新類(lèi)稱(chēng)為原始類(lèi)的派生類(lèi)(子類(lèi)),而原始類(lèi)稱(chēng)為新類(lèi)的基類(lèi)(父類(lèi))。派生類(lèi)可以從它的基類(lèi)那里繼承方法和實(shí)例變量,并且類(lèi)可以修改或增加新的方法使之更適合特殊的需要。
3.封裝:
封裝是把過(guò)程和數據包圍起來(lái),對數據的訪(fǎng)問(wèn)只能通過(guò)已定義的界面。面向對象計算始于這個(gè)基本概念,即現實(shí)世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過(guò)一個(gè)受保護的接口訪(fǎng)問(wèn)其他對象。
4. 多態(tài)性:多態(tài)性是指允許不同類(lèi)的對象對同一消息作出響應。多態(tài)性包括參數化多態(tài)性和包含多態(tài)性。多態(tài)性語(yǔ)言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應用程序函數同名
7.java中如何跳出當前多重循環(huán)?
用break; return 方法.
8.說(shuō)出一些常用的類(lèi)、包和接口,各舉5個(gè)
類(lèi) String Integer Long File Date
包 java.lang.*;java.io.*;java.util.*;java.swt.*;
java.math.*;
接口: Comparable ,Connection,Map,List,Runable,
9.String類(lèi)是否可以被繼承?填空并上機調試
public class test2
{
public static void main(String args[])
{
int aa[]=new int[15];
System.out.println(“before entering method:”);
for(int i=0;i<5;i++)
System.out.println(“aa[“+i+”]=”+___________);
__________________;
System.out.println(“after method:”);
for(int i=0;i<5;i++)
System.out.println(“aa[“+i+”]=”+aa[i]);
}
Static void test( int [] x)
{
int i=10;
System.out.println(“in mathod:”);
for(;i<15;i++)
{
x[i-10]+=i;
System.out.println(“x[“+(i-10)+”]=”+x[i-10]);
}
}
}
運行結果:
String類(lèi)是final類(lèi)故不可以繼承.
10.填空并上機調試
public class Father
{ int a=100;
public void miner()
{
a--;
}
public static void main(String args[])
{ Father x=________________;
son y=new son();
System.out.println(“The a of son is:”+y.a);
System.out.println(“The a of son’s super is:”+_________________);
y.miner();
System.out.println(“The a of son is:”+y.a);
System.out.println(“The a of son’s super is:”+y.gerA());
}
}
class son_____________________Father
{
int a=0;
public void plus()
{
a++;
}
public int getA()
{
_____________________;
}
}
Java期末考試判斷題集錦
1 . Java 程序里 , 創(chuàng )建新的類(lèi)對象用關(guān)鍵字 new ,回收無(wú)用的類(lèi)對象使用關(guān)鍵字 free 。
2 .對象可以賦值,只要使用賦值號(等號)即可,相當于生成了一個(gè)各屬性與賦值對象相同的新對象。
3 .有的類(lèi)定義時(shí)可以不定義構造函數,所以構造函數不是必需的。
4 .類(lèi)及其屬性、方法可以同時(shí)有一個(gè)以上的修飾符來(lái)修飾。
5 . Java 的屏幕坐標是以像素為單位,容器的左下角被確定為坐標的起點(diǎn)
6 .抽象方法必須在抽象類(lèi)中,所以抽象類(lèi)中的方法都必須是抽象方法。
7 . Final 類(lèi)中的屬性和方法都必須被 final 修飾符修飾。
8 .最終類(lèi)不能派生子類(lèi),最終方法不能被覆蓋。
9 .子類(lèi)要調用父類(lèi)的方法,必須使用 super 關(guān)鍵字。
10 .一個(gè) Java 類(lèi)可以有多個(gè)父類(lèi)。
11 .如果 p 是父類(lèi) Parent 的對象,而 c 是子類(lèi) Child 的對象,則語(yǔ)句 c = p 是正確的。
12 .一個(gè)類(lèi)如果實(shí)現了某個(gè)接口,那么它必須重載該接口中的所有方法。
13 .當一個(gè)方法在運行過(guò)程中產(chǎn)生一個(gè)異常,則這個(gè)方法會(huì )終止,但是整個(gè)程序不一定終止運行。
14 .接口是特殊的類(lèi),所以接口也可以繼承,子接口將繼承父接口的所有常量和抽象方法。
15 .用“ + ”可以實(shí)現字符串的拼接,用 - 可以從一個(gè)字符串中去除一個(gè)字符子串。
16 .使用方法 length( ) 可以獲得字符串或數組的長(cháng)度。
17 .設 String 對象 s=”Hello ” ,運行語(yǔ)句 System.out.println(s.concat(“World!”)); 后 String 對象 s 的內容為 ”Hello world!” ,所以語(yǔ)句輸出為Hello world!
18 .創(chuàng )建 Vector 對象時(shí)構造函數給定的是其中可以包容的元素個(gè)數,使用中應注意不能超越這個(gè)數值。
19 .所有的鼠標事件都由 MouseListener 監聽(tīng)接口的監聽(tīng)者來(lái)處理。
20 .一個(gè)容器中可以混合使用多種布局策略。
21 . Java 中,并非每個(gè)事件類(lèi)都只對應一個(gè)事件。
22 .一個(gè)線(xiàn)程對象的具體操作是由 run() 方法的內容確定的,但是 Thread 類(lèi)的 run() 方法是空的 , 其中沒(méi)有內容 ; 所以用戶(hù)程序要么派生一個(gè) Thread 的子類(lèi)并在子類(lèi)里重新定義 run() 方法 , 要么使一個(gè)類(lèi)實(shí)現 Runnable 接口并書(shū)寫(xiě)其中 run() 方法的方法體。
23 . Java 的源代碼中定義幾個(gè)類(lèi),編譯結果就生成幾個(gè)以 .class 為后綴的字節碼文件。
24 . Java Applet 是由獨立的解釋器程序來(lái)運行的。
25 . Java Applet 只能在圖形界面下工作。
26 . Java 的字符類(lèi)型采用的是 ASCII 編碼。
27 . Java 的各種數據類(lèi)型占用固定長(cháng)度,與具體的軟硬件平臺環(huán)境無(wú)關(guān)
28 . Applet 是一種特殊的 Panel ,它是 Java Applet 程序的最外層容器。
29 .子類(lèi)的域和方法的數目一定大于等于父類(lèi)的`域和方法的數目。
30 . System 類(lèi)不能實(shí)例化,即不能創(chuàng )建 System 類(lèi)的對象。
31 .用戶(hù)自定義的圖形界面元素也可以響應用戶(hù)的動(dòng)作,具有交互功能
32 . Java 中數組的元素可以是簡(jiǎn)單數據類(lèi)型的量,也可以是某一類(lèi)的對象。
33 . Vector 類(lèi)中的對象不能是簡(jiǎn)單數據類(lèi)型。
34 . Java 中的 String 類(lèi)的對象既可以是字符串常量,也可以是字符串變量。
35 .容器是用來(lái)組織其他界面成分和元素的單元,它不能嵌套其他容器。
【java語(yǔ)言期末考試試題答案】相關(guān)文章:
JAVA題庫:JAVA面試題目整理07-11
在中國有哪些核心業(yè)務(wù)使用java語(yǔ)言的互聯(lián)網(wǎng)企業(yè)?07-10
Java實(shí)習報告09-20
華為的JAVA筆試題07-11
華為Java筆試題07-11
Java面試題07-12
java實(shí)訓報告04-15
java實(shí)訓總結11-18
java實(shí)習報告模板11-08