《java程序設(shè)計(jì)》考試試卷A及答案_第1頁(yè)
《java程序設(shè)計(jì)》考試試卷A及答案_第2頁(yè)
《java程序設(shè)計(jì)》考試試卷A及答案_第3頁(yè)
《java程序設(shè)計(jì)》考試試卷A及答案_第4頁(yè)
《java程序設(shè)計(jì)》考試試卷A及答案_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

XXXXXXXXXXX學(xué)院

學(xué)年第一學(xué)期期末考試a卷

課程Java程序設(shè)計(jì)考試時(shí)間:120分鐘

班級(jí):姓名學(xué)號(hào)

題號(hào)—二三四五總分

得分

閱卷入

一、單選擇題(每小題1分,共17分)

1.下列Java程序是一個(gè)()。

publicclassSimpleCircle{

doubleradius;

SimpleCircleO{

radius=1.0;

)

SimplcCirclc(doublcncvvRadius){

radius=newRadius;

1

doublefindArca(){

returnradius*radius*3.14159;

)

publicstaticvoidmain(String[]args){

SimpleCirclemyCircle;

myCircle=newSimpleCircle(5);

System.out.println("半徑"+myCircle.radius)

System.out.println(+”的圓面積為"+myCircle.findArea());

A.java應(yīng)用程序B.javaapplet程序

C.java插件D.java應(yīng)用程序也是javaapplet程序

2.下列Java程序是一個(gè)()o

importjavax.swing.*;

publicclassMyAppletextendsJApplet{

publicvoidinit(){

add(newJLabel(44WelcometoJava”,JLabel.CENTER));

)

publicstaticvoidmain(String[]args){

JFrameframe=newJFrame(t4Applet在框架中");

MyAppletapplet=ncwMyApplct();

frame.add(appIet,BorcerLayout.CENTER);

applet.init();

frame.sctLocationRclativcTo(null);

frame.selDefaultCloseOpeialion(JFrame.EXIT_ON_CLOSE);

frame.setSize(300,300);

frame.setVisible(true);

A.java應(yīng)用程序B.javaapplet程序

C.java插件D.java應(yīng)用程序也是javaapplet程序

3.編譯Javaapplet源程序文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,這些字節(jié)碼文件的擴(kuò)展名為

()。

A.javaB..classC..htmlD..exe

4.在Javaapplel程序用戶(hù)自定義的Applel子類(lèi)中,一般需要重載父類(lèi)的()方法來(lái)

完成創(chuàng)建用戶(hù)界面。

A.start()B.slop()C.init()D.pain1()

5.設(shè)x=I,y=2,z=3,則表達(dá)式y(tǒng)+=z-----/++x的值是()o

A.3B.3.5C.4D.5

6.在java中,對(duì)于完成相對(duì)獨(dú)立功能的模塊一般使用()來(lái)實(shí)現(xiàn)。

A.過(guò)程B.子程序C.方法D.函數(shù)

7.設(shè)有數(shù)組定義如下:

int[]db={{2,9,-12,56,-87},{-18,6,17,-23},{31,43,-1},{-8,51},(100))

則db[2].lenglh等于()o

A.5B.4C.3D.2

8.已知一個(gè)類(lèi)CC,其中定義了方法mm,mm的語(yǔ)法格式如下:

mm(〈表達(dá)式表〉)

其中〈表達(dá)式表,由1個(gè)、2個(gè)、3個(gè)或者4個(gè)〈表達(dá)式〉構(gòu)成,〈表達(dá)式〉與〈表達(dá)式〉用逗

號(hào)(,)分隔,各〈表達(dá)式〉類(lèi)型可以是double、float、int和long中的類(lèi)型,相互間可以

不同,但只能是double、float、int和long中的類(lèi)型。如此,我們可以說(shuō)()。

A.mm是重載方法B.mm是靜態(tài)方法C.mm是抽象方法D.mm的定義有錯(cuò)

9.已知一個(gè)類(lèi)E和F的定義如下:

publicabstractclassF{publicclassEextendsF

intdl=12;intd2=18;

publicabstractiniml();publicintml(){

returndl;

)

publicintm2(){

returnd2;

)

)

Eo=newE();

則下列語(yǔ)句正確的是()o

A.Fo=newF();o.ml();B.Eo=newE();ints=o.ml()+o.m2;

C.ints=Em1()+E.m2();D.ints=E.ml()+E.m2();

10.已知一個(gè)類(lèi)E和F的定義與第9題相同,則可以說(shuō)()o

A.F是抽象類(lèi)B.ml不是抽象方法C.E是F的父類(lèi)D.m2是抽象方法

11.一個(gè)類(lèi)的數(shù)據(jù)成員作為該類(lèi)所有對(duì)象共享訪問(wèn),則其應(yīng)使用的修飾符是()。

A.publicB.privateC.staticD.protected

12.為某一個(gè)類(lèi)的一個(gè)無(wú)參數(shù)無(wú)返回值的方法method書(shū)寫(xiě)方法頭,以便使得該方法可以

通過(guò)該類(lèi)類(lèi)名來(lái)進(jìn)行訪問(wèn),則該方法頭的簽名為()。

A.staticvoidmethod()B.publicvoidmethod()

C.finalvoidmcthod()D.abstractvo:dmcthod()

13.為了創(chuàng)建圖形用戶(hù)界面,我們?cè)趧?chuàng)建的一個(gè)新框架中要添加若干組件。如果添加的

組件要按照上、下、左、右、中等五個(gè)方位來(lái)安排,則布局管理器要使用()o

A.FlowLayoutB.Gridl^ayout

C.BorderLiiyoutD.默認(rèn)布局管理器

14.Graphics類(lèi)是提供設(shè)備無(wú)關(guān)圖形界面的抽象類(lèi),它可以在不同平臺(tái)的屏幕上顯示圖形

和圖像。當(dāng)要顯示組件時(shí),()在本地平臺(tái)上為組件創(chuàng)建一個(gè)Graphics對(duì)象,通過(guò)

該對(duì)象可以在GUI組件上繪畫(huà)。

A.程序員事先編寫(xiě)的程序B.本地操作系統(tǒng)

C.Java編譯器主動(dòng)D.JVM自動(dòng)地

15.當(dāng)我們繪圖時(shí),為了保證在框架(或窗口)大小改變時(shí),所繪制的圖仍然不變,則

繪圖的程序段應(yīng)放置在()中。

A.框架的構(gòu)造方法B.用戶(hù)專(zhuān)門(mén)設(shè)計(jì)的方法

C.任何一個(gè)用戶(hù)自定義方法D.重寫(xiě)的paintComponent方法

16.如果某源對(duì)象觸發(fā)的事件類(lèi)型一種,它就是ItemEvent,則成為該源對(duì)象的監(jiān)聽(tīng)器應(yīng)

實(shí)現(xiàn)的監(jiān)聽(tīng)器接口為()。

A.ActionListenerB.IteniListener

C.KeyListenerD.actionPerfomied(ItemEvent)

17.下述關(guān)于接口的描述,不正確的是()°

A.有構(gòu)造方法B.允許接口多重繼承

C.所有的變量必須是publicstaticfinalD.接口不能用new操作符實(shí)例化

二、簡(jiǎn)答題(每小題5分,共15分)

1.比較一般類(lèi)、抽象類(lèi)和接口之間的異同。

2.supcr的作用有哪些?

3.類(lèi)的實(shí)例變量與類(lèi)變量(即靜態(tài)變量)之間的差別。

三、程序閱讀理解題(共36分)

1.(1()分)閱讀下列程序,然后回答問(wèn)題。

publicclassSum

{publicstaticvoidmain(Stringargs[])

{doublesum=0.0;

inti=1,num=2;

while(i<=100){

sum+=1.0/(double)num;

i=i+1;

num+=2

I

System.oul.prinUn("sum="+sum);

問(wèn):該程序完成什么功能?

2.(8分)閱讀下列程序,然后回答問(wèn)題。

importjava.awt.*;

publicclassabc{

publicstaticvoidmain(S(ringargs[]){

newFrameOutO;

classFrameOutextendsJFrame{

Buttonbtn;

FiamcOut(){

super(”計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè))

selLayout(newBorderLayoul());

add(btn=newJButton("開(kāi)始)BordcrLayout.SOUTH);

add(newJLabel("班級(jí)”),BorderLayout.NORTH);

setSize(300,200);

setVisble(true);

問(wèn):該程序完成什么功能?

3.(12分)閱讀下列程序1和程序2,然后回答問(wèn)題。

程序1:

publicclassTestAverage1{

publicstaticvoidmain(String[]args){

System.out.prinlln("3和5的平均值為"+average(3,5));

System.out.println("3.0和6.0的平均值為"+average());

System.out.println("3.0x6.0和9.9的平均值為"+average(3.0,6.0,9.9));

1

publicstaticintaverage(intx,inty){

return(x+y)/2;

publicstaticdoubleaverage(doublex,doubley){

return(x+y)/2;

)

publicstaticdoubleaverage(doublex,doubley,doublez){

return(x+y+z)/3;

)

)

程序2:

classAverage2{

publicdoubleavcragc(intx,inty){

return(x+y)/2;

}

)

publicclassTestAverage2extendsAverage2{

publicstaticvoidmain(String[]args){

TestAverage2av=newTestAverage2();

System.out.prinUn("3和6的平均值為"+av.average(3,6));

I

publicdoubleaverage(intx,inty){

return(x+y)/2.0;

)

)

問(wèn):(I)(6分)上述程序中有多個(gè)average實(shí)現(xiàn)方法,程序1中的這種現(xiàn)象稱(chēng)為什

么?程序2中的這種現(xiàn)象又稱(chēng)為什么?(2)(3分)運(yùn)行程序1后屏幕上輸出的結(jié)果是

什么?(3)(3分)運(yùn)行程序2后屏幕上輸出的結(jié)果是什么?

4.(6分)分析下列程序,說(shuō)出運(yùn)行類(lèi)C時(shí)其輸出結(jié)果是什么?

classA(

publicA(){

Sysylem.out.prinlln(“這是一個(gè)無(wú)參構(gòu)造方法A”);

classBextendsA(

publicB()(

Sysytem.cut.println(“這是一個(gè)無(wú)參構(gòu)造方法B");

classCextendsB{

publicstaticvoidmain(String[]args){

Bb=newB();

解答:

四、程序改錯(cuò)題(每小題4分,共4分)

1、下列程序定義了圓類(lèi)CCircle,請(qǐng)指出錯(cuò)誤之處,并進(jìn)行修改(注意:修改時(shí)不能改

動(dòng)任何方法的首部):

1/**定義一個(gè)圓類(lèi)*/

2classCCircle

3

4/**定義數(shù)據(jù)域*/

5doubleradius=6.0;〃定義屬性變量,且初始化為6.0

6/**定義構(gòu)造方法*/

7/**定義一個(gè)不帶參數(shù)的構(gòu)造方法*/

8publicCCircle(){

9}

1()/**定義一個(gè)帶參數(shù)的方法*/

11publicCCirclc(doublcradius){

12radius=radius;//對(duì)屬性變量radius初始化為參數(shù)radius

13)

14/**定義方法*/

15/**定義一個(gè)設(shè)置半徑值的方法*/

16voidsetRadius(doublenewRadius){

17radius=ncwRadius;

181

19/**定義一個(gè)計(jì)算面積的方法*/

20doublegetArea(){

21returnradius*radius*MATH.PI;

22

23

五、設(shè)計(jì)題(28分)

I、(8分)已知一個(gè)類(lèi)Loan,其包含一個(gè)構(gòu)造方法如下:

publicLoan(doubleannualInterestRate,intnumberOfYears,

doubleloanAmount);

其中annualInterestRate是貸款利率,numberOfYears是貸款期限(單位為年),

loanAmount:是貸款額(單位為元)。

該類(lèi)還包含2個(gè)方法如下:

publicdoublegetMonthlyPayment();〃返回月還款數(shù),單位元

publicdoublegctTotalPaymcntf);〃返回還款總數(shù),單位元

現(xiàn)使用Loan類(lèi)完成如下要求:

編寫(xiě)一個(gè)程序,用戶(hù)界面為:

點(diǎn)擊【計(jì)算還款】按鈕時(shí),可以顯示月還款數(shù)和總計(jì)還款數(shù)。

完成上述功能的部分程序如下所示,請(qǐng)?jiān)诳瞻滋幯a(bǔ)全相應(yīng)程序:

importjava.awt.*;

importjavax.swing.*;

importjavax.swing.*;

publicclassLoanMain(

privateJTextFieldjtfAnnua11nterestRate=newJTextField();

privateJTextFieldjtfNumberOfYears=newJTextField();

privateJTextFieldjtfLoanAmount=newJTextField();

privateJTextFieldjtfMonthlyPayment=newJTextField();

privateJTextFieldjtfTotaiPayment-newJTextField();

privateJButtonjbtComputeLoan=newJButton("計(jì)算還款”);

privateJPanelpl==newJPanel(newGridLayout(5,2));

privateJPanelp2=newJPanel(newFlowLayout());

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

frame.setTitle("貸款計(jì)算窗口;

frame.setLocationRelativeTo(null);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(330,200);

frame.setvisible(true);

)

publicLoanMain(){

jtfMonthlyPayment.setEditable(false);

jtfTotalPayment.setEditable(false);

jtfAnnuaIInterestRate.setHorizontaiAlignment(JTextField.RIG

HT);

jtfNumberOfYears.setHorizontalAlignment(JTextField.RIGHT);

jtfLoanAmount.setHorizontaiAlignment(JTextField.RIGHT);

jtfMonthlyPayment.setHorizontaiAlignment(JTextField.RIGHT);

jtfTotalPayment.setHorizontalAlignment(JTextField.RIGHT);

pl.add(newJLabml(“利率”));

pl.add(jtfAnnualInterestRate);

pl.add(newJLabel("貸款年限”));

pl.add(jtfNumberOfYears);

pl.add(newJLabel("貸款總額”));

pl.add(jtfLoanAmount);

pl.add(newJLabml(“月還款數(shù)”));

pl.add(jtfMonthlyPayment);

pl.add(newJLabel("還款總數(shù)”));

pl.add(jtfTotalPayment);

pl.setBorder(newTitledBorder("輸入貸款利率、年份和總額”));

p2.add(jbtComputeLoan);

setLayout(newBorderLayout());

add(pl,BorderLayout.CENTER);

add(p2,BorderLayout.SOUTH);

)

privateclassButtonListenerimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

doubleinterest=

Double.parseDouble(jtfAnnuaIInterestRate.getText());

intyear=Integer.parselnt(jtfNumberOfYears.getText());

doubleloanAmount=

Double.parseL>ou£)le(jttLoanAmount.getText());

//顯示月付款和總付款

jtfMonthlyPayment.setText(String,format(.2f,loan.getMont

hlyPayment()));

jtfTotaiPayment.setText(String.

Hn

format(%.2fzloan.getTotalPayment()));

)

)

2、(20分)已知三個(gè)類(lèi):Man、Student、Teacher,其中Man類(lèi)是Student類(lèi)和Teacher

類(lèi)的父類(lèi),它們的屬性變量和方法如下類(lèi)圖所示,同時(shí)還有一個(gè)接口,用于描述學(xué)生

和教師的主要職業(yè),其提供的方法theMainPurpose。應(yīng)返回其相應(yīng)的耿業(yè),教師的職業(yè)是

“教書(shū)”,學(xué)生的職業(yè)是“學(xué)習(xí)二類(lèi)圖中號(hào)表示私有的,“+”號(hào)表示公共的。請(qǐng)給

出上述三個(gè)類(lèi)以及接口的定義。

(保留本頁(yè),作為試卷一部分)

參考答案

一、單選擇題(每小題1分,共17分)

1.A2.D3.B4.C5.A6.C7.C8.A9.B10.A11.C12.A13.C

14.D

15.D16.B17.A

二、簡(jiǎn)答題(每小題5分,共15分)

I.解答:

相同之處:

1)常規(guī)類(lèi)、抽象類(lèi)和接口都是對(duì)事物的相同性質(zhì)進(jìn)行描述;

2)常規(guī)類(lèi)、抽象類(lèi)和接口都可以用于數(shù)據(jù)類(lèi)型。

不同之處:

1)類(lèi)中的方法必須在該類(lèi)中實(shí)現(xiàn),而抽象類(lèi)中的方法可以不在該類(lèi)中實(shí)現(xiàn),接口中

的方法都是抽象方法;

2)接口中的數(shù)據(jù)只能是常量,而常規(guī)類(lèi)和抽象類(lèi)沒(méi)有此限制;

3)接口不能有構(gòu)造方法,而常規(guī)類(lèi)和抽象類(lèi)沒(méi)有此限制;

4)常規(guī)類(lèi)能使用new創(chuàng)建實(shí)例,而抽象類(lèi)和接口不能使用new創(chuàng)建實(shí)例

2.解答:

super的作用有兩個(gè),一是調(diào)用父類(lèi)的構(gòu)造方法,一是調(diào)用父類(lèi)的方法。

3.解答:

類(lèi)的實(shí)例變量與類(lèi)變量(即靜態(tài)變量)之間的差別在于:類(lèi)的實(shí)例變量是每一個(gè)該

類(lèi)的實(shí)例都具有的。不同實(shí)例互不相干;而類(lèi)變量是該類(lèi)所有實(shí)例共享的一個(gè)變量,只

有一個(gè)備份。

三、閱讀理解題(共36分)

1、解答:

其功能為:”算前100個(gè)偶數(shù)倒數(shù)之和

2、解答:

其功能為:定義一個(gè)窗口,其標(biāo)題為“計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)”,其中在下面有一個(gè)

“開(kāi)始”按鈕,上面顯示有“班級(jí)”。

3.解答:

(1)程序1中的這種現(xiàn)象稱(chēng)為重載;程序2中的這種現(xiàn)象稱(chēng)為方法復(fù)蓋(方法重寫(xiě));

(2)運(yùn)行程序1后屏幕上輸出的結(jié)果是:

3和5的平均值為4

3.0和6.0的平均值為4.5

3.0、6.0和9.9的平均值為6.3

(3)運(yùn)行程序2后屏幕上輸出的結(jié)果是:

3和6的平均值為4.5

4.解答:

輸出結(jié)果是:

這是一個(gè)無(wú)參構(gòu)造方法A

這是一個(gè)無(wú)參構(gòu)造方法B

四、改錯(cuò)題(共4分)

1、第12行有錯(cuò)了屬性變量mdius和方法中參數(shù)radius同名,需要區(qū)分,應(yīng)改為:

this.radius=radius;

評(píng)分:能正確指出錯(cuò)誤,得2分;能正確改正錯(cuò)誤得4分。

五、設(shè)計(jì)題(共28分)

1、解答(8分):

importjava.awt.*;

importjavax.swing.*;

importjavax.swing.*;

publicclassLoanMaicextendsJFrame{

privateJTextFieldjtfAnnuaIInterestRate=newJTextField();

privateJTextFieldjtfNumberOfYears=newJTextField();

privateJTextFieldjtfLoanAmount=newJTextField();

privateJTextFieldjtfMonthlyPayment=newJTextField();

privateJTexLFieldjtfTotdlPayment=newJTexLField();

privateJButtonjbtComputeLoan=newJButton("計(jì)算還款”);

privateJPanelpl=newJPanel(newGridLayout(5,2));

privateJPanelp2=newJPanel(newFlowLayout());

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

LoanMainframe=newLoanMain();

frame.setTitle("貸款計(jì)算窗口”);

frame.setLocationRelativeTo(null);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(330,200);

frame.setVisible(true);

)

publicLoanMain(){

jtfMonthlyPayment.setEditable(false);

jtfTotalPayment.setEditable(false);

jtfAnnuallnterestRate.setHorizontalAlignment(JTextField.

HT);

jtfNumberOfYears.setHorizonta1Alignment(JTextField.RIGHT);

jtfLoanAmount.setHorizontalAlignment(JTextField.RIGHT);

jtfMonthlyPayment.setHorizontalAlignment(JTextField.RIGHT);

jtfTotalPayment.setHorizontalAlignment(JTextField.RIGHT);

pl.add(newJLabel("利率”));

pl.add(jtfAnnuallnterestRate);

pl.add(newJLab21("貸款年限”));

pl.add(jtfNumberOfYears);

pl.add(newJLab^l("貸款總額”));

pl.add(jtfLoanAmount);

pl.add(newJLabel("月還款數(shù)”));

pl.add(jtfMonthlyPayment);

pl.add(newJLabel("還款總數(shù)”));

pl.add(jtfTotalPayment);

pl.setBorder(newTitledBorder("輸入貸款利率、年份和總額”));

p2.add(jbtComputeLoan);

setLayout(newBorderLayout());

add(pl,BorderLayout.CENTER);

add(p2,BorderLayout.SOUTH);

jbtComputeLoan.addActionListener(newButtonListener());

)

privateclassButtonListenerimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

doubleinterest=

Double.parseDouble(jtfAnnuaIInterestRate.getText());

intyear=Integer.parseint(jtfNumberOfYears.getText());

doubleloanAmount=

Double.parseDouble(jtfLoanAmount.getText());

Loanloan=newL

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論