




免費預覽已結(jié)束,剩余11頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
XXXXXX大學 XXX學院 (密封線內(nèi)勿答題) 姓名 學號 學院(系) 專業(yè) 年級 班(密封線內(nèi)勿答題) Java程序設計課程 期末考試卷(200x200x學年 第x學期) 本科 ??芌 A卷R B卷 C卷(考試時間120分鐘)題號一二三四五總分分數(shù)一、 單選題(本大題共20個小題,每小題1分,共20分)得分評閱人1、編譯和運行下面的應用程序,屏幕輸出的結(jié)果是( )。public class Test public static void main(String args) A a=new A(aaaaa);A.B b=a.new B(); System.out.println(a.outStr+b.inStr); class A String outStr; public A(String s) outStr=s; public class B public String inStr=bbbbb; A) aaaaa B)ababa C) bbbbb D) aaaaabbbbb 2、當某一線程正處于休眠狀態(tài),而另一個線程用 Thread 類中的 interrupt() 方法中斷它時,拋出的異常類型是( )。A) IOException B) RuntimeExceptionC) InterruptedException D) ClassNotFoundException 3、以下是應用程序中定義的靜態(tài)方法printBinary,若在其main方法中有方法調(diào)用語句printBinary(2),則輸出的結(jié)果是 ( )。static void printBinary(int i) System.out.print(i + 的2進制數(shù)表示為:t); for(int j = 31; j =0; j-) if(1 j) & i) != 0) System.out.print(1); else System.out.print(0); System.out.println();/換行 A) 00000000000000000000000000000001 B) 00000000000000000000000000000010 C) 00000000000000000000000000001111 D) 00000000000000000000000000000000 4、下面語句的功能是( )。RandomAccessFile raf2 = new RandomAccessFile(1.txt,rw ); A)打開當前目錄下的文件1.txt,既可以向文件寫數(shù)據(jù),也可以從文件讀數(shù)據(jù)。 B)打開當前目錄下的文件1.txt,但只能向文件寫入數(shù)據(jù),不能從文件讀取數(shù)據(jù)。C)打開當前目錄下的文件1.txt,但不能向文件寫入數(shù)據(jù),只能從文件讀取數(shù)據(jù)。D) 以上說法都不對。 5、下面的程序編譯運行后,輸出的結(jié)果是( ).import java.util.Arrays;public class Test public static void main(String unused) String str = ZZZ, AAA,BBB,CCC; Arrays.sort(str); int index=Arrays.binarySearch(str,ZZZ); System.out.println(index); A) 0 B) 1 C)2 D)3 6、下面的程序段的功能是( )。File file1=new File(d:xxxyyyzzz);file1.mkdirs();A)在當前目錄下生成子目錄:xxxyyyzzz B)生成目錄: e:xxxyyyzzz C)在當前目錄下生成文件xxx.yyy.zzz D)以上說法都不對 7、下面的程序編譯運行后輸出的結(jié)果是( )。public class Test public static void main(String args) X a=new X( ) public void showX() System.out.println(a*b); ; a.showX(); class X int a=5,b=3; public void showX() System.out.println(a+b); A) 15 B) 8 C) 5 D) 3 8、應用程序的main方法中有以下語句,則輸出的結(jié)果是 ( )。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 9、關于下面的程序Test.java說法正確的是( )。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)程序有編譯錯誤10、應用程序的main方法中有以下語句,則輸出的結(jié)果是 ( )。double x=8765.12345;DecimalFormat form1 = new DecimalFormat(0000.00);System.out.println(x=+form1.format(x); A)x=8765.12 B)x=8765.12345C)x=8765.1 D)x=8765.0 11、應用程序的main方法中有以下語句,則輸出的結(jié)果是 ( )。 int b=1, 1, 1, 2,2, 3; int sum=0; for(int i=0;ib.length;i+) for(int j=0;jbi.length;j+) sum+=bij; System.out.println(sum=+sum);A) 10 B)6 C) 9 D) 13 12、下面的程序段執(zhí)行后輸出的結(jié)果是( )。String s=Test.java;boolean b=s.startsWith(test); System.out.print(b); boolean b1=s.endsWith(java);System.out.println(b+ +b1);A) true true B) true false C) false true D) false false 13、應用程序的main方法中有以下語句,則執(zhí)行后輸出的結(jié)果是 ( )。int x=125,21,5,168,98;int min=x0;for(int i=1;ix.length;i+)if(ximin)min=xi;System.out.println(min);A) 125 B) 5 C) 98 D) 168 14、應用程序的main方法中有以下語句,則輸出的結(jié)果是 ( )。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 15、下面程序段執(zhí)行后b的值是( )。String str = java;boolean b = str instanceof Object; A) 0 B) true C) 1 D) false16、以下關于java異常說法不正確的是( )。A)Throwable 類是 Java 語言中Error類和Exception類的父類。B)當異常對象是Exception類(或其子類)的實例時,能通過 Java 虛擬機或者 throw 語句拋出該異常對象,并能通過trycatchfinally處理。C)如果只用一個catch塊捕捉多個異常對象,則catch 子句中的參數(shù)類型應是所有異常對象的父類。D)以上說法都不對。17、應用程序Test.java的源程序如下,在命令行鍵入:java Test aaa bb cc ddd eeeee則輸出的結(jié)果是 ( )。public class Test public static void main(String args) int k1=args.length; int k2=args2.length(); System.out.print(k1+ +k2); A)3 2 B)5 2 C) 5 3 D) 5 5 18、下面的程序創(chuàng)建了一個文件輸出流對象,用來向文件test.txt中輸出數(shù)據(jù),假設程序當前目錄下不存在文件test.txt,編譯下面的程序Test.java后,將該程序運行3次,則文件test.txt 的內(nèi)容是( )。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 19、下面那些方法不是接口Collection中已聲明的方法( )?A)添加元素的add(Object obj) 方法B)刪除元素的remove(Object obj)方法C)得到元素個數(shù)的length()方法D)返回迭代器的iterator()方法,迭代器用于元素遍歷20、下面說法不正確的是( )?A)列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。B)List接口是可以包含重復元素的有序集合。C)Set接口是不包含重復元素的集合。D)Map接口將鍵映射到值,鍵可以重復,但每個鍵最多只能映射一個值。二、多選題(本大題共10個小題,每小題2分,共20分)得分評閱人21、下面哪些關鍵字能用來控制對類成員的訪問( )?A)public B)protected C)private D)default 22、閱讀、編譯、運行下面的程序,正確的選項是( ).public class Test public static void main (String args)Test a=new Test();a.method(8);a.method(8f);void method(double i)System.out.println(double: +i);void method(int i)System.out.println(int: +i);A)程序有編譯錯誤,因為兩個method()方法必須定義為靜態(tài)(static)的。B)程序可以編譯運行,輸出結(jié)果為:int: 8double: 8.0C)程序可以編譯運行,輸出結(jié)果為:int: 8float: 8.0D) 程序中定義的兩個參數(shù)不同的method方法稱為方法重栽。 23、下面關于Java中異常處理try塊的說法正確的是( )?A) try塊后通常應有一個catch 塊,用來處理try塊中拋出的異常。 B) catch 塊后必須有finally塊。C)可能拋出異常的方法調(diào)用應放在try塊中。 D)對拋出的異常的處理必須放在try塊中24、線程對象的生命周期中,通常經(jīng)歷下面哪些狀態(tài)( )。A)新建 B)運行 C)就緒 D)死亡 25、定義如下的二維數(shù)組b,下面的說法正確的是( )。int b=1, 2, 3, 4, 5 ,6, 7, 8;A)b.length的值是3。 B)b1.length的值是3。C)b11的值是5。 D) 二維數(shù)組b的第一行有3個元素 26、類B是一個抽象類,類C是類B的非抽象子類,下列創(chuàng)建對象x1的語句中正確的是( )。A)B x1= new B( ); B) B x1=new C( ); C)C x1=new C( ); D) C x1=new B( );27、關于下面的程序的說法正確的是()。1: public class Test extends Thread 2: String name;3: public Test(String s)4: name=s;5: 6: public static void main (String args) 7: Test thread1=new Test(xxx);8: Test thread2=new Test(yyy);9: thread1.start();10: thread2.start();11: 12: public void run () 13: System.out.print(name);14: 15: A)類Test是線程類Thread的子類。B)程序第7、8行分別創(chuàng)建兩個線程對象thread1和thread2。 C)程序第9、10行的方法調(diào)用的功能是分別啟動兩個線程對象thread1和thread2。 D)程序編譯運行后輸出結(jié)果是:xxxyyy。28、下面關于對象串行化(Serializable)的說法正確的是( )。A)一個類實現(xiàn)接口Serializable就能使之串行化,對象串行化并沒有具體方法需要實現(xiàn)。B)一個對象串行化后,能通過對象流讀取對象或?qū)懭雽ο?。C)用transient關鍵字修飾的變量將不參與串行化。D)串行化一個類,必須保證在恢復時java虛擬機能找到這個類的.class文件,否則將會出現(xiàn)ClassNotFoundException。29、下面關于進程、線程的說法正確的是( )。A)進程是程序的一次動態(tài)執(zhí)行過程。一個進程在其執(zhí)行過程中,可以產(chǎn)生多個線程多線程,形成多條執(zhí)行線索。B)線程是比進程更小的執(zhí)行單位,是在一個進程中獨立的控制流,即程序內(nèi)部的控制流。線程本身不能自動運行,棲身于某個進程之中,由進程啟動執(zhí)行。C)Java多線程的運行與平臺相關。D)對于單處理器系統(tǒng),多個線程分時間片獲取CPU或其他系統(tǒng)資源來運行。對于多處理器系統(tǒng),線程可以分配到多個處理器中,從而真正的并發(fā)執(zhí)行多任務。30、下面關于外部類和內(nèi)部類成員的相互訪問的規(guī)則中,正確的選項是( )。A)內(nèi)部類可以直接訪問外部類的成員。 B)外部類可以直接訪問內(nèi)部類的成員C)外部類不能訪問內(nèi)部類的成員。 D)外部類可通過創(chuàng)建內(nèi)部類的實例來訪問內(nèi)部類的成員。三、填空題(本大題共5個小題,每小題4分,共20分)得分評閱人31、根據(jù)程序中的注釋,將下面的應用程序補充完整。public class A public static void main (String args) A a=new B( );a.test();void test() System.out.print (A);class B _(1)_ Avoid test() _(2)_;/調(diào)用父類的同名方法System.out.println(B);32、下面方法的功能是在命令行打印list對象,請將程序補充完整。private static void printArrayList(List list) Iterator iterator =_(1)_;/得到list的迭代器 while ( iterator.hasNext() )/ 迭代器中是否有下一個元素System.out.println(_(2)_);/顯示迭代器中的元素 33、下面的程序的功能是從136的整數(shù)中隨機選取7個數(shù):第1次隨機選擇136中的一個數(shù),第2次從剩下的35個數(shù)(第1次選中的數(shù)不包括其中)中隨機選擇一個數(shù),,重復這個過程,直到選中7個整數(shù)。請完成程序填空。import java.util.*;public class Select7From36 public static void main(String args) Random rd= new Random(); ArrayList allNum=new ArrayList(); /創(chuàng)建有7個元素的Integer數(shù)組 Integer result=_(1)_; int x; for(int i=1;i=36;i+) allNum.add(new Integer(i); for(int i=0;i=6;i+) x=_(2)_; resulti=(Integer)allNum.get(x); allNum.remove(x); for(int i=0;iresult.length;i+) System.out.print(resulti+ ); 34、假定一個英文表示的地址格式要求是:數(shù)字號碼(至少1個),然后是一個或多個空格隔開,然后是一個單詞(至少兩個字母)表示的地名,或用空格隔開的兩個單詞(至少兩個字母)表示的地名,例如: 5 waiganxijie Beijing,就是符合要求的地址格式。下面應用程序的main方法中使用JOptionPane類的文本輸入對話框輸入地址,通過正則字符串和字符串類的matches()方法判斷是否為地址格式要求的地址。請完成程序填空。import javax.swing.*;import java.util.regex.Pattern;public class UseMatchesMethod public static void main( String args ) String regex=_(1)_;String input=JOptionPane.showInputDialog(請輸入地址); if(_(2)_)System.out.println(input+是有效的地址!); elseSystem.out.println(input+不是有效的地址!); 35、下面是一個實現(xiàn)了Runnable接口的小程序,程序通過多線程實現(xiàn)了以下功能:從1開始,每個兩秒鐘顯示下一個連續(xù)的自然數(shù),顯示到直到10后結(jié)束。請根完成程序填空。import java.awt.*;import javax.swing.*;public class Test extends JApplet _(1)_ Runnable int counter=0; Thread t; public void init() t=_(2)_; /創(chuàng)建線程對象 t.start(); public void run() while( counter10 ) counter+; try Thread.sleep(2000); catch ( InterruptedException e ) repaint(); public void paint( Graphics g ) setBackground(Color.black); g.setColor(Color.green); g.setFont(new Font(Times New Roman,Font.BOLD,35); g.drawString( String.valueOf(counter),60+counter*20,60 ); public void update(Graphics g) paint(g); 四、程序閱讀題(本大題共4個小題,每小題6分,共24分)得分評閱人36、閱讀下面的程序代碼,并回答問題(u問3分,v問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); u程序段執(zhí)行后,在命令行的輸出結(jié)果如何?v解釋輸出(1)的結(jié)果的原因?37、閱讀下面的程序,并回答問題(u問3分,v問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); 編譯運行上面的程序:u從鍵盤輸入10,回車后輸出的結(jié)果如何?v從鍵盤輸入exit,回車后程序能正確執(zhí)行嗎?為什么?38、寫出下面的程序編譯、運行后的結(jié)果(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(nametsextchinesetenglish); 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) =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); 39、閱讀下面的程序,并回答問題(u問3分,v問3分,共6分)。 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MenuTest extends JFrame JTextArea theArea; public MenuTest() super(MyMenu); Container contentPane = this.getContentPane(); theArea = new JTextArea( ); theArea.setText(The first snow came,nHow beautiful it was!); theArea.setLineWrap(true); contentPane.add(new JScrollPane(theArea),BorderLayout.CENTER); JMenu fontMenu = new JMenu(Font); JMenuItem fontSize= new JMenuItem(Size); fontSize.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String sizeString=JOptionPane.showInputDialog( 字號大小 ); int fontSize=Integer.parseInt(sizeString); theArea.setFont( new Font(楷體_gb2312,Font.PLAIN,fontSize); ); fontMenu.add(fontSize); JMenuItem exit= new JMenuItem(Exit); exit.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) System.exit(0); ); fontMenu.add(exit); JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); menuBar.add(fontMenu); this.setSize(300,200); this.setVisible(true); public static void main(String args) new MenuTest(); u圖示程序運行后的圖形界面。v用文字描述點擊菜單項“Size”后,程序的執(zhí)行過程和效果。五、編程題(本大題共3個小題,40小題4分,41、42小題各6分,共16分)得分評閱人40、請定義一個名為Card的撲克牌類,該類有兩個private訪問權限的字符串變量face和suit:face描述一張牌的牌面值(如:Ace, Deuce, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King);suit描述一張牌的花色(如:Hearts, Diamonds, Clubs, Spades)。定義Card類中的public訪問權限的構(gòu)造方法,為類中的變量賦值;定義protected訪問權限的方法getFace(),得到撲克牌的牌面值; 定義protected訪問權限的方法getSuit(),得到撲克牌的花色; 定義方法toString(),返回表示撲克牌的花色和牌面值字符串(如“Ace of Hearts”、“Ten of Clubs”等)。41、程序中已定義如下字符串數(shù)組faces,用來表示牌面面值:String faces= Ace, Deuce, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King ;并已定義名為hand1的Card數(shù)組如下,存放一幅牌(共5張):Card hand1=new Card5;設已發(fā)了一幅牌,并存放在hand1數(shù)組中,為了統(tǒng)計該幅牌(54張牌中的任意5張)的每個面值的牌各有多少(因花色不同,不同面值的牌可能有0、1、2、3、4張),程序中已定義一個整型數(shù)組:int numbers1=new int13 ;存放5張牌中13個不同面值中的張數(shù)。請編寫方法:void totalHand(),方法的功能是統(tǒng)計一幅牌中不同面值的牌的張數(shù),結(jié)果保存在整型數(shù)組numbers1中。42、為了模擬兩個線程共享數(shù)據(jù),并實現(xiàn)線程對共享數(shù)據(jù)的同步操作,模擬生產(chǎn)和消費的同步。定義SynchronizedBuffer類做為生產(chǎn)線程和消費線程的共享數(shù)據(jù)類,類中定義整型緩沖區(qū)buffer,用來存放一個整數(shù);定義方法set,用來模擬生產(chǎn)過程,即給變量buffer設置值,該方法由生產(chǎn)線程調(diào)用;定義方法get,用來模擬消費過程,即取變量buffer的值,該方法由消費線程調(diào)用。生產(chǎn)和消費的邏輯要求是:必須先生產(chǎn),然后再消費。請完成程序中get方法的編寫。public class SynchronizedBuffer private int buffer = -1; private boolean occupiedBuffer= false; /*該方法設置buffer值,由生產(chǎn)線程調(diào)用,模擬生產(chǎn)過程*/ public synchronized void set( int value ) String name = Thread.currentThread().getName(); while ( occupiedBuffer) try System.err.println( name + 試圖生產(chǎn),但上一次的還沒有消費!等待消費! ); wait(); catch ( InterruptedException e ) e.printStackTrace(); buffer = value; System.out.println( name+ 生產(chǎn)一個整數(shù):+buffer); occupiedBuffer=true; notify(); /*編寫get方法得到buffer值,該方法將由消費線程調(diào)用,模擬消費過程*/ Java程序設計課程 期末考試卷A評分標準及標準答案(200x200x學年 第x學期)_專業(yè)_年級 本 ??芌 A卷R B卷 C卷命題人: XXX 二、 一、單選題(本大題共20個小題,每小題1分,共20分)1D2C3B4A5D6D 7A8B9D10A11A12C13B14D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集團入職培訓教材
- 2025秋湘教版(2024)七年級上冊地理課件 5.2.2 降水 世界降水的分布 氣候信息的表示方法
- 行政辦公區(qū)域消防設施檢查管理規(guī)定?
- 2025年國際關系與外交政策考試試卷及答案
- 2025年工藝美術設計師職業(yè)考試試題及答案
- 中學生行為習慣的養(yǎng)成教育
- 旋轉(zhuǎn)技巧培訓課件
- 2025年城市公共交通管理考試題及答案
- 2025年物業(yè)管理師職業(yè)考試試題及答案
- 中小學智能化系統(tǒng)設計標準
- 2025年外賣平臺合作配送合同范本
- (北師大版)初中數(shù)學七年級下冊 期末測試 (含答案)
- 廣西欽州市2023-2024學年高一下學期期末考試 英語 含解析
- 技術標編制培訓
- 2025廣西壯族自治區(qū)博物館講解員招聘3人高頻重點提升(共500題)附帶答案詳解
- TSG 51-2023 起重機械安全技術規(guī)程 含2024年第1號修改單
- 配電室巡檢培訓
- 項目部組織安排
- 妊娠期非產(chǎn)科手術麻醉管理
- 武警防暴隊形課件
- DB21T 3163-2019 遼寧省綠色建筑施工圖設計評價規(guī)程
評論
0/150
提交評論