Java程序設(shè)計習(xí)題庫及答案_第1頁
Java程序設(shè)計習(xí)題庫及答案_第2頁
Java程序設(shè)計習(xí)題庫及答案_第3頁
Java程序設(shè)計習(xí)題庫及答案_第4頁
Java程序設(shè)計習(xí)題庫及答案_第5頁
已閱讀5頁,還剩162頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Java程序設(shè)計習(xí)題庫及答案

習(xí)題1

1.Java語言的主要貢獻(xiàn)者是誰?

2,編寫、運(yùn)行Java程序需要經(jīng)過哪些主要步驟?

4.如果JDK的安裝目錄為D:\jdk,應(yīng)當(dāng)怎樣設(shè)置path的值?

5,下列哪個是JDK提供的編譯器?

A)java,exe

B)javac.exe

C)javap.exe

D)javaw.exe

6.Java源文件的擴(kuò)展名是什么?Java字節(jié)碼的擴(kuò)展名是什么?

7,下列哪個是Java應(yīng)用程序主類中正確的main方法聲明?

A)publicvoidmain(Stringargs[])

B)staticvoidmain(Stringargs[])

C)publicstaticvoidMain(Stringargs[])

D)publicstaticvoidmain(Stringargs[])

習(xí)題2

1.模仿圖2.4簡單繪制出例子2中rectangle和lader對象的內(nèi)存示意圖。

2,模仿例子2編寫含有3個類的Java應(yīng)用程序,要求三個類分別在三個源文

件中,其中一個源文件包含有名字為

Teacher的類,該類創(chuàng)建的對象調(diào)用add(doublea,doubleb)的方法可以得到

2個數(shù)的和、調(diào)用sub(double

i

a,doubleb)的方法可以得到2個數(shù)的差;一個源文件包含有名字為Student的

類,該類創(chuàng)建的對象調(diào)用speak()

的方法可以可以在命令行窗口輸出“老師好”;一個源文件包含名字為MainClass

的主類。要求在主類的main方

法中分別用Teacher和Student類創(chuàng)建對象,使得程序能輸出12與236的和以

及234與120的差,并輸出“老師好

O

3.當(dāng)源文件中有多個類時,請簡述源文件的命名規(guī)則,

4.當(dāng)代碼量較大時應(yīng)當(dāng)使用哪種編程風(fēng)格?

習(xí)題3

1.什么叫標(biāo)識符?標(biāo)識符的規(guī)則是什么?true是否可以作為標(biāo)識符。

2.什么叫關(guān)鍵字?true和false是否是關(guān)鍵字?請說出6個關(guān)鍵字。

3.Java的基本數(shù)據(jù)類型都是什么?

4,上機(jī)運(yùn)行下列程序,注意觀察輸出的結(jié)果。

publicclassE(

publicstaticvoidmain(Stringargs[]){

for(inti=20302;i<=20322;i++){

System,out.printin((char)i);

)

)

)

2

5,上機(jī)調(diào)試下列程序,注意System,out.print()和System,out.printIn()的

區(qū)別。

publicclassOutputData{

publicstaticvoidmain(Stringargs[]){

intx=234,y=432;

System,out.printIn(x+w<(2*x));

System,out.print("我輸出結(jié)果后不回車");

System.out.printin("我輸出結(jié)果后自動回車到下一行");

System,out.printin(wx+y="+(x+y));

)

}

6.編寫一個Java應(yīng)用程序,輸出全部的大寫英文字母。

7,是否可以將例子4中的

zhangSan.weight=reader.nextFloat();

更改為:

zhangSan.weight=reader.nexDouble();

習(xí)題4

1.下列程序的輸出結(jié)果是什么?if-else語句的書寫是否規(guī)范?

publicclassE(

publicstaticvoidmain(Stringargs[]){

intx=10,y=5,z=100,result=0;

if(x>y)

x=z;

else

3

y=x;

z=y;

result=x+y+z;

System,out.printIn(result);

)

)

2,下列程序的輸出結(jié)果是什么?

publicclassE{

publicstaticvoidmain(Stringargs[]){

charc=t\0r;

for(inti=l;i<=4;i++){

switch(i){

case1:c='新';

System,out.print(c);

case2:親';

System,out.print(c);

break;

case3:c='斤';

System.out.print(c);

default:System,out.print("!");

)

)

)

)

4

3.參考例子2,在應(yīng)用程序中使用if-elseif-else多條件分支語句代替switch

語句來判斷整數(shù)的中獎情況。

4.為了節(jié)約用電,將用戶的用電量分成3個區(qū)間,針對不同的區(qū)間給出不同的

收費(fèi)標(biāo)準(zhǔn)。對于1至90千瓦(度)

的電量,每千瓦0.6元;對于91至150千瓦的電量,每千瓦1.1元;對于用大

于151千瓦的電量,每千瓦L7元。編

寫一個Java應(yīng)用程序程序。在主類的main方法中,輸入用戶的用電量,程序

輸出電費(fèi)。

5.編寫一個應(yīng)用程序,用兩個for循環(huán)語句分別輸出大寫和小寫的“字母表

6.一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。編寫一個應(yīng)用

程序求1000之內(nèi)的所有完數(shù)。

7.編寫一個應(yīng)用程序求滿足1+21+3!-+n!<=9876的最大整數(shù)no

習(xí)題5

1.類中的實(shí)例變量在什么時候會被分配內(nèi)存空間?

2.什么叫方法的重載?構(gòu)造方法可以重載嗎?

3.類中的實(shí)例方法可以操作類變量(static變量)嗎?類方法(static方法)

可以操作實(shí)例變量嗎?

4.類中的實(shí)例方法可以用類名直接調(diào)用嗎?

5,簡述類變量和實(shí)例變量的區(qū)別。

6.下列哪些類聲明是錯誤的?

A)classA

B)publicclassA

5

C)protectedclassA

D)privateclassA

7,下列A類的類體中【代碼1】~[代碼5]哪些是錯誤的?

classTom(

privateintx=120;

protectedinty=20;

intz=ll;

privatevoidf(){

x=200;

System.out.println(x);

}

voidg(){

x=200;

System,out.printIn(x);

)

)

publicclassA{

publicstaticvoidmain(Stringargs[]){

Tomtom=newTom();

tom.x=22;II【代碼1]

tom.y=33;〃【代碼2】

tom.z=55;//[代碼3]

tom.f();〃【代碼4】

tom.g();〃【代碼5】

6

)

)

8,請說出A類中System.out.printin的輸出結(jié)果。

classB

{intx=100,y=200;

publicvoidsetX(intx)

{x=x;

)

publicvoidsetY(inty)

{this.y=y;

}

publicintgetXYSum()

{returnx+y;

)

)

publicclassA

{publicstaticvoidmain(Stringargs[])

{Bb=newB();

b.setX(-lOO);

b.setY(-200);

System,out.println(wsum=,+b.getXYSum());

)

)

9,請說出A類中System,out.printin的輸出結(jié)果。

7

classB{

intn;

staticintsum=O;

voidsetN(intn){

this.n=n;

)

intgetSum(){

for(inti=l;i<=n;i++)

sum=sum+i;

returnsum;

}

)

publicclassA{

publicstaticvoidmain(Stringargs[]){

Bbl=newB(),b2=newB();

bl.setN(3);

b2.setN(5);

intsl=bl.getSum();

ints2=b2.getSum();

System.out.printIn(sl+s2);

)

)

10.請說出E類中System,out.printin的輸出結(jié)果。

classA{

8

doublef(intx,doubley){

returnx+y;

)

intf(intx,inty){

returnx*y;

)

)

publicclassE{

publicstaticvoidmain(Stringargs[]){

Aa=newA();

System.out.printIn(a.f(10,10));

System.out.printIn(a.f(10,10.0));

)

)

習(xí)題6

L子類將繼承父類的那些成員變量和方法?子類在什么情況下隱藏父類的成員

變量和方法?

2.父類的final方法可以被子類重寫嗎?

3.什么類中可以有abstract方法?

4,什么叫對象的上轉(zhuǎn)型對象?

5,下列敘述哪些是正確的?

final類不可以有子類。

abstract類中只可以有abstract方法。

abstract類中可以有非abstract方法,但該方法不可以用final修飾。

9

不可以同時用final和abstract修飾一個方法。

6.請說出E類中System,out.printin的輸出結(jié)果。

classA(

doublef(doublex,doubley){

returnx+y;

)

)

classBextendsA{

doublef(intx,inty){

returnx*y;

}

)

publicclassE{

publicstaticvoidmain(Stringargs[]){

Bb=newB();

System,out.printIn(b.f(3,5));

System,out.println(b.f(3.0,5.0));

)

}

7.請說出E類中System,out.printin的輸出結(jié)果。

classA{

doublef(doublex,doubley){

returnx+y;

)

io

staticintg(intn){

returnn*n;

)

)

classBextendsA{

doublef(doublex,doubley){

doublem=super.f(x,y);

returnm+x*y;

)

staticintg(intn){

intm=A.g(n);

returnm+n;

)

)

publicclassE{

publicstaticvoidmain(Stringargs[]){

Bb=newB();

System.out.printIn(b.f(10.0,8.0));

System.out.printIn(b.g(3));

)

)

習(xí)題7

L接口中能聲明變量嗎?

2.接口中能定義非抽象方法嗎?

11

3?什么叫接口的回調(diào)?

4.請說出E類中System,out.printin的輸出結(jié)果。

interfaceA{

doublef(doublex,doubley);

)

classBimplementsA{

publicdoublef(doublex,doubley){

returnx*y;

)

intg(inta,intb){

returna+b;

)

)

publicclassE{

publicstaticvoidmain(Stringargs[]){

Aa=newB();

System.out.println(a.f(3,5));

Bb=(B)a;

System.out.printIn(b.g(3,5));

)

)

5.請說出E類中System,out.printin的輸出結(jié)果。

interfaceCom{

intadd(inta,intb);

12

)

abstractclassA(

abstractintadd(inta,intb);

)

classBextendsAimplementsCom{

publicintadd(inta,intb){

returna+b;

)

)

publicclassE(

publicstaticvoidmain(Stringargs[]){

Bb=newB();

Comcom=b;

System,out.printIn(com.add(12,6));

Aa=b;

System,out.printIn(a.add(10,5));

)

)

習(xí)題8

L內(nèi)部類的外嵌類的成員變量在內(nèi)部類中仍然有效嗎?

2,內(nèi)部類中的方法也可以調(diào)用外嵌類中的方法嗎?

3.內(nèi)部類的類體中可以聲明類變量和類方法嗎?

4.請說出下列程序的輸出結(jié)果。

classCry{

13

publicvoidcry(){

System,out.printin("大家好");

)

)

publicclassE(

publicstaticvoidmain(Stringargs[]){

Cryhello=newCry(){

publicvoidcry(){

System,out.printin("大家好,祝工作順利!");

)

};

hello,cry();

)

)

習(xí)題9

1,下列敘述哪些是正確的?

String類是final類,不可以有子類。

String類在java,lang包中。

"abc"二二"abc"的值是false.

nabcw.equals(wabcn)的值是true

2,請說出E類中System,out.printin的輸出結(jié)果。

importjava.util.*;

classGetToken{

Strings[];

14

publicStringgetToken(intindex,Stringstr){

StringTokenizerfenxi=newStringTokenizer(str);

intnumber=fenxi.countTokens();

s=newString[number+1];

intk=l;

while(fenxi.hasMoreTokens()){

Stringtemp=fenxi.nextToken();

s[k]=temp;

k++;

)

if(index<=number)

returns[index];

else

returnnull;

)

)

classE(

publicstaticvoidmain(Stringargs[]){

Stringstr="WeLoveThisGame";

GetTokentoken=newGetToken();

Stringsl=token.getToken(2,str),

s2=token.getToken(4,str);

System,out.println(sl+,f:f+s2);

)

15

)

3.請說出E類中System,out.printin的輸出結(jié)果。

publicclassE{

publicstaticvoidmain(Stringargs[]){

byted[]=wabc我們喜歡籃球getBytesO;

System,out.printIn(d.length);

Strings=newString(d,0,7);

System,out.printIn(s);

)

)

4,請說出E類中System,out.printin的輸出結(jié)果。

classMyString(

publicStringgetString(Strings){

StringBufferstr=newStringBuffer();

for(inti=0;i<s.length();i++){

if(i%2==0){

charc=s.charAt(i);

str.append(c);

}

)

returnnewString(str);

)

)

publicclassE{

16

publicstaticvoidmain(Stringargs[]){

Strings=n1234567890";

MyStringms=newMyStringO;

System,out.printings.getString(s));

)

)

5,請說出E類中System.out.printin的輸出結(jié)果。

publicclassE{

publicstaticvoidmain(Stringargs[]){

Stringregex=w\\djava\\w{l,}n;

Stringstr1=88javaookkw;

Stringstr2=w9javaHello'r;

if(strl.matches(regex)){

System,out.printIn(strl);

)

if(str2.matches(regex)){

System.out.println(str2);

)

)

)

6.字符串調(diào)用publicStringtoUpperCase。方法返回一個字符串,該字符串

把當(dāng)前字符串中的小寫字母變成大寫字母;.字符串調(diào)用publicString

toLowerCaseO方法返回一個字符串,該字符串把當(dāng)前字符串中的大寫字母變成小寫

字母。String類的publicStringconcat(Stringstr)方法返回一個字符串,該字

17

符串是把調(diào)用該方法的字符串與參數(shù)指定的字符串連接。編寫一個程序,練習(xí)使用

這3個方法。

7.String類的publiccharcharAt(intindex)方法可以得到當(dāng)前字符串index

位置上的一個字符。編寫程序使用該方法得到一個字符串中的第一個和最后一個字

符。

8,通過鍵盤輸入年份和月份。程序輸出相應(yīng)的日歷牌。

9.計算某年、某月、某日和某年、某月、某日之間的天數(shù)間隔。要求年、月、

日通過通過鍵盤輸入到程序中。

10.編程練習(xí)Math類的常疾方法。

11.參看例子19,編寫程序剔除一個字符串中的全部非數(shù)字字符,例如,將形

如“abl23you”的非數(shù)字字符全部剔除,得到字符串“123”。

12.參看例子21,使用Scanner類的實(shí)例解析“數(shù)學(xué)87分,物理76分,英語

96分”中的考試成績,并計算出總成績以及平均分?jǐn)?shù)。

習(xí)題10

1.如果準(zhǔn)備按字節(jié)讀取一個文件的內(nèi)容,應(yīng)當(dāng)使用FilelnputStream流還是

FileReader流?

2.FilelnputStream流的read方法和FineReader流的read方法有何不同?

3.BufferedReader流能直接指向一個文件嗎?

4,使用ObjectlnputStream和ObjectOutputStream類有哪些注意事項?

5.怎樣使用輸入、輸出流克隆對象?

6,使用RandomAccessFile流將一個文本文件倒置讀出。

7,使用Java的輸入、輸出流將一個文本文件的內(nèi)容按行讀出,每讀出一行

就順序添加行號,并寫入到另

18

一個文件中。

8,了解打印流。我們已經(jīng)學(xué)習(xí)了數(shù)據(jù)流,其特點(diǎn)是用Java的數(shù)據(jù)類型讀寫

文件,但使用數(shù)據(jù)流寫成的文

件用其它文件閱讀器無法進(jìn)行閱讀(看上去是亂碼)。Printstream類提供了一個

過濾輸出流,該輸出流能以文本

格式顯示Java的數(shù)據(jù)類型。上機(jī)實(shí)習(xí)下列程序:

importjava.awt.*;

importjava.io.*;

publicclassE(

publicstaticvoidmain(Stringargs[]){

try(

Filefile=newFile(wp.txtM);

FileOutputStreamout=newFileOutputStream(file);

PrintStreamps=newPrintstream(out);

ps.print(12345.6789);

ps.printin(Whowareyouw);

ps.printIn(true);

ps.close();

)

catch(lOExceptione){}

)

)

19

9.參考例子14,解析一個文件中的價格數(shù)據(jù),并計算平均價格,比如該文件

的內(nèi)容如下:

商品列表:

電視機(jī),2567元/臺

洗衣機(jī),3562元/臺

冰箱,6573元/臺

習(xí)題11

1.JFrame類的對象的默認(rèn)布局是什么布局?

2.一個容器對象是否可以使用add方法添加一個JFrame窗口?

3,編寫應(yīng)用程序,有一個標(biāo)題為“計算”的窗口,窗口的布局為FlowLayout

布局。窗口中添加兩個文本區(qū),當(dāng)

我們在一個文本區(qū)中輸入若干個數(shù)時,另一個文本區(qū)同時對你輸入的數(shù)進(jìn)行求

和運(yùn)算并求出平均值,也就是說

隨著你輸入的變化,另一個文本區(qū)不斷地更新求和及平均值。

4.編寫一個應(yīng)用程序,有一個標(biāo)題為“計算”的窗口,窗口的布局為FlowLayout

布局。設(shè)計四個按鈕,分別命

名為“加”、“差”、“積、”、“除”,另外,窗口中還有三個文本框。單

擊相應(yīng)的按鈕,將兩個文本框的

數(shù)字做運(yùn)算,在第三個文本框中顯示結(jié)果。要求處理NumberFormatException

異常。

20

5.參照例子13編寫一個體現(xiàn)MVC結(jié)構(gòu)的GUI程序。首先編寫一個封裝梯形類,

然后再編寫一個窗口。要求窗口使

用三文本框和一個文本區(qū)為梯形對象中的數(shù)據(jù)提供視圖,其中三個文本框用來

顯示和更新梯形對象的上底、下

底和高;文本區(qū)對象用來顯示梯形的面積。窗口中有一個按鈕,用戶單擊該按

鈕后,程序用3個文本框中的數(shù)據(jù)

分別作為梯形對象的上底、下底和高,并將計算出的梯形的面積顯示在文本區(qū)

中。

習(xí)題12

1.線程有幾種狀態(tài)?

2.引起線程中斷的常見原因是什么?

3.一個線程執(zhí)行完run方法后,進(jìn)入了什么狀態(tài)?該線程還能再調(diào)用start方

法嗎?

4,線程在什么狀態(tài)時,調(diào)用isAliveO方法返回的值是false。

5.建立線程有幾種方法?

6.怎樣設(shè)置線程的優(yōu)先級?

7.在多線程中,為什么要引入同步機(jī)制?

8.在什么方法中wait()方法、notify。及notifyAllO方法可以被使用?

9,將例子11中SellTicket類中的循環(huán)條件:

while(fiveAmount<3)

該寫成:

21

if(fiveAmount<3)

是否合理。

10.線程調(diào)用interrupt。的作用是什么?

11.參照例子14,模擬三個人排隊買票,張某、李某和趙某買電影票,售票員

只有三張五元的錢,電影票5元錢

一張。張某拿二十元一張的新人民幣排在李的前面買票,李某排在趙的前面拿

一張10元的人民幣買票,趙某拿

一張5元的人民幣買票。

12.參照例子9,要求有3個線程:studentl、student2和teacher,其中student1

準(zhǔn)備睡10分鐘后再開始上課

,其中student2準(zhǔn)備睡一小時后再開始上課。teacher在輸出3句"上課”后,

吵醒休眠的線程studentl;

student1被吵醒后,負(fù)責(zé)再吵醒休眠的線程student20

12.參照例子19,編寫一個Java應(yīng)用程序,在主線程中再創(chuàng)建3個線程:“運(yùn)

貨司機(jī)”、“裝運(yùn)工”和“倉庫管

理員”。要求線程“運(yùn)貨司機(jī)”占有CPU資源后立刻聯(lián)合線程“裝運(yùn)工”,也

就是讓“運(yùn)貨司機(jī)”一直等到“裝

運(yùn)工”完成工作才能開車,而“裝運(yùn)工”占有CPU資源后立刻聯(lián)合線程“倉庫

22

管理員”,也就是讓“裝運(yùn)工”

一直等到“倉庫管理員”打開倉庫才能開始搬運(yùn)貨物。

14.在下列E類中,System.out.printIn的輸出結(jié)果是什么?

importjava.awt.*;

importjava.awt.event.*;

publicclassEimplementsRunnable(

StringBufferbuffer=newStringBuffer();

Threadtl,t2;

E(){

tl=newThread(this);

t2=newThread(this);

)

publicsynchronizedvoidaddChar(charc){

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

while(buffer.1ength()==0){

try{wait();

)

catch(Exceptione){}

)

buffer,append(c);

)

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

buffer,append(c);

23

notifyAll();

)

)

publicstaticvoidmain(Strings[]){

Ehello=newE();

hello,tl.start();

hello.t2.start();

while(hello,tl.isAlive()||hello.t2.isAliveO){}

System,out.printin(hello,buffer);

)

publicvoidrun(){

if(Thread.currentThread()==tl)

addChar(*A1);

if(Thread.currentThread()==t2)

addChar(1B');

)

)

習(xí)題13

l.URL對象調(diào)用哪個方法可以返回一個指向該URL對象所包含的資源的輸入流。

2.什么叫socket?怎樣建立socket連接?

3.ServerSocket對象調(diào)用accept方法返回一個什么類型的對象?

4.InetAddress對象使用怎樣的格式來表示自己封裝的地址信息?

5.參照例子6,使用套接字連接編寫網(wǎng)絡(luò)程序,客戶輸入三角形的三邊并發(fā)送

給服務(wù)器,服務(wù)器把計算出的三

24

窿形的面積返回給客戶。

6,參照13.6.2節(jié)中的示例代碼,使用RMI技術(shù)讓客戶調(diào)用遠(yuǎn)程對象讀取服務(wù)

器上的一個文本文件。

習(xí)題14

1,為了操作Derby數(shù)據(jù)庫,需要把Java安裝目錄目錄db/lib下的那些jar

文件復(fù)制到Java運(yùn)行環(huán)境的擴(kuò)展

中?

2.參照例子2,編寫一個應(yīng)用程序來查詢Derby數(shù)據(jù)庫,用戶可以從鍵盤輸

入數(shù)據(jù)庫名、表名。

3,使用預(yù)處理語句的好處是什么?

4,什么叫事務(wù),事務(wù)處理步驟是怎樣的?

習(xí)題解答

習(xí)題一(第1章)

1.JamesGosling

2,需3個步驟:

用文本編輯器編寫源文件。

使用javac編譯源文件,得到字節(jié)碼文件。

使用解釋器運(yùn)行程序。

3.setclasspath=D:\jdk\jre\lib\rt.jar;.;

4.B

5.Java源文件的擴(kuò)展名是.java,Java字節(jié)碼的擴(kuò)展名是.class。

6.Do

25

習(xí)題二(第2章)

1.

width

height2.

Teacher,java

publicclassTeacher{

doubleadd(doublea,doubleb){

returna+b;

)

doublesub(doublea,doubleb){

returna-b;

)

)

Student,java

publicclassStudent(

publicvoidspeak(){

System,out.printin("老師好");

)

}

MainClass.java

publicclassMainClass{

publicstaticvoidmain(Stringargs[1){

Teacherzhang=newTeacher();

System,out.printin(zhang,add(12,236));

26

System,out.printIn(zhang,add(234,120));

Studentjiang=newStudent();

jiang.speak();

)

)

3.如果源文件中有多個類,但沒有public類,那么源文件的名字只要和某個

類的名字相同,并且擴(kuò)展名是.java就可以了,如果有一個類是public類,那么源

文件的名字必須與這個類的名字完全相同,擴(kuò)展名是.java。

4.行尾風(fēng)格。

習(xí)題三(第3章)

1.用來標(biāo)識類名、變量名、方法名、類型名、數(shù)組名、文件名的有效字符序列

稱為標(biāo)識符。標(biāo)識符由字母、下劃線、美元符號和數(shù)字組成,第一個字符不能是數(shù)

字。true不是標(biāo)識符。

2.關(guān)鍵字就是Java語言中已經(jīng)被賦予特定意義的一些單詞,不可以把關(guān)鍵字

作為名字來用。不是關(guān)鍵字。classimplementsinterfaceenumextendsabstracto

3.boolean,char,byte,short,int,long,float,double?

4.屬于操作題,解答略。

5.屬于操作題,解答略。

6.publicclassE(

publicstaticvoidmain(Stringargs[]){

charcStart='A',cEnd='Z';

for(charc=cStart;c<=cEnd;c++)

System,out.print(M”+c);

)

27

)

7.不可以。

習(xí)題四(第4章)

1.110o不規(guī)范。

2.新親親斤?。 ?/p>

3.

publicclassJudgeAward(

voidgiveMess(intnumber){

if(number==91|number=1311|number==12){

System,out.println(number+"是三等獎");

}

elseif(number==209||number==596||number==27){

System,out.printIn(number+"是二等獎");

)

elseif(number==875||number==316||number==59){

System,out.println(mimber+"是一等獎");

)

else{

System.out.printing未中獎");

)

)

)

4.

importjava.util.Scanner;

28

publicclassComputer(

publicstaticvoidmain(Stringargs[]){

Scannerreader=newScanner(System,in);

doubleamount=0;〃存放電量

doubleprice=0;〃用戶需要交納的電費(fèi)

System,out.print("輸入電量:");

amount=reader.nextDouble();

if(amount<=90&&amount>=1){

price=amount*0.6;〃計算price的值

)

elseif(amount<=150&&amount>=91){

price=90*0.6+(amount-90)*1.1;〃計算price的值

)

elseif(amount>150){

price=90*0.6+(150-90)*1.1+(amount-150)*1.7;〃計算price的值

)

else{

System,out.printin("輸入電量:"+amount+"不合理");

}

System.out.printf(B電費(fèi):%5.2fM,price);

)

)

5,publicclassE{

publicstaticvoidmain(Stringargs[]){

29

charcStart=1A1,cEnd=1Z*;

for(charc=cStart;c<=cEnd;c++)

System.out.printf("%2cn,c);

System,out.printIn();

for(charc=cStart;c<=cEnd;c++)

System,out.printf(rt%2cw,(c+32));

)

)

6.publicclassXiti5{

publicstaticvoidmain(Stringargs[]){

intsum=0,i,j;

for(i=l;i<=1000;i++){

for(j=l,sum=0;j<i;j++){

if(i%j==O)

sum=sum+j;

)

if(sum==i)

System.out.printin("完數(shù):"+i);

}

)

)

7

publicclassE{

publicstaticvoidmain(Stringargs[]){

30

intn=l,i=l,jiecheng=l;

longsum=0;

while(true){

jiecheng=l;

for(i=l;i<=n;i++){

jiecheng=jiecheng*i;

)

sum=sum+jiecheng;

if(sum>9876)

break;

n++;

)

System,out.printin("滿足條件的最大整數(shù):"+(nT));

)

)

習(xí)題五(第5章)

1.用類創(chuàng)建對象時。

2.一個類中可以有多個方法具有相同的名字,但這些方法的參數(shù)必須不同,即

或者是參數(shù)的個數(shù)不同,或者是參數(shù)的類型不同??梢?。

3,可以。不可以。

4.不可以。

5.一個類通過使用new運(yùn)算符可以創(chuàng)建多個不同的對象,不同的對象的實(shí)例變

量將被分配不同的內(nèi)存空間。所有對象的類變量都分配給相同的一處內(nèi)存,對象共

享類變量。

31

6.CDo

7.【代碼1】【代碼4】o

8.sum=-100o

9.27o

10.100和20.0。

習(xí)題六(第6章)

1.如果子類和父類在同一個包中,那么,子類自然地繼承了其父類中不是

private的成員變量作為自己的成員變量,并且也自然地繼承了父類中不是private

的方法作為自己的方法,繼承的成員或方法的訪問權(quán)限保持不變。當(dāng)子類和父類不

在同一個包中時,父類中的private和友好訪問權(quán)限的成員變量不會被子類繼承,

也就是說,子類只繼承父類中的protected和public訪問權(quán)限的成員變量作為子類

的成員變量;同樣,子類只繼承父類中的protected和public訪問權(quán)限的方法作為

子類的方法。如果所聲明的成員的變量的名字和從父類繼承來的成員變量的名字相

同(聲明的類型可以不同),在這種情況下,子類就會隱藏掉所繼承的成員變量。

2.不可以。

3.abstract類。

4.A類是B類的父類,當(dāng)用子類創(chuàng)建一個對象b,并把這個對象b的引用放到

父類的對象a中時,稱a是b的上轉(zhuǎn)型對象。

5.ADo

6.15.0

8.0o

7.98.0

12o

習(xí)題七(第7章)

32

1,不能。

2.不能。

3,可以把實(shí)現(xiàn)某一接口的類創(chuàng)蔑的對象的引用賦給該接口聲明的接口變量中。

那么該接口變量就可以調(diào)用被類實(shí)現(xiàn)的接口中的方法。

4.15.0

8o

5.18

15o

習(xí)題八(第8章)

1.有效。

2.可以。

3.不可以。

4.大家好,祝工作順利!

習(xí)題九(第9章)

1.ABDo

2,Love:Gameo

3.15

abc我們。

4.13579o

5.9javaHell0o

6.publicclassE{

publicstaticvoidmain(Stringargs[]){

Stringsi,s2,tl=wABCDabcdw;

sl=tl.toUpperCase();

33

s2=tl.toLowerCase();

System.out.println(sl);

System,out.println(s2);

Strings3=sl.concat(s2);

System,out.printIn(s3);

)

)

7.publicclassE{

publicstaticvoidmain(Stringargs[]){

Strings=wABCDabcd";

charcStart=s.charAt(0);

charcEnd=s.charAt(s.length()-1);

System,out.printIn(cStart);

System,out.println(cEnd);

)

)

8.

importjava.util.*;

publicclassE(

publicstaticvoidmain(Stringargs[]){

Scannerread=newScanner(System,in);

CalendarBeancb=newCalendarBeanO;

intyear=2000,month=l;

System,out.printin("輸入年:");

34

year=read.nextlnt();

System,out.printin("輸入月:");

month=read.nextlnt();

cb.setYear(year);

cb.setMonth(month);

String□a二cb.getCalendar();〃返回號碼的一維數(shù)組

char□str="日一二三四五六toCharArray();

for(charc:str){

System,out.printf("%3cw,c);

)

for(inti=0;i<a.length;i*+){〃輸出數(shù)組a

if(i%7==0)

System,out.printing");〃換行

System,out.printf(ff%4sB,a[i]);

)

)

)

classCalendarBean(

String口day;

intyear=0,month=0;

publicvoidsetYear(intyear){

this.year=year;

)

publicvoidsetMonth(intmonth){

35

this.month=month;

)

publicString口getCalendar(){

String口a=newString[42];

Calendarrili=Calendar.getlnstanceO;

rili.set(year,month-1,1);

intweekDay=rili.get(Calendar.DAY_OF_WEEK)-1;//計算出1號的星期

intday=O;

if(month==l||month==3||month=5||month=7||month=8||month=10||mont

h=12)

day=31;

if(month==41|month==61|month=91|month=ll)

day=30;

if(month==2){

if(((year%4==0)&&(year%100!=0))||(year%400=0))

day=29;

else

day=28;

)

for(inti=0;i<weekDay;i+-)

a[i]=ww;

for(inti=weekDay,n=l;i<weekDay+day;i++){

a[i]=String.valueOf(n);

n++;

36

)

for(inti=weekDay+day;i<a.length;i++)

a[i]=Mn;

returna;

)

)

9.importjava.util.?;

publicclassE{

publicstaticvoidmain(Stringargs[]){

Scannerread=newScanner(System,in);

intyearl,month1,day1,year2,month2,day2;

System.out.printin("輸入第一個日期的年、月、日(用空格或回車分隔)」);

yearl=read.nextlnt();

monthl=read.nextlnt();

dayl=read.nextlnt();

System.out.printin("輸入第二個日期的年月日(用空格或回車分隔):");

year2=read.nextlnt();

month2=read.nextlnt();

day2=read.nextlnt();

Calendarcalendar=Calendar.getlnstanceO;

calendar,set(yearl,month1-1,dayl);

longtimeYearl=calendar.getTimelnMillisO;

calendar,set(year2,month2-l,day2);

longtimeYear2=calendar.getTimelnMillisO;

37

long相隔天數(shù)=乂@m.abs((timeYearl-timeYear2)/(1000*60*60*24));

System,out.printing"+yearl+"年"+monthl+"月"+dayl+"日和"+

year2+"年"+month2+“月”+day2+“日相隔”+相隔天數(shù)+“天”);

)

)

10.importjava.util.*;

publicclassE(

publicstaticvoidmain(Stringargs[]){

doublea=0,b=0,c=0;

a=12;

b=24;

c=Math.asin(0.56);

System,out.printIn(c);

c=Math.cos(3.14);

System,out.printIn(c);

c=Math.exp(l);

System,out.println(c);

c=Math.log(8);

System.out.printIn(c);

)

)

11.publicclassE{

publicstaticvoidmain(Stringargs[]){

Stringstr="abl23you你是誰?S

38

Stringregex="\\D+";

str=str.replaceAll(regex,w");

System,out.printIn(str);

)

)

12.importjava.util.*;

publicclassE(

publicstaticvoidmain(Stringargs[]){

Stringcost="數(shù)學(xué)87分,物理76分,英語96分”;

Scannerscanner=newScanner(cost);

scanner.useDelimiter(n10123456789.]+");

doublesum=0;

intcount=0;

while(scanner.hasNext()){

try{doublescore=scanner.nextDouble();

count++;

sum=sum+score;

System,out.printIn(score);

}

catch(InputMismatchExceptionexp){

Stringt=scanner,next();

)

)

System,out.printin("總分:"+sum+"分");

39

System,out.printin("平均分:"+sum/count+"分");

)

)

習(xí)題十(第10章)

1,使用FilelnputStreamo

2.FilelnputStream按字節(jié)讀取文件,F(xiàn)ileReader按字符讀取文件。

3.不可以。

4.使用對象流寫入或讀入對象時,要保證對象是序列化的。

5.使用對象流很容易得獲取一個序列化對象的克隆,只需將該對象寫入到對象

輸出流,那么用對象輸入流讀回的對象一定是原對象的一個克隆。

6.

importjava.io.?;

publicclassE{

publicstaticvoidmain(Stringargs[]){

Filef=newFile(nE.javaw);;

try{RandomAccessFilerandom=newRandomAccessFile(f,Wrwn);

random,seek(0);

longm=random.length();

while(m>=0){

m=m-l;

random,seek(m);

intc=random.readByte();

if(c<=255&&c>=0)

System,out.print((char)c);

40

else{

m=m-l;

random,seek(m);

bytecc[]=newbyte[2];

random.readFully(cc);

System,out.print(newString(cc));

)

)

)

catch(Exceptionexp){}

}

)

7.

importjava.io.*;

publicclassE{

publicstaticvoidmain(Stringargs[]){

Filefile=newFile(wE.java");

FiletempFile=newFile(wtemp.txtn);

try{FileReaderinOne=newFileReader(file);

BufferedReaderinTwo=newBufferedReader(inOne);

FileWritertofile=newFileWriter(tempFile);

BufferedWriterout=newBufferedWriter(tofile);

Strings=null;

inti=0;

41

s=inTwo.readLine();

while(s!=null){

i++;

out.write(i+wB+s);

out.newLine();

s=inTwo.readLine();

)

inOne.close();

inTwo.close();

out.flush();

out.close();

tofile.close();

)

catch(lOExceptione){}

)

)

8.屬于上機(jī)操作題,解答略。

9.importjava.io.*;

importjava.util.*;

publicclassE{

publicstaticvoidmain(Stringargs[]){

Filefile=newFile(wa.txtw);

Scannersc=null;

doublesum=0;

42

intcount=0;

try{sc=newScanner(file);

sc.useDelimiter(,T[^0123456789.]+n);

while(sc.hasNext()){

try(doubleprice=sc.nextDoubleO;

count++;

sum=sum+price;

System,out.printIn(price);

)

catch(InputMismatchExceptionexp){

Stringt=sc.next();

)

)

System,out.printin("平均價格:”+sum/count);

)

catch(Exceptionexp){

System,out.println(exp);

)

}

)

習(xí)題十一(第11章)

1.Frame容器的默認(rèn)布局是BorderLayout布局。

2.不可以。

3.

43

importjava.awt.*;

importjavax.swing,event.?;

importjavax.swing.?;

importjava.awt.event.*;

publicclassE(

publicstaticvoidmain(Stringargs[]){

Computerfr=newComputer();

)

)

classComputerextendsJFrameimplementsDocumentListener{

JTextAreatextl,text2;

intcount=l;

doublesum=0,aver=0;

Computer(){

setLayout(newFlowLayout0);

textl=newJTextArea

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論