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