版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2016年4月高等教育自學(xué)考試《Java語(yǔ)言程序設(shè)計(jì)(一)》試題課程代碼:04747一、單項(xiàng)選擇題1.Java程序的運(yùn)行模式是A.完全編譯B.先編譯后解釋C.完全解釋D.先解釋后編譯2.設(shè)x、y、z的初始值分別是1、2、3,則表達(dá)式x==0‖x<y&&z>y的值是A.trueB.1C.falseD.03.如果某成員變量在方法中被隱藏,又需要在方法中引用該成員變量,可以利用的關(guān)鍵字是A.thisB.innerC.newD.outer4.設(shè)int[][]x={{1,2},{3},{4,5,6}},則x[1].1ength的值是A.0B.1C.2D.35.為了統(tǒng)一管理組件和容器,Java為所有組件類定義的超類A.ContainerB.JContainerC.ComponentD.JComponent6.在列表框中,與雙擊事件相關(guān)的接口是A.ListSelectionListenerB.ItemListenerC.ActionListenerD.AdjustmentListener7.設(shè)置Font對(duì)象為楷體、粗斜體、10磅大小的代碼是A.Font("楷體",BLOD,ITALIC,10)B.Font("楷體",F(xiàn)ont.BLOD,Font.ITALIC,10)C.Font("楷體",F(xiàn)ont.BLOD+ITALIC,10)D.Font("楷體",F(xiàn)ont.BLOD+Font.ITALIC,10)8.以下關(guān)于Java線程的說(shuō)法,正確的是A.新線程一旦被創(chuàng)建,它將自動(dòng)開(kāi)始運(yùn)行B.線程是可以獨(dú)立運(yùn)行的程序,有自己的狀態(tài)和專用數(shù)據(jù)段C.使用yield()方法可以使線程主動(dòng)放棄CPUD.線程的優(yōu)先級(jí)用數(shù)值表示,數(shù)值越小優(yōu)先級(jí)越高9.創(chuàng)建文件對(duì)象可能會(huì)產(chǎn)生異常,該異常是A.InvalidObjectExceptionB.FileCreateExceptionC.IOExceptionD.FileNotFoundException10.加載純JavaJDBC驅(qū)動(dòng)程序的方法是A.executeQuery()B.createStatement()C.a(chǎn)ddJDBCDriver()D.Class.forName()二、填空題11.如果某Java源文件中定義了publicclassTestll,則其文件名應(yīng)為。12.switch語(yǔ)句包含一系列由case開(kāi)頭的子句和一個(gè)可選的由開(kāi)頭的子句。13.設(shè)有Double類對(duì)象dblObj,則使得dblObj對(duì)象的值賦值給double類型變量d的代碼是doubled=dblObi.。14.設(shè)有Strings="java";,執(zhí)行語(yǔ)句s=s.concat(s);后,s的內(nèi)容是。15.在JavaSwing中,滾動(dòng)面板類的名字是。16.在JavaSwing中,創(chuàng)建菜單項(xiàng)所使用的類是。17.在Java程序中要?jiǎng)?chuàng)建緩沖區(qū)圖像,需要引入類。18.通常情況下,多線程之間有互斥和兩種情況。19.在打開(kāi)文件對(duì)話框中,如果要設(shè)置篩選條件,需使用類。20.在Java網(wǎng)絡(luò)編程中,getHostAddress()用于獲取InetAddress對(duì)象的。三、簡(jiǎn)答題21.請(qǐng)寫出使用for語(yǔ)句,輸出所有既能夠被3整除也能夠被5整除的三位數(shù)的代碼。22.什么是類變量?什么是實(shí)例變量?類變量有什么特點(diǎn)?23.請(qǐng)寫出FlowLayout布局的三種構(gòu)造方法。24.已知Graphics對(duì)象g,獲得Graphics2D對(duì)象g2d,然后,用線段類創(chuàng)建線段對(duì)象line,該線段的起點(diǎn)坐標(biāo)是(10,10),終點(diǎn)是(70,80)。請(qǐng)寫出實(shí)現(xiàn)以上要求的Java代碼。25.簡(jiǎn)述用Runnable接口實(shí)現(xiàn)多線程的主要工作。26.請(qǐng)寫出實(shí)現(xiàn)文件隨機(jī)訪問(wèn)所使用的類的類名,以及該類常用的兩種構(gòu)造方法。四、程序填空題27.方法intmaxnumDigit(intn)的功能是求出十進(jìn)制整數(shù)n各位的最大值。例如,n=12340,該方法的返回值是4。staticintmaxnumDigit(ihtn){intmax=0,d;while(n>0){d=;if(d>max)max=d;n=;}returnmax;}28.某應(yīng)用程序窗口包含有一個(gè)帶文字“計(jì)數(shù)”的按鈕,以及一個(gè)標(biāo)簽label。單擊按鈕,標(biāo)簽中顯示按鈕被單擊的次數(shù)。以下是其中處理“計(jì)數(shù)”按鈕事件的方法。publicvoidactionPerformed(ActionEvente){if(e.getActionCommand().){intn=Integer,parseInt();n++;label.setText(""+n);}}29.某小應(yīng)用程序中,當(dāng)鼠標(biāo)按下后,在鼠標(biāo)當(dāng)前位置顯示其坐標(biāo)值。importjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassTest29extendsAppletimplementsMouseListener{privateStringposition="";privateintx,y;publicvoidinit(){;}publicvoidpaint(Graphicsg){g.drawString(position,x,y);publicvoid.(MouseEvente){x=e.getX();y=e.getY();position--"("+x+","+y+")";repaint();}publicvoidmouseClicked(MouseEvente){}publicvoidmouseEntered(MouseEvente){}publicvoidmouseExited(MouseEvente){}publicvoidmouseReleased(MouseEvente){}}30.某小應(yīng)用程序在加載時(shí)自動(dòng)播放音頻文件onestop.mid,該音頻文件與小程序放在相同目錄中。其中clip為一個(gè)音頻對(duì)象。importjava.applet.*;importjava.awt.*;publicclassTest30extendsApplet{clip;publicvoidinit(){clip=getAudioClip(,"onestop.mid");clip.play();}publicvoidstop()clip.stop();}}31.方法connectByJdbc()可以實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接,如果連接成功,該方法返回連接對(duì)象,否則返回空。publicstaticConnectionconnectByJdbc(Stringurl,Stringuser,Stringpwd){con=null;......//加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序try{con=DriverManager.(url,user,pwd);}catch(SQLExceptione){e.pfintStackTrace();remmnull;}returncon;}五、程序分析題32.閱讀下列程序,請(qǐng)寫出該程序的輸出結(jié)果。interfaceCountable{intgetVal();}classRimplementsCountable{intval;R0{val=0;}publicintgetVal(){val++;returnval;}}classTest32{publicstaticvoidmain(Srtingargs[]){Rr=newR();for(inti=0;i<2;i++){System.out.println("R:"+r.getVal());}}}33.閱讀下列程序,請(qǐng)寫出該程序的輸出結(jié)果。publicclassTest33{publicstaticvoidmain(String[]args){Strings="Iamalsoastring.";inti=0,j=0;do{j=s.indexOf("a",i);System.out.println(j);i=j+1;while(j!=-1);}}34.閱讀下列程序,請(qǐng)寫出該程序的功能。importjava.applet.*;importjava.awt.*;importjava.awt,event.*;importjavax.swing.*;publicclassTest34extendsAppletimplementsActionListener,ItemListener{JComboBoxcomboBox;StringcolName[]={"藍(lán)色","淺藍(lán)色","綠色","紅色","黃色"};Colorcols[]={Color.blue,Color,cyan,Color,green,Color,red,Color,yellow};intt;publicvoidinit(){comboBox=newJComboBox(colName);comboBox.addActionListener(this);comboBox.addltemListener(this);comboBox.setEditable(false);add(comboBox);this.setVisible(true);}publicvoidactionPerformed(ActionEvente){}publicvoiditemStateChanged(ItemEvente){t=comboBox.getSelectedlndex();repaint();}publicvoidpaint(Graphicsg){g.setColor(cols[t]);g.fillRect(15,30,20,20);}}35.閱讀下列程序,請(qǐng)寫出該程序的功能。importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassTest35extendsJFrame{privateDrawLinesPaneldrawLinesPanel=newDrawLinesPanel(100);Test35(){"add(drawLinesPanel);drawLinesPanel.setFocusable(tme);setSize(300,200);setVisible(true);}publicstaticvoidmain(String[]args){newTest35();}}classDrawLinesPanelextendsJPanelimplementsKeyListener{intMaxMarks,markCount;intxMarks[],yMarks[];intx=0,y=0,centerX,centerY;publicDrawLinesPanel(intm){MaxMarks=m;markCount=0;xMarks=newint[MaxMarks];yMarks=newint[MaxMarks];centerX=150;centerY=100;addPoint(x,y);addKeyListener(this);}publicvoidkeyPressed(KeyEvente){switch(e,getKeyCode()){caseKeyEvent.VK_UP:y-=10;addPoint(x,y);break;caseKeyEvent.VK_DOWN:y+=10;addPoint(x,y);break;caseKeyEvent.VK_LEFT:x-=10;addPoint(x,y);break;caseKeyEvent.VK_RIGHT:x+=10;addPoint(x,y);break;}repaint();}privatevoidaddPoint(intx,inty){if(markCount==MaxMarks)return;xMarks[markCount]=x+centerX;yMarks[markCount]=y+centerY;markCount++;}publicvoidkeyTyped(KeyEvente){}publicvoidkeyReleased(KeyEvente){}protectedvoidpaintComponent(Graphicsg){super,paintComponent(g);g.setColor(Color,blue);for(inti=0;i<markCount-1;i++)g.drawLine(xMarks[i],yMarks[i],xMarks[i+1],yMarks[i+1]);}}36.閱讀下列程序,請(qǐng)寫出該程序的功能。importjava.util.*;classRunnerimplementsRunnable{Stringname;publicRunner(Stringname){=name;}publicvoidrun(){for(inti=l;i<=10;i++){Datenow=newDate();try{Thread.sleep(1000);}catch(InterruptedExceptione){}System.out.println(name+"的時(shí)間是"+now.toString());}}}publicclassTest36{publicstaticvoidmain(Stringargs[]){Runnerr1=newRunner("線程A");Threadt1=newThread(r1);t1.start();Runnerr2=newRunner("線程B");Threadt2=newThread(r2);t2.start();Runnerr3=newRunner("線程C");Threadt3=newThread(r3);t3.start();System.out.pfintln("結(jié)束運(yùn)行");}}六、程序設(shè)計(jì)題37.請(qǐng)編寫方法booleanisDuplicated(int[]a),該方法判斷數(shù)組a[]中是否存在相同的元素(例如,數(shù)組{1,2,1,3}中具有相同的元素,而數(shù)組{1,2,3,4}中各元素都不相同),如果存在相同的元素則返回真值,否則返回假值。publicstaticbooleanisDuplicated(int[]a){}38.以下小應(yīng)用程序的界面有一個(gè)顯示“計(jì)算”的按鈕calc,以及一個(gè)文本框result。當(dāng)該按鈕被按下時(shí),彈出一個(gè)對(duì)話框,要求輸入一個(gè)整數(shù),返回后在文本框中顯示該整數(shù)的平方值。例如,當(dāng)輸入8時(shí),在文本框中顯示“8的平方是64'’。注:這里是給定程序的部分代碼,你要編寫的是actionPerformed(ActionEvente)方法。importjava.awt.event.*;importjava.applet.*;importjavax.swing.*;publicclassTest38extendsAppletimplementsAcfionListener{JButtoncalc;JTextFieldresult;publicvoidinit(){calc=newJButton("計(jì)算");result=newJTextField(10);add(calc);add(result);calc.addActionListener(this);}publicvoidactionPerformed(ActionEvente){//請(qǐng)?jiān)谝韵挛恢镁帉懘a
2016年10月高等教育自學(xué)考試《Java語(yǔ)言程序設(shè)計(jì)(一)》試題課程代碼:04747一、單項(xiàng)選擇題1.在下述字符串中,不是Java語(yǔ)言關(guān)鍵字的是(C)A.intB.staticC.javaD.try2.要作下列數(shù)據(jù)類型轉(zhuǎn)換,需進(jìn)行強(qiáng)制類型轉(zhuǎn)換才能實(shí)現(xiàn)的是(A)A.從int到charB.從int到longC.從float到doubleD.從byte到int3.在以下供選擇的概念中,屬于面向?qū)ο笳Z(yǔ)言重要概念或機(jī)制的是(D)A.方法B.模塊C.線程D.繼承4.在下述Java程序代碼中,能正確創(chuàng)建數(shù)組的是(D)A.intmyA[5]={1,2,3,4,5};B.intmyA[]=newiht(5);C.intmyA[];myA[]=newint[5];D.int[]myA={1,2,3,4,5,6};5.某Java程序的類A需要利用Swing創(chuàng)建無(wú)邊框窗口,則A需要繼承的類是(A)A.JWindowB.JAppletC.JFrameD.JDialog6.在以下供選的鼠標(biāo)事件中,MouseMotionListener接口能處理的是(B)A.按下鼠標(biāo)鍵B.拖動(dòng)鼠標(biāo)C.鼠標(biāo)進(jìn)入D.鼠標(biāo)松開(kāi)7.在以下代碼中,能正確創(chuàng)建Font對(duì)象的是(C)A.newFont("宋體",斜體,20);B.newFont("楷體",20,正常);C.newFont("楷體",Font.BOLD.18);D.newFont("楷體",18,Font.BOLD);8.某線程正處于運(yùn)行狀態(tài),則在以下選項(xiàng)中,不可能是它的后繼狀態(tài)的是(B)A.就緒狀態(tài)B.新建狀態(tài)C.阻塞狀態(tài)D.死亡狀態(tài)9.某Java程序用類JFileChooser來(lái)實(shí)現(xiàn)打開(kāi)和保存文件對(duì)話框。當(dāng)對(duì)話框的返回值是JFileChooser.APPROVEOPTION時(shí),程序進(jìn)一步的工作是(D)A.用方法getName()取得文件名稱B.用方法getPath()取得文件路徑C.用方法getFile()取得文件內(nèi)容D.用方法getSelectedFile()取得文件對(duì)象10.Java語(yǔ)言實(shí)現(xiàn)C/S模式時(shí),需要使用網(wǎng)絡(luò)套接字,套接字的內(nèi)容包括(A)A.IP地址+端口號(hào)B.IP地址+監(jiān)控線程名C.監(jiān)控線程名+端口號(hào)D.IP地址+監(jiān)控線程名+端口號(hào)二、填空題11.一個(gè)Java小應(yīng)用程序必須定義成一個(gè)子類,它的超類是Applet。12.在Java語(yǔ)言中,左移運(yùn)算符是<<。13.類A的成員變量x的類型是類B的,則類A和類B之間的關(guān)系是has-a。14.以下代碼:StringTokenizerpas=newStringTokenizer("publicstaticvoid,main",",");System.out.println("有單詞"+pas.countTokens()+"個(gè)");的輸出結(jié)果是有單詞4個(gè)。15.在JFrame子類的構(gòu)造方法中,代碼getContentPane()的作用是獲得JFrame子類對(duì)象的內(nèi)容面板。16.用JScrollBar創(chuàng)建一個(gè)垂直滾動(dòng)條對(duì)象時(shí),需要指定的常量是JScrollBar.VERTICAL。17.在異或模式下繪圖時(shí),實(shí)際繪制的顏色是由3種顏色作特定的運(yùn)算確定的:當(dāng)前正要繪制的顏色、原先繪制的顏色以及模式設(shè)定的顏色。18.處于運(yùn)行狀態(tài)的線程執(zhí)行yield()方法,該線程將進(jìn)入就緒狀態(tài)。19.在Java語(yǔ)言中,客戶端使用的套接字類是Socket。20.在Java語(yǔ)言中,DriverManager類的作用是加載驅(qū)動(dòng)程序和建立與新數(shù)據(jù)庫(kù)的連接。三、簡(jiǎn)答題21.已知整形變量n,當(dāng)n的值為0時(shí),輸出“正?!?,否則輸出“異?!?。請(qǐng)寫出使用switch語(yǔ)句實(shí)現(xiàn)此功能的代碼。答:switch(n){case0:System.out.println("正常");break;default:System.out.println("異常");}22.請(qǐng)寫出在類、方法、變量之前加上修飾字final的作用。答:用final修飾類,聲明該類是不能被再繼承的類。用final修飾方法,聲明該方法不能被子類的方法覆蓋。用final修飾變量,聲明該變量的值不能被改變。23.請(qǐng)列舉出能產(chǎn)生ActionEvent事件類型的3種組件。答:JButton、JCheckBox、JComboBox、JMenultem、JRadioButton24.某程序用以下代碼彈出一個(gè)對(duì)話框:intanwser=JOptionPane.showConfirmDialog(null,"確實(shí)要退出嗎?","退出確認(rèn)")",OptionPane.YES_NO_CANCEL_OPTION);如果程序中anwser的值等于CLOSEDOPTION,請(qǐng)寫出用戶對(duì)該對(duì)話框的操作內(nèi)容。答:用戶直接關(guān)閉對(duì)話窗口25.請(qǐng)寫出用矩形類Rectangle2D創(chuàng)建對(duì)象r的代碼,對(duì)象r的左上角坐標(biāo)是(20,30),寬是50,高是70。答:Rectangle2Dr=newRectangle2D.Double(20,30,50,70);26.URL對(duì)象的格式是:<METHOD>://<HOSTNAME:PORT>/<PATH>/<FILE>,請(qǐng)寫出其中HOSTNAME的意義。答:HOSTNAME是文檔和服務(wù)器所在的Internet主機(jī)名或IP地址。四、程序填空題27.方法voidmoveZeroFront(inta[])的功能是將數(shù)組中的所有值為0的元素都移到數(shù)組的前端,而把非0元素放于所有0的后面。提示:順序考察數(shù)組元素,當(dāng)發(fā)現(xiàn)是非0時(shí),就讓該數(shù)留在原來(lái)位置,當(dāng)發(fā)現(xiàn)是0時(shí),就與前面的第一個(gè)非0數(shù)交換。變量zero表示移動(dòng)過(guò)程中遇到的0的個(gè)數(shù)。voidmoveZeroFront(inta[]){for(inti=0,zero=0;i<a.length;i++)if(a[i]--0){a[i]=a[zero];a[zero]=0;zero++;}28.這里給出的是一個(gè)播放幻燈片小應(yīng)用程序的部分代碼。設(shè)幻燈片已由小應(yīng)用程序的init()方法裝入內(nèi)存,并存放于mylmage數(shù)組中。currentlmage為要顯示的幻燈片序號(hào)。intcurrentlmage;Image[]myImage;……publicvoidpaint(Graphicsg){if((mylmage[currentlmage])!=null)g.drawlmage(mylmage[currentlmage],10,10,mylmage[currentlmage].getWidth(this),mylmage[currentlmage].getHeight(this),this);}29.類ShareData用于管理多個(gè)線程共享數(shù)據(jù)data。一些線程要減少data,另一些線程要增加data。由于data不可以是負(fù)值,修改data的方法對(duì)這些線程來(lái)說(shuō)不僅要互斥,還要同步。類提供一個(gè)方法modiData()供修改data的線程調(diào)用,該方法在data修改結(jié)束后,還應(yīng)通知其它等待進(jìn)入這個(gè)方法的線程。classShareData{intdata=0;synchronizedvoidmodiData(intdelta){if(delta+delta>=0){data+=delta;}else{while(data+delta<0){try{wait();}catch(IntermptedExceptione){}}data+=delta;}notify();}ShareData(intinitData){data=initData;}}30.方法voidsumByLine(Stringf)的功能是為已知文件f創(chuàng)建緩沖式輸人流,然后從文件逐行輸入整數(shù),求各行整數(shù)的和,并輸出。publicvoidsumByLine(Stringf){FileReaderfile=newFileReader(f);BufferedReaderin=newBufferedReader.(file);intn,sum,i;Strings;try{while((s=in.readLine().)!=null){StringTokenizertokens=newStringTokenizer(s);n=tokens.countTokens0;sum=0;for(i=0;i<n;i++){sum+=Integer.parseInt(tokens.nextToken0);}System.out.println("\t"+String.valueOf(sum)+"\n");}in.close();}catch(IOExceptionie){System.out.println("\tI/O出錯(cuò)!");}}31.方法readByURL(StringurlName,JTextAreashowArea)的功能是通過(guò)已知網(wǎng)址創(chuàng)建URL對(duì)象,獲得URLConnection對(duì)象,設(shè)置網(wǎng)絡(luò)連接,然后以數(shù)據(jù)流方式讀取網(wǎng)頁(yè)內(nèi)容,并在文本區(qū)showArea中顯示。publicStringreadByURL(StringurlName,JTextAreashowArea){try{URLurl=newURL(urlName);URLConnectiontc=url.openConnection();tc.connect();/*以下省略的代碼完成的工作是:用tc獲得網(wǎng)絡(luò)連接的InputStreamReadef類對(duì)象,并將該對(duì)象轉(zhuǎn)化成為緩沖式輸入對(duì)象。以后,就能按行讀取網(wǎng)絡(luò)文本數(shù)據(jù)。*/……}catch(MalformedURLExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}五、程序分析題32.閱讀下列程序,請(qǐng)寫出該程序的運(yùn)行結(jié)果。classSuperClass{publicintgetData0{return4;})classSubClassextendsSuperClass{publicintgetData0{return5;}}publicclassTest32{publicstaticintfac(SuperClasss){intd=s.getData0;returnd*(d+l)/2;}publicstaticvoidmain(String[]args){System.out.println("超類對(duì)象調(diào)用方法fac():"+fac(newSuperClass()));System.out.println("子類對(duì)象調(diào)用方法fac():"+fac(newSubClass()));}}答:超類對(duì)象調(diào)用方法fac():10子類對(duì)象調(diào)用方法fac():1533.閱讀下列程序,請(qǐng)寫出該程序的運(yùn)行結(jié)果。publicclassTest33{publicstaticvoidmain(Stringargs[]){System.out.println(makeNewString("bjZ;"));}publicstaticStringmakeNewString(StringoldStr){Strings=newString(oldStr);char[]repCh={'a','b','c','d','e',T,'g','h','i','j','k',T,'m','n','o','p','q',~,'s','t','u','v','w','x','y','z'};s=s.replace(repCh[repCh,length-1],'%');for(inti=repCh.length-2;i>=0;i--){s=s.replace(repCh[i],repCh[i+1]);}s=s.replace('%',repCh[0]);returns;}}答:ckZ;(每個(gè)字符1分)。34.閱讀下列程序,請(qǐng)回答以下問(wèn)題:(1)在文本框中輸入-18,在文本區(qū)中會(huì)顯示多少行整數(shù),各行有幾個(gè)數(shù)?(2)在文本框中輸入0,界面又會(huì)發(fā)生什么?importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;classMyFrameextendsJFrameimplementsActionListener{JTextFieldtextF;JTextAreatextA;MyFrame0{Containercon=getContentPane();con.setLayout(newBorderLayout0);textF=newJTextField(10);textF.addActionListener(this);textA=newJTextArea(6,10);setSize(240,200);con.add(textF,"North");con.add(textA,"Center");setVisible(true);}publicvoidactionPerformed(ActionEvente){intn,d;if(e.getSource()==textF){n=Integer.parseInt(textF.getTextO);if(n!=0){for(intk=1;k<=Math.abs(n);k++){d=Ont)(Math.random0*1000%1000);textA.append(""+d);if(k%5==0)textA.append("\n");}}else{textF.setText(null);textA.setText(null);}}}}publicclassTest34{publicstaticvoidmain(String[]args){newMyFrame();}}答:(1)在文本區(qū)中會(huì)顯示3行整數(shù),前2行各7個(gè)數(shù),第3行4個(gè)數(shù)。(2)文本框和文本區(qū)的內(nèi)容被清除。35.閱讀下列程序,請(qǐng)回答以下問(wèn)題:(1)應(yīng)用程序窗口中,有哪幾個(gè)組件?(2)當(dāng)拖動(dòng)滾動(dòng)條滑塊時(shí),界面會(huì)有什么變化?importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classMyFrameextendsJFrameimplementsAdjustmentListener{JScrollBaris;JLabellabel;intsize=20;Stringmsg;MyFrame(Strings,intx,inty,intw,inth){super(s);msg=s;Containercon=getContentPaneO;con.setLayout(newBorderLayout0);js=newJScrollBar(JScrollBar.HORIZONTAL,20,10,1,210);js.addAdjustmentListener(this);con.add(is,BorderLayout.NORTH);label=newJLabel(msg);con.add(label,BorderLayout.CENTER);setBounds(x,y,w,h);setVisible(true);}publicvoidadjustmentValueChanged(AdjustmentEvente){size=e.getValue0;Fontf=newFont("Courier",Font.BOLD,size);label.setFont(f);}}publicclassTest35{publicstaticvoidmain(String[]args){newMyFrame("可調(diào)組件測(cè)試程序",200,200,500,200);}}答:(1)應(yīng)用程序窗口中產(chǎn)生一個(gè)水平滾動(dòng)條,下面是一個(gè)標(biāo)簽。(2)當(dāng)拖動(dòng)滾動(dòng)條滑塊時(shí),標(biāo)簽里的文字的大小隨著滑塊的移動(dòng)而變化。36.閱讀下列程序,請(qǐng)回答以下問(wèn)題:(1)程序是如何實(shí)現(xiàn)畫面動(dòng)態(tài)顯示的?(2)創(chuàng)建DravYPmlel對(duì)象時(shí),第3個(gè)參數(shù)的值增大或減小,對(duì)畫面的顯示有何影響?importjava.awt.*;importjavax.swing.*;publicclassTest36extendsJFrame{publicstaticvoidmain(Stringargs[]){newGraphicsDemo(320,250);}}classDrawPanelextendsJPanelimplementsRunnable{intx,y,w,h,d;DrawPanel(intw,inth,intd){this.w=w;this.h-h;this.d=d;newThread(this).start0;setBackground(Color.white);}publicvoidpaintComponent(Graphicsg){super.paintComponent(g);g.setColor(Color.red);g.fillOval(x+w/2,y+h/2,10,10);publicvoidrun(){intseta-0;doubler;ints=w/2;for(inti=1;i<=500;i++){r=s*Math.sin(2.0*seta/180.0*3.1415926);//r=sin(2seta)x=(int)(r*Math.cos(seta/180.0*3.1415926));y=(int)(r*Math,sin(seta/180.0*3.1415926));repaint();seta=(seta+2)%360;System.out.println(""+i+":"+x+""+y);try{Thread.sleep(d);}catch(InterruptedExceptione){}}classGraphicsDemoextendsJFrame{GraphicsDemo(intw,inth){getContentPane().add(newDrawPanel(w,h,30));setTitle("線程演示");setSize(w+30,h+50);setVisible(true);}}答:(1)JPanel子類DrawPanel實(shí)現(xiàn)Runnable接口,用線程實(shí)現(xiàn)畫面動(dòng)態(tài)顯示。(2)第3個(gè)參數(shù)的值增大,使畫面更新變慢;減小,使畫面更新變快。六、程序設(shè)計(jì)題37.請(qǐng)編寫方法intcountOddNum(int[]a),該方法的功能是求已知數(shù)組a中奇數(shù)的個(gè)數(shù)。要求根據(jù)方法的功能寫出方法的代碼。staticimcountOddNum(int[]a){ints=0,i;for(inti=0;i<a.length;i++)if(a[i]%2==1)s++;returns;}38.類MenuWindow對(duì)象構(gòu)建如下圖所示的框架窗口,窗口有一個(gè)菜單條,有“學(xué)習(xí)”和“工作”兩個(gè)菜單,其中“學(xué)習(xí)”菜單含“Java程序設(shè)計(jì)”菜單項(xiàng);“工作”菜單含“項(xiàng)目設(shè)計(jì)”菜單項(xiàng)。窗口只有一個(gè)文本框,目的是用于顯示菜單選擇的結(jié)果。注:以下是要求你編寫的類MenuWindow的構(gòu)造方法的部分代碼。classMenuWindowextendsJFrameimplementsActionListener{publicstaticJTextFieldtext;publicMenuWindow(){//請(qǐng)?jiān)谝韵挛恢镁帉懘asuper("學(xué)習(xí)和工作之窗");JMenuBarmenubar=newJMenuBar0;JMenumenu1=newJMenu("學(xué)習(xí)");JMenultemjava=newJMenultem("Java程序設(shè)計(jì)");menul.add(java);java.addActionListener(this);JMenumenu2=newJMenu("工作");JMenultemproject=newJMenultem("項(xiàng)目設(shè)計(jì)");menu2.add(project);project.addActionListener(this);menubar,add(menu1);menubar,add(menu2);setJMenuBar(menubar);text=newJTextField(25);getContentPane0.add(text);setVisible(true);setSize(200,150);pack();}}
2017年4月高等教育自學(xué)考試《Java語(yǔ)言程序設(shè)計(jì)(一)》試題課程代碼:04747一、單項(xiàng)選擇題1.在下列供選的字符串中,不能作為Java整型常量的是A.052B.0x3BEHC.6389D.0x3fedL2.在以下供選的關(guān)鍵字中,能用于定義常值變量的是A.finalB.staticC.protectedD.super3.下列Java語(yǔ)句中,不正確的是A.floate=0.0d;B.charc,d='a';C.int$e,a,b=10;D.doublee=0.0f4.以下代碼的輸出結(jié)果是System.out.println(1+2+"aa"+3);A.12aa3B.3aa3C.12aaD.代碼有語(yǔ)法錯(cuò)5.在Swing中,與JComponent類有直接父子關(guān)系的是A.JMenuB.JButtonC.JLabelD.JTextArea6.在以下選項(xiàng)中,可得到菜單項(xiàng)名稱的方法是A.getMenu()B.getLabel()C.getJMenu()D.getltem()7.某程序定義了一個(gè)JPanel子類,并要讓該子類實(shí)現(xiàn)多線程,在子類對(duì)象創(chuàng)建時(shí)啟動(dòng)線程,則在以下敘述中最完整正確的是A.繼承Thread類,在類內(nèi)定義run()方法,聲明和創(chuàng)建線程對(duì)象,并讓該對(duì)象調(diào)用start()方法。B.繼承Thread類,在類內(nèi)定義run()方法,聲明線程對(duì)象,并讓該對(duì)象調(diào)用start()方法。C.聲明實(shí)現(xiàn)Runnable接口,在類內(nèi)實(shí)現(xiàn)run()方法,聲明線程對(duì)象,創(chuàng)建線程,并調(diào)用run()方法。D.聲明實(shí)現(xiàn)Runnable接口,在類內(nèi)實(shí)現(xiàn)run()方法,聲明和創(chuàng)建線程對(duì)象,并讓該對(duì)象調(diào)用start()方法。8.以下關(guān)于線程死鎖的敘述中,正確的是A.若程序中存在線程的死鎖問(wèn)題,編譯時(shí)不能通過(guò)B.實(shí)現(xiàn)多線程時(shí)死鎖不可避免C.為了避免死鎖,應(yīng)禁止對(duì)資源以互斥的方式進(jìn)行訪問(wèn)D.線程的死鎖是一種邏輯運(yùn)行錯(cuò)誤,編譯器無(wú)法檢測(cè)9.用類JFileChooser對(duì)象可打開(kāi)和保存文件對(duì)話框,程序能從該對(duì)話框獲得A.用戶選擇的文件的長(zhǎng)度B.用戶選擇的文件名C.文件對(duì)象D.用戶選擇的文件內(nèi)容10.網(wǎng)絡(luò)應(yīng)用有多種模式,其中WWW采用的模式是A.對(duì)等模式B.主機(jī)終端模式C.分布式模式D.客戶機(jī)/服務(wù)器模式二、填空題11.Java編譯程序?qū)est11.java源程序編譯,如果沒(méi)有發(fā)生錯(cuò)誤,一定會(huì)產(chǎn)生一個(gè)文件,該文件的名字是。12.表達(dá)式“-1>>2”的值是。(負(fù)數(shù)用補(bǔ)碼表示)13.為了聲明類只是一種模板,類中定義的某些方法沒(méi)有具體實(shí)現(xiàn)代碼,只有它的子類才可能是有實(shí)際意義的類。定義這樣的類的修飾符是。14.設(shè)有字符串定義:Strings="12341234";則表達(dá)式s.indexOf("2")的值是。15.在實(shí)現(xiàn)接口ActionListener的方法actionPerformed()中,為識(shí)別事件對(duì)象,調(diào)用方法getActionCommand(),該方法返回的文字信息。16.程序?qū)⑷舾蓡芜x按鈕對(duì)象加入到一個(gè)ButtonGroup對(duì)象中,其目的是。17.AWT的Font對(duì)象的作用是。18.處于運(yùn)行狀態(tài)的線程執(zhí)行stop()方法,該線程將進(jìn)入的狀態(tài)是。19.FileWriter類的作用是為提供支持。20.在訪問(wèn)數(shù)據(jù)庫(kù)的程序中,建立了Statement對(duì)象后,利用該對(duì)象可以執(zhí)行數(shù)據(jù)庫(kù)更新,實(shí)現(xiàn)SQL數(shù)據(jù)庫(kù)更新的方法是。三、簡(jiǎn)答題21.請(qǐng)寫出表達(dá)式實(shí)現(xiàn)以下功能:變量y的值為5與變量z的值為3,有且只有—個(gè)成立。22.請(qǐng)寫出通過(guò)繼承,子類可以獲得的好處。23.請(qǐng)寫出將按鈕對(duì)象b和文本區(qū)對(duì)象text放置于面板對(duì)象中,并將中放置于滾動(dòng)面板,最后將滾動(dòng)面板添加到JFrame子窗口對(duì)象frame的Java語(yǔ)句。24.請(qǐng)寫出Graphics2D類中stroke、paint兩種屬性的作用。25.請(qǐng)寫出Java系統(tǒng)提供的支持文件隨機(jī)訪問(wèn)的類和該類提供的讀取一個(gè)字符的方法。26.請(qǐng)寫出URLConnection類實(shí)現(xiàn)網(wǎng)絡(luò)訪問(wèn)的基本過(guò)程。四、程序填空題27.方法countPrimes(intm,intn)統(tǒng)計(jì)自m至n范圍內(nèi)質(zhì)數(shù)的個(gè)數(shù),并輸出這些質(zhì)數(shù)。publicstaticintcountPrimes(intm,intn){inti,j,count=0;for(j=m;j<=n;j++){for(i=2;i<-j/2;i++)if()break;if(){count++;System.out.println(j);}}returncount;}28.以下是某應(yīng)用程序定義的兩個(gè)方法。方法setCheckBoxs(ItemListenerlistener)已知監(jiān)視器,產(chǎn)生一組選擇按鈕,并給它們注冊(cè)監(jiān)視器和將它們加入到面板中;方法使用的全局對(duì)象有面板panel,存放按鈕名稱的數(shù)組boxName,選擇按鈕數(shù)組box,文本區(qū)text。方法itemStateChanged(1temEvente)是選擇按鈕的事件監(jiān)視方法,當(dāng)某個(gè)選擇按鈕的選擇狀態(tài)有改變時(shí),監(jiān)視方法在文本區(qū)中顯示各選擇按鈕的選擇狀態(tài)(被選中或沒(méi)有被選中)。JPanelpanel=newJPanel();StringboxName[]={"選擇按鈕A","選擇按鈕B","選擇按鈕C"};JCheckBox[]box=newJCheckBox[boxName.length];JTextAreatext=newJTextArea(4,10);publicvoidsetCheckBoxs(ItemListenerlistener){for(inti=0;i<boxName.length;i++){box[i]=newJCheckBox(boxName[i],false);box[i].;panel.add(box[i]);}}publicvoiditemStateChanged(ItemEvente){text.setText(null);for(inti=0;i<box.length;i++){text.append(boxName[i]+(?"被選中":"沒(méi)有被選中")+''\n");}}}29.以下是一個(gè)放幻燈片的應(yīng)用程序,程序的界面中含一個(gè)面板子類P的對(duì)象和一個(gè)按鈕對(duì)象b。設(shè)幻燈片已經(jīng)裝入內(nèi)存,并存放于myImage數(shù)組中,幻燈片的張數(shù)存于變量num中。程序運(yùn)行時(shí),用戶點(diǎn)擊按鈕b,按鈕的監(jiān)視方法循環(huán)更換幻燈片號(hào)curlmage,并讓系統(tǒng)調(diào)用P重定義的paintComponent()方法顯示當(dāng)前幻燈片。intcurlmage=0;finalintnum=30;Image[]myImage=newImage[num];……publicvoidactionPerformed(ActionEvente){if(e.getSource0==b){;curlmage=(curlmage+1)%num;try{mythread.sleep(200);}catch(InterruptedExceptione){}}}publicvoidpaintComponent(Graphicsg){if((mylmage[curlmage])!=null)g,(myImage[curlmage],10,10,myImage[curlmage].getWidth0,myImage[curImage].getHeight0,this);}30.以下應(yīng)用程序的界面中有一個(gè)用于輸入文件名的文本框?qū)ο骹ileName、一個(gè)用于輸入匹配字符串的文本框?qū)ο髉,和一個(gè)用于輸出的文本區(qū)對(duì)象text。程序運(yùn)行時(shí),用戶輸入匹配字符串和文件名,程序逐行讀人文件的內(nèi)容,檢出那些以匹配字符串開(kāi)頭的行并顯示在文本區(qū)中。publicvoidactionPerformed(ActionEvente){Strings;if(e.getSource()==fileName){try{in=newBufferedReader(new);}catch(FileNotFoundExceptione1){System.out.print("FileNotfound!ha");}text.setText(null);try{while((s=)!=null){if(s.startsWith(p.getText0))text.append(s+'\n');}}catch(IOExceptionexp){System.out.print("Filereaderror!ha");}}}31.方法getURLConnection(Strings)的功能是已知網(wǎng)絡(luò)中的資源s,獲得一個(gè)URLConnection對(duì)象并返回。URLConnectiongetURLConnection(Strings){URLmyURL=null;try{myURL=new}catch(MalformedURLExceptione){System.out.println("有錯(cuò)的URL:"+s+e);}returnmyURL.}五、程序分析題32.閱讀下列程序段,請(qǐng)寫出標(biāo)有注解(1)、(2)和(3)語(yǔ)句的作用。Imageimg[];publicvoidint(){img=newImage[15];for(inti=0;i<lS;i++){img[i]=getImage(getCodeBase0,"img"+i+".jpg");//(1)}}publicvoidpaint(Graphicsg){inti=0,k=0;while(k<15000){......;//語(yǔ)句略g.drawlmage(img[i],0,0,this);//(2)k++;for(intj=0;j<5000000;j++){}//(3)i=(i+1)%img.length;}}33.閱讀下列程序,請(qǐng)寫出調(diào)用fib(10)的輸出結(jié)果。publicstaticvoidfib(intn)(intfl=1,f2=1;System.out.print("\t"+fl+"\t"+f2);for(inti=3;i<=n;i+=2)(f1+=f2;System.out.print("\t"+f1);if(i%3==0)System.out.print("\n");if(i<n)(f2+=f1;System.out.print("\t"+f2);}if((i+1)%3==0)System.out.print("\n");}}34.閱讀下列程序,請(qǐng)回答以下問(wèn)題:(1)寫出程序運(yùn)行時(shí)界面中有哪些組件,以及它們的位置關(guān)系。(2)按點(diǎn)擊按鈕1,按鈕2,按鈕2,按鈕1的順序點(diǎn)擊按鈕,寫出文本區(qū)的輸出內(nèi)容。importjava.io.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classMyFrameextendsJFrameimplementsActionListener{JButtonbtn1,btn2;JTextAreaja;publicMyFrame0{btn1=newJButton("按鈕1");btn2=newJButton("按鈕2");ja=newJTextArea(5,10);getContentPane0.add(btn1,BorderLayout.NORTH);getContentPane().add(btn2,BorderLayout.SOUTH);getContentPane0.add(ja,BorderLayout.CENTER);btn1.addActionListener(this);btn2.addActionListener(this);setSize(180,200);setVisible(true);}publicvoidactionPerformed(ActionEvente){if(e.getSource0==bm1){btn1.setEnabled(false);ja.append("按鈕1被點(diǎn)擊!\n");btn2.setEnabled(true);}else{bmI.setEnabled(true);ja.append("按鈕2被點(diǎn)擊!\n');btn2.setEnabled(false);}}}publicclassTest34{publicstaticvoidmain(String[]args){newMyFrame0;}}35.閱讀下列程序,請(qǐng)寫出該程序的輸出結(jié)果。publicclassTest35{publicstaticvoidmain(String[]args){System.out.println("開(kāi)始:");MyThreadx=newMyThread(1000,"girl");MyThready=newMyThread(300,"boy");x.start();y.start();while(x.isAlive0{{y.isAlive0);System.out.println("結(jié)束.");}}classMyThreadextendsThread{intdt;Stringname;publicMyThread(intc,Stringn){dt=c;name=n;}publicvoidrun(){MyResourceClass.outMsg(this);}classMyResourceClass{synchronizedstaticvoidoutMsg(MyThreadth){System.out.println(+""+"啟動(dòng).");for(inti=0;i<2;i++){System.out.println(+"第"+i+"次活動(dòng).");try{Thread.sleep(th.dt);}catch(InterruptedExceptione){})System.out.println(+""+"活動(dòng)完成.");}}36.閱讀下列程序,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 創(chuàng)傷性骨髓炎的健康宣教
- 兒童分離性焦慮障礙的健康宣教
- 《政府的權(quán)力用》課件
- 社團(tuán)之光照亮前行計(jì)劃
- 班級(jí)年度計(jì)劃書
- 學(xué)生反饋與課程調(diào)整流程計(jì)劃
- 八年級(jí)英語(yǔ)NewspapersSpeaking課件
- 文化建設(shè)的總結(jié)與員工參與計(jì)劃
- 項(xiàng)目成本控制管理計(jì)劃
- 舞臺(tái)劇社團(tuán)創(chuàng)意演出構(gòu)思計(jì)劃
- 弱電系統(tǒng)施工方案(完整版)
- 設(shè)計(jì)一臥式單面多軸鉆孔組合機(jī)床動(dòng)力滑臺(tái)的液壓系統(tǒng)
- 行政事業(yè)單位管理辦法
- 蓄能器的基本功能
- 《典范英語(yǔ)》(1a)評(píng)價(jià)方案
- 煤礦井下有毒有害氣體管理規(guī)定
- 戶口本日文翻譯樣文(模板)
- 關(guān)于調(diào)整污水處理費(fèi)征收標(biāo)準(zhǔn)的申請(qǐng)
- 倉(cāng)儲(chǔ)合同案例分析(共6篇)
- 九年級(jí)上冊(cè)數(shù)學(xué)知識(shí)點(diǎn)考點(diǎn)
- 研究開(kāi)發(fā)費(fèi)用加計(jì)扣除的鑒證報(bào)告記錄要求
評(píng)論
0/150
提交評(píng)論