版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度大數(shù)據(jù)中心運(yùn)營(yíng)維護(hù)合同
- 2024年建筑工程設(shè)計(jì)與咨詢合同
- 2024年度航空公司機(jī)票代理合同
- 2024年度環(huán)保工程與技術(shù)咨詢合同
- 幼兒食品課件教學(xué)課件
- 美術(shù)課件價(jià)格教學(xué)課件
- 尿道異物課件教學(xué)課件
- 2024年塑料纖維生產(chǎn)加工許可合同
- 2024年建筑人才中介服務(wù)協(xié)議
- 2024年度南京市存量房購(gòu)買合同
- 公司數(shù)據(jù)安全與保護(hù)管理制度
- 廣西特種作業(yè)實(shí)際操作考評(píng)手冊(cè)(試行)-低壓電工作業(yè)考評(píng)分冊(cè)
- 超聲技能操作評(píng)分表
- 順產(chǎn)一病一品
- 《分子和原子》參考課件
- 河南中職語(yǔ)文-基礎(chǔ)模塊上冊(cè)-(高教版)第一單元測(cè)試題含答案
- 設(shè)備維修保養(yǎng)人員專業(yè)素質(zhì)培養(yǎng)
- 27《一個(gè)粗瓷大碗》(教學(xué)設(shè)計(jì))統(tǒng)編版語(yǔ)文三年級(jí)上冊(cè)
- 學(xué)前兒童聽說(shuō)游戲活動(dòng)(學(xué)前兒童語(yǔ)言教育活動(dòng)課件)
- 培訓(xùn)機(jī)構(gòu)校長(zhǎng)競(jìng)聘
- 企業(yè)微信指導(dǎo)手冊(cè)管理員版
評(píng)論
0/150
提交評(píng)論