Java面向對象程序設計復習題附答案剖析_第1頁
Java面向對象程序設計復習題附答案剖析_第2頁
Java面向對象程序設計復習題附答案剖析_第3頁
Java面向對象程序設計復習題附答案剖析_第4頁
Java面向對象程序設計復習題附答案剖析_第5頁
已閱讀5頁,還剩14頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Java 面向對象程序設計復習題一、選擇題1、下列哪個是 Java 中的關鍵字( C )。A、runB 、 IntegerC、 defaultD、 implement2、下面關于 Java.applet.Applet 和其祖先類的描述語句哪個不對( B )。A 、 Applet 是 Container 的一種 B 、 Applet 是 Window 的一種C、Applet 是 Component 的一種D 、 Applet 是 Panel 的一種3、下列類 DataOutputStream 的構造方法正確的是( A )。A 、 new dataOutputStream(new FileOutp

2、utStream( “ out.txt ” );B、new dataOutputStream( “ out.txt” );C、new dataOutputStream(new writer( “ out.txt ”);D、new dataOutputStream(new FileWriter( “ out.txt ”);4、在 switch (表達式)語句中,表達式的類型不能為(C )。A 、 byteB、 charC、 longD、int5、在接口 MouseMotionListener 中方法正確的是( A )。A 、 Public void mouseDragged(MouseEvent

3、)B 、Public boolean mouseDragged(MouseEvent)C、 Public void mouseDragged(MouseMotionEvent)D、 Public boolean MouseDragged(MouseMotionEvent) 6、下面是一些異常類的層次關系Java.lang.ExceptionJava.lang.RuntimeException Java.lang.IndexOutOfBoundsException Java.lang.ArrayIndexOutOfBoundsExceptionJava.lang.StringIndexOutOf

4、BoundsException假設有一個方法 X ,能夠拋出兩個異常, Array Index 和 String Index 異常,假定方法 X 中沒 有 try catch 語句,下面哪個答案是正確的。 ( B )A 、方法 X 應該聲明拋棄 ArrayIndexOutOfBoundsException 和 StringIndexOutOfBounds Exception 。B 、如果調用 X 的方法捕獲 IndexOutOfBoundsException ,則 ArrayIndexOutOfBounds Exception 和 StringIndexOutOfBoundsException

5、 都可以被捕獲。C、 如果方法 X聲明拋棄IndexOutOfBoundsException,則調用X的方法必須用 Try-catch 語句捕獲。D、方法X不能聲明拋棄異常。7、 現有一變量聲明為boolean aa;下面賦值語句中正確的是(D )。A、aa=0 B、 aa=TrueC、 aa=trueD、 aa=false8、 某類Example的main()方法參數為 args,當輸入數據 Java Example cat時,args0的值為 ( A )。A、cat B、 Java C、 exampleD、 null9、String s1=new String( “Java”);Strin

6、g s2=new String(s1) 則下列哪個說法是正確的( C )。A、表達式s1=s2為真B 、 s1 和 s2 是同一個對象C、表達式s1.equals(s2)為真D 、以上均不對10、類定義如下class Foopublic static void main(String args)String s;System.out.println(s=+s);則下列結論正確的是( C )。A、有輸出結果,且為空B、沒有輸出結果C、編譯錯誤D、有輸出結果,且不為空11 、下列哪個不是 Java 的保留字( D )。A 、 floatB 、 class C、 extendsD、 virtual1

7、2、 下列符號中不能作為Java 標識符的是 ( D )。A、abc B、 $str1 C、 _pore D、 45six13、方法 methodA 定義如下:returnType methodA(byte x,double y)return (short)x/y*2;則返回值 returnType 為( C )。A、 byteB、 doubleC、 shortD、 int14、 如果 float f=4.2F;Float g=new Float(4.2F); Double d=new Double(4.2);則下列選項正確的是 ( B )。A 、 f=gB 、 f=g.floatValue(

8、)C、 d=fD 、 d.equals(f)15、下列二維數組定義中錯誤的是(A)。A 、 int a=new int;B 、 int a=new int1010;C、 int a=new int1010;D 、 int a=new int1010;16、關于下列語句哪個答案是正確的(D )。System.out.println(4|7);A、 4B、 5C、 6D、 717、下面哪一個 AWT 組件可以有菜單欄MenuBar( A ) 。A、 Java.awt.FrameB、Java.awt.WindowC、Java.awt.AppletD、Java.awt.Panel18、下列哪個方法用于

9、創建并開始一個新的線程(B )。A 、 run(); B 、 start();C、execute();D、run(Runnable r);19、如果有 Boolean a=new Boolean( “yes”),貝U a.booleanValue()值為(D )。A、 yesB、“ yes”C、 trueD、 false20、以下類 DataOutputStream 的構造方法正確的是( C )。A、new dataInputStream( “in.txt ” );B、new dataInputStream(new file( “in.txt” );C、new dataInputStream(

10、new FileInputStream( “in.txt ” );D、new dataInputStream(new FileWriter( “in.txt ” );21 、編譯 Java Application 源程序文件將產生相應的字節碼文件,這些字節碼文件的擴展 名為 ( B )。A、 .Java B、 .classC、 .htmlD、 .exe22、 設 x = 1 , y = 2 , z = 3,則表達式y+= z/+ + x 的值是(A )。A、 3 B、 3.5C、 4 D、 523、在 Applet 表面輸出文字時,可以選擇不同的顏色,但是忘記了設置顏色的方法,應該 首先在哪個

11、類里面尋找( D )。A、Java .awt.AppletB、Java.awt.PanelC、Java.applet.AppletD、Java.awt.Component24、類 Cycle 的 main() 方法為:public static void main(String args)System.out.println(args0);則運行時如果命令行語句為Java Cycle one two three,則輸出結果為(B )。A、 Cycle25、下面哪一個是A 、 start()26、關于下列語句哪個答案是正確的(B、one C、 twoD、 threeThread類中的靜態方法(D

12、 )。B、stop() C、 run()D、 sleep(long m)A )。if(5&7&5|2)System.out.println(A、不能編譯成功C、可以編譯成功,但無輸出true” );B、可以編譯成功,輸出trueD 、以上均不對27、聲明公用的 abstract方法的正確格式是( C )。A 、 public abstract void add() B、 public abstract add();C、public abstract void add();D、public virtual add();28、下列程序結果正確的是(B )。public class Test pub

13、lic static void main (String args ) Ad a1=new Ad(); System.out.println(a1.add(1); Ad a2=new Ad(); System.out.println(a2.add(2);class Adstatic int total = 10;public int add(int i) total=total+i; return total;A 、 11,12B、11,13C、11,11D、 12,1229、基于 Java.awt.Frame 的一個程序中包含一個 Panel,Panel 其中包含一個 Label ,在 Fr

14、ame 和 Panel 中分別有下面的一些語句 ,/Frame 里面的語句 setFont( new Font( Serif, Font. ITALIC, 18 ); setBackground( Color. cyan );/Panel 中的語句setBackground( Color. white ); setForeground( Color. magenta );請問 Label 用什么顏色和字體顯示( A )。A 、 Background=white;foreground=magenta;font=Serif Italic style,18 pointB 、 Background=c

15、yan;foreground=black;font=Serif Italic style,18 pointC、Background=cyan;foreground=black;font=system default style for labelsD 、 Background=white;foreground=magenta;font=system default style for labels30、語句 for(int x=0,y=0;(y!=0)&(x4);x+) 的執行次數是( B )。A、無限次B、一次也不執行C、執行4次D、執行3次二、判斷題1、 abstract 是抽象修飾符,可

16、以用來修飾類及其屬性和方法。( 對 )2、Java 支持多線程機制。 ( 對 )3、一個 Java 源程序文件中允許有多個公共類。 ( 錯 )4、 重載的方法可以通過它們的返回值類型的不同來區分。( 錯 )5、 子類要調用父類的方法,必須使用super 關鍵字。( 錯 )6、子類擁有的成員數目一定大于等于父類擁有的成員數目。( 錯 )7、 一個 catch 塊也可以區分處理多個不同類型的異常,只要它們是該catch 語句塊異常參數 的子類或其本身。 ( 對 )8、程序中一旦執行了 catch 語句塊,則不會執行 finally 語句塊。( 錯 )9、新建一個 Frame 對象,則其將立即顯示在

17、屏幕上。 ( 錯 )10、 一個正在執行的線程使用yield() 方法將處理器讓給其它同優先級的其它線程。( 對 )11、Java 中的的字符使用的是 16 位的 Unicode 編碼。 ( 對 )12、for 語句中的循環體不能為空。 ( 錯 )13、Java 僅支持類間的單重繼承。 ( 對 )14接口是由常量和抽象方法組成的特殊類。( 對 )15、構造函數的方法名可由編程人員任意命名。 ( 錯 )16、使用靜態屬性必須以類名做前綴。 ( 錯 )17、類的私有屬性和私有方法可以被其子類訪問。 ( 錯 )18、使用了 FlowLayout 布局管理器,不能改變組件的高度。 ( 對 )19、 J

18、ava.lang.RuntimeException 及其子類的異??梢圆徊东@。 ( 對 )20、當用戶在 TextField 中改變光標的位置時,會產生一個 TextEvent 事件。( 錯 )31、 Java程序是由若干類定義組成的,類定義包括定義類頭和定義類體。(對)32、 類 Class1 中的屬性被 private 修飾符修飾為私有變量,所以方法不能訪問它。( 錯 )34、 引用一個類的屬性或調用其方法,必須以這個類的對象為前綴。( 錯 )35、 與未加訪問控制符的缺省情況相比,public 和 protected 修飾符擴大了類及其屬性和方法 的被訪問范圍, private 修飾符則

19、縮小了這種范圍。 ( 對 )36、 子類要調用父類的方法,必須使用super 關鍵字。( 錯 )37、因為Java不支持多重繼承,所以定義類時implements關鍵字后面只能說明一個接口名。( 錯 )38、 掛起、阻塞或等待的線程都能恢復執行,但停止的線程不能復生。( 對 )39、 如果一個方法在運行過程中產生異常,則方法會終止,但整個應用不一定終止。( 對 )40、接口 Java.lang.runnable 中只有一個 run ()方法。(對)三、程序閱讀題1閱讀下面的程序代碼,并回答問題。String s1 = new String(abcde);String s2 = new Stri

20、ng(abcde);boolean b1= s1.equals(s2);boolean b2 = s1 = = s2;System.out.print(b1+ +b2);(1) 程序段執行后,在命令行的輸出結果如何?(2) 解釋輸出 (1)的結果的原因?(1) true false(2 )equals 方法比較兩個字符串的內容是否相等;運算符“ =”判斷兩個對象是 否指向同一個引用,即是否為同一個對象。2.閱讀下面的程序代碼,并回答問題。import java.io.*;public class Test public static void main(String args) throws

21、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); 編譯運行上面的程序:(1)從鍵盤輸入 10,回車后輸出的結果如何?(2)從鍵盤輸入 exit ,回車后程序能正確執行嗎?為什么?(1)100(2)不能;因為方法Integer.parselnt(st

22、r不能將字符串“ exit”轉化為整數,拋出異 常。3. 閱讀下面的程序代碼import java.io.* ;public class Testpublic static void main(String args )int i , s=0;int a = 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 ,90;for( i=0 ; ia.length;i+)if ( ai%3=0 ) continue;s+=ai ;System.out.println(s=+s);程序執行后,在命令行的輸出結果是什么?2704. 閱讀下面的程序代碼import java.uti

23、l.*;public class Example9_14 public static void main(String args) String s=市話費:28.89元,長途話費:128.87元,上網費:298元。String delim = 市話長途話上網費元 :,。 ;StringTokenizer fenxi=new StringTokenizer(s,delim);/ 用 delim 中的字符的任意組合作為 分隔標記double totalMoney=0;while(fenxi.hasMoreTokens() double money=Double.parseDouble(fenxi

24、.nextToken();System.out.println(money); totalMoney += money;System.out.println( 總費用: +totalMoney+ 元); 程序執行后,在命令行的輸出結果是什么?市話費 :28.89 元長途話費 :128.87 元,上網費 :298 元??傎M用 :455.76 元5. 閱讀下面的程序代碼import java.util.*;class Student implements Comparable int english=0;String name;Student(int english,String name) th

25、=name; this.english=english; public int compareTo(Object b) Student st=(Student)b;return (this.english - st.english);public class Example13_8 public static void main(String args) TreeSet mytree=new TreeSet();Student st1,st2,st3,st4;st仁new Student(90,趙一 ”);st2=new Student(66,錢二);st3=new Studen

26、t(86,孫三);st4=new Student(76,李四);mytree.add(st1);mytree.add(st2);mytree.add(st3);mytree.add(st4);Iterator te=mytree.iterator();while(te.hasNext() Student stu=te.next();System.out.println(++ +stu.english);程序執行后,在命令行的輸出結果是什么?錢二 66李四 76孫三 86趙一 906. 寫出下面的程序編譯、運行后的結果。public class Testpublic static

27、 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(nametsextchinesetenglish);Student.print();class Student protectedStringname;protectedcharsex;protectedintchinese;protectedintenglish;protected Stude ntn ext;static Stude n

28、t list;Stude nt (Stri ng n ame, char sex, int chi nese, int en glish)this .n ame=n ame;this.sex=sex;this.ch in ese=ch in ese;this.e nglish=e nglish;this. next=list;list=this;static void prin t() Stude nt frien d=list;if (friend=n ull)System.out.println(The list is empty.);else doSystem.out.pri ntln

29、(frien d.toStri ng();frien d=frie nd.n ext;while(frie nd!=n ull);public Stri ng toStri ng()return new String(name+t+sex+t+chinese+t+english);Tom m 9088答解namesexchincscenslishMaryf7686Jackm66897.寫出以下程序的功能import java.io.*;public class TestFilepublic static void main(String args) throws ExceptionBuffer

30、edReader br = new BufferedReader(new In putStreamReader(System.i n);BufferedWriter bw = new BufferedWriter( new FileWriter( in put.txt);Stri ng s;while (true)System.out.pri nt(請輸入一個字符串:);System.out.flush();s=br.readL in e();if (s.len gth()=0) break;bw.write(s);bw. newLi ne();bw.close();功能:從鍵盤逐一輸入字符串

31、,逐一輸出Sinput.txt文件中,直至輸入空行8閱讀以下程序,寫出輸出結果。class Animal Ani mal() System.out.pri nt (A nimal );public class Dog extends Animal Dog() System.out.pri nt (Dog );public static void main( Stri ng args) Dog snoppy= new Dog(); 輸出結果:Animal Dog四、程序填空題1以下程序是一個算術測試小軟件,用來訓練小學生的算術能力。程序有3個類組成,其中Teacher對象充當監視器,負責給出算術

32、題目,并判斷回答者的答案是否正確。ComputerFrame對象負責為算術題目提供視圖,比如用戶可以通過ComputerFrame對象提供的GUI界面看到題目,并通過該GUI界面給出題目的答案;MailClass是軟件的主類。程序運行效果如下圖所示。仔細閱讀程序代碼,請按模板要求,在【代碼】處填寫合適的Java程序代碼。MainClass.javapublic class Main Class public static void main(String args) ComputerFrame frame;frame=new ComputerFrame。;frame.setTitle(” 算術

33、測試);frame.setBou nds(100,100,650,180);ComputerFrame.javaimport java.awt.*;import java.awt.eve nt.*;import javax.swi ng.*;public class ComputerFrame exte nds JFrame JMe nuBar menu bar;JMe nu choiceGrade; /選擇級別的菜單JMe nultem grade1,grade2;JTextField text On e,textTwo,textResult;JButt on getProblem,give

34、A nwser;JLabel operatorLabel,message;Teacher teacherZha ng;ComputerFrame() teacherZha ng=new Teacher();teacherZha ng.setMax In teger(20);setLayout(【代碼 1】_new FlowLayout(); /設置 ComputerFrame 的布局為 FlowLayout 布局menubar = new JMenuBar(); choiceGrade = new JMenu( 選擇級別 ); grade1 = new JMenuItem( 幼兒級別 ); g

35、rade2 = new JMenuItem( 兒童級別 ); grade1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) teacherZhang.setMaxInteger(10););grade2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) teacherZhang.setMaxInteger(50););choiceGrade.add(grade1);c

36、hoiceGrade.add(grade2);menubar.add(choiceGrade); setJMenuBar(menubar);【代碼 1】 _ textOne=new JTextField(5); /創建 textOne, 其可見字符長是 5textTwo=new JTextField(5); textResult=new JTextField(5); operatorLabel=new JLabel(+); operatorLabel.setFont(new Font(Arial,Font.BOLD,20);message=new JLabel(你還沒有回答呢”); getPr

37、oblem=new JButton( 獲取題目 ); giveAnwser=new JButton( 確認答案 ); add(getProblem); add(textOne); add(operatorLabel); add(textTwo); add(new JLabel(=); add(textResult); add(giveAnwser); add(message);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false); getProblem.setActionCommand(g

38、etProblem); textResult.setActionCommand(answer); giveAnwser.setActionCommand(answer); teacherZhang.setJTextField(textOne,textTwo,textResult); teacherZhang.setJLabel(operatorLabel,message);【代碼 2】 getProblem.addActionListener( teacherZhang); /將teacherZhang注冊為 getProblem 的 ActionEvent 事件監視器【代碼 3】 giveA

39、nwser.addActionListener(teacherZhang);/將teacherZhang注冊為 giveAnwser 的 ActionEvent 事件監視器【代碼 4】textResult.addActionListener(teacherZhang); _/將 teacherZhang注冊為textResult的ActionEvent事件監視器setVisible(true);validate();setDefaultCloseOperation(DISPOSE_ON_CLOSE);Teacher.javaimport java.util.Random;import java

40、.awt.event.*;import javax.swing.*;public class Teacher implements ActionListener int numberOne,numberTwo;String operator=;boolean isRight;Random random; /用于給出隨機數int maxInteger; /題目中最大的整數JTextField textOne,textTwo,textResult;JLabel operatorLabel,message;Teacher() random = new Random();public void set

41、MaxInteger(int n) maxInteger=n;public void actionPerformed(ActionEvent e) String str = e.getActionCommand();if(str.equals(getProblem) nu mberO ne = ran dom. nextl nt(maxl nteger)+1;/1 至 max In teger 之間的隨機數 ; numberTwo=random.nextInt(maxInteger)+1;double d=Math.random(); / 獲取(0,1)之間的隨機數if(d=0.5)opera

42、tor=+;elseoperator=-;textOne.setText(+numberOne);textTwo.setText(+numberTwo);operatorLabel.setText(operator);message.setText(”請回答);textResult.setText(null);else if(str.equals(answer) String answer=textResult.getText();try int result=Integer.parseInt(answer);if(operator.equals(+)if(result= =numberOne

43、+numberTwo)message.setText(你回答正確”); elsemessage.setText(你回答錯誤”);else if(operator.equals(-)if(result= =numberOne-numberTwo)message.setText(你回答正確”);elsemessage.setText(你回答錯誤”);catch(NumberFormatException ex) message.setText(請輸入數字字符”);public void setJTextField(JTextField . t) textOne=t0;textTwo=t1; tex

44、tResult=t2;public void setJLabel(JLabel .label) operatorLabel=label0;message=label1;2. 有如下java源程序,程序的功能是在數組中查找鍵盤鍵入的整數。如果找到則 輸出該整數在數組中的序號,否則輸出“ not found ”。例如,運行程序,輸入99,程序輸出: 99在數組中的序號是 5;輸入 59,程序輸出: not found 。仔細閱讀程序代碼,請按模板要求,在【代碼】處填寫合適的Java程序代碼。(注意:不改動程序的結構,不得增行或刪行)。import java.io.*;import java.uti

45、l.Scanner;public class J_Test public static void main(String args) throws IOException int 【代碼 1】 a_ = 83,75,92,67,55,99,78,61;Scanner in = new Scanner( 【代碼 2】 _System.in);int x = Integer.parseInt( 【代碼 3】 in.readLine();int index = -1;for(int i = 0; 【代碼 4】 _i=a.Length; +i) if(ai = x) in dex = i;break;

46、if(【代碼 5】index=-1)System.out.pri ntln (” not foun d);elseSystem.out.println(x + 在數組中的序號是 ” + index);3. 下面程序的運行結果如下圖。單擊“Close ”按鈕關閉窗口。1 T RictOkClose請閱讀程序,在(1)和(2)處補充相應的內容,使整個程序能夠正常運行。import java.awt.*;import java.awt.eve nt.*;import javax.swi ng.*;public class J_Test private JFrame f;private JButton

47、 butt on1, butt on2, butto n3;public void go() f = new JFrame(Test);f.setLayout (new FlowLayout();butt on1 = new JButt on (Ok);butt on2 = new JButt on (Ope n);butt on3 = new JButt on (Close);f.add(butto n1);f.add(butto n2);f.add(butto n3);button3.addActionListener(new Monitor(); _ f.setSize(160, 106

48、);f.setVisible(true);public static void main(String args) J_Test t = new J_Test();t.go();class Mon itor impleme nts Action Liste ner public void acti on Performed(Act ion Eve nt e)_ System.exit(O);An swer:(1) button3.addActionListener(new Monitor();(2) public void acti on Performed(Act ion Eve nt e)

49、五、編程題1.編寫一個計算圖形面積的程序,程序應當能夠計算并輸出矩形、圓的面積??紤]到程序的未來擴展,設計一個圖形抽象類:Shape,在此基礎上派生出圖形類Rectangle類和 Circle類。(1) Rectangle類基本信息:寬度、高度。(2) Cirlce類基本信息:圓心坐標、半徑。(3) 每個圖形類有多個構造方法:默認構造方法、帶參數的構造方法;成員變量為private 屬性,成員方法為 public屬性。(4) 每個圖形類有計算圖形面積getArea()方法,顯示圖形的基本信息toString()方法,以及訪問方法 set/getoabstract Shape (public abstract double get/rea();ul 俯 Reccanp le ester ds Shape |private double width;private double height;public Rec tangle (double w;. double h) |width 耳 w:height - h;public Rectangle() fthisfO, 0);1public double geurea()(return width * height:public double get Width 0 return width:1public void set

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論