全國自考2008年—2010年Java語言程序設(shè)計(jì)(一)真題及答案_第1頁
全國自考2008年—2010年Java語言程序設(shè)計(jì)(一)真題及答案_第2頁
全國自考2008年—2010年Java語言程序設(shè)計(jì)(一)真題及答案_第3頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、2008年10月全國自考Java語言程序設(shè)計(jì)(一)真題及答案一、單項(xiàng)選擇題(本大題共10小題,每小題1分,共10分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯(cuò)選、多選或未選均 無分。1下述字符組合不能作為Java程序標(biāo)識符的是()A . Aa12 B .大 x C. y 小 D. 5x參考解析:(P8)本題考核知識點(diǎn)是 Java語言標(biāo)識符命名規(guī)則。Java語言標(biāo)識符可以按以下規(guī)則任意命名:由字母(包括英文字母、下劃線字符、美元字符、文字字符)和數(shù)字組成。限定標(biāo)識符的第一個(gè)字符不能是數(shù)字字符。選項(xiàng)D答案第一個(gè)字符是數(shù)字字符。2. 以下程序代碼的輸出的結(jié)果

2、是()int x=53; System. out. printin (1.0+x/2);A . 27.0 B . 27.5 C . 1.026 D . 參考解析:(P14)本題考核知識點(diǎn)是 Java算術(shù)運(yùn)算符 一一“ /”?!?”為除法運(yùn)算符,當(dāng)除數(shù)和被除數(shù)均為整數(shù)類型數(shù)據(jù)時(shí),則結(jié)果也是整數(shù)類型數(shù)據(jù)。所以當(dāng)x=53時(shí),x/2=26。3. 參照以下Java代碼,以下四個(gè)敘述中最確切的是()class A int x; static int y;void fac(String s)Syatem. out. println("字符串:"+s);A . x、y和s都是成員變量B.

3、x是實(shí)例變量、y是類變量、s是局部變量C . x和y是實(shí)例變量、s是參數(shù) D . x、y和s都是實(shí)例變量參考解析:(P46)本題考核知識點(diǎn)是實(shí)例變量、類變量、局部變量。類的成員變量分為實(shí)例變量和類變量。在定義成員變量時(shí),用關(guān)鍵字static修飾的是類變量,定義時(shí)未用static修飾的是實(shí)例變量。類變量是類的所有對象共享的成員變量,一個(gè)類變量在類中只有一個(gè),它屬于整個(gè)類,而不屬于類的某個(gè)對象。引用類變量的途徑有兩條,或通過類,或通過對象。類的方法體中定義的變量稱為局部變量,方法參數(shù)也屬于局部變量。4. 需要分析字符串,并將字符串分解成可被獨(dú)立使用的單詞,可使用java. util包中的類是( )

4、A . Stri ngB . Stri ngBufferC . Strin gToke ni zerD . stri ngToke ni zer參考解析:(P77)本題考核知識點(diǎn)是StringTokenizer類。慣約定(行業(yè)習(xí)慣,不是規(guī)定):一般變量名、方法名用小寫英文字母開頭,類名首字母用大寫字母,若命名由若 干個(gè)單詞組成,后面的每個(gè)單詞用大寫開頭;文字和常數(shù)全用大寫字母命名;包名全部用小寫字母。5要為程序的子窗口設(shè)定一個(gè)由字符串s指定的名字,可以采用的代碼是()A . JFrame(s) B . window(s)C. new JFrame(s) D. super(s)參考解析:(P91

5、)本題考核知識點(diǎn)是 JFrame類和關(guān)鍵字super。在用Swing編寫GUI程序時(shí),通常不直接用JFrame 創(chuàng)建窗口對象,而用 JFrame派生的子類創(chuàng)建窗口對象,在子類中可以加入窗口的特定要求和特別的內(nèi)容,這時(shí)可 以使用超類的構(gòu)造方法完成窗口的標(biāo)題設(shè)置即super(s)。選項(xiàng)C完整的使用形式可以這樣:JFrame myWin=newJFrame(s)/創(chuàng)建JFrame窗口對象myWin ,標(biāo)題是s但這樣不符合本題題干“為程序的子窗口設(shè)定標(biāo)題”的要求。6. 以下關(guān)于菜單的敘述中,正確的是()A .菜單分三級定義,最高一級的是菜單條,菜單條中放菜單,菜單中放菜單項(xiàng)B .菜單分三級定義,最高一

6、級的是菜單,菜單中放菜單條,菜單條中放菜單項(xiàng)C.菜單分兩級定義,最高一級的是菜單,菜單中放菜單項(xiàng)D .菜單分兩級定義,最高一級的是菜單條,菜單條中放菜單項(xiàng)參考解析:(P118)7. 以下所述內(nèi)容全部是字型要素的是()A .字體、字形和大小 B .字體、風(fēng)格和字號C.字形、風(fēng)格和字號 D.字形、顏色和字號參考解析:(P137)本題考核知識點(diǎn)是字型要素。Java的文字字型有三個(gè)要素:字體、風(fēng)格和字號。常用的字體有Times NewRoman、Symbol、宋體和楷體等。常用的風(fēng)格有正常、粗體和斜體,分別用三個(gè)常量表示:Font.PLAIN、Font.BOLD 和Font.ITALIC,風(fēng)格可以組合

7、使用。字號是字的大小,單位是磅。&用Thread子類實(shí)現(xiàn)多線程的步驟順序是()A .聲明Thread類的子類,創(chuàng)建 Thread子類的實(shí)例,讓線程調(diào)用start()方法B .聲明Thread類的子類,在子類中重新定義run()方法,創(chuàng)建Thread子類的實(shí)例C.創(chuàng)建Thread子類的實(shí)例,讓線程調(diào)用start()方法D .聲明Thread類的子類,在子類中重新定義run()方法,創(chuàng)建Thread子類的實(shí)例,讓線程調(diào)用start()方法參考解析:(P162)本題考核知識點(diǎn)是多線程。在Java中實(shí)現(xiàn)多線程一般情況下是先聲明Thread類的子類,在子類中重載run()方法,然后創(chuàng)建這個(gè)子類的

8、實(shí)例,讓線程調(diào)用start()方法9. 為16位Unicode字符流提供讀和寫操作支持的類分別是()A . Filel nputStream 類和 FileOutputStream 類 B .In putStream 類和 Outputstream 類C. FileReader 類和 FileWriter 類D . File_Reader 類和 File_Writer 類參考解析:(P175)本題考核知識點(diǎn)是輸入輸出流。為Java的8位字節(jié)流數(shù)據(jù)的讀和寫操作提供支持的類分別是 FilelnputStream 類和 FileOutputStream 類,它們分別是 InputStream 類和

9、Outputstream 類的子類;為 Java 的 16 位Unicode字符流數(shù)據(jù)的讀和寫操作提供支持的類分別是FileReader類和FileWriter類,它們分別是 Reader類和Writer類的子類。10. 能利用對象提供的方法獲得流對象和實(shí)現(xiàn)網(wǎng)絡(luò)連接的是()A . URLCo nn ecti on 對象 B. URL 對象 C .In etAddress 對象 D . TCP/IP 對象 參考解析:(P191)本題考核知識點(diǎn)是 Java網(wǎng)絡(luò)編程。要接收和發(fā)送信息需用URLConnection類,程序獲得一個(gè) URLConnection對象,相當(dāng)于完成對指定URL的一個(gè)HTTP連

10、接。程序有了 URLConnection對象后,就可使用 URLConnection類提供的方法獲得流對象和實(shí)現(xiàn)網(wǎng)絡(luò) 連接。二、填空題(本大題共10小題,每小題2分,共20分)請?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。11. 一個(gè)小應(yīng)用程序必須定義成一個(gè)(P5)Applet(JApplet)類的子類。解析本題考核知識點(diǎn)是小應(yīng)用程序。一個(gè)小應(yīng)用程序必須定義成一個(gè)Applet類的子類或JApplet類的子類。試題內(nèi)容:一個(gè)小應(yīng)用程序必須定義成一個(gè) 。12. 用條件運(yùn)算符構(gòu)造一個(gè)表達(dá)式:goal等于10時(shí),表達(dá)式的值為“對了!”,否則,表達(dá)式的值為“錯(cuò)了!”。這個(gè)表達(dá)式是 一-:解析(P16

11、)試題內(nèi)容:用條件運(yùn)算符構(gòu)造一個(gè)表達(dá)式:goal等于10時(shí),表達(dá)式的值為”對了!",否則,表達(dá)式的值為”錯(cuò)了!"。這個(gè)表達(dá)式是 。13類是對一組相同對象的描述,類概括了同類對象的共有性質(zhì):(P40)數(shù)據(jù)(屬性)和方法(函數(shù))解析本題考核知識點(diǎn)是類的概念。類的每個(gè)對象都有自己的標(biāo)識,但它們具有相同的一組屬性和提供相同的一組方法。試題內(nèi)容:類是對一組相同對象的描述,類概括了同類對象的共有性質(zhì):。14. 設(shè)有數(shù)組a和b的定義如下:in ta=1,2,3;i ntb=4,5,6解析本題考核知識點(diǎn)是數(shù)組。Java語言根據(jù)相應(yīng)類型變量采用直接訪問還是間接訪問,把類型分成基本類型和引用類

12、型,數(shù)組類型和類類型是引用類型。數(shù)組進(jìn)行整體賦值,其實(shí)是數(shù)組首地址的賦值,原來地址空間會自動(dòng)釋放。試題內(nèi)容:設(shè)有數(shù)組 a和b的定義如下:int 口 a=1,2,3;int 口 b=4,5,6執(zhí)行以下代碼"a=b ;",除了完成賦值操作之外,引起系統(tǒng)額外要做的工作是 15. (PIOO)CardLayout布局使容器的多個(gè)組件擁有同一個(gè)顯示空間,某一時(shí)刻只能顯示一個(gè)組件。解析本題考核知識點(diǎn)是布局設(shè)計(jì)。常用的布局類:FlowLayout為依次放置組件;BorderLayout將組件放置在邊界上;CardLayout將組件像撲克牌一樣疊放,而每次只能顯示其中的一個(gè)組件;GridL

13、ayout將顯示區(qū)域按行、列劃分成一個(gè)個(gè)大小相等的格子,組件依次放入這些格子中;GridBagLayout能進(jìn)行更精細(xì)的位置控制。試題內(nèi)容: 布局使容器的多個(gè)組件擁有同一個(gè)顯示空間,某一時(shí)刻只能顯示一個(gè)組件。16. Java語言為處理鼠標(biāo)事件提供兩個(gè)接口(P127)MouseListener接口和 MouseMotionListener接口。我的答案:試題內(nèi)容:Java語言為處理鼠標(biāo)事件提供兩個(gè)接口: 接口和MouseMotionListener接口。17某個(gè)繪圖方法設(shè)置成“異或模式”繪圖,并用黃色作為異或模式設(shè)定的繪圖顏色。如果當(dāng)時(shí)背景色為紅色,并 用紅色繪制線段,則線段的實(shí)際顏色是(P14

14、0)黃色解析本題考核知識點(diǎn)是繪圖模式。當(dāng)繪圖模式設(shè)置為異或模式時(shí),用背景色繪圖出現(xiàn)的是異或的顏色,重畫一個(gè)圖形將清除圖形。試題內(nèi)容:某個(gè)繪圖方法設(shè)置成”異或模式”繪圖,并用黃色作為異或模式設(shè)定的繪圖顏色。如果當(dāng)時(shí)背景色為紅色,并用紅色繪制線段,則線段的實(shí)際顏色是 。18. 程序員用Java語言編寫多線程應(yīng)用程序,程序員能控制的關(guān)鍵性工作有兩個(gè)方面:一是編寫線程的(P161)run()方法;二是建立線程實(shí)例。解析本題考核知識點(diǎn)是多線程。Java程序?qū)崿F(xiàn)多線程應(yīng)用有兩種途徑:一是繼承Thread類聲明Thread子類,用Thread子類創(chuàng)建線程對象。二是在類中實(shí)現(xiàn) Runnable接口,在類中提供

15、Runnable接口的run()方法。無論用哪種方法, 都需要Java基礎(chǔ)類庫 中的Thread類及其方法的支持。程序員能控制的關(guān)鍵性工作只有兩個(gè)方面,一是編寫線程的run()方法;二是建立線程實(shí)例。試題內(nèi)容:程序員用Java語言編寫多線程應(yīng)用程序,程序員能控制的關(guān)鍵性工作有兩個(gè)方面:一是編寫線程的方法;二是建立線程實(shí)例。19. BufferedWriter類是提供緩沖式輸出的類。程序需要先創(chuàng)建(P179)FileWriter對象,再利用這個(gè)對象創(chuàng)建BufferedWriter 對象。解析本題考核知識點(diǎn)是緩沖式輸出。實(shí)現(xiàn)緩沖式輸出,需要將 FileWriter對象接到 BufferedWrit

16、er對象上,對 BufferedWriter對象使用 write()方法就 能實(shí)現(xiàn)緩沖式輸出。試題內(nèi)容:BufferedWriter類是提供緩沖式輸出的類。程序需要先創(chuàng)建對象,再利用這個(gè)對象創(chuàng)建BufferedWriter 對象。20在Java語言中,客戶端使用的套接字類是(P193)Socket解析本題考核知識點(diǎn)是Java網(wǎng)絡(luò)編程。Java語言在實(shí)現(xiàn) C/S模式中,套接字分為兩類,在Server端使用ServerSocker類,在Client端使用Socket類。試題內(nèi)容:在Java語言中,客戶端使用的套接字類是 。三、簡答題(本大題共6小題,每小題3分,共18分)21. 請寫出表示條件&q

17、uot;x=2與y=3有且只有一個(gè)成立”的Java表達(dá)式”。(P15) (x=2) !=(y=3)或(x=2&&y!=3)|(x!=2 &&y!=3)我的答案:22. 如果類Student是類Person的子類,類Undergraduate是類Student的子類,請指出以下代碼行中哪些是不合法的。Pers on p1= new Stude nt();Pers on p2=new Un dergraduate();Stude nt s1= new Pers on();Stude nt s2=new Un dergraduate();Un dergraduate

18、ug1= new Pers on();Un dergraduate ug2=new Stude nt();Object ob=new Stude nt();(P57)Student s1= new Person();Un dergraduate ug1= new Pers on();Un dergraduate ug2=new Stude nt();解析本題考核知識點(diǎn)是類之間的is-a關(guān)系。在兩個(gè)相關(guān)的類之間,可能會有is-a和has-a關(guān)系。若類A是繼承擴(kuò)展類B,則子類A和超類B之間是is-a關(guān)系,即類A是一個(gè)類B。這種情況下,A類對象一定可以是B類類型,因?yàn)锽類的所有成員 A類也有。也就是

19、子類對象可以是超類類型。語句b=new A()是正確的,A a=new B()是錯(cuò)誤的。23. 請寫出程序處理文本框輸入結(jié)束事件(回車)添加監(jiān)視器的方法,以及監(jiān)視器類必須實(shí)現(xiàn)的接口方法。(P102)為對象添加監(jiān)視器的方法是addActionListener;類必須實(shí)現(xiàn)的方法是 public voidactionPeformed(ActionEvent e)。解析本題考核知識點(diǎn)是文本框輸入結(jié)束動(dòng)作事件(回車)。文本框輸入結(jié)束動(dòng)作事件相應(yīng)的監(jiān)視器接口為ActionListener,要實(shí)現(xiàn)的接口方法是actionPeformed(),添加監(jiān)視器的方法是 addActoinListener()。24.

20、 請寫出一條語句,能夠繪制一條從點(diǎn)(20, 30)開始,長為100像素的水平線段。設(shè)調(diào)用的對象是類型為Graphics的g。(P140)g.drawLine(20,30,120,30);或 g.drawLine(120,30,20,30);解析本題考核知識點(diǎn)是畫線段。方法中有四個(gè)參數(shù)分別表示線段的兩個(gè)端點(diǎn)坐標(biāo),當(dāng)兩個(gè)端點(diǎn)坐標(biāo)相同時(shí),將畫出一個(gè)點(diǎn),而不再是線段。25. 某Java程序要使用文件輸入輸出流,請寫出該程序所需要的import語句。解析本題考核知識點(diǎn)是文件輸入輸出流。實(shí)現(xiàn)輸入輸出操作的類庫在java.io包中。包中有一組支持打開流、向流寫數(shù)據(jù)、從流讀取數(shù)據(jù)和關(guān)閉流等操作的類,要使用這些

21、類,程序必須導(dǎo)入java.io包。26. JDBC是Java程序與數(shù)據(jù)庫連接的API,請寫出JDBC能做的三件事情。(P199)與某個(gè)數(shù)據(jù)庫建立連接;向數(shù)據(jù)庫發(fā)送 SQL語句;處理數(shù)據(jù)庫返回的結(jié)果。解析本題考核知識點(diǎn)是java數(shù)據(jù)庫編程基礎(chǔ)。Java數(shù)據(jù)庫連接JDBC由一組用Java語言編寫的類和接口組成,JDBC是Java程序與數(shù)據(jù)庫連接的 API。它可以做三件事情。四、程序填空題(本大題共5小題,每空2分,共20分)27方法int maxDigit(int n)的功能是找出十進(jìn)制整數(shù)n各位中最大的一位數(shù)字。例如,n=23765,該方法的返回值是7。static int maxDigit(i

22、 nt n)int c=0,d;while(n > 0)d=n %10 if(d > c) c=d;n/=10;return c解析本題考核知識點(diǎn)是%運(yùn)算符和return語句。方法中d為循環(huán)分離出整數(shù) n的每一位數(shù)字(每次取 n的個(gè)位數(shù)字,n也在變化:n/=10),在找出最大的數(shù)字 后存入了變量c中,因方法有返回值類型為int,所以必須有return語句,要返回最大數(shù)字。,28. 某程序的界面包含一個(gè)文本區(qū)textl、一個(gè)文本框text2和一個(gè)按鈕button。實(shí)現(xiàn)在文本區(qū)中輸入整數(shù)序列后,點(diǎn)擊按鈕,程序響應(yīng)按鈕事件,累計(jì)文本區(qū)輸入的整數(shù)序列,并將總和輸出在文本框中。這里給出的是其

23、中相應(yīng)按鈕 事件的方法。public void action Performed(Act ionEvent e)int sum;if(e.getSource()=butto n)String s=text1. getText();/獲取 text1 中的信息StringTokenizer fenxi=new StringTokenizer(s, " ,n");int n=fen xi.co un tToke ns();double a=new double n;for(int i=0;i v n;i+)String temp=fenxi.nextToken();ai=Dou

24、ble.valueOf(temp).doubleValue();sum=0;for(int i=0;i v n;i+)sum+=a i或 sum=sum+a i;text2.setText(+sum);/ 刷新顯示。解析本題考核知識點(diǎn)是圖形界面設(shè)計(jì)中按鈕事件方法的編寫。獲取文本框中的內(nèi)容使用的方法是getText(),方法名首字母均小寫,后面單詞首字母大寫。獲取整數(shù)序列后,singingItem 被選中時(shí),在文29. 以下是生成菜單項(xiàng)對象,以及菜單項(xiàng)選擇事件處理方法的部分代碼。要求當(dāng)菜單項(xiàng) 本框text中輸出“唱歌菜單項(xiàng)被選中!”的字樣。singingltem=new JMenultem (”

25、 唱歌");生成菜單項(xiàng)對象public void action Performed(Act ionEvent e)if(e.getSource()=s ingin gItem)text.setText(e. getAct ion Comma nd()+ "菜單項(xiàng)被選中!”);解析本題考核知識點(diǎn)是菜單。生成菜單條是用類 JMenuBar的構(gòu)造方法 JMenuBar(),把菜單條放入 JFrame窗口中用setJMenuBar()方法;生 成菜單用類 JMenu的構(gòu)造方法 JMenu()或JMenu(Strings);生成菜單項(xiàng)用類 JMenultem的構(gòu)造方法 JMenult

26、em()或JMenultem(Strings)。在菜單事件中獲得事件源的方法是getSource(),獲得事件源文字信息的方法是getActionCommand()。30. 某小應(yīng)用程序?qū)崿F(xiàn)幻燈片放映。小應(yīng)用程序的init()方法將幻燈片讀入數(shù)組中存儲和注冊鼠標(biāo)監(jiān)視器。程序運(yùn)行時(shí),單擊鼠標(biāo),就順序變換放映幻燈片的序號。這里給出的是其中的paint()方法和mousePressed(方法。final int number=30;假定幻燈片有 30張int coun t=0;lmagepic=new lmage nu mber;public void paint( Graphics gc)if(p

27、iccou nt)!=null)gc.drawlmage(picco un t,10,10,picco un t.getWidth(this),picco un t.getHeight(this),this);public void mousePressed(MouseEve nt e)count=(count+1)% number;/ 循環(huán)逐張顯示repaint()或 update();解析本題考核知識點(diǎn)是小應(yīng)用程序中paint()和repaint()方法的使用。pai nt()方法需要Graphics類型參數(shù),當(dāng)單擊鼠標(biāo)時(shí),要在pa in t()方法中再次顯示圖片,可以調(diào)用repai nt

28、()方法,使程序先清除paint()運(yùn)行的結(jié)果,再運(yùn)行paint();也可以調(diào)用update。方法,該方法會使系統(tǒng)自動(dòng)調(diào)用 repaint() 方法。31. 以下定義的類shareDataManager用于管理多個(gè)線程共享數(shù)據(jù) data。一些線程要減少 data,另一些線程要增加 data。 由于data不可以是負(fù)值,修改data的方法對這些線程來說不僅要互斥,還要同步。類提供一個(gè)方法 modiData()供修改data的線程調(diào)用,該方法在 data修改結(jié)束后,應(yīng)通知其它等待進(jìn)入這個(gè)方法的線程。class ShareDataMa nagerint data=0;synchroni zed vo

29、id modiData(i nt delta)if(delta > =0)data+=delta;else while(data v delta)"發(fā)生等待!");wait();catch(I nterruptedExceptio n e)data-=delta;notify();ShareDataMa nager(i nt ititData)data=i ni tData;解析本題考核知識點(diǎn)是線程的互斥和同步。在Java語言中,使用關(guān)鍵字synchronized定義臨界段, 程使用這個(gè)共享對象。但是為了同步,可在臨界段中使用 等待,notify()方法通知第一個(gè)處于

30、等待的線程結(jié)束等待。重新競爭CPU。能對共享對象的操作上鎖,使得某一時(shí)刻只允許一個(gè)線wait()、notify()和 notifyAII()方法。wait()讓線程一直notifyAII()方法使所有處于等待的線程都結(jié)束等待,五、程序分析題(本大題共5小題,每小題4分,共20 分)32. 閱讀下列程序,請寫出該程序的輸出結(jié)果。class Poi ntint x,y;Poin t(i nt xx,i nt yy) x=xx;y=yy;Poi nt(Poi nt p)x=p.x;y=p.y;void m(i nt dx,i nt dy)x+=dx;y+=dy;class Circle exte n

31、ds Pointint r;Circle(Po int p, int rr) super(p); r=rr; float a() return 3.14f*r*r;public class sample exte nds AppletCircle yua n; Point d;public void ini t()d=new Poi nt(2,5);yua n=new Circle(d,10);public void pain t(Graphics g)g.drawString(” yuan Circle " +(int)(yuan.c()*100.0)/100.0,5,20);g.

32、drawString(" yuan Area" +(int)(yuan.a()*100.0)/100.0,5,40);yuan Circle 62.8(2 分)yuan Area 314.0(2 分)我的答案:33. 閱讀下列程序,請寫出該程序的功能。import java. util.*;public class Class1public static void main(Srting args)Date date1= new Date();System. out. prin tl n (datel);String t=datel.toStri ng();int endP

33、os=t.indexOf( ' C / );t=t.substri ng(11,e ndPos);System. out prin tl n( t); 程序獲得當(dāng)前日期,將日期的字符串表示輸出;(2分)截取日期字符串中從第11位開始到字母C'之前部分字符串,并輸出。(2分)34. 閱讀下列程序,請寫出該程序的功能。public class Class l exte nds Applet impleme nts Action Liste nerJTextField text1,text2;public void in it()text 仁n ew JTextField(10);t

34、ext2=new JTextField(10);setSize(200,100); add(text1); add(text2);textl.addActi on Liste ner(this);public void action Performed(Act ion Event e)long n;if(e.getSource()=text1)n=Lon g.parseL on g(text1.getText();text2.setText(Stri ng.valueOf( n*n);(2 分)在第一個(gè)文本框輸入數(shù)據(jù),輸入結(jié)束(回車)后, (2分)在第二個(gè)文本框輸出該整數(shù)的平方。35. 閱讀以

35、下程序,請寫出該程序的功能。class MyScrollBar exte nds JscrollBarpublic MyScrollBar(i nt in it, i nt len, i nt low, i nt high)super(JScrollBar. HORIZONTAL, i nit,le n,low,high);class MyWin dow exte nds JFrame impleme nts Adjustme ntListe nerprivate JTextField text;MyWin dow(Stri ng s)super(s);MyScrollBar myBar= n

36、ew MyScrollBar(10,10,0,255);Container con=this. getC onten tPa ne();con. setLayout (new GridLayout(2,1);this. setSize(200,100);this. setLocatio n(100,100);myBar.addAdjustme ntListe ner(this);text =new JTextField( " H ,20);con. add(text);c on. add(myBar);this.setVisible(true);public void adjustm

37、e ntValueCha nged(Adjustme ntEve nt e)MyScrollBar myBar=(MyScrollBar)e.getAdjustable();text.setText("” +myBar.getValue();public class Class1public static void main( Stri ngargs)MyWindow myWindow=new MyWindow(" text5_4 ");滑動(dòng)滾動(dòng)條的滑塊,在文本框顯示塊位置對應(yīng)的數(shù)值。36小應(yīng)用程序創(chuàng)建一個(gè)線程。例子使用容器類方法getGraphics()獲得Gr

38、aphics對象,給線程作為畫筆使用。請寫出該程序中這個(gè)線程的工作內(nèi)容。Thread redBall;Graphics redPe n;int rx=0,ry=0;public void in it()setSize(250,200);redBall =new Thread(this);redPe n=getGraphics();redPe n. setColor(Color.red);setBackgro un d(Color.gray);public void start() redBall.start(); public void run()while(true)if(Thread.cu

39、rre ntThread()=redBall)rx=(i nt)(80*Math.ra ndom();ry=(i nt)(80*Math.ra ndom();red Pen. setColor(Color.red);red Pe n.fillOval(100+rx,100+ry,10,10);tryredBall.sleep(500);catch(I nterruptedExcepti on e)redPe n. setColor(Color.gray);redPe n.fillOval(100+rx,100+ry,10,10);隨機(jī)位置顯示一個(gè)小圓,程序采用背景色重畫的辦法,清除前一次顯示的

40、小圓。解析本題考核知識點(diǎn)是圖形繪制和線程綜合應(yīng)用。在run()方法中隨機(jī)產(chǎn)生一個(gè)坐標(biāo)點(diǎn),以此為左上角坐標(biāo),紅色填充一個(gè)小圓形區(qū)域,500毫秒后,用背景色填充同一個(gè)小圓形區(qū)域, 使紅色小圓形區(qū)域消失, 馬上又隨機(jī)產(chǎn)生一個(gè)坐標(biāo)點(diǎn),再紅色填充,再消失,循環(huán)不止。我的答案:六、程序設(shè)計(jì)題(本大題共 2小題,每小題6分,共12 分)37. 編寫一個(gè)方法 halfArray(),要求該方法有一個(gè)元素類型為int的數(shù)組參數(shù),方法返回一個(gè)新數(shù)組,新數(shù)組的長 度與參數(shù)數(shù)組的長度相同,而新數(shù)組元素的值是參數(shù)數(shù)組各元素的一半。答案:int halfArray(int a) (1 分)int b=new int a.

41、length ;(2 分)for(int k=O;k v a.length;k+) (2 分)b : k: =a : k: /2;return b; (1 分)解析本題考核知識點(diǎn)是面向?qū)ο蟪绦蛟O(shè)計(jì)中的方法設(shè)計(jì)。編寫方法,需要確定方法名,已給出halfArray ;再確定參數(shù)個(gè)數(shù)及類型,要求是一個(gè)int型數(shù)組參數(shù)即halfArray(i nt口);再就是確定方法返回值類型,要求返回一個(gè)新數(shù)組,新數(shù)組元素類型要確定下來,根據(jù)題意,新數(shù)組元素是參數(shù)數(shù)組相應(yīng)元素的一半,這一半應(yīng)該可能是小數(shù),所以方法頭應(yīng)該為float halfArray(int口)而不應(yīng)該是 int 口halfAray(int),方法

42、體中的一半也應(yīng)該是除以2.0。并轉(zhuǎn)換成float類型,方法體定義的數(shù)組b也應(yīng)該是float類型?;蛘叻祷刂殿愋秃蛿?shù)組b的類型都定義成double類型。38. 個(gè)Java小應(yīng)用程序,界面有三個(gè)文本框和兩個(gè)按鈕,前兩個(gè)文本框用于輸入整數(shù),第三個(gè)文本框用于輸出 結(jié)果。兩個(gè)按鈕分別表示加和減運(yùn)算。當(dāng)前兩個(gè)文本框輸入整數(shù)后,點(diǎn)擊相應(yīng)按鈕,程序就將計(jì)算結(jié)果輸出在第三 個(gè)文本框中。以下是程序的大部分,其中監(jiān)視按鈕事件的方法未給出,試編寫處理按鈕事件的方法。注:這里是給定部分的程序,你要編寫的是actionPerformed(ActionEvent e)方法。class Pan el1 exte nds JP

43、a nelJTextField text1, text2, text3;JButt on addButt on, subButt on;Pan el1()text 仁n ew JTextField(10);text2=new JTextField(10);text3=n ew JTextField(10);setLayout (n ew GridLayout(5,1);addButton=new JButton("加");subButton=new JButton("減"); add(text1); add(text2);add(text3);add(a

44、ddButt on);add(subButto n);public class Classl exte nds Applet impleme nts Action Liste nerPanel pan el;public void in it()setSize(100,200);pan el=new Pa nel1();add(pa nel);(pa nel.addButt on ).addAct ion Liste ner(this);(pa nel.subButt on). addActi on Liste ner(this);public void actio nPeformed(Act

45、io nEvent e)/ 這里是你要編寫的代碼答案:long n1,n2; (1 分)if(e.getSource()=(panel.addButton)(3 分)else if(e.getSource()=(panel.subButton)(2 分)注:將 panel.text1 寫成 text1,panel.text2 寫成 text2 整體扣 1 分。解析本題考核知識點(diǎn)是圖形界面設(shè)計(jì)、JPanel、JTextField、JButton及其事件的處理。在方法體中的代碼類似于34小題。容器的嵌套不要忽略了。全國2009年1月Java語言程序設(shè)計(jì)(一)試題課程代碼:04747、單項(xiàng)選擇題(本

46、大題共10小題,每小題1分,共10分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯(cuò)選、多選或 未選均無分。1下列字符組合不能作為Java整型常量的是()A.078 B.0X3ACBC.5000 D.0X3ABC2以下程序代碼的輸出結(jié)果是()int x = 10;while (x > 7)x-;A.*B *D *3設(shè)類U聲明,及對象u和v的定義如下:class Uint x, int y;U(i nt a, int b)x= a; y = b;void copy(U a) x = a.x; y = a.y;U u = new U(1,2), v =

47、new U(2, 3);在以下供選擇的代碼中,可能引起系統(tǒng)回收內(nèi)存的是 ()A. u.x=v.y;u.y=v.x; B.u=v;4. 設(shè)有以下代碼:String s l="123";String s2="123";Stri ng s3=new Str in g("123");則表達(dá)式s1=s2和s1=s3的值分別是()A. true, true B.false,falseC.true, false D.false,true5. 以下關(guān)于AWT與Swing之間關(guān)系的敘述,正確的是()A. Swing是AWT的提高和擴(kuò)展B. 在寫GUI程

48、序時(shí),AWT和Swing不能同時(shí)使用C. AWT和Swing在不同的平臺上都有相同的表示D. AWT中的類是從Swing繼承的6在以下Swing組件中,能為它指定布局管理器的是 ()A.JScrollBar 對象 B.JMenuBar 對象C.JComboBox 對象 D.JDialog 對象7般的繪圖程序要定義一個(gè)JPanel子類JPanel子類中還要重定義一個(gè)方法,在這個(gè)方法中調(diào)用繪圖方法,繪制各種圖形。要重定義的方法是 (A.pai nt() B.pai ntComp onen t()C.repai nt()D.update()8. 用Runnable接口實(shí)現(xiàn)多線程的主要工作是A.聲明實(shí)

49、現(xiàn)Runn able 接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,讓線程調(diào)用start()方法。B.聲明實(shí)現(xiàn)Ru nn able 接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,在類內(nèi)聲明線程對象,在ini t()方法中創(chuàng)建新線程,啟動(dòng)新線程。C.聲明實(shí)現(xiàn)Ru nn able 接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,在類內(nèi)聲明線程對象,在lnit()方法或start()方法中創(chuàng)建新線程,在start()方法中啟動(dòng)新線程。D.聲明實(shí)現(xiàn)Runnable接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,在init()方法中創(chuàng)建新線程,在start()方法中啟動(dòng)新線程。9. 程序如果要按行輸入輸出文件的字符流,最合理的方法是采用()A.

50、BufferedReader 類和 BufferedWriter 類B. lnputStream 類和 Outputstream 類C. FileReader 類和 FileWriter 類D. File_Reader 類和 File_Writer 類10. 在編寫訪問數(shù)據(jù)庫的Java程序中,要用到 DriverManager類。該類的作用是()A. 存儲查詢結(jié)果B. 處理與數(shù)據(jù)庫的連接C. 在指定的連接中處理 SQL語句D. 處理驅(qū)動(dòng)程序的加載和建立數(shù)據(jù)庫連接二、填空題(本大題共10小題,每小題2分,共20分) 請?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。11. Java程序的字節(jié)碼文

51、件的擴(kuò)展名是 。 class12. 構(gòu)造一個(gè)Java表達(dá)式:y/x>5,并且x!=0。這個(gè)表達(dá)式是 。y/x>5 && x!=013. 在類聲明之前用 修飾,聲明類是不能被再繼承的類,即它不能再有子類。final14. 設(shè)有字符串定義:String s="ABCDABCD";則表達(dá)式s.indexOf("B")的值是。115. 在實(shí)現(xiàn)接口ActionListener的方法 actionPerformed()中,常用的有兩個(gè)獲得事件源的方法,它們是getActionCommand()和。getSource()16. 使用單選按鈕

52、的方法是將一些單選按鈕用 對象分組,使同一組內(nèi)的單選按鈕只允許一個(gè)被選中。Butt on Group17在Java語言中,用類Font對象設(shè)置字型。如果要設(shè)置的字型是:細(xì)明體、正常風(fēng)格(Font.PLAIN) , 12磅字號,構(gòu)造這樣要求的 Font對象fnA的代碼是。Font fnA= new Font(細(xì)明體”,18. 線程從阻塞狀態(tài)恢復(fù)到就緒狀態(tài),有三種途徑:自動(dòng)恢復(fù)、用resume。方法恢復(fù)和用 方法恢復(fù)。notify()或 notifyAII()19. 為普通的8位字節(jié)流文件讀和寫操作提供支持的類是 。InputStream Outputstream20. Connection類是j

53、ava.sql包中用于處理與數(shù)據(jù)庫連接的類。Connection對象是用來表示 的對象,Java程序?qū)?shù)據(jù)庫的操作都在這種對象上進(jìn)行。數(shù)據(jù)庫連接三、簡答題(本大題共6小題,每小題3分,共18分)21. 請寫出表示year年是閏年的Java表達(dá)式。閏年的條件是:每4年一個(gè)閏年,但每100年少一個(gè)閏年,每400 年又增加一個(gè)閏年。(year%4= =0) && (year%4!=0)| (year%400= =0)22. 請寫出在類的方法的定義之前,加上修飾字public、private的區(qū)別。Public修飾的方法為公用方法,任何類的方法都可以訪問他Private修飾的方法,本類

54、內(nèi)部可以訪問23. 請寫出將文本區(qū)text放置于滾動(dòng)面板jsp,并將滾動(dòng)面板jsp添加到JFrame窗口 myFrame的Java語句。TextArea text=new TextArea();JScrollPane jsp=new JScrollPane(text);myFrame.getContentPane().add(jsp);24. 要用Graphics2D類的方法畫一個(gè)圖形, 首先要把參數(shù)對象g強(qiáng)制轉(zhuǎn)換成Graphics2D對象;然后,用圖形類 提供的靜態(tài)方法 Double()創(chuàng)建一個(gè)圖形對象;最后,以圖形對象為參數(shù)調(diào)用Graphics2D對象的draw()方法繪制這個(gè)圖形。請寫出

55、用這樣的方法繪制一條線段的程序段,線段的兩個(gè)端點(diǎn)分別是(10.0,10.0)和(30.0, 30.0)。Graphics2D g2d=( Graphics2D) g;Li ne2D lin e=new Li ne2D.Double(10,20,30,40);G2d.draw(li ne)25. 請寫出字符流數(shù)據(jù)與字節(jié)流數(shù)據(jù)的區(qū)別。(P.175)26. 請寫出URLConnection類在編寫Java網(wǎng)絡(luò)應(yīng)用程序中的作用。URLConnection類完成流對象和實(shí)現(xiàn)網(wǎng)絡(luò)連接四、程序填空題(本大題共5小題,每小題4分,共20分)27. 方法int sigmaDigit(int n)的功能是求出十進(jìn)制整數(shù)n的各位數(shù)字之和。例如,n=1234,該方法的返回值是10。static int sigmaDigit( int n ) int sum = 0, d;while( n > 0 )d=n% 10;; sum+=dn/= 10;;return sum28. 以下小應(yīng)用程序能響應(yīng)鼠標(biāo)按動(dòng)的事件,當(dāng)鼠標(biāo)在正文區(qū)的某個(gè)位置被點(diǎn)擊時(shí),就在該位置顯示

溫馨提示

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

最新文檔

評論

0/150

提交評論