自學(xué)考試Java語(yǔ)言程序設(shè)計(jì)(一)歷年真題匯編_第1頁(yè)
自學(xué)考試Java語(yǔ)言程序設(shè)計(jì)(一)歷年真題匯編_第2頁(yè)
自學(xué)考試Java語(yǔ)言程序設(shè)計(jì)(一)歷年真題匯編_第3頁(yè)
自學(xué)考試Java語(yǔ)言程序設(shè)計(jì)(一)歷年真題匯編_第4頁(yè)
自學(xué)考試Java語(yǔ)言程序設(shè)計(jì)(一)歷年真題匯編_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

全國(guó)2008年10月自學(xué)考試Java語(yǔ)言程序設(shè)計(jì)(一)試題

課程代碼:04747

一、單項(xiàng)選擇題(本大題共10小題,每小題1分,共10分)

在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括

號(hào)內(nèi)。錯(cuò)選、多選或未選均無(wú)分。

1.下述字符組合不能作為Java程序標(biāo)識(shí)符的是()

A.Aal2B.大x

C.y小D.5x

2.以下程序代碼的輸出的結(jié)果是()

intx=53;

System.out.println(1.0+x/2);

A.27.0B.27.5

C.1.026D.1.026.5

3.參照以下Java代碼,以下四個(gè)敘述中最確切的是()

classA{

intx;staticinty;

voidfac(Strings){Syatem.out.println(H字符串:"+s);}

}

A.x、y和s都是成員變量

B.x是實(shí)例變量、y是類變量、s是局部變量

C.x和y是實(shí)例變量、s是參數(shù)

D.x、y和s都是實(shí)例變量

4.需要分析字符串,并將字符串分解成可被獨(dú)立使用的單詞,可使用java,util包中的

類是

()

A.StringB.StringBuffer

C.StringTokenizerD.stringTokenizer

5.要為程序的子窗口設(shè)定一個(gè)由字符串s指定的名字,可以采用的代碼是()

A.JFrame(s)B.window(s)

C.newJFrame(s)D.super(s)

6.以下關(guān)于菜單的敘述中,正確的是()

A.菜單分三級(jí)定義,最高一級(jí)的是菜單條,菜單條中放菜單,菜單中放菜單項(xiàng)

B.菜單分三級(jí)定義,最高一級(jí)的是菜單,菜單中放菜單條,菜單條中放菜單項(xiàng)

C.菜單分兩級(jí)定義,最高一級(jí)的是菜單,菜單中放菜單項(xiàng)

D.菜單分兩級(jí)定義,最高一級(jí)的是菜單條,菜單條中放菜單項(xiàng)

7.以下所述內(nèi)容全部是字型要素的是()

A.字體、字形和大小B.字體、風(fēng)格和字號(hào)

C.字形、風(fēng)格和字號(hào)D.字形、顏色和字號(hào)

8.用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。方法

9.為16位Unicode字符流提供讀和寫操作支持的類分別是(〉

A.FilelnputStream類和FileOutputStream類

B.InputStream類和OutputStream類

C.FileReader類和FileWriter類

D.File_Reader類和File_Writer類

10.能利用對(duì)象提供的方法獲得流對(duì)象和實(shí)現(xiàn)網(wǎng)絡(luò)連接的是()

A.URLConnection對(duì)象B.URL對(duì)象

C.InetAddress對(duì)象D.TCP/IP對(duì)象

二、填空題(本大題共10小題,每小題2分,共20分)

請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。

11.一個(gè)小應(yīng)用程序必須定義成一個(gè)O

12.用條件運(yùn)算符構(gòu)造一個(gè)表達(dá)式:goal等于10時(shí),表達(dá)式的值為“對(duì)了!”,否則,表

達(dá)式的值為“錯(cuò)了!工這個(gè)表達(dá)式是。

13.類是對(duì)一組相同對(duì)象的描述,類概括了同類對(duì)象的共有性質(zhì):。

14.設(shè)有數(shù)組a和b的定義如下:

int[]a={l,2,3};int[]b={4,5,6)

執(zhí)行以下代碼“a=b;”,除了完成賦值操作之外,引起系統(tǒng)額外要做的工作是。

15.布局使容器的多個(gè)組件擁有同一個(gè)顯示空間,某一時(shí)刻只能顯示?個(gè)組

件。

16.Java語(yǔ)言為處理鼠標(biāo)事件提供兩個(gè)接口:接口和MouseMotionListener接

口。

17.某個(gè)繪圖方法設(shè)置成“異或模式”繪圖,并用黃色作為異或模式設(shè)定的繪圖顏色。如

果當(dāng)時(shí)背景色為紅色,并用紅色繪制線段,則線段的實(shí)際顏色是o

18.程序員用Java語(yǔ)言編寫多線程應(yīng)用程序,程序員能控制的關(guān)鍵性工作有兩個(gè)方面:

一是編寫線程的方法;二是建立線程實(shí)例。

19.BufferedWriter類是提供緩沖式輸出的類。程序需要先創(chuàng)建對(duì)象,再利用這

個(gè)對(duì)象創(chuàng)建BufferedWriter對(duì)象。

20.在Java語(yǔ)言中,客戶端使用的套接字類是。

三、簡(jiǎn)答題(本大題共6小題,每小題3分,共18分)

21.請(qǐng)寫出表示條件“x=2與y=3有且只有一個(gè)成立”的Java表達(dá)式”。

22.如果類Student是類Person的子類,類Undergraduate是類Student的子類,請(qǐng)指出以

下代碼行中哪些是不合法的。

Personpl=newStudent();

Personp2=newUndergraduate();

Students1=newPerson();

Students2=newUndergraduate();

Undergraduateugl=newPerson();

Undergraduateug2=newStudent();

Objectob=newStudent();

23.請(qǐng)寫出程序處理文本框輸入結(jié)束事件(回車)添加監(jiān)視器的方法,以及監(jiān)視器類必須

實(shí)現(xiàn)的接口方法。

24.請(qǐng)寫出一條語(yǔ)句,能夠繪制一條從點(diǎn)(20,30)開始,長(zhǎng)為100像素的水平線段。設(shè)

調(diào)用的對(duì)象是類型為Graphics的g?

25.某Java程序要使用文件輸入輸出流,請(qǐng)寫出該程序所需要的import語(yǔ)句。

26.JDBC是Java程序與數(shù)據(jù)庫(kù)連接的API,請(qǐng)寫出JDBC能做的三件事情。

四、程序填空題(本大題共5小題,每空2分,共20分)

27.方法intmaxDigit(intn)的功能是找出十進(jìn)制整數(shù)n各位中最大的一位數(shù)字。例如,

n=23765,該方法的返回值是7。

staticintmaxDigit(intn){

intc=0,d;

while(n>0){

d=;

if(d>c)c=d;

n/=10;

)

28.某程序的界面包含一個(gè)文本區(qū)textl、一個(gè)文本框text2和一個(gè)按鈕button。實(shí)現(xiàn)在文

本區(qū)中輸入整數(shù)序列后,點(diǎn)擊按鈕,程序響應(yīng)按鈕事件,累計(jì)文本區(qū)輸入的整數(shù)序列,

并將總和輸出在文本框中。這里給出的是其中相應(yīng)按鈕事件的方法。

publicvoidactionPerformed(ActionEvente){

intsum;

if(e.getSource()==button){

Strings=textl.;〃獲取textl中的信息

StringTokenizerfenxi=newStringTokenizer(s,",?\n");

intn=fenxi.countTokens();

doublea[]=newdouble[n];

for(inti=0;i<n;i++){

Stringtemp=fenxi.nextToken();

a[i]=Double.valueOf(temp).doubleValue();

sum=0;

for(inti=0;i<n;i++){

text2.setText(uu+sum);〃刷新顯示。

29.以下是生成菜單項(xiàng)對(duì)象,以及菜單項(xiàng)選擇事件處理方法的部分代碼。要求當(dāng)菜單項(xiàng)

singingltem被選中時(shí),在文本框text中輸出“唱歌菜單項(xiàng)被選中!”的字樣。

singingltem=new("唱歌");〃生成菜單項(xiàng)對(duì)象

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==singingItem)

text.setText(e.()+”菜單項(xiàng)被選中!”);

}

30.某小應(yīng)用程序?qū)崿F(xiàn)幻燈片放映。小應(yīng)用程序的init()方法將幻燈片讀入數(shù)組中存儲(chǔ)和

注冊(cè)鼠標(biāo)監(jiān)視器。程序運(yùn)行時(shí),單擊鼠標(biāo),就順序變換放映幻燈片的序號(hào)。這里給出的

是其中的paint。方法和mousePressed()方法。

finalintnumber=30;〃假定幻燈片有30張

intcount=0;

Image[]pic=newImage[number];

publicvoidpaint(gc){

if((pic[count])!=null)

gc.drawImage(pic[count],10,10,pic[count].getWidth(this),

pic[count].getHeight(this),this);

}

publicvoidmousePressed(MouseEvente){

count=(count+1)%number;〃循環(huán)逐張顯示

31.以下定義的類shareDataManager用于管理多個(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è)方法的線程。

classShareDataManager{

intdata=O;

voidmodiData(intdelta){

if(delta>=0){

data+=delta;

}else{

while(data<delta){

try{System.out.println(*'發(fā)生等待!”);

wait();

}catch(InterruptedExceptione){}

}

data-=delta;

ShareDataManager(intititData){data=initData;}

)

五、程序分析題(本大題共5小題,每小題4分,共20分)

32.閱讀下列程序,請(qǐng)寫出該程序的輸出結(jié)果。

importjava.applet.*;importjava.awt.*;

classPoint{

intx,y;

Point(intxx,intyy){x=xx;y=yy;}

Point(Pointp){x=p.x;y=p.y;}

voidm(intdx,intdy){x+=dx;y+=dy;}

classCircleextendsPoint{

intr;

Circle(Pointp,intrr){super(p);r=rr;}

floatc(){return3.14f*2.0f*r;)

floata(){return3.14f*r*r;}

}

publicclasssampleextendsApplet(

Circleyuan;Pointd;

publicvoidinit(){d=newPoint(2,5);yuan=newCircle(dJO);}

publicvoidpaint(Graphicsg){

g.drawString(HyuanCircle°+(int)(yuan.c()*100.0)/100.0,5,20);

g.drawString(HyuanArea”+(int)(yuan.a()*100.0)/100.0,5,40);

)

)

33.閱讀卜.列程序,請(qǐng)寫出該程序的功能。

importjava,util.*;

publicclassClassi{

publicstaticvoidmain(Srtingargs[]){

Datedatel=newDate();

System.out.printin(datel);

Stringt=datel.toStringO;

intendPos=t.indexOf('C');

t=t.substring(11,endPos);

System,outprintln(t);

)

}

34憫讀下列程序,請(qǐng)寫出該程序的功能。

importjava.applet.*;importjavax.swing.*;importjava.awt.event.*;

publicclassClass1extendsAppletimplementsActionListener{

JTextFieldtextl,text2;

publicvoidinit(){

textl=newJTextField(l0);text2=newJTextField(l0);

setSize(200,100);add(textl);add(text2);

text1.addActionListener(this);

)

publicvoidactionPerformed(ActionEvente){

longn;

if(e.getSource()==text1){

n=Long.parseLong(text1.getText());

text2.setText(String.valueOf(n*n));

35憫讀以卜程序,請(qǐng)寫出該程序的功能。

importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;

classMyScrolIBarextendsJscrollBar{

publicMyScrollBar(intinit,intlen,intlow,inthigh){

super(JScrollBar.HORIZONTAL,init,len,low,high);

)

)

classMyWindowextendsJFrameimplementsAdjustmentListener{

privateJTextFieldtext;

MyWindow(Strings){

super(s);

MyScrolIBarmyBar=newMyScrollBar(10,10,0,255);

Containercon=this.getContentPane();

con.setLayout(newGridLayout(2,l));

this.setSize(200,100);

this.setLocation(100,100);

myBar.addAdjustmentListener(this);

text=newJTextField(n0,20);

con.add(text);con.add(myBar);

this.setVisible(true);

)

publicvoidadjustmentValueChanged(AdjustmentEvente){

MyScrollBarmyBar=(MyScrollBar)e.getAdjustable();

text.setText(""+myBar.getValue());

)

)

publicclassClassi{

publicstaticvoidmain(String[]args){

MyWindowmyWindow=newMyWindow(Htext5_4”);

)

)

36.小應(yīng)用程序創(chuàng)建一個(gè)線程。例子使用容器類方法getGraphics。獲得Graphics對(duì)象,給

線程作為畫筆使用。請(qǐng)寫出該程序中這個(gè)線程的工作內(nèi)容。

importjava.applet.*;importjava.awt.*;

publicclassClassiextendsjava.applet.AppletimplementsRunnable{

ThreadredBall;GraphicsredPen;

intrx=0,ry=0;

publicvoidinit(){

setSize(250,200);

redBall=newThread(this);

redPen=getGraphics();

redPen.setColor(Color.red);

setBackground(Color.gray);

)

publicvoidstart(){redBall.start();}

publicvoidrun(){

while(true){

if(Thread.currentThread()==redBall){

rx=(int)(80*Math.random());

ry=(int)(80*Math.random());

redPen.setColor(Color.red);

redPen.fillOval(l00+rx,l00+ry,10,10);

try{redBal1.sleep(500);}

catch(InterruptedExceptione){}

redPen.setColor(Color.gray);

redPen.fillOval(l00+rx,l00+ry,l0,10);

}

六、程序設(shè)計(jì)題(本大題共2小題,每小題6分,共12分)

37.編寫一個(gè)方法halfArray(),要求該方法有一個(gè)元素類型為int的數(shù)組參數(shù),方法返

回一個(gè)新數(shù)組,新數(shù)組的長(zhǎng)度與參數(shù)數(shù)組的長(zhǎng)度相同,而新數(shù)組元素的值是參數(shù)數(shù)組各

元素的一半。

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(ActionEvente)^*Yio

importjava.applet.*;importjavax.swing.*;

importjava.awt.*;importjava.awt.event.*;

classPanel1extendsJPanel{

JTextFieldtextl,text2,text3;JButtonaddButton,subButton;

Panel1(){

textl=newJTextField(10);text2=newJTextField(lO);

text3=newJTextField(10);setLayout(newGridLayout(5,l));

addButton=newJButton(u加”);subButton=newJButton("減”);

add(textl);add(text2);

add(text3);add(addButton);add(subButton);

)

publicclassClassiextendsAppletimplementsActionListener{

Panelpanel;

publicvoidinit(){

setSize(100,200);panel=newPanel1();add(panel);

(panel.addButton).addActionListener(this);

(panel.subButton).addActionListener(this);

)

publicvoidactionPerformed(ActionEvente){

〃這里是你要編寫的代碼

全國(guó)2009年1月Java語(yǔ)言程序設(shè)計(jì)(一)試題

課程代碼:04747

一、單項(xiàng)選擇題(本大題共10小題,每小題1分,共10分)

在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括

號(hào)內(nèi)。錯(cuò)選、多選或未選均無(wú)分。

1.下列字符組合不能作為Java整型常量的是()

A.078B.0x3ACB

C.5000D.0x3ABC

2.以下程序代碼的輸出結(jié)果是()

intx=10;

while(x>7)

{System.out.print("*");x—;}

A**B***

C*D****

3.設(shè)類U聲明,及對(duì)象u和v的定義如下:

classU{

intx,inty;

U(inta,intb){x=a;y=b;}

voidcopy(Ua){x=a.x;y=a.y;}

}

Uu=newU(l,2),v=newU(2,3);

在以下供選擇的代碼中,可能引起系統(tǒng)回收內(nèi)存的是()

A.u.x=v.y;u.y=v.x;B.u=v;

C.u.copy(v);D.v.copy(u);

4.設(shè)有以下代碼:

Strings1=123”;

Strings2=n123M;

Strings3=newString,123”);

則表達(dá)式sl==s2和sl==s3的值分別是()

A.true,trueB.false,false

C.true,falseD.false,true

5.以下關(guān)于AWT與Swing之間關(guān)系的敘述,正確的是()

A.Swing是AWT的提IMJ和擴(kuò)展

B.在寫GUI程序時(shí),AWT和Swing不能同時(shí)使用

C.AWT和Swing在不同的平臺(tái)上都有相同的表示

D.AWT中的類是從Swing繼承的

6.在以下Swing組件中,能為它指定布局管理器的是()

A.JScrollBar對(duì)象B.JMenuBar對(duì)象

C.JComboBox對(duì)象D.JDialog對(duì)象

7「?般的繪圖程序要定義一個(gè)JPanel子類。在JPanel子類中還要重定義一個(gè)方法,在這

個(gè)方法中調(diào)用繪圖方法,繪制各種圖形。要重定義的方法是()

A.paint()B.paintComponent()

C.repaint()D.update()

8.用Runnable接口實(shí)現(xiàn)多線程的主要工作是()

A.聲明實(shí)現(xiàn)Runnable接口的類,在類內(nèi)實(shí)現(xiàn)run。方法,讓線程調(diào)用slart()方法。

B.聲明實(shí)現(xiàn)Runnable接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,在類內(nèi)聲明線程對(duì)象,在init()

方法中創(chuàng)建新線程,啟動(dòng)新線程。

C.聲明實(shí)現(xiàn)Runnable接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,在類內(nèi)聲明線程對(duì)象,在Init()

方法或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.BufferedReader類和BufferedWriter類

B.InputStream類和OutputStream類

C.FileReader類和FileWriter類

D.File_Reader類和File_Writer類

10.在編寫訪問(wèn)數(shù)據(jù)庫(kù)的Java程序中,要用到DriverManager類。該類的作用是()

A.存儲(chǔ)查詢結(jié)果

B.處理與數(shù)據(jù)庫(kù)的連接

C.在指定的連接中處理SQL語(yǔ)句

D.處理驅(qū)動(dòng)程序的加載和建立數(shù)據(jù)庫(kù)連接

二、填空題(本大題共10小題,每小題2分,共20分)

請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。

11.Java程序的字節(jié)碼文件的擴(kuò)展名是o

12.構(gòu)造一個(gè)Java表達(dá)式:y/x>5,并且x!=0。這個(gè)表達(dá)式是。

13.在類聲明之前用修飾,聲明類是不能被再繼承的類,即它不能再有子類。

14.設(shè)有字符串定義:

Strings="ABCDABCD";

則表達(dá)式s.indexOf("B")的值是。

15.在實(shí)現(xiàn)接口ActionListener的方法actionPerformed。中,常用的有兩個(gè)獲得事件源的

方法,它們是getActionCommandO^U。

16.使用單選按鈕的方法是將一些單選按鈕用對(duì)象分組,使同一組內(nèi)的單選按

鈕只允許一個(gè)被選中。

17.在Java語(yǔ)言中,用類Font對(duì)象設(shè)置字型。如果要設(shè)置的字型是:細(xì)明體、正常風(fēng)格

(Font.PLAIN),12磅字號(hào),構(gòu)造這樣要求的Font對(duì)象fnA的代碼是。

18.線程從阻塞狀態(tài)恢復(fù)到就緒狀態(tài),有三種途徑:自動(dòng)恢復(fù)、用resume。方法恢復(fù)和用

方法恢復(fù)。

19.為普通的8位字節(jié)流文件讀和寫操作提供支持的類是。

20.Connection類是java.sql包中用于處理與數(shù)據(jù)庫(kù)連接的類。Connection對(duì)象是用來(lái)表

示的對(duì)象,Java程序?qū)?shù)據(jù)庫(kù)的操作都在這種對(duì)象上進(jìn)行。

三、簡(jiǎn)答題(本大題共6小題,每小題3分,共18分)

21.請(qǐng)寫出表示year年是閏年的Java表達(dá)式。閏年的條件是:每4年一個(gè)閏年,但每100

年少一個(gè)閏年,每400年又增加一個(gè)閏年。

22.請(qǐng)寫出在類的方法的定義之前,加上修飾字public、private的區(qū)別。

23.請(qǐng)寫出將文本區(qū)text放置于滾動(dòng)面板jsp,并將滾動(dòng)面板jsp添加到JFrame窗口

myFrame的Java語(yǔ)句。

24.要用Graphics2D類的方法畫一個(gè)圖形,首先要把參數(shù)對(duì)象g強(qiáng)制轉(zhuǎn)換成Graphics2D

對(duì)象;然后,用圖形類提供的靜態(tài)方法Double。創(chuàng)建一個(gè)圖形對(duì)象;最后,以圖形對(duì)象

為參數(shù)調(diào)用Graphics2D對(duì)象的draw。方法繪制這個(gè)圖形。請(qǐng)寫出用這樣的方法繪制?條

線段的程序段,線段的兩個(gè)端點(diǎn)分別是(10.0,10。)和(30.0,30.0)?

25.請(qǐng)寫出字符流數(shù)據(jù)與字節(jié)流數(shù)據(jù)的區(qū)別。

26.請(qǐng)寫出URLConnection類在編寫Java網(wǎng)絡(luò)應(yīng)用程序中的作用。

四、程序填空題(本大題共5小題,每小題4分,共20分)

27.方法intsigmaDigit(intn)的功能是求出十進(jìn)制整數(shù)n的各位數(shù)字之和。例如,n=1234,

該方法的返回值是10。

staticintsigmaDigit(intn)

{intsum=0,d;

while(n>0){

d=n%10;

n/=10;

28.以下小應(yīng)用程序能響應(yīng)鼠標(biāo)按動(dòng)的事件,當(dāng)鼠標(biāo)在正文區(qū)的某個(gè)位置被點(diǎn)擊時(shí),就在

該位置顯示一個(gè)記號(hào)“X”,程序限制最多保留最新20個(gè)位置。

importjava.applet.*;importjava.awt.*;

importjavax.swing.*;importjava.awt.event.*;

classMyPanelextendsJPanel{

publicvoidprint(Graphicsg,intx,inty)(

g.setColor(Color.red);

g.drawLine(x-5,y-5,x+5,y+5);

g.drawLine(x+5,y-5,x-5,y+5);

)

)

classMyWindowextendsJFrameimplementsMouseListener{

finalintMaxMarks=20;

intcurrentMarks=0,markCount=0;

Pointmarksf]=newPoint[MaxMarks];

MyPanelpanel;

MyWindow(){

this.setLocation(100,100);

this.setSize(300,300);

Containercon=this.getContentPane();

panel=newMyPanel();con.add(panel);

________(this);

this.setVisible(true);

)

publicvoidpaint(Graphicsg){

inti;

g.clearRect(0,0,this.getWidth(),this.getHeight());

for(i=0;i<markCount;i++){

(g,marks[i].x,marks[i].y);

publicvoidmousePressed(MouseEvente){

publicvoidmouseReleased(MouseEvente){}

publicvoidmouseEntered(MouseEvente){}

publicvoidmouseExited(MouseEvente){}

publicvoidmouseClicked(MouseEvente){

marks[currentMarks]=newPoint(e.getX(),e.getY());

if(markCount<MaxMarks)markCount++;

currentMarks=(currentMarks+l)%MaxMarks;

repaint();

)

)

publicclassClassiextendsApplet{

publicvoidinit(){

MyWindowmyWndow=newMyWindow();

)

)

29.這是?個(gè)處理選擇項(xiàng)目事件的子窗口類。窗口中有2個(gè)選擇框,當(dāng)選中某個(gè)選擇框時(shí),

文本框?qū)@示選擇框?qū)?yīng)的信息。

classMyWindowextendsIFrameimplementsItemListener{

JTextFieldtext;

JCheckBoxboxl,box2;

MyWindow(Strings){

Containercon=this.getContentPane();

this.setLocation(100,100);this.setSize(400,200);

text=newJTextField(lO);

boxl=newJCheckBox("A計(jì)算機(jī)”,false);

box2=newJCheckBox(nB計(jì)算機(jī)”,false);

con.setLayout(newGridLayout(3,2));

con.add(newJLabel(”計(jì)算機(jī)產(chǎn)品介紹”,JLabeLCENTER));

add(newJLabel("計(jì)算機(jī)2選1”,JLabeLCENTER));

con.add(box1);con.add(box2);con.add(text);

boxl.addltemListener(this);

box2.addItemListener(this);

this.setVisible(true);this.pack();

)

publicvoiditemStateChanged(e){

if(e.getItemSelectable()==boxl){

text.setText(nA公司生產(chǎn))

}elseif(e.getItemSelectable()==box2){

text.setText(HB公司生產(chǎn))

)

)

}

30.這是一個(gè)播放幻燈片的小應(yīng)用程序中的paint()方法。設(shè)幻燈片已由小應(yīng)用程序的init()

方法裝入內(nèi)存,并存放于mylmage數(shù)組中,幻燈片的張數(shù)放于變量num中,paint。方法

要播放的幻燈片號(hào)是currentimageo

intcurrentimage=0;

finalintnum=30;

Image[]mylmage=new[num];

publicvoidpaint(Graphicsg){

if((my1mage[currentimage])!=null)

g.(mylmage[currentimage],10,10,

mylmage[currentimage].getWidth(this),

mylmagefcurrentimage].getHeight(this),this);

31.以下定義的類ShareData用于管理多個(gè)線程共享數(shù)據(jù)val。為了保證對(duì)共享數(shù)據(jù)val

修改的完整性,線程對(duì)val的操作需要互斥,類ShareData中定義的方法modiData。就是

供共享val的線程修改val的方法。程序共有20個(gè)線程共享val,有些減少val,有些增

加valo

publicclassClassi{

publicstaticvoidmain(Stringargs[]){

ShareDatamrc=newShareData(50);

Thread[]aThreadArray=newThread[20];

System.out.println("\t剛開始的值是:“+mrc.getVal());

System.out.println(H\t多個(gè)線程正在工作,請(qǐng)稍等!”);

for(inti=0;i<20;i++){

intd=i%2==0?50:-30;

aThreadArray[i]=newThread(newMyMultiThreadClass(mrc,d));

aThreadArray[i].start();

}

WhileLoop:〃等待所有線程結(jié)束

while(true){

for(inti=0;i<20;i++)

if(aThreadArray[i].())continueWhileLoop;

break;

}

System.out.println(n\t最后的結(jié)果是:"+mrc.getVal());

)

)

classMyMultiThreadClassimplementsRunnable{

ShareDataUseinteger;intdelta;

MyMultiThreadClass(ShareDatamrc,intd){

Useinteger=mrc;delta=d;

)

publicvoidrun(){

for(inti=0;i<1000;i++){

Uselnteger.modiData(delta);

try{Thread.sleep(10);〃做一些其他的處理

}catch(InterruptedExceptione){}

classShareData{

intval;

ShareData(intinitValue){vaI=initValue;)

intgetVal(){returnval;}

privatevoidputVal(intv){val=v;}

voidmodiData(intd){

putVal(getVal()+d);

)

)

五、程序分析題(本大題共5小題,每小題4分,共20分)

32.閱讀下列程序,請(qǐng)寫出該程序的輸出結(jié)果。

classA{

intx,y;

A(inta,intb){

x=a;y=b;

}

)

publicclasssample{

publicstaticvoidmain(Stringargs[]){

Apl,p2;

p2=newA(12,15);

pl=p2;p2.x++;

System.out.printlnC'pl.x="+pl.x);

33.閱讀下列程序,請(qǐng)寫出調(diào)用pascal(4)的輸出結(jié)果。

staticvoidpascal(intn){

intpas[];

pas=newintfn];

pas[0]=1;

System.out.println(pas[O]);

for(inti=2;i<=n;i++){

/*由存儲(chǔ)在pas中的原來(lái)內(nèi)容生成新內(nèi)容*/

pas[i-1]=1;

for(intj=i-2;j>0;j-)

pas[j]=pas[j]+pas[j-1];

for(intj=0;j<i;j++)

System.out.print(pas[j]+"");

System.out.println();

)

}

34.閱讀下列程序,請(qǐng)用示意圖畫出程序運(yùn)行時(shí)呈現(xiàn)的界面。

importjava.applet.*;

importjava.awt*;

importjavax.swing.*;

classMyPanelextendsJPanel{

JButtonbutton;JLabellabel;

MyPanel(Stringsi,Strings2){

this.setLayout(newGridLayout(2,2));

button=newJButton(sl);

label=newJLabel(s2,JLabel.CENTER);

add(button);add(label);add(newJLabel());

}

)

publicclassClassi{

publicstaticvoidmain(Stringargs[]){

JFramemw=newJFrame("一個(gè)示意窗口”);

mw.setSize(400,250);

Containercon=mw.getContentPane();

con.setLayout(newBorderLayoutO);

MyPanelpanel1,panel2;

panel1=newMyPanel。按鈕1"標(biāo)簽ln);

panel2=newMyPanel。按鈕2",“標(biāo)簽2”);

JButtonbutton=newJButton("開始按鈕)

con.add(panell,HNorthn);con.add(panel2,"South");

con.add(button,"Center");

mw.setVisible(true);

)

)

35.閱讀下列程序,請(qǐng)回答以卜一問(wèn)題:

(1)程序要求在文本框text中輸入的內(nèi)容是什么?

⑵輔助文本區(qū)showArea組件的作用是什么?

(3)如何使程序開始卜載網(wǎng)絡(luò)文本文件?

(4)程序采用什么輸入方式下載網(wǎng)絡(luò)文件?

import.*;importjava.awt.*;

importjava.awt.event.*;importjava,io.*;importjavax.swing.*;

publicclassClassi{

publicstaticvoidmain(Stringargs[]).

{newConnectNet("讀取網(wǎng)絡(luò)文本文件示意程序");)

)

classConnectNetextendsJFrameimplementsActionListener{

JTextFieldtext=newJTextField(30);

JTextAreashowArea=newJTextArea();

JButtonb=newJButton("下載");JPanelp=newJPanel();

ConnectNet(Strings){

super(s);Containercon=this.getContentPane();

p.add(text);p.add(b);

JScrollPanejsp=newJScrollPane(showArea);

b.addActionListener(this);

con.add(p,"North");con.add(jsp,"Center1');

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(500,400);setVisible(true);

)

publicvoidactionPerformed(ActionEvente){

StringurlName=text.getText();

try{URLurl=newURL(urlName);〃由網(wǎng)址創(chuàng)建URL對(duì)象

URLConnectiontc=url.openConnection();〃獲得URLConnection對(duì)象

tc.connect();〃設(shè)置網(wǎng)絡(luò)連接

InputStreamReaderin=newInputStreamReader(tc.getInputStream());

BufferedReaderdis=newBufferedReader(in);StringinLine;

while((inLine=dis.readLine())!=null){showArea.append(inLine+"'n");

dis.close();

}catch(MalformedURLExceptione2){e2.printStackTrace();}

catch(IOExceptione3){e3.printStackTrace();}

)

)

36..閱讀下列程序,請(qǐng)寫出該程序的功能。

importjava.applet.*;importjava.awt.*;

publicclassClassiextendsjava.applet.AppletimplementsRunnable{

ThreadmyThread=null;

publicvoidstart(){

setSize(500,400);

if(myThread==null){

myThread=newThread(this);myThread.start();

publicvoidrun(){

while(myThread!=null){

try{myThread.sleep(500);

}catch(InterruptedExceptione){}

repaint();

}

)

publicvoidpaint(Graphicsg){

intx=(int)(400*Math.random());

inty=(int)(300*Math.random());

g.setColor(Color.red);g.fillOval(x,y,10,10);

)

)

六、程序設(shè)計(jì)題(本大題共2小題,每小題6分,共12分)

37.編寫數(shù)組復(fù)制方法。該方法從已知平衡的兩維數(shù)組的左下角復(fù)制出一個(gè)非平衡的三角

二維數(shù)組。設(shè)復(fù)制數(shù)組方法的模型為:

publicstaticdoubletJ[]leftDownConer(doublelJ[]anArray)

38.設(shè)計(jì)實(shí)現(xiàn)以下形式布局的Java小應(yīng)用程序。

I~5j~~&

考試成績(jī)平時(shí)成一

注1:其中空白格是文本框,用于輸入對(duì)應(yīng)的內(nèi)容。

注2:這里給出的是程序的一部分,你要編寫的是方法MyWindow(Strings)。

importjava.applet.*;importjavax.swing.*;importjava.awt.*;

classMyWindowextendsJFrame{

JTextFieldtextl,text2,text3,text4;

publicMyWindow(Strings){〃這個(gè)方法是你要編寫的

publicclassClassiextendsApplet{

MyWindowmyWindow:

publicvoidinit(){myWindow=newMyWindow(M一個(gè)小應(yīng)用程序");}

全國(guó)2009年10月自學(xué)考試Java語(yǔ)言程序設(shè)計(jì)(一)試題

課程代碼:04747

一、單項(xiàng)選擇題(本大題共10小題,每小題1分,共10分)

在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括

號(hào)內(nèi)。錯(cuò)選、多選或未選均無(wú)分。

1.下面供選字符序列中,不居于Java語(yǔ)言關(guān)鍵字的是()

A.gotoB.null

C.falseD.native

2.以下程序代碼的輸出結(jié)果是()

intx=73;System.out.println(x?1);

A.36B.36.5

C.37D.true

3.Java語(yǔ)言中,在類定義時(shí)用final關(guān)鍵字修飾,是指這個(gè)類()

A.不能被繼承B.在子類的方法中不能被調(diào)用

C.能被別的程序自由調(diào)用D.不能被子類的方法覆蓋

4.以下是關(guān)于字符串運(yùn)算的代碼,執(zhí)行該代碼段的輸出結(jié)果是()

String&="0123456789",si,s2;

sl=s.substring(2);s2=s.substring(2,5);System.out.println(s1+s2);

A.0122345B.234567892345

C.012234D.23456789234

5.以卜是關(guān)于FlowLayout布局組件排列順序的敘述,正確的是()

A.從上到下排列B.從左到右排列

C.從下到上排列D.從右到左排列

6.程序執(zhí)行方法showOpenDialogO,能打開“打開文件對(duì)話框”,如果該方法的返回值是

JFileChooser.APPROVE_OPTION,則用戶執(zhí)行的動(dòng)作是()

A.對(duì)話框非正常關(guān)閉B.按下“打開/保存”按鈕

C.按下“撤銷”按鈕D.重新輸入了一個(gè)文件名

7.設(shè)已經(jīng)有Graphics2D對(duì)象g2d,Rectangle2D對(duì)象r,繪制對(duì)象r的代碼是()

A.g2d.draw(r)B.g2d.drawRect(r)

C.r.draw()D.r.drawRect()

8.在以下供選擇的方法中,能讓線程從阻塞狀態(tài)恢復(fù)到就緒狀態(tài)的方法是()

A.start()B.init()

C.resume()D.run()

9.在以下供選擇的方法中,不熊用于文件隨機(jī)訪問(wèn)的方法是()

A.readChar()B.readLong()

C.readlnteger()D.writeChars()

10.某程序利用網(wǎng)址參數(shù)創(chuàng)建URL對(duì)象urL接著希望利用對(duì)象url獲得URLConnection對(duì)

象,則這個(gè)url對(duì)象要調(diào)用的方法是()

A.connection()B.URLConnection()

C.getConnection()D.openConnection()

二、填空題(本大題共10小題,每小題2分,共20分)

請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。

11.一個(gè)應(yīng)用程序必須在某個(gè)類中定義的方法是o

12.import語(yǔ)句的格式是?

13.在面向?qū)ο笳Z(yǔ)言中,對(duì)象之間的交互通過(guò)實(shí)現(xiàn)。

14.設(shè)有兩個(gè)字符串對(duì)象strl和str2,則表達(dá)式“strl==str2”的意義是判別字符串strl和

str2。

15.一個(gè)基于Swing的應(yīng)用程序可能在任何平臺(tái)上都會(huì)有相同的。

16.處理鍵盤事件的Java程序,要實(shí)現(xiàn)的接口是=

17.Java語(yǔ)言約定,坐標(biāo)原點(diǎn)位于繪圖區(qū)域的。

18.Java程序中,在臨界段中使用方法,使執(zhí)行該方法的線程等待。

19.BufferedWriter類對(duì)象能按行輸入文件的內(nèi)容,按行輸入的方法是。

20.在包中有InetAddress類的定義,Java程序中的InetAddress類對(duì)象存儲(chǔ)的內(nèi)容

是。

三、簡(jiǎn)答題(本大題共6小題,每小題3分,共18分)

21.請(qǐng)寫出實(shí)現(xiàn)計(jì)算y=lxl的if語(yǔ)句。

22.以下代碼定義了一個(gè)類,請(qǐng)指出其中三條不合法的代碼行(行號(hào)參見注釋)。

classTest22{//I

floatu;staticfloatv;//2

staticvoidsetUV(booleanf){〃3

u=facl(f);//4

v=fac2(!f);)//5

staticfloatfacl(booleanf){returnf?u:v;}//6

floatfac2(booleanf){returnf?v:u;}//7

}//8

23.在java.awt.event中,用來(lái)檢測(cè)并對(duì)事件做出反應(yīng)的模型涉及三種對(duì)象。請(qǐng)寫出這三種

對(duì)象。

24.寫出設(shè)置Font對(duì)象fn的Java語(yǔ)句,要求Courier字體,BOLD風(fēng)格,18磅字號(hào),設(shè)調(diào)

用對(duì)象的類型為Graphics的go

25.通過(guò)流的構(gòu)造方法建立文件流對(duì)象,請(qǐng)寫出創(chuàng)建輸入輸出文件流對(duì)象的兩種常用構(gòu)造方

法。

26.當(dāng)Client程序和Server程序需要通信時(shí),可以用Socket類建立套接字連接,請(qǐng)寫出雙

方實(shí)現(xiàn)通信的兩種方式。

四、程序填空題(本大題共5小題,每空2分,共20分)

27.方法intsigmaEvenNum(int[]a)的功能是求已知數(shù)組中偶數(shù)的個(gè)數(shù)。

staticintsigmaEvenNum(int[]a){

ints=0;

for(inti=0;;i++){

if()s++;

)

returns;

)

28.某小應(yīng)用程序窗口包含有文本區(qū)dispArea,以及一個(gè)帶文字“追加”的按鈕。當(dāng)點(diǎn)擊這個(gè)

按鈕時(shí),程序彈出一個(gè)輸入信息的對(duì)話框,并將對(duì)話框中輸入的內(nèi)容追加到文本區(qū)中。

以下是其中相應(yīng)“追加”按鈕事件的方法。

publicvoidactionPerformed(ActionEvente){

if(e..equals(“追加")){

Stringresult=(String)JOptionPane.showInputDialog(null,nW^i}入信息”,

”輸入對(duì)話框”,JOptionPane.PLAIN_MESSAGE,null,null,null);

dispArea.(result+"n);

2

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論