日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《JAVA语言程序设计》期末考试试题及答案

發布時間:2024/1/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《JAVA语言程序设计》期末考试试题及答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 《JAVA語言程序設計》期末考試試題及答案1(應考必備題庫)
      • 一、單選擇題
      • 二、填空題
      • 三、寫出下面程序的運行結果
    • 《JAVA語言程序設計》期末考試試題及答案2(應考必備題庫)
      • 一.判斷題
      • 二.單項選擇題
      • 三.程序閱讀題
      • 四.閱讀以下程序,寫出輸出結果。
    • 《JAVA語言程序設計》期末考試試題及答案3(應考必備題庫)
      • 一、單項選擇題
      • 二、填空題
      • 三、程序閱讀題
      • 四、簡答題
    • 《JAVA語言程序設計》期末考試試題及答案4(應考必備題庫)
      • 一、 單選題
      • 二、程序閱讀題
    • 《JAVA程序設計》期末考試試題 (五)
      • 一、 單選題
      • 二、程序閱讀題
    • 《JAVA程序設計》期末考試試題 (六)
      • 一、填空題
      • 二、選擇題
      • 三、程序填空題
    • 《JAVA程序設計》期末考試試題 (七)
      • 一、選擇題
      • 二.讀程序題
      • 三 . 簡答題

《JAVA語言程序設計》期末考試試題及答案1(應考必備題庫)

一、單選擇題

1、編譯Java Application 源程序文件將產生相應的字節碼文件,這些字節碼文件的擴展名為( B )。
A. java B. .class
C. html D. .exe
2、設 x = 1 , y = 2 , z = 3,則表達式 y+=z--/++x 的值是( A )。

A. 3 B. 3. 5
C. 4 D. 5

z-- 先返回值在運算,故:返回值是3,z的值變為2 ++x 先運算再返回值,故:x值變2,返回2; 3/2整形數據范圍內的計算,返回1; y +=1 y = 3; 返回y = 3.

3、不允許作為類及類成員的訪問控制符的是( C )。
A. public B. private
C. static D. protected
4、為AB類的一個無形式參數無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調用它,該方法頭的形式為( A )。
A. static void method( ) B. public void method( )
C. final void method( ) D. abstract void method( )
5、給定java 代碼如下,編譯運行后,輸出結果是(C )。

public class test { static int i; public int aMethod() { i++; return i; } public static void main (String args[]) { Test test=new Test() ; test.aMethod () ; System.out.println (test.aMethod()) ; } } //int初始值為0,aMethod調用了兩次所以結果為2

a) 0 b) 1 c) 2 d) 3
6、如下哪個是合法的Java中的標識符( A )。
A、fieldname B、super C、3number D、#number
7、下面的代碼段執行之后count的值是什么( D)。

int count = 1; for (int i = 1; i <= 5; i++) {//第一次i出去是1count += i;} System.out.println(count);

A、5 B、1 C、15 D、16
8、下列哪一個import命令可以使我們在程序中創建輸入/輸出流對象( C )。
A、import java.sql.; B、import java.util.;
C、import java.io.; D、import java.net.;
9、下列程序段執行后的結果是(A )。

str.charAt(i)的意思是第i個字符在字符串str中所占的位置 length() 返回字符串的長度 String s = new String("abcdefg"); for (int i=0; i<s.length(); i+=2){//i第一次輸出的值是0System.out.print(s.charAt(i));}

A) aceg B) ACEG C) abcdefg D) abcd
10.Java“一次編譯,隨處運行”的特點在于其( A )
A.跨平臺性 B.面向對象型 C.多線程性 D.安全性
11.下列有關類、對象和實例的敘述,正確的是( B)
A.類就是對象,對象就是類,實例是對象的另一個名稱,三者沒有差別
B.類是對象的抽象,對象是類的具體化,實例是對象的另一個名稱
C.對象是類的抽象,類是對象的具體化,實例是對象的另一個名稱
D.類是對象的抽象,對象是類的具體化,實例是類的另一個名稱
12.下列( D )不是面向對象程序設計方法的特點。D
A.封裝 B.繼承 C.多態 D.結構化
13.下列哪個屬于容器的構件(B )?
A.JFrame B.JButton C.JPanel D.JApplet
B)JButton屬于容器的構件,容器是用來存放構件的,而構件必須要放在容器上才能顯示起作用
如果只創建出一個JButton來,沒有任何意義,只有放在其它三項的容器里面,才能看到使用
14.下列有關父類屬性和方法繼承規則的描述錯誤的是( A )
A.父類中private修飾的屬性和方法在子類中不被繼承
B.父類中public修飾的屬性和方法在子類中被繼承且可訪問
C.父類中protected修飾的屬性和方法在子類中被繼承且可訪問
D.父類中default修飾的屬性和方法在之類中被繼承,若父類和子類在同一個包中,則也可訪問

二、填空題

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

編輯源程序 、編譯生成字節碼 和 解釋運行字節碼 。

2、在Java的基本數據類型中,char型采用Unicode編碼方案,每個Unicode碼占
用 2 字節內存空間,這樣,無論是中文字符還是英文字符,都是占
用 2 字節內存空間。
3、設 x = 2 ,則表達式 ( x + + )/3 的值是 0 。
4、若x = 5,y = 10,則x < y和x >= y的邏輯值分別為 true 和 false 。
5、 抽象(abstract) 方法是一種僅有方法頭,沒有具體方法體和操作實現的方法,該方法必須在抽象類之中定義。 最終(final) 方法是不能被當前類的子類重新定義的方法。
6、創建一個名為 MyPackage 的包的語句是package MyPackage ; ,
該語句應該放在程序的位置為: 應該在程序第一句 。
7、設有數組定義:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 則執行以下幾個語句后的輸出結果是 120 。

int s = 0 ;for (int i = 0 ; i < MyIntArray.length ; i + + )if ( i % 2 = = 1 ) s += MyIntArray[i] ;System.out.println(s);

8、在Java程序中,通過類的定義只能實現 單 重繼承,但通過接口的定義可以實現 多 重繼承關系。
9、面向對象的軟件開發方法用類把(數據)和基于數據的(操作)封裝在一起。
10、在Java語言中,用來分配內存的運算符是 new 。
11、接口中的方法只能是_____抽象方法________。
12、javax.swing包中的 JMenu 類是負責創建菜單的,它的一個實例就是一個菜單。

三、寫出下面程序的運行結果

1import 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;public AB(String str1, String str2){ s1 = str1; s2 = str2; }public String toString( ){ return s1+s2; } }

運行結果:Hello! I love JAVA.

2import 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);}}

運行結果:s = 180

3class Parent {String one, two;public Parent(String a, String b){one = a;two = b;}public void print(){ System.out.println(one); }}public class Child extends Parent {public Child(String a, String b){super(a,b);}public void print(){System.out.println(one + " to " + two);}public static void main(String args[]){Parent p = new Parent("south", "north");Parent t = new Child("east", "west");p.print();t.print();}}

運行結果 south
east to west
四、編程題
1、編寫Java GUI應用程序,完成從鍵盤輸入矩形的長和寬,求矩形的周長和面積并輸出結果的功能,如下圖所示。

答:

import javax.swing.JOptionPane; public class Rect { public static void main(String args[]) {String s;double length,width,girth,area;s = JOptionPane.showInputDialog("輸入矩形的長:");length = Double.parseDouble(s);s = JOptionPane.showInputDialog("輸入矩形的寬:");width = Double.parseDouble(s);girth = (length + width) * 2;area = length * width;JOptionPane.showMessageDialog(null,"周長為:" + girth + "\n" + "面積為:" + area); } }

2、用Java Application編寫一個程序,輸出你的班級和姓名。
答:

public class HelloJava { //類定義正確3分public static void main(String[] args) {//2分System.out.println("學號=2013001,姓名=張三");//5分} }

《JAVA語言程序設計》期末考試試題及答案2(應考必備題庫)

一.判斷題

1.在異常處理中,若try中的代碼可能產生多種異常則可以對應多個catch語句,若catch中的參數類型有父類子類關系,此時應該將父類放在后面,子類放在前面。( √ )
2.子類只能繼承父類的public,protected和同一個包中的package級的成員。( √ )
3.在類中實現一個接口,則一定要實現接口中的所有方法。( × )
4.抽象方法不僅有方法頭,還應該有方法體。( × )
擁有abstract方法的類是抽象類,但抽象類中可以沒有abstract方法。
5.在比較str1和str2兩個字符串對象值是否相等時使用語句str1==str2。( √ )
6.Java的源代碼中定義幾個類,編譯結果就生成幾個以.class為后綴的字節碼文件。(√ )
7.Java程序里,創建新的類對象用關鍵字new,回收無用的類對象使用關鍵字free。 (× )
java自動回收機制
8.構造函數用于創建類的實例對象,構造函數名應與類名相同,返回類型為void。 (× )
構造函數無返回值
9.如果源文件包含import語句,則該語句必須是除空行和注釋行外的第一個語句行。( √ )
10.擁有abstract方法的類是抽象類,但抽象類中可以沒有abstract方法。 (√ )
11.靜態初始化器是在其所屬的類加載內存時由系統自動調用執行。 (√ )
12.在Java中對象可以賦值,只要使用賦值號(等號)即可,相當于生成了一個各屬性與賦值對象相同的新對象。 (× )
13.Java applet也能夠存取客戶機磁盤上的文件。( √ )
14.進程是程序的一次動態執行過程。一個進程在其執行過程中,可以產生多個線程——多線程,形成多條執行線索。( √ )

二.單項選擇題

1.Java application中的主類需包含main方法,以下哪項是main方法的正確形參?( B)
A、 String args B、String args[] C、Char arg D、StringBuffer args[]
2.以下關于繼承的敘述正確的是(A )。
A、在Java中類只允許單一繼承
B、在Java中一個類只能實現一個接口
C、在Java中一個類不能同時繼承一個類和實現一個接口
D、在Java中接口只允許單一繼承
3.paint()方法使用哪種類型的參數? (A )
A、Graphics B、Graphics2D C、String D、Color
4.以下哪個不是Java的原始數據類型( B )
A、int B、Boolean C、float D、char
5.若需要定義一個類域或類方法,應使用哪種修飾符?( A )
A、static B、package C、private D、public
6.在瀏覽器中執行applet 程序,以下選項中的哪個方法將被最先執行( A )。
A、init() B、start() C、destroy() D、stop()
7.有以下程序片段,下列哪個選項不能插入到行1。( D )
1.
2 .public class Interesting{
3. //do sth
4.}
A、import java.awt.; B、package mypackage;
C、class OtherClass{ } D、public class MyClass{ }
8. 設有下面兩個賦值語句:
a = Integer.parseInt(“12”);
b = Integer.valueOf(“12”).intValue();
下述說法正確的是( D )。
A、a是整數類型變量,b是整數類對象。
B、a是整數類對象,b是整數類型變量。
C、a和b都是整數類對象并且值相等。
D、a和b都是整數類型變量并且值相等。
9.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父類,以下哪個類可能是FilterOutputStream構造函數的參數類型?(A)
A、OutputStream B、File
C、InputStream D、BufferedOutputStream
10.在編寫Java Applet程序時,需在程序的開頭寫上( B )語句。
A、import java.awt. ; B、import java.applet.Applet ;
C、import java.io.* ; D、import java.awt.Graphics ;
11.在使用interface聲明一個接口時,只可以使用( D )修飾符修飾該接口。
A、private B、protected C、private protected D、public
12.Java源文件和編譯后的文件擴展名分別為( B )
A.class 和java B.java 和class C.class和class D.java和java
13.下列說法中,不正確的一項是(B )
A.Java程序只有兩類:Application和Applet
B.類的方法只能由public修飾
C.面向對象的程序設計的優點有可重用性、可擴展性、可管理性
D.Java語言通過接口支持多重繼承
14.main(B)方法是Java Application程序執行的入口點,關于main()方法的方法頭,下面( )是合法的。
A.public static void main ()
B.public static void main (String args[ ])
C.public static int main (String [ ] args)
D.public void main (String args[ ])
15.在類中若要處理ItemEvent事件,則該類需要實現的接口是(A )
A.ItemListener B.ActionListener C. itemStateChanged D. Event
16.將GUI窗口中的組件按照從左到右如打字式排列的布局管理器是( A )
A.FlowLayout B.BorderLayout C.GirdLayout D.CardLayout

三.程序閱讀題

1.以下程序的輸出結果為 相等 。

class StringTest1 {public static void main(String[] args) {String s1="hello";String s2=new String("hello");if(s1.equals(s2)){System.out.println("相等");}else{System.out.println("不相等");}} }

2.以下程序段的輸出結果為 5 6 7 8 9 。

public class TestArray {public static void main(String args[ ]){ int i , j ;int a[ ] = { 5,9,6,8,7};for ( i = 0 ; i < a.length-1; i ++ ) {int k = i;for ( j = i ; j < a.length ; j++ )if ( a[j]<a[k] ) k = j;int temp =a[i];a[i] = a[k];a[k] = temp;}for ( i =0 ; i<a.length; i++ )System.out.print(a[i]+" ");System.out.println( );} }

3.寫出以下程序的功能。

import java.io.*; public class TestFile {public static void main(String args[]) throws Exception{BufferedReader br = new BufferedReader( new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new FileWriter(“input.txt"));String s;while (true){System.out.print("請輸入一個字符串: ");System.out.flush();s=br.readLine();if (s.length()==0) break;bw.write(s);bw.newLine();}bw.close();} }

功能:從鍵盤逐一輸入字符串,逐一輸出至input.txt文件中,直至輸入空行。

四.閱讀以下程序,寫出輸出結果。

class Animal {Animal() {System.out.print ("Animal "); } } public class Dog extends Animal {Dog() {System.out.print ("Dog "); }public static void main(String[] args) {Dog snoppy= new Dog(); } }

輸出結果:Animal Dog

《JAVA語言程序設計》期末考試試題及答案3(應考必備題庫)

一、單項選擇題

1、如下哪個是Java中的標識符(D)
A、public B、super C、3number D、width
2、如下哪個是Java中的標識符( A)
A、fieldname B、super C、3number D、#number
3、已知如下定義:String s = “story”; 下面哪個語句不是合法的(C )
A、s += “books”; B、s = s + 100;
C、int len = s.length; D、String t = s + “abc”;
4、如下哪個是Java中有效的關鍵字(C )
A、name B、hello C、false D、good
5、下面的代碼段執行之后count的值是什么( D )

int count = 1;for (int i = 1; i <= 5; i++) {count += i;}System.out.println(count);

A、5 B、1 C、15 D、16
6、定義一個類,必須使用的關鍵字是(B )
A、public B、class C、interface D、static
7、定義一個接口必須使用的關鍵字是(C )
A、public B、class C、interface D、static
8、如果容器組件p的布局是BorderLayout,則在p的下邊中添加一個按鈕b,應該使用的語句是( C)
A、p.add(b); B、p.add(b,“North”);
C、p.add(b,“South”); D、b.add(p,“North”);
9、聲明并創建一個按鈕對象b,應該使用的語句是( A )
A、Button b=new Button(); B、button b=new button();
C、Button b=new b(); D、b.setLabel(“確定”);
10、Frame對象默認的布局管理器是( B )
A、FlowLayout B、BorderLayout
C、CardLayout D、null
11、下列哪一個import命令可以使我們在程序中創建輸入/輸出流對象(C)
A、import java.sql.; B、import java.util.;
C、import java.io.; D、import java.net.;
12、下面哪一個import命令可以為我們提供編寫網絡應用程序的類(D)
A、import java.sql.; B、import java.util.;
C、import java.io.; D、import java.net.;
13、如果需要從文件中讀取數據,則可以在程序中創建哪一個類的對象(A)
A、FileInputStream B、FileOutputStream
C、DataOutputStream D、FileWriter
14、在編寫Java Applet程序時,需在程序的開頭寫上( B)語句。
A、import java.awt.* ; B、import java.applet.Applet ;
C、import java.io.* ; D、import java.awt.Graphics ;
15、如何在框架(Frame)中顯示標題?(C )
A、調用根窗格的set Title 函數顯示
B、調用內容窗格的setTitle函數顯示
C、調用框架對象的setTitle函數顯示
D、調用框架對象的Border對象的setTitle函數顯示
16、下列各種java中的構造函數定義,那種形式是錯誤的構造函數定義( C)。

A 、 class MyClass { public MyClass() { } } B、 class MyClass { public MyClass(int X) { } } C、 class MyClass { public int MyClass() { } } D、 class MyClass { public MyClass(int x, int y) { } }

17、Java屬于( A )型語言。
A.解釋 B.編譯 C.多線程性 D.安全性
18、下列哪項不是Java語言中所規定的注釋樣式?( B)
A.//單行注釋 B.–單行注釋
C./* D./**
*多行注釋 *文檔注釋
*/ */

1, // 注釋一行 2, /* ...... */ 注釋若干行 3, /**……*/文檔注釋

19、以下關于抽象類和接口的說法正確的是( B )。
A.抽象類可以用來定義接口 B.定義抽象類時需要abstract
C.抽象類中的所有方法都是具體的 D.抽象類可以是對接口的實現
20、Applet可以做下列哪些操作( D)?
A.讀取客戶端文件  B.在客戶端主機上創建新文件
C.在客戶端裝載程序庫  D.讀取客戶端部分系統變量
21、下列說法中,錯誤的一項是( D )
A.在Java中,若要處理某類事件,必須定義相關的事件處理類
B.在對事件源實例化之后,要注冊相應事件的監聽器
C.事件處理類必須實現與該類事件相對應的監聽器接口
D.事件源通常是一個構件,也稱做監聽器
22、下列哪項是不能改變線程狀態的方法?(C )
A.start( ) B.sleep( ) C.main( ) D.stop( )

二、填空題

1、如果將類MyClass聲明為public,它的文件名稱必須是(MyClass.java)才能正常編譯。
2、Java程序中的單行注釋符是( // ),多行注釋符是( /* */ )。

1, // 注釋一行 2, /* ...... */ 注釋若干行 3, /**……*/文檔注釋

3、Java中布爾類型的常量有兩種,它們是(true)和(false)。
4、Java中用于定義小數的關鍵字有兩個:(float) 和 (double),后者精度高于前者。
5、Java中用于兩個數相等比較的運算符是:(==),用于不相等比較的運算符是(<>)。
6、在Java中定義一個字符串類型的變量str的語句是:(String str;) ,定義一個具有10個元素的整型數組a的語句是:(int[ ] arr = new int[10];) 。
7、導入mypackage包中的所類的命令是( import mypackage.*; )。
8、當聲明一個數組int arr[] = new int[5]; 時,這代表這個數組所保存的變量類型是(int),數組名是(arr),數組的大小為(5),數組元素下標的使用范圍是(0到4)。
9、假設x=13,y=4,則表達式x%y != 0的值是(true),其數據類型是(boolean)。
10、異常處理是由(try)、(catch)和finally塊三個關鍵所組成的程序塊。
11、以下程序段的輸出結果是(三角形)

int x = 5, y = 6, z = 4;if (x + y > z && x + z > y && z + y > x)System.out.println("三角形");elseSystem.out.println("不是三角形");

12、下面程序段的執行結果是(6 5 4 3 2)

int a[] = { 2, 3, 4, 5, 6 };for (int i = a.length - 1; i >= 0; i--)//這里的a表示你上面定義的那個整型一維數組,然后a.length表示a數組的長度,第一次i出去是4所以a【4】=6System.out.print(a[i] + "");

13、定義類的保留字是( class ),定義接口的保留字是( interface )。
14、構造方法是一種特殊的成員方法,構造方法名與( 類名 ) 相同。
15、Java語言只允許單繼承,指每個類只能有一個 ( 父類 ) ,但通過接口的定義可以實現( 多重 ) 繼承關系。
16、在Java中,抽象類不能 被實例化 。
17、在Java中,為了能監視到ActionEvent類型的事件,事件源必須使用 addActionListener( ) 方法獲得監視器。
18、利用DriverManager類的 getConnection(String url)靜態方法創建數據庫連接。

三、程序閱讀題

1、以下程序的輸出結果為_ Peter is 17 years old!___。

public class Person {String name;int age;public Person(String name, int age) {this.name = name;this.age = age;}public static void main(String[] args) {Person c = new Person("Peter", 17);System.out.println(c.name + " is " + c.age + " years old!");} }

2、閱讀以下程序,輸出結果為 90and10

public class ClassA {public int a; } class ClassB extends ClassA {public String b="and"; } class ClassC extends ClassB { public int c;public static void main(String[] args) {ClassC cc=new ClassC();cc.a=90;cc.c=10;System.out.println(cc.a+cc.b+cc.c);}}

3、以下程序的輸出結果為__課程號:101 課程名:ASP 學分:3___。

public class Course {private String cNumber;private String cName;private int cUnit;public Course(String number, String name, int unit) {cNumber = number;cName = name;cUnit = unit;}public void printCourseInfo() {System.out.println("課程號:" + cNumber + " 課程名:" + cName + " 學分:" + cUnit);} }class CourseTest {public static void main(String[] args) {Course c;c = new Course("101", "ASP", 3);c.printCourseInfo();} }

4、以下程序的輸出結果為__湯姆貓體重:20.0斤___。

public class Tom {private float weight;private static String name;public void setWeight(float weight) {this.weight = weight;}private void out() {System.out.println(name + "體重:" + weight + "斤");}public static void main(String[] args) {Tom.name = "湯姆貓";Tom cat = new Tom();cat.setWeight(20);cat.out();} }

5、以下程序的輸出結果_姓名:Tom 年齡:15 家庭住址:金水區 電話:66123456 學校:九中_。

public class Father {String name, address, tel;int age;public Father(String name, int age) {this.name = name;this.age = age;}void out() {System.out.print("姓名:" + name);System.out.print(" 年齡:" + age);}void outOther() {System.out.print(" 家庭住址:" + address);System.out.print(" 電話:" + tel);} }class Son extends Father {String school;public Son(String name, int age) {super(name, age);}void out() {super.out();super.outOther();System.out.println(" 學校:" + school);}public static void main(String args[]) {Son son = new Son("Tom", 15);son.address = "金水區";son.school = "九中";son.tel = "66123456";son.out();} }

6、下列程序的運行結果是__12345____。

public class MyClass {int a[] = { 1, 2, 3, 4, 5 };void out() {for (int j = 0; j < a.length; j++)System.out.print(a[j] + "");}public static void main(String[] args) {MyClass my = new MyClass();my.out();} }

四、簡答題

1、簡述Java中異常處理的機制?

答:首先Java的異常是面向對象的。一個Java的Exception是一個描述異常情況的對象.當出現異常情況時,一個Exception對象就產生了,并放到異常的成員函數里。 Java的異常處理是通過5個關鍵詞來實現的:try,catch,throw,throwsfinally1.異常處理:在Java語言的錯誤處理結構由trycatchfinally三個塊組成。其中try塊存放將可能發生異常的Java語言,并管理相關的異常指針;catch塊緊跟在try塊后面,用來激發被捕獲的異常;finally塊包含清除程序沒有釋放的資源,句柄等。不管try塊中的代碼如何退出,都將執行 finally塊。 2.拋出異常:Java語言可以不在方法中直接捕獲,而用throw語句將異常拋給上層的調用者。Throw語句就是來明確地拋出一個異常;首先你必需得到一個Throwable的實例句柄,通過參數傳到catch中,或者采用new操作符來創建一個。

2、什么是繼承?

答:通過必要的說明能夠實現某個類無需重新定義就擁有另一個類的某些屬性和方法,并把這種關系稱為繼承,先定義的類稱為父類,后定義的類稱為子類,并且允許多層的繼承關系。

3、請簡述重載和重寫的區別?

答:方法的重寫Overriding和重載Overloading是Java多態性的不同表現。 重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。 如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。 如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。

4、Java 規定類中的成員變量和方法具有4種訪問控制符?哪四種?請列出。

答:Public、protectedprivatedefault

5、什么是實例變量和類變量及他們的區別?

答:用修飾符static說明的變量是類變量,其他是實例變量。不同對象的實例變量將分配不同的內存空間。所有對象的類變量都分配給相同的一處內存,改變其中一個對象的類變量的值,會影響其他對象的這個類變量的值。

6、用abstract修飾符修飾的類和方法有什么特點?

答:用abstract修飾的類不能創建對象,必須產生子類,有子類創建對象 用abstract修飾的方法只允許聲明,而不允許實現。 如果一個類是一個abstract類的子類,它必須實現父類的abstract方法。

五、程序設計題
1、按以下要求編寫程序
(1) 創建一個Rectangle類,添加width和height兩個成員變量
(2) 在Rectangle中添加兩種方法分別計算矩形的周長和面積
(3) 編程利用Rectangle輸出一個矩形的周長和面積
解答:

public class Rectangle {float width, height;public Rectangle(float width, float height) {this.width = width;this.height = height;}public float getLength(){return (this.width + this.height) * 2;}public float getArea(){return this.width * this.height;}public static void main(String [] args) {Rectangle rect = new Rectangle(10, 20);System.out.println("周長是:" + rect.getLength());System.out.println("面積是:" + rect.getArea());} }

2、按以下要求編寫程序
(1) 編寫Animal接口,接口中聲明run() 方法
(2) 定義Bird類和Fish類實現Animal接口
(3) 編寫Bird類和Fish類的測試程序,并調用其中的run()方法
解答:

public interface Animal {void run(); }class Bird implements Animal {public void run() {System.out.println("鳥兒在飛...");} }class Fish implements Animal {public void run() {System.out.println("魚兒在游...");} }public class TestAnimal {public static void main(String[] args) {Bird bird = new Bird();bird.run();Fish fish = new Fish();fish.run();} }

3、編寫一個Frame框架應用程序,要求如下:
(1) 在窗口設置兩個菜單“文件”、“編輯”
(2) 在“文件”菜單里添加三個菜單項“打開”、“保存”、“關閉”
(3) 在“編輯”菜單里添加兩個菜單項“復制”、“粘貼”
(4) 點擊關閉菜單項時,使程序關閉。
解答:

import java.awt.Color; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; /** 主窗體*/ public class MyFrame extends Frame {private static final long serialVersionUID = 6895463895656626294L;private Frame frmMain; // 窗體MenuBar mb; // 菜單欄Menu mnuFile; // "文件"菜單Menu mnuEdit; // "編輯"菜單MenuItem miOpen; // "打開"菜單項MenuItem miSave; // "保存"菜單項MenuItem miClose; // "關閉"菜單項MenuItem miCopy; // "復制"菜單項MenuItem miPaste; // "粘貼"菜單項public MyFrame() {frmMain = new Frame("主窗體");// 創建菜單欄mb = new MenuBar();// 創建菜單mnuFile = new Menu("文件");mnuEdit = new Menu("編輯");// 創建菜單項miOpen = new MenuItem("打開");miSave = new MenuItem("保存");miClose = new MenuItem("關閉");miCopy = new MenuItem("復制");miPaste = new MenuItem("粘貼");}public void showFrame() {frmMain.setSize(800, 600);frmMain.setLocation(100, 100);frmMain.setBackground(Color.white);frmMain.setVisible(true);frmMain.setLayout(null);frmMain.addWindowListener(new WindowHandler()); // 注冊窗口監聽器// 將菜單欄放入窗體中frmMain.setMenuBar(mb);// 將菜單放入菜單欄中mb.add(mnuFile);mb.add(mnuEdit);// 將菜單項放入菜單中mnuFile.add(miOpen);mnuFile.add(miSave);mnuFile.add(miClose);mnuEdit.add(miCopy);mnuEdit.add(miPaste);// 注冊動作事件監聽器miClose.setActionCommand("miClose_Clicked");miClose.addActionListener(new MenuHandler());}// 定義一個內部類,在這個類中編寫窗口關閉事件處理程序。private class WindowHandler extends WindowAdapter {public void windowClosing(WindowEvent e) {System.exit(0); // 退出應用程序,狀態碼 0 表示正常終止,非 0 表示異常終止。}}// 定義一個內部類,在這個類中編寫動作事件處理程序。private class MenuHandler implements ActionListener {public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "miClose_Clicked") {System.exit(0); // 退出應用程序}}} }public class TestMyFrame {public static void main(String[] args) {// 啟動主窗體MyFrame guiWindow = new MyFrame();guiWindow.showFrame();} }

《JAVA語言程序設計》期末考試試題及答案4(應考必備題庫)

一、 單選題

1、下列程序段執行后的結果是( A )。

String s = new String("abcdefg"); for (int i=0; i<s.length(); i+=2){System.out.print(s.charAt(i)); }

A) aceg B) ACEG C) abcdefg D) abcd
2、有整型數組:int[] x={12,35,8,7,2};,則調用方法Arrays.sort(x)后,數組x中的元素值依次是( A ).
A) 2 7 8 12 35 B) 12 35 8 7 2
C) 35 12 8 7 2 D) 8 7 12 35 2

Arrays.sort(x)按升序排列

3、下面的程序段創建了BufferedReader類的對象in,以便讀取本機c盤my文件夾下的文件1.txt。File構造函數中正確的路徑和文件名的表示是( C )。
File f = new File(填代碼處);
file =new FileReader(f);
in=new BufferedReader(file);
A) “./1.txt” B) “…/my/1.txt” C) "c:\\my\\1.txt" D) “c:\ my\1.txt”
4、應用程序的main方法中有以下語句,則輸出的結果是 ( A )。

String s1=new String("abc");String s2=new String("abc"); boolean b1=s1.equals(s2);boolean b2=(s1==s2); System.out.print(b1+" "+b2);

A)true false B) false true C) true true D)false false
5、應用程序的main方法中有以下語句,則輸出的結果是 (B )。

Hashtable hashtable=new Hashtable();hashtable.put("x","12345");hashtable.put("y","67890");hashtable.put("a","abcde"); System.out.println(hashtable.get("a"));

A) a B) abcde C) 12345 D) 67890
6、下面語句的功能是( A)。

RandomAccessFile raf2 = new RandomAccessFile("1.txt","rw" );

A)打開當前目錄下的文件1.txt,既可以向文件寫數據,也可以從文件讀數據。
B)打開當前目錄下的文件1.txt,但只能向文件寫入數據,不能從文件讀取數據。
C)打開當前目錄下的文件1.txt,但不能向文件寫入數據,只能從文件讀取數據。
D) 以上說法都不對。
7、應用程序的main方法中有以下語句,則輸出的結果是 B( )。

String s="12345#aaa#bbb#67890";int n=s.indexOf("#");int k=s.indexOf("#",n+1);int m=s.indexOf("#",k+1);String s2=s.substring(m+1);System.out.println(s2);

A) 123456 B) 67890 C) aaa D) bbb
8、下面程序段執行后b的值是(B )。

Integer integ =new Integer(9)boolean b = integ instanceof Object;

A) 9 B) true C) 1 D) false
9、應用程序Test.java的源程序如下,在命令行鍵入:
java Test aaa bb c
回車后輸出的結果是 ( A )。

public class Test {public static void main(String args[]) {int k1=args.length;int k2=args[1].length(); System.out.print(k1+" "+k2); } } //args.length表示傳入參數的個數

A) 3 2 B)1 2 C) 1 3 D) 3 3
10、應用程序的main方法中有以下語句,則輸出的結果是 ( A )。

int b[][]={{1}, {2,2}, {2,2,2}};int sum=0;for(int i=0;i<b.length;i++) { for(int j=0;j<b[i].length;j++) {sum*=b[i][j];} }System.out.println("sum="+sum);

A) 32 B)11 C) 2 D) 3
11、應用程序的main方法中有以下語句,則執行后輸出的結果是 ( D )。
int[] x={125,21,5,168,98};
int max=x[0];
for(int i=1;i<x.length;i++){
if(x[i]> max)
max =x[i];
}
System.out.println(max);
A) 125 B) 5 C) 98 D) 168
12、程序Test.java編譯運行后輸出的結果是( A )。
public class Test {
String s1=“java”;
public static void main(String args[]) {
int z=2;
Test t=new Test();
System.out.println(t.s1+z);
}
}
A) java2 B)2 C)沒有輸出結果 D)java
13、應用程序的main方法中有以下語句,則輸出的結果是 ( A )。
String s1=“0.5”, s2=“12”;
double x=Double.parseDouble(s1);
int y=Integer.parseInt(s2);
System.out.println(x+y);
A) 12.5 B) 120.5 C) 12 D) “12.5”
14、下面的程序創建了一個文件輸出流對象,用來向文件test.txt中輸出數據,假設程序當前目錄下不存在文件test.txt,編譯下面的程序Test.java后,將該程序運行3次,則文件test.txt 的內容是( D )。
import java.io.*;
public class Test {
public static void main(String args[]) {
try {
String s=“ABCDE”;
byte b[]=s.getBytes();
FileOutputStream file=new FileOutputStream(“test.txt”,true);
file.write(b);
file.close();
}
catch(IOException e) {
System.out.println(e.toString());
}
}
}
A) ABCABC B) ABCDE C) Test D) ABCDE ABCDE ABCDE
15、在Java語言中,表達式10/3的結果是(C )。
A.3.3 B.3.33 C.3 D.3.0
16、已知數組arrey,其最后一個元素的下標是(D )。
A.arrey.size B.arrey.length C. arrey.size-1 D. arrey.length-1
17、初始狀態下,ResultSet的指針初始位置在( )
A.第一行之前 B.第一行 C.最后一行 D.最后一行之后
18、下列有關Swing的敘述,哪項錯誤? ( D )
A.Swing是Java基礎類(JFC)的組成部分
B.Swing是可用來構建GUI的程序包
C.Java基礎類(JFC)是Swing的組成部分
D.Swing是AWT圖形工具包的替代技術
Swing 是一個為Java設計的GUI工具包。
Swing是JAVA基礎類的一部分。
Swing包括了圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表。

二、程序閱讀題

1、閱讀下面的程序,回答問題(?問3分,?問3分,共6分)。
import java.awt.;
import javax.swing.;
public class T extends JFrame {
public T ( ) {
super(“GridLayout”);
Container con=this.getContentPane();
con.setLayout(new GridLayout(2,3));
con.add(new JButton(“a”));
con.add(new JButton(“b”));
con.add(new JButton(“c”));
con.add(new JButton(“d”));
con.add(new JButton(“e”));
con.add(new JButton(“f”));
setSize(200, 80);
setVisible(true);
}
public static void main(String args[]) {
new T();
}
}
?畫圖表示程序運行后的圖形界面。
?如果程序通過實現某個接口處理按鈕的動作事件,則該接口名為何?接口中的方法頭聲明如何?
答案:
?
?接口名:ActionListener
接口中的方法:public void actionPerformed(ActionEvent e)
2、閱讀下面的程序代碼,并回答問題(①問3分,②問3分,共6分)。
String s1 = new String(“abcde”);
String s2 = new String(“abcde”);
boolean b1= s1.equals(s2);
boolean b2 = s1== s2;
System.out.print(b1+" "+b2);
編譯運行上面的程序:①程序段執行后,在命令行的輸出結果如何?②equals方法的功能是什么?運算符“ == ”\ 的功能是什么?
答:
①true false
②equals方法比較兩個字符串的內容是否相等;運算符“==”判斷兩個對象是否指向同一個引用,即是否為同一個對象。

《JAVA程序設計》期末考試試題 (五)

一、 單選題

1、當某一線程正處于休眠狀態,而另一個線程用 Thread 類中的 interrupt() 方法中斷它時,拋出的異常類型是( C )。
A) IOException B) RuntimeException
C) InterruptedException D) ClassNotFoundException
2、下面的程序段的功能是( D)。
File file1=new File(“d:\xxx\yyy\zzz”);
file1.mkdirs();
A)在當前目錄下生成子目錄:\xxx\yyy\zzz B)生成目錄: e:\xxx\yyy\zzz
C)在當前目錄下生成文件xxx.yyy.zzz D)以上說法都不對
3、應用程序的main方法中有以下語句,則輸出的結果是 ( B )。
String s = “xxxxxxxxxxxxxxx#123#456#zzzzz”;
int n = s.indexOf("#");
int k = s.indexOf("#", n+1);
String s2 = s.substring(n+1, k);
System.out.println(s2);
A) 123456 B) 123 C) xxxxxxxxxxxxxxx D) zzzzz
4、關于下面的程序Test.java說法正確的是( D )。
public class Test {
String x=“1”;
int y;
public static void main(String args[]) {
int z=2;
System.out.println(x+y+z);
}
}
A)3 B)102 C) 12 D)程序有編譯錯誤

5、應用程序的main方法中有以下語句,則輸出的結果是 ( A )。
int b[][]={{1, 1, 1}, {2,2}, {3}};
int sum=0;
for(int i=0; i<b.length; i++) {
for(int j=0; j<b[i].length; j++) {
sum+=b[i][j];
}
}
System.out.println(“sum=”+sum);
A) 10 B)6 C) 9 D) 13
6、應用程序的main方法中有以下語句,則執行后輸出的結果是 ( B)。
int[] x = {125,21,5,168,98};
int min = x[0];
for (int i=1; i<x.length; i++){
if(x[i] < min)
min = x[i];
}
System.out.println(min);
A) 125 B) 5 C) 98 D) 168

7、應用程序的main方法中有以下語句,則輸出的結果是 ( D )。
Hashtable hashtable=new Hashtable();
hashtable.put(“100”,“aaa”);
hashtable.put(“200”,“bbb”);
hashtable.put(“300”,“ccc”);
System.out.println(hashtable.get(“300”).toString()
+ hashtable.get(“200”).toString()
+ hashtable.get(“100”).toString());
A) aaa B) bbb C) ccc D) cccbbbaaa
8、以下關于java異常說法不正確的是(D )。
A) Throwable 類是 Java 語言中Error類和Exception類的父類。
B)當異常對象是Exception類(或其子類)的實例時,能通過 Java 虛擬機或者 throw 語句拋出該異常對象,并能通過try…catch…finally處理。
C)如果只用一個catch塊捕捉多個異常對象,則catch 子句中的參數類型應是所有異常對象的父類。
D)以上說法都不對。
9、下面的程序創建了一個文件輸出流對象,用來向文件test.txt中輸出數據,假設程序當前目錄下存在文件test.txt,編譯下面的程序Test.java后,將該程序運行3次,則文件test.txt 的內容是( D)。
import java.io.*;
public class Test {
public static void main(String args[]) {
try {
String s=“ABCDE”;
byte b[]=s.getBytes();
FileOutputStream file=new FileOutputStream(“test.txt”, true);
file.write(b);
file.close();
}
catch(IOException e) {
System.out.println(e.toString());
}
}
}
A) ABCABC B) ABCDE C)Test D) ABCDE ABCDE ABCDE
10、下面說法不正確的是( D )?
A)列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。
B)List接口是可以包含重復元素的有序集合。
C)Set接口是不包含重復元素的集合。
D)Map接口將鍵映射到值,鍵可以重復,但每個鍵最多只能映射一個值。
11、給定java 代碼如下,編譯運行后,輸出結果是( C)。 public class test {
static int i=0;
public int aMethod() {
i++;
return i; }
public static void main (String args[]) {
Test test=new Test() ;
test.aMethod () ;
System.out.println (test.aMethod()) ;
} }
A、0 B、1 C、2 D、3
12、有整型數組:int[] x={12,35,8,7,2};,則調用方法Arrays.sort(x)后,數組x中的元素值依次是( A )。
A) 2 7 8 12 35 B) 12 35 8 7 2
C) 35 12 8 7 2 D) 8 7 12 35 2
13、Frame對象默認的布局管理器是(B )。
A、FlowLayout B、BorderLayout
C、CardLayout D、null

二、程序閱讀題

1、閱讀下面的程序代碼,并回答問題(1問3分,2問3分,共6分)。
String s1 = new String(“abcde”);
String s2 = new String(“abcde”);
boolean b1= s1.equals(s2);
boolean b2 = s1== s2;
System.out.print(b1+" "+b2);
?程序段執行后,在命令行的輸出結果如何?
?解釋輸出(1)的結果的原因?
答案:
1 true false
2 equals方法比較兩個字符串的內容是否相等;運算符“= =”判斷兩個對象是否指向同一個引用,即是否為同一個對象。
2、閱讀下面的程序,并回答問題(?問3分,?問3分,共6分)。

import java.io.*; public class Test {public static void main(String args[]) throws IOException {BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); while(true) {String str = buf.readLine();if(str.equals("quit"))break;int x=Integer.parseInt(str);System.out.println(x*x);}} }

編譯運行上面的程序:
?從鍵盤輸入10,回車后輸出的結果如何?
?從鍵盤輸入exit,回車后程序能正確執行嗎?為什么?
答案:
?100
?不能;因為方法Integer.parseInt(str)不能將字符串“exit”轉化為整數,拋出異常。
3、寫出下面的程序編譯、運行后的結果(6分)。

public class Test{public static void main(String args[]) {new Student("Tom", 'm', 90, 88);new Student("Jack", 'm', 66, 89);new Student("Mary", 'f', 76, 86);System.out.println("name\tsex\tchinese\tenglish");Student.print();}}class Student {protected String name;protected char sex;protected int chinese;protected int english;protected Student next;static Student list; Student (String name, char sex, int chinese, int english) {this.name=name;this.sex=sex;this.chinese=chinese;this.english=english;this.next=list;list=this;}static void print() {Student friend=list;if (friend==null)System.out.println("The list is empty.");else {do{System.out.println(friend.toString());friend=friend.next;}while(friend!=null);}}public String toString() {return new String(name+"\t"+sex+"\t"+chinese+"\t"+english);}}

答案:
name sex chinese english
Mary f 76 86
Jack m 66 89
Tom m 90 88

《JAVA程序設計》期末考試試題 (六)

一、填空題

1.定義類的保留字是( class ),定義接口的保留字是( interface )。
2.Socket通常也稱為 ( 套接字 ),用于描述( IP地址 ) 和 ( 端口 )。
3.線程的優先級在( 1 )至( 10 )之間,數值越大( 任務越緊急 )。
4.構造方法是一種特殊的成員方法,構造方法名與( 類名 ) 相同。
5.Java語言只允許單繼承,指每個類只能有一個 ( 父類 )。
6.Java源程序的擴展名是( .java ),經過編譯后的程序的擴展名是( .class )。
7. 在一個時間只能由一個線程訪問的資源稱為 ( 臨界資源 ) 。訪問臨界資源的代碼( 臨界代碼 )。
8. 在多線程系統中,多個線程之間有 ( 同步 ) 和 ( 互斥 ) 兩種關系。
9、使用運算符( new ),創建類的對象,給對象分配內存空間。
10、程序中實現多線程的方法有兩種:繼承Thread類和實現( Runnable )接口。
11、同一個類中多個方法具有相同的方法名,不同的參數列表稱為方法的( 重載 )。
12、Java語言中的浮點型數據根據數據存儲長度和數值精度的不同,進一步分為( float )和( double )兩種具體類型。
13、假設x=1,y=2,則表達式x+y>=x*y的值是( true ),其數據類型是(布爾)。
14、在Java的基本數據類型中,char型采用Unicode編碼方案,這樣無論是中文字符還是英文字符,都是占用( 2 )字節內存空間。
15、用戶自定義異常是通過繼承_____ 異常 ____類或其子類。
16、為了支持Java程序的數據庫操作功能,Java語言采用了專門的Java數據庫編程接口API,叫做 JDBC 。
17、可以通過繼承 Thread 類和實現 Runnable 接口來創建線程。

二、選擇題

1.關于選擇結構下列哪個說法正確? ( B )
A.if語句和 else語句必須成對出現
B.if語句可以沒有else語句對應
C.switch結構中每個case語句中必須用break語句
D.switch結構中必須有default語句
2.while循環和 do…while循環的區別是:  (D  )
A.沒有區別,這兩個結構任何情況下效果一樣
B.while循環比 do…while循環執行效率高
C.while循環是先循環后判斷,所以循環體至少被執行一次
D.do…while循環是先循環后判斷,所以循環體至少被執行一次
3.關于 for循環和 while循環的說法哪個正確? ( B )
A.while循環先判斷后執行,for循環先執行后判斷。
B.while循環判斷條件一般是程序結果,for循環的判斷條件一般是非程序結果
C.兩種循環任何時候都不可以替換
D.兩種循環結構中都必須有循環體,循環體不能為空
4.下列修飾符中與訪問控制無關的是 ( D )
A.private    B.public
C.protected D.final
5. void的含義:  ( A )
A.方法沒有返回值    B. 方法體為空
C.沒有意義     D. 定義方法時必須使用
6. return語句:  (C )
A.只能讓方法返回數值     B.方法都必須含有
C.方法中可以有多句return    D.不能用來返回對象
7.關于對象成員占用內存的說法哪個正確?  ( B )
A.同一個類的對象共用同一段內存
B、同一個類的對象使用不同的內存段,但靜態成員共享相同的內存空間
C.對象的方法不占用內存
D.以上都不對
8.下列說法哪個正確??
A.不需要定義類,就能創建對象
B.對象中必須有屬性和方法
C.屬性可以是簡單變量,也可以是一個對象
D、屬性必須是簡單變量
9.下列說法哪個正確?  ( A )
A、一個程序可以包含多個源文件
B、一個源文件中只能有一個類
C、一個源文件中可以有多個公共類
D、一個源文件只能供一個程序使用
10.關于方法main()的說法哪個正確?( C )
A.方法main()只能放在公共類中
B main()的頭定義可以根據情況任意更改
C.一個類中可以沒有main()方法
D.所有對象的創建都必須放在main()方法中
11.構造函數何時被調用?  ( A )
A、創建對象時      B、類定義時
C、使用對象的方法時   D、使用對象的屬性時
12. 抽象方法:  (  C)
A、可以有方法體
B、可以出現在非抽象類中
C、是沒有方法體的方法
D、抽象類中的方法都是抽象方法 
13.關于繼承的說法正確的是:  (B  )
A、子類將繼承父類所有的屬性和方法。
B、子類將繼承父類的非私有屬性和方法。
C、子類只繼承父類public方法和屬性
D、子類只繼承父類的方法,而不繼承屬性
14.關于構造函數的說法哪個正確?  ( C )
A、一個類只能有一個構造函數
B、一個類可以有多個不同名的構造函數
C、構造函數與類同名
D、構造函數必須自己定義,不能使用父類的構造函數
17.覆蓋與重載的關系是  ( A )
A、覆蓋只有發生在父類與子類之間,而重載可以發生在同一個類中
B.覆蓋方法可以不同名,而重載方法必須同名
C.final修飾的方法可以被覆蓋,但不能被重載
D.覆蓋與重載是同一回事
18.關于接口哪個正確?  ( A )
A、實現一個接口必須實現接口的所有方法
B.一個類只能實現一個接口
C.接口間不能有繼承關系
D.接口和抽象類是同一回事
19.異常包含下列哪些內容?  (  A)
A.程序執行過程中遇到的事先沒有預料到的情況
B.程序中的語法錯誤  
C.程序的編譯錯誤
D.以上都是

20. 對于已經被定義過可能拋出異常的語句,在編程時:  ( A )
A、必須使用try/catch語句處理異常,或用throws將其拋出
B.如果程序錯誤,必須使用 try/catch語句處理異常
C.可以置之不理
D.只能使用try/catch語句處理
21. 字符流與字節流的區別在于(D  )
A.前者帶有緩沖,后者沒有
B.前者是塊讀寫,后者是字節讀寫
C. 二者沒有區別,可以互換使用
D. 每次讀寫的字節數不同
22.下列流中哪個不屬于字節流  (  D)
A.FileInputStream
B.BufferedInputStream
C. FilterInputStream
D. InputStreamReader

三、程序填空題

1.public class Sum{public static void main(String [] args){int j=10;System.out.println("j is : "+j);calculate(j);System.out.println("At last, j is : "+j);} static void calculate (int j){for (int i = 0;i<10;i++)j++;System.out.println("j in calculate() is: "+j);} }

輸出結果為:
j is : (1)
j in calculate() is : (2)
At last j is : (3)
答案:(1) 10; (2) 20; (3) 10。
2. 按要求填空

abstract class SuperAbstract{void a(){}abstract void b();abstract int c(int i); } interface AsSuper {void x(); } abstract class SubAbstract extends SuperAbstract implements AsSuper { public void b(){}abstract String f(); } public class InheritAbstract extends SubAbstract{public void x(){}public int c(int i ) {}public String f(){}public static void main(String args[]){InheritAbstract instance=new InheritAbstract();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) 覆蓋和實現。
3. 按注釋完成程序
public class Leaf {
private int i = 0; //此屬性值用于檢驗
Leaf increment(){ //定義方法increment(),返回值是Leaf類的對象
i++;
return (1) ;//將當前對象的地址作為返回值返回
}
void print() {
System.out.println(" i = " + i);
}
public static void main(String args[]){
Leaf x = (2); //創建Leaf類的對象x
x.increment().increment().increment().print();
}//多次調用方法increment(),返回的都是x的地址,i 值表示調用次數
}
輸出結果為 i = (3)
答案:
(1) this; (2)new Leaf();(3) 3
4. 按注釋提示完成文件復制的程序
//FileStream源代碼如下:
import java.io.*;
class FileStream {
public static void main(String args []) {
try {
File inFile = new File(“file1.txt”); //指定源文件
File outFile = new File(“file2.txt”); //指定目標文件
FileInputStream fis =(1);
FileOutputStream fos = new FileOutputStream(outFile);
int c;
//逐字節從源文件中輸入,再輸出到fos流
while ((c = fis.read ())!=-1)
(2);
fis.close();
fos.close();
}
catch (Exception e) {
System.out.println("FileStreamsTest: "+e);
}
}
}
答案:
(1) new FileInputStream(inFile);
(2) fos.write?;
5. 閱讀程序,給出結果:

// AbstractClassDemo.java源代碼如下: abstract class Shape { //定義抽象類Shape和抽象方法displayabstract void display(); } class Circle extends Shape {void display() { //實現抽象類的方法System.out.println("Circle");} } class Rectangle extends Shape {void display() { //實現抽象類的方法 System.out.println("Rectangle");} } class Triangle extends Shape {void display() { //實現抽象類的方法System.out.println("Triangle");} } public class AbstractClassDemo{public static void main(String args[]){(new Circle()).display(); //定義無名對象來調用對應的display方法(new Rectangle()).display();(new Triangle()).display();}

}
輸出結果是 ?
答案:(1) Circle; (2) Rectangle; (3) Triangle。

《JAVA程序設計》期末考試試題 (七)

一、選擇題

  • 請說出下列代碼的執行結果 : (B)
    String s = “abcd”;
    String s1 = new String(s);
    if (s = = s1) System.out.println(“the same”);
    if (s.equals(s1)) System.out.println(“equals”);
    A. the same equals B. equals
    C. the same D. 什么結果都不輸出

  • 下列有關 Java 中接口的說法哪個是正確的? (B)
    A. 接口中含有具體方法的實現代碼
    B. 若一個類要實現一個接口,則用到 “implements” 關鍵字
    C. 若一個類要實現一個接口,則用到“ extends ”關鍵字
    D. 接口不允許繼承

  • 下列代碼的執行結果是什么? (B)
    String s1 = “aaa”;
    s1.concat(“bbb”);
    System.out.println(s1);
    A. The string “aaa”.
    B. The string “aaabbb”.
    C. The string “bbbaaa”.
    D. The string “bbb”.

  • 如果有一個對象 myListener ( 其中 myListener 對象實現了 ActionListener 接口 ), 下列哪條語句使得 myListener 對象能夠接受處理來自于 smallButton 按鈕對象的動作事件 ? ?
    A. smallButton.add(myListener);
    B. smallButton.addListener(myListener);
    C. smallButton.addActionListener(myListener);
    D. smallButton.addItem(myListener);

  • 二.讀程序題

  • 讀下列代碼,說出這段程序的功能。
    import java.io.;
    public class Test{
    public static void main( String [] argv) {
    try {
    BufferedReader is =
    new BufferedReader( new InputStreamReader(System.in));
    String inputLine;
    While ((inputLine = is.readLine ())!= null) {
    System.out.println(inputLine);
    }
    is.close();
    }catch (IOException e) {
    System.out.println("IOException: " + e);
    }
    }
    }
    答案:讀取鍵盤輸入,顯示到屏幕上,直到鍵盤輸入為空為止。
    2、 讀下列程序,寫出正確的運行結果。
    class test {
    public static void main (String [] args ){
    int x=9, y;
    if (x>=0)
    if (x>0)
    y=1;
    else y=0;
    else y=-1;
    System.out.println(y);
    }
    }
    答案:1
    3、以下程序的輸出結果為____ mainbord:華碩 cpu:Intel
    public class Computer
    {
    String mainbord,cpu;
    public Computer(String s1,String s2)
    {
    mainbord=s1;
    cpu=s2;
    }
    public static void main(String[]args)
    {
    Computer c=new Computer(“華碩”,“Intel”);
    System.out.println(“mainbord:”+c.mainbord+" cpu:"+c.cpu);
    }
    }
    4、下列程序的運行結果是
    s = 180_____。
    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);
    }
    }
    5、 讀程序,寫出正確的運行結果。
    public class Father{
    int a=100;
    public void miner(){
    a–;
    }
    public static void main(String[] args){
    Father x = new Father();
    Son y = new Son();
    System.out.println(y.a);
    System.out.println( y.getA());
    y.miner();
    System.out.println(y.a);
    System.out.println(y.getA());
    }
    }
    class Son extends Father{
    int a = 0;
    public void plus(){
    a++;
    }
    public int getA() {
    return super.a;
    }
    }
    答案:
    0 100 0 99
  • 三 . 簡答題

  • Java語言的特點。
    答:
    簡單性:Java風格類似于C++,但它摒棄了C++中容易引起程序錯誤的地方
    面向對象:Java語言的設計是完全面向對象
    分布式:
    解釋執行:
    健壯性:Java提供自動垃圾回收機制,異常處理機制,進行嚴格的類型檢查
    平臺無關性:
    安全性
    多線程
    動態性

  • 請描述 AWT事件模型。
    答:
    結合AWT事件模型并舉例來說:
    import java.awt.event.*;

  • 監聽對象必須實現對應事件監聽器的接口
    class MyFirstFrame extends Frame implements ActionListener
    {…}
    2.明確事件監聽器的接口形式
    public void actionPerformed ( ActionEvent event) {…}

  • MyFirstFrame 類必須實現接口ActionListener中的所有方法。

  • 注冊監聽對象.
    為了把MyFirstFrame對象注冊為兩個按鈕的事件監聽對象,必須在MyFirstFrame
    的構造函數中添加語句如下:
    cancelButton.addActionListener(this);
    okButton.addActionListener(this);

  • 在 Java中,怎樣創建一個線程?
    答:
    1、定義類來實現Runnable接口
    class TestThread implements Runnable {
    public void run() { …}
    }
    2、繼承Thread類來實現
    class TestThread extends Thread {
    TestThread(String name) {
    super(name);
    start();
    }
    public void run() {…}
    }

  • 總結

    以上是生活随笔為你收集整理的《JAVA语言程序设计》期末考试试题及答案的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。