Java程序設(shè)計(jì)教程(第三版)課后習(xí)題答案_第1頁(yè)
Java程序設(shè)計(jì)教程(第三版)課后習(xí)題答案_第2頁(yè)
Java程序設(shè)計(jì)教程(第三版)課后習(xí)題答案_第3頁(yè)
Java程序設(shè)計(jì)教程(第三版)課后習(xí)題答案_第4頁(yè)
Java程序設(shè)計(jì)教程(第三版)課后習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩56頁(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)介

參考答案

第1章

1.Java語(yǔ)言有哪些主要特點(diǎn)?

平臺(tái)獨(dú)立性

安全性

多線程

網(wǎng)絡(luò)化

面向?qū)ο?/p>

2.Java編程語(yǔ)言有哪四種不同的平臺(tái)?

Java編程語(yǔ)言有四種平臺(tái):Java標(biāo)準(zhǔn)版(JavaSE)、Java企業(yè)版(JavaEE)、Java微

型版(JavaME)和JavaFX。所有Java都由Java虛擬機(jī)(VM)和應(yīng)用程序編程接口(API)

組成。Java虛擬機(jī)是一個(gè)用于特定硬件和軟件平臺(tái)的程序,它運(yùn)行Java技術(shù)應(yīng)用程序。

API是一組軟件組件,可用于創(chuàng)建其他軟件組件或應(yīng)用程序。每個(gè)Java平臺(tái)都提供了一個(gè)

虛擬機(jī)和一個(gè)API,這使得為該平臺(tái)編寫(xiě)的應(yīng)用程序可以在具有Java編程語(yǔ)言所有優(yōu)點(diǎn)的

任何兼容系統(tǒng)上運(yùn)行:平臺(tái)獨(dú)立性、功能強(qiáng)大、穩(wěn)定性、易于開(kāi)發(fā)和安全。

JavaSE

當(dāng)大多數(shù)人想到Java編程語(yǔ)言時(shí),他們會(huì)想到JavaSEAPI,JavaSE的API提供了

Java編程語(yǔ)言的核心功能。它定義了從Java編程語(yǔ)言的基本類型和對(duì)象到用于網(wǎng)絡(luò)、安

全、數(shù)據(jù)庫(kù)訪問(wèn)、圖形用戶界面(GUI)開(kāi)發(fā)和XML解析的高級(jí)類的所有內(nèi)容。除了核心

API之外,JavaSE平臺(tái)還包括虛擬機(jī)、開(kāi)發(fā)工具、部署技術(shù)以及Java技術(shù)應(yīng)用程序中常

用的其他類庫(kù)和工具包。

JavaEE

JavaEE平臺(tái)構(gòu)建在JavaSE平臺(tái)之上。JavaEE平臺(tái)為開(kāi)發(fā)和運(yùn)行大規(guī)模、多層、可

擴(kuò)展、可靠和安全的網(wǎng)絡(luò)應(yīng)用程序提供了API和運(yùn)行時(shí)環(huán)境。

JavaME

JavaME平臺(tái)提供了一個(gè)API和一個(gè)小型虛擬機(jī),用于在小型設(shè)備(如手機(jī))上運(yùn)行

Java編程語(yǔ)言應(yīng)用程序。該API是JavaSEAPI的一個(gè)子集,以及對(duì)小型設(shè)備應(yīng)用程序開(kāi)

發(fā)有用的特殊類庫(kù)。JavaME應(yīng)用程序通常是JavaEE平臺(tái)服務(wù)的客戶端。

JavaFX

JavaFX是一個(gè)使用輕量級(jí)用戶界面API創(chuàng)建富Internet應(yīng)用程序的平臺(tái)。JavaFX應(yīng)

用程序使用硬件加速的圖形和媒體引擎來(lái)利用更高性能的客戶端和現(xiàn)代外觀以及用于連接

到網(wǎng)絡(luò)數(shù)據(jù)源的高級(jí)APLJavaFX應(yīng)用程序可能是JavaEE平臺(tái)服務(wù)的客戶端。

3.JavaApplication的開(kāi)發(fā)步驟有哪些?

JavaApplication的開(kāi)發(fā)步驟:

(1)下載JDK軟件并安裝;

(2)配置相應(yīng)的環(huán)境變量(path和classpath);

(3)編寫(xiě)Java源程序(文本編輯器或集成開(kāi)發(fā)環(huán)境IDE);

(4)編譯Java源程序,得到字節(jié)碼文件(javac*.java);

(5)執(zhí)行字節(jié)碼文件(java字節(jié)碼文件名)。

4.什么是環(huán)境變量?設(shè)置環(huán)境變量的主要目的是什么?

環(huán)境變量的配置主要是為了進(jìn)行“尋徑”,即讓程序能找到它需要的文件,所以設(shè)置的

內(nèi)容就是一些路徑。

5.不參考書(shū)本,試著編寫(xiě)一個(gè)簡(jiǎn)單的JavaApplication程序,實(shí)現(xiàn)在屏幕上輸出"Welcome

toJava”字符串,并對(duì)該程序進(jìn)行編譯和運(yùn)行。

publicclassHello{

publicstaticvoidmain(Stringargs[])

(

System.out.println("WelcometoJava");

6.編寫(xiě)一個(gè)JavaApplication程序,實(shí)現(xiàn)分行顯示字符串"Welcomet。Java”中的3個(gè)單

詞。

publicclassHello{

publicstaticvoidmain(Stringargs[])

(

System.out.println("Welcome");

Systeni.out.println("tO'*);

System.out.prinilnC'Java");

)

}

第2章

1.Java語(yǔ)言對(duì)于合法標(biāo)識(shí)符的規(guī)定是什么?指出以下哪些為合法標(biāo)識(shí)符。

aa23a*a_a$ainta%

在Java中,標(biāo)識(shí)符必須以字母、美元符號(hào)或者下劃線打頭,后接字母、數(shù)字、下劃線

或美元符號(hào)串。另外,Java語(yǔ)言對(duì)標(biāo)識(shí)符的有效字符個(gè)數(shù)基本不做限定。

合法的標(biāo)識(shí)符:aa2_a$a

2.變量的涵義是什么?變量名與變量值的關(guān)系?

在程序執(zhí)行過(guò)程中其值可以發(fā)生改變的量,稱為變量,它本質(zhì)上是內(nèi)存分配的一小塊存

儲(chǔ)空間。每個(gè)變量都必須有對(duì)應(yīng)的名稱來(lái)標(biāo)識(shí)它,即變量名,而變量空間所存放的數(shù)據(jù)則為

變量值。

3.Java語(yǔ)言提供哪些基本的數(shù)據(jù)類型,為什么要提供這些不同的數(shù)據(jù)類型?

布爾型:boolean

整型:byte、short、int以及l(fā)ong

浮點(diǎn)型(實(shí)型):float以及double

字符型:char

數(shù)據(jù)類型代表了數(shù)據(jù)的存儲(chǔ)格式和處理方式,有了數(shù)據(jù)類型,程序就能夠存儲(chǔ)和處理整

數(shù)、實(shí)數(shù)、字符以及布爾值等。

4.賦值語(yǔ)句的涵義是什么?

數(shù)據(jù)傳遞。

5.數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換的情形有哪些?如何轉(zhuǎn)換?

對(duì)于變窄轉(zhuǎn)換,如long到short、double到float,或者其他不兼容轉(zhuǎn)換:float到short、

charSOshort等,必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換。

floatf=(float)11.5;或floatf=11.5f;

shortb;

b=(short)f;

6.每一條程序語(yǔ)句都以分號(hào)結(jié)束,該分號(hào)能否用中文輸入模式下輸入的分號(hào)?為何?

不能。中英文輸入模式下輸入的分號(hào)是不同的,不但外觀不同,其存儲(chǔ)所需的空間也不

同,Java編譯器只能識(shí)別英文的分號(hào),遇到中文分號(hào)會(huì)報(bào)錯(cuò)。

7.float或double變量能否精確存儲(chǔ)0.1這個(gè)小數(shù)?為什么?

不能。float和double不僅范圍有限,精度也有限,有限的比特串不能精確表示0.1這

個(gè)重要的小數(shù)。換句話說(shuō),想精確表示0.1這個(gè)小數(shù),多少比特都不夠用。同樣,0.2、0.4

和0.8等,也都不能被精確存儲(chǔ),其根本原因是計(jì)算機(jī)采用的是二進(jìn)制格式。

第3章

1.假定乘坐飛機(jī)時(shí),每位顧客可以免費(fèi)托運(yùn)20kg以內(nèi)的行李,超過(guò)部分按每公斤收費(fèi)1.2

元,以下是相應(yīng)的計(jì)算收費(fèi)程序。該程序存在錯(cuò)誤,請(qǐng)找出其中的錯(cuò)誤。

publicclassTest

{

publicstaticvoidmain(String[]args)throwslOException

{

floatw,fee;

〃以下代碼為通過(guò)控制臺(tái)交互輸入行李重量

InputStreamReaderreader=newInputStreamReader(System.in);

BufferedReaderinput=newBufferedReader(reader);

System.out.printin("請(qǐng)輸入旅客的行李重量:");

Stringtemp=input.rea(lLine();

w=Float.parseFloat(temp);〃字符串轉(zhuǎn)換為單精度浮點(diǎn)型

fee=0;

if(w>20);

fee=(float)1.2*(w-20);

System.out.println("該旅客需交納的托運(yùn)費(fèi)用:"+fee+“元”);

)

}

缺少importjava.io.*;語(yǔ)句

2.有一條階梯,如果每步2階,則最后剩1階,如果每步3階則剩2階,每步5階則剩4

階,每步6階則剩5階,每步7階,則剛好走完。問(wèn)這條階梯最少有多少階?找出以下求

解程序的錯(cuò)誤所在。

publicclassTest

{publicstaticvoidmain(String[]args)

(

inti;

while(i%2==l&&i%3==2&&i%5==4&&i%6==5&&i%7==0)

(

i++;

System.out.println("這條階梯最少有:“+i+”階”);

)

1)變量i應(yīng)進(jìn)行初始化。

2)while循環(huán)的條件表達(dá)式應(yīng)加上“非”,才符合邏輯。

3.試用單分支結(jié)構(gòu)設(shè)計(jì)一個(gè)程序,判斷用戶輸入的值X,當(dāng)X大于零時(shí)求X值的平方根,

否則不執(zhí)行任何操作。

importjava.io.*;

importjava.lang.*;

publicclassTest

{publicstaticvoidmain(String[]args)throwslOException

(

floatx;

InputStreamReaderreader=newInputStreamReader(System.in);

BufferedReaderinput=newBufferedReader(reader);

System.out.println("請(qǐng)輸入x:n);

Stringtemp=input.readLine();

x=Float.parseFloat(temp);〃字符串轉(zhuǎn)換為單精度浮點(diǎn)型

if(x>0)

{System.out.println("平方根值M+Math.sqrt(x));}

)

)

4.從鍵盤(pán)讀入兩個(gè)字符,按照字母表的順序進(jìn)行排序,將前面的字符置于A=后面,排后

面的字符置于B=后面,比如輸入ok,應(yīng)輸出A=kB=o,請(qǐng)?jiān)O(shè)計(jì)實(shí)現(xiàn)該程序。

importjava.io.*;

publicclassTest

{publicstaticvoidmain(String[]args)throwslOException

(

charA,B,cl,c2;

cl=(char)System.in.read();;

c2=(char)System.in.read();;

if(cl>c2)

(

A=c2;

B=cl;

}

else

(

A=cl;

B=c2;

)

System.out.println。'A="+A+"B="+B);

)

)

5.用窮舉法求出3位數(shù)中百、十、個(gè)位數(shù)的立方和就是該數(shù)的數(shù)。

publicclassTest

{publicstaticvoidmain(String[]args)

(

inta,b,c,x=100;

while(x<1000)

(

a=x%10;

b=(x%100-a)/10;

c=(x-x%100)/100;

if(a*a*a+b*b*b+c*c*c==x)

{System.out.println(x);}

x+=l;

}

)

)

6.編程實(shí)現(xiàn)打印以下圖案:

*

publicclassTest

{publicstaticvoidmain(String[]args)

(

inti,j,k;//i控制行數(shù),k控制*的個(gè)數(shù),j控制空格數(shù)

for(i=l;i<=6;i++)

(

for(j=l;j<=i-l;j++)

{System.out.print('rn);}〃打印空格

for(k=1;k<=13?i*2;k++)

{System.out.print(n*M);}〃打印*號(hào)

System.out.println();〃換行

}

)

1

7.統(tǒng)計(jì)1至1萬(wàn)之間共有多少個(gè)素?cái)?shù)。

publicclassTest

{publicstaticvoidmain(String[Jargs)

{inti,j,count=0;

label:

for(i=l;i<=10000;i++)〃查找1到10000以內(nèi)的素?cái)?shù)

{for(j=2;j<i;j++)//檢驗(yàn)是否不滿足素?cái)?shù)條件

{if(i%j==0)〃不滿足

{continuelabel;}〃跳過(guò)后面不必要的檢驗(yàn)

!

count++;〃計(jì)數(shù)

)

System.out.println("個(gè)數(shù):"count);

8.打印輸出斐波納契數(shù)列的前12項(xiàng)。

斐波納契數(shù)列的前12項(xiàng)如下:

第1項(xiàng):0

第2項(xiàng):1

第3項(xiàng):1

第4項(xiàng):2

第5項(xiàng):3

第6項(xiàng):5

第7項(xiàng):8

第8項(xiàng):13

第9項(xiàng):21

第10項(xiàng):34

第11項(xiàng):55

第12項(xiàng):89

publicclassTest

{publicstaticvoidmain(String[]args)

{inti=0,j=l;

for(intk=0;k<6;k++)

(

System.out.print(i+""+j+n");

i=i+j;

j=j+j;

9.讀程序,寫(xiě)結(jié)果。

importjava.io.*;

publicclassTest

publicstaticvoidmain(String[]args)throwslOException

(

charsex='f';

switch(sex)

(

case'm':System,out.printin("男性”);

break;

case'f':System.out.printin("女性”);

case'u':System,out.printin("未知");

}

}

)

女性

未知

10.讀程序,寫(xiě)結(jié)果。

publicclassTest

{publicstaticvoidniain(String[]args)

(

inti,s=0;

for(i=l;i<=100;i++)

(

if(i%3==0)

{continue;}

s+=i;

)

System.out.println(,,s=,,+s);

)

)

s=3367

11.讀程序,寫(xiě)結(jié)果。

publicclassTest

{publicstaticvoidmain(String[]args)

(

inti,s=0;

for(i=l;i<=100;i++)

(

s+=i;

if(s>100)

{break;}

)

System.out.println(,*s=n+s);

)

)

s=105

12.個(gè)位數(shù)是6,且能被3整除的5位數(shù)共有多少個(gè)?請(qǐng)?jiān)O(shè)計(jì)并實(shí)現(xiàn)該程序。

publicclassTest

{publicstaticvoidmain(String[]args)

(

inti=10006,count=0;

while(i<100000)

{if(i%3==0)

{count++;}

i+=10;

System.out.println("符合條件的數(shù)共有"+count+"個(gè))

運(yùn)行結(jié)果:

符合條件的數(shù)共有3000個(gè)

13.用嵌套循環(huán)結(jié)構(gòu),設(shè)計(jì)一個(gè)模擬電子鐘的程序。

提示:定義三個(gè)變量分別代表“小時(shí)”、“分”和“秒力根據(jù)電子鐘分、秒、小時(shí)之間

的關(guān)系,采用三重循環(huán)來(lái)控制各量的增加,并由輸出語(yǔ)句將變化中的三個(gè)量分別予以輸出

顯示,即為一模擬數(shù)字電子鐘。此外,Java語(yǔ)言提供的延時(shí)方法為T(mén)hread.sleep(1000);1000

的單位為毫秒,即延時(shí)1秒。

importjava.util.*;

publicclassTest

{publicstaticvoidmain(String[]args)throwsInterruptedException

(

inthour=0,min=0,sec=0;

while(hour<24)

{

whi!e(min<60)

(

while(sec<60)

{sec++;

Thread.sleep(l000);

System.out.println(hour+”時(shí),+min+”分,+sec+”秒)

)

sec=0;

min++;

)

min=0;

hour++;

第4章

1.以下敘述中不正確的是O

A、在方法中,通過(guò)return語(yǔ)句傳回方法值

B、在一個(gè)方法中,可以執(zhí)行有多條return語(yǔ)句,并返回多個(gè)值

C、在Java中,主方法main()后的一對(duì)圓括號(hào)中也可以帶有參數(shù)

D、在Java中,調(diào)用方法可以在System,out.printin()語(yǔ)句中完成

B

2.以下正確的描述是.

A、方法的定義不可以嵌套,但方法的調(diào)用可以嵌套

B、方法的定義可以嵌套,但方法的調(diào)用不可以嵌套

C、方法的定義和方法的調(diào)用均不可以嵌套

D、方法的定義和方法的調(diào)用均可以嵌套

A

3.以下正確的說(shuō)法為.

A、在不同方法中不可以使用相同名字的變量

B、實(shí)際參數(shù)可以在被調(diào)方法中直接使用

C、在方法內(nèi)定義的任何變量只在本方法范圍內(nèi)有效

D、在方法內(nèi)的復(fù)合語(yǔ)句中定義的變量只在本方法語(yǔ)句范圍內(nèi)有效

C

4.按Java語(yǔ)言的規(guī)定,以下正確的說(shuō)法是。

A、實(shí)參不可以是常量,變量或表達(dá)式

B、形參不可以是常量,變量或表達(dá)式

C、實(shí)參與其對(duì)應(yīng)的形參占用同一個(gè)存儲(chǔ)單元

D、形參是虛擬的,不占用存儲(chǔ)單元

D

5.一個(gè)JavaApplication程序中有且只有一個(gè)方法,它是整個(gè)程序的執(zhí)行入口。

main()方法

6.方法通??梢哉J(rèn)為由兩部分組成,它們是和。

方法頭和方法體

7.讀程序?qū)懡Y(jié)果。

publicclassTest{

staticvoidm(intx9inty,intz)

{x=lll;y=222;z=333;

publicstaticvoidmain(Stringargs[])

{intx=100,y=200,z=300;

m(x,y,z);

System.out.println(nx=1*+x+11y=n+y+Hz=M+z);

)

}

x=100y=200z=300

8.編寫(xiě)一個(gè)判斷某個(gè)整數(shù)是否為素?cái)?shù)的方法。

publicbooleanprime(intx)

(

for(intj=2;j<x;j++)〃檢驗(yàn)是否滿足素?cái)?shù)條件

if(x%j==O)〃不滿足

returnfalse;

returntrue;

}

9.編寫(xiě)兩個(gè)方法,分別求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),在主方法中由鍵盤(pán)輸入兩

個(gè)整數(shù)并調(diào)用這兩個(gè)方法,最后輸出相應(yīng)的結(jié)果。

importjava.io.*;

publicclassTest

{publicstaticvoidmain(String[]args)

{inta=0;

System.out.print("請(qǐng)輸入數(shù)a:");

try(

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

a=Integer.parse!nt(br.readLine());

}catch(IOExceptione){}

intb=0;

System.out.print("請(qǐng)輸入數(shù)b:n);

try

{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

b=Integer.parseInt(br.readLine());

}catch(IOExceptione){}

if(a<=0||b<=0)

System.out.println("輸入不合法!");

System.out.println("最大公約數(shù)為:“+Gys(a,b));

System.out.println("最小公倍數(shù)為:“+Gbs(a,b));

)

publicstaticintGys(inta,intb)

intr=0;

if(a<b)

{r=a;

b=a;

a=r;}

inti=l;

while(i!=O)

{i=a%b;

a=b;

b=i;

}

returna;

)

publicstaticintGbs(inta,intb)

(

intab=a*b;

intr=0;

if(a<b)

{r=a;

b=a;

a=r;}

inti=l;

while(i!=O)

{i=a%b;

a=b;

b=i;

)

returnab/a;

)

)

10.以下程序執(zhí)行后的輸出為

publicclassTest

(

staticintml(inta,intb)

{

intc;

a+=a;

b+=b;

c=m2(a,b);

return(c*c);

)

staticintm2(inta,intb)

{

intc;

c=a*b%3;

return(c);

}

publicstaticvoidmain(String[]args)

(

intx=l,y=3,z;

z=ml(x,y);

System.out.printIn(Mz=M+z);

)

)

z=0

11.編寫(xiě)一個(gè)方法,實(shí)現(xiàn)求某個(gè)整數(shù)的各個(gè)位上的數(shù)字之和的功能。

importjava.io.*;

publicclassTest

{publicstaticvoidmain(String[]args)

{inti,a=0,s=0;

System.out.print("請(qǐng)輸入數(shù)a:”);

try(

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

a=Integer.parseInt(br.readLine());

}catch(IOExceptione){}

for(i=10;a%i!=a;i*=10)

(

s+=(a%i)/(i/10);

1

s+=a/(i/10);

System.out.printing各位數(shù)之和為“+s);

)

)

12.編寫(xiě)程序?qū)崿F(xiàn)十進(jìn)制整數(shù)到八進(jìn)制的轉(zhuǎn)換。

importjava.io.*;

publicclassTest

{publicstaticvoidmain(String[]args)

{inti,k,a=0,d,s=0;

System.out.print("請(qǐng)輸入數(shù):與;

try(

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

a=Integer.parseInt(br.readLine());

}catch(IOExceptione){}

d=a%8;

s+=d;

k=10;

for(i=64;a-d!=0;i*=8)

(

s+=(a-d)%i*8/i*k;

k*=10;

d=a%i;

)

System.out.println("八進(jìn)制數(shù)為"+s);

)

}

13.用于指出數(shù)組中某個(gè)元素的數(shù)字被叫做;數(shù)組元素之所以相關(guān),是因?yàn)樗鼈兙哂?/p>

相同的和。

下標(biāo);數(shù)組名和數(shù)據(jù)類型。

14.數(shù)組intresults[]=newint[6]所占存儲(chǔ)空間是字節(jié)。

24

15.使用兩個(gè)下標(biāo)的數(shù)組被稱為數(shù)組,假定有如下語(yǔ)句:

floatscores[][]={{1,2,3},{4,5},{6,7,8,9));

則scores.length的值為:,scores[l].length的值為:,

scores[l][l]的值為:。

二維;3;2;5。

16.從鍵盤(pán)上輸入10個(gè)雙精度浮點(diǎn)數(shù),計(jì)算出這10個(gè)數(shù)的和以及它們的平均值。要求分

別編寫(xiě)求和及求平均值的方法。

importjava.io.*;

publicclassTest

(

publicstaticvoidmain(String[Jargs)throwslOException

(

InputStreamReaderreader=newInputStreamReader(System.in);

BufferedReaderinput=newBufferedReader(reader);

Stringtemp;

doublex[]=newdoublet10];

fbr(inti=0;i<10;i++)

(

temp=input.readLine();

x[i]=Double.parseDouble(temp);

)

S(x);

Avg(x);

)

publicstaticvoidS(doublex[])

(

〃計(jì)算并輸出和

doublesum=0;

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

(

sum+=x[i];

)

System.out.println("總和:"+sum);

)

publicstaticvoidAvg(doublex[])

I

〃計(jì)算并輸出平均數(shù)

doublesum=0;

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

(

sum+=x[i];

)

System.out.println("平均數(shù):"+sum/l0);

)

)

17.利用數(shù)組輸入6位大學(xué)生3門(mén)課程的成績(jī),然后計(jì)算

(1)每個(gè)大學(xué)生的總分;

(2)每門(mén)課程的平均分;

importjava.io.*;

publicclassScores

publicstaticvoidmain(String[]args)throwslOException

intsum=O;〃總分

intn=6;〃學(xué)生數(shù)

Stringtemp;

InputStreamReaderreader=newInputStreamReader(System.in);

BufferedReaderinput=newBufferedReader(reader);

intx[][]=newint[6][3];

〃錄入成績(jī)

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

(

for(intj=O;j<3;j++)

(

System.out.print((i+1)+”號(hào)同學(xué)”+(j+l)+”號(hào)課程分?jǐn)?shù)");

temp=input.readLine();

x[i][j]=Integer.parselnt(temp);

)

)

〃計(jì)算并輸出每一位同學(xué)的總分

fbr(inti=0;i<n;i++)

(

for(intj=O;j<3;j++)

(

sum+=x[i][j];

)

System.out.println((i+1)+”號(hào)同學(xué)總分:"+sum);

sum=0;

)

〃計(jì)算并輸出每一門(mén)課程的平均分

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

(

for(intj=O;j<n;j++)

(

sum+=x[j][i];

)

System.out.println((i+1)+”號(hào)課程班級(jí)平均分:"+sum*1.0/n);

sum=0;

18.編寫(xiě)一個(gè)方法,實(shí)現(xiàn)將字符數(shù)組倒序排列,即進(jìn)行反序存放。

importjava.io.*;

publicclassTest

publicstaticvoidmain(String[]args)throwslOException

!

charc[]={','G','a','m?e','s'};

rever(c);

System.out.println(c);

)

publicstaticvoidrever(charc[])

{

chart;

for(inti=O,j=c.length-l;i<j;i++,j—)

(

t=c[i];

c[i]=c[j];

1

19.Java語(yǔ)言為什么要引入方法這種編程結(jié)構(gòu)?

提高復(fù)用度,減少程序代碼量

促進(jìn)程序結(jié)構(gòu)化,提高可讀性和可維護(hù)性

20.為什么要引入數(shù)組這種數(shù)據(jù)構(gòu)造類型?數(shù)組有哪些特點(diǎn)?Java語(yǔ)言創(chuàng)建數(shù)組的方式

有哪些?

1、為了便于處理一批同類型的數(shù)據(jù),Java語(yǔ)言引入了數(shù)組類型;

2、首先,數(shù)組中的每個(gè)元素都是相同數(shù)據(jù)類型的;其次,數(shù)組中的這些相同數(shù)據(jù)類型

元素是通過(guò)數(shù)組下標(biāo)來(lái)標(biāo)識(shí)的,并且該下標(biāo)是從0開(kāi)始的;最后,數(shù)組元素在內(nèi)存中的存放

是連續(xù)的。

3、Java語(yǔ)言規(guī)定,創(chuàng)建數(shù)組可以有兩種方式:初始化方式和new操作符方式。初始化

方式是指直接給數(shù)組的每一個(gè)元素指定一個(gè)初始值,系統(tǒng)自動(dòng)根據(jù)所給出的數(shù)據(jù)個(gè)數(shù)為數(shù)組

分配相應(yīng)的存儲(chǔ)空間,通常這樣創(chuàng)建數(shù)組的方式適用于數(shù)組元素較少的情形。對(duì)于數(shù)組比較

大的情形,即數(shù)組元素過(guò)多,用初始化方式顯然不妥,這時(shí)應(yīng)采用第二種方式,即new操

作符方式。

第5章

1.實(shí)現(xiàn)類MyClass的源碼如下:

classMyClassextendsObject{

privateintx;

privateinty;

publicMyClass(){

x=0;

y=o;

)

publicMyClass(intx,inty){

}

publicvoidshow(){

System.out.prmtln(H\nx=H+x+''y=n+y);

)

publicvoidshow(booleanflag){

if(flag)System.out.println(n\nx=M+x+My=''+y);

elseSystem.out.println(H\ny=H+y+,*x=n+x);

)

protectedvoidHnalize()throwsthrowable{

supenfinalize();

)

}

在以上的源代碼中,類MyClass的成員變量是一;構(gòu)造方法是一;對(duì)該類的一

個(gè)實(shí)例對(duì)象進(jìn)行釋放時(shí)將調(diào)用的方法是一。(多選)

(A)privateintx;

(B)privateinty;

(C)publicMyClass()

(D)publicMyClass(intx,inty)

(E)publicvoidshow()

(F)publicvoidshow(booleanflag)

(G)protectedvoidfinalize()throwsthrowable

答案:ABCDG

2.上題所定義的類MyClass的構(gòu)造方法MyClass(intx,inty)的目的是使MyClass的成

員變量privateintx,privateinty的值分別等于方法參數(shù)表中所給的值intx,inty。請(qǐng)寫(xiě)出

MyClass(intx,inty)的方法體(用兩條語(yǔ)句):

答案:this.x=xthis.y=y

3.MyClass定義同第一題。

設(shè)publicstaticvoidmain(Stringargs[])方法體如下:

{

MyClassmyclass;

myclass.shovv();

)

編譯運(yùn)行該程序?qū)?huì)有何結(jié)果?

(A)x=0y=0

(B)y=0x=0

(C)x=...y=…(x,y具體為何值是隨機(jī)的)

(D)源程序有錯(cuò)

答案:D(myclass沒(méi)有實(shí)例化)

4.MyClass聲明同第一題。

設(shè)publicstaticvoidmain(Stringargs[])方法體如下:

(

MyClassmyclass=newMyClass(5,10);

myclass.show(false);

)

編譯運(yùn)行該程序?qū)?huì)有何結(jié)果?

(A)x=0y=0

(B)x=5y=10

(C)y=10x=5

(D)y=0x=0

答案:C

5.MyClass定義同第一題。

設(shè)publicstaticvoidmain(Stringargs[])方法體如下:

(

MyClassmyclass=newMyClass(5,10);

myclass.show(false);

)

現(xiàn)在想在main方法中加上一條語(yǔ)句來(lái)釋放myclass對(duì)象,應(yīng)用下面哪條?

(A)myclass=null;

(B)free(myclass);

(C)delete(myclass);

(D)Java語(yǔ)言中不存在相應(yīng)語(yǔ)句

答案:A

6.假設(shè)已經(jīng)編寫(xiě)好了類Classi:

packagemypackage;publicclassClassi{........;)

保存在Classi.java文件中。

現(xiàn)在main方法所在的源程序MainPro.java如下:

importmypackage;

假設(shè)操作系統(tǒng)中的CLASSPATH環(huán)境變量已被設(shè)置為"c:\工作目錄”,而main方法所在

的主類MainPro.java就在c:\工作目錄下,那么,類Classi應(yīng)存放在哪個(gè)目錄中呢?

答案:c:\工作目錄'mypackage

7.定義一個(gè)學(xué)生類student,成員變量有學(xué)號(hào)、姓名、性別、年齡,方法有獲得學(xué)號(hào)、

姓名、性別、年齡;修改年齡。試編寫(xiě)Java主程序,實(shí)例化student類,并測(cè)試其方法。

答:

publicclassstudent{

privateintstu_ID;

privateStringname;

privateStringsex;

privateintold;

student(intid,Stringname,Stringsex,intold){

stu」D=id;

=name;

this.sex=sex;

this.old=old;

}

voidshow_id(){

System.out.println(HthestudentIDis:"+stu_ID);

)

voidshow_name(){

System.out.println(uthestudentnameis:"+name);

}

voidshow_sex(){

System.out.println(Hthestudentsexis:"+sex);

)

voidshow_old(){

System.out.println(,'thestudentoldis:"+old);

)

voidchange_old(intnewyear){

old=newyear;

)

publicstaticvoidmain(Stringargs[]){

studentLee=newstudent(2007070130,"LiMingn,nM",18);

Lee.show_id();

Lee.show_name();

Lee.show_sex();

Lee.show_old();

Lee.change_old(20);

Lee.show_old();

8.根據(jù)下面的要求編程實(shí)現(xiàn)復(fù)數(shù)類Complex。

⑴復(fù)數(shù)類Complex的屬性:

real代表復(fù)數(shù)的實(shí)數(shù)部分

imagin代表復(fù)數(shù)的虛數(shù)部分

(2)復(fù)數(shù)類Complex的方法:

Complex。:構(gòu)造函數(shù),將實(shí)部、虛部都置為0;

Complex(doubler,doublei):構(gòu)造函數(shù),創(chuàng)建復(fù)數(shù)對(duì)象的同時(shí)完成復(fù)數(shù)的實(shí)部、

虛部的初始化,r為實(shí)部的初值,i為虛部的初值;

getReal():獲得復(fù)數(shù)對(duì)象的實(shí)部;

getlmagin():獲得復(fù)數(shù)對(duì)象的虛部;

complexAdd(ComplexNumber):當(dāng)前復(fù)數(shù)對(duì)象與形參復(fù)數(shù)對(duì)象相加,所得的

結(jié)果也是復(fù)數(shù)值,返回給此方法的調(diào)用者;

complexMinus(ComplexNumber):當(dāng)前復(fù)數(shù)對(duì)象與形參復(fù)數(shù)對(duì)象相減,所得

的結(jié)果也是復(fù)數(shù)值,返回給此方法的調(diào)用者;

complexMulti(ComplexNumber):當(dāng)前復(fù)數(shù)對(duì)象與形參復(fù)數(shù)對(duì)象相乘,所得

的結(jié)果也是復(fù)數(shù)值,返回給此方法的調(diào)用者;

toString():把當(dāng)前復(fù)數(shù)對(duì)象的實(shí)部、虛部組合成a+bi的字符串形式,其中a

和b分別為實(shí)部和虛部的數(shù)據(jù)。

答案:

publicclassComplex{

privatedoublereal;

privatedoubleimagin;

Complex(){

real=0;

imagin=0;

)

Complex(doubler,doublei){

real=r;

imagin=i;

)

publicdoublegetReal(){

returnreal;

publicdoublegetlmagin(){

returnimagin;

publicComplexcomplexAdd(ComplexNumber))

real=real+Number.real;

imagin=imagin+Number.imagin;

returnthis;

)

publicComplexcomplexMinus(ComplexNumber){

real=real-Number,real;

imagin=imagin-Number.imagin;

returnthis;

)

publicComplexcomplexMulti(ComplexNumber){

real=real*Number.real;

imagin=imagin*Number.imagin;

returnthis;

)

publicvoidtostring(){

System.out.println(reaI+n+,'H-imagin+,,iu);

publicstaticvoidmain(Stringargs[]){

Complexa=newComplex();

Complexb=newComplex。,4);

Complexc=newComplex(2,3);

a.tostringO;

b.tostringO;

plexAdd(b);

c.tostring();

}

)

9.編寫(xiě)一個(gè)銀行賬戶類。要求存放用戶的賬號(hào)、姓名、密碼、賬戶余額等個(gè)人信息。

類的操作包括存款、取款、查詢賬戶余額、修改密碼等。創(chuàng)建此類的對(duì)象并測(cè)試相應(yīng)的操

作。

答:

importjava.util.Scanner;

publicclassBank{

privateStringaccount;〃貝長(zhǎng)號(hào)

privateStringpassword;〃密碼

privateStringname;〃姓名

privatedoublebalance;〃賬戶余額

Bank(Stringaccount,Stringname))

this.account=account;

=name;

this.balance=0.0;

this.password=Integer.toString(888888);

〃查詢賬戶余額

publicdoublegetBalance(){

returnbalance;

}

//存款

publicvoiddepositMoney(doubleamount){

this上alance=this.balance+amount;〃存入金額力口原金額

)

〃取款

publicvoidwithdrawMoney(doubleamount){

if(amount>this.balance){〃取款金額大于余額

System.out.println("余額不足!”);

)

else{

this.balance=this.balance-amount;〃原金額減去支取金額

)

}

〃修改密碼

publicvoidsetPassword(Stringpassword){

this.password=password;

)

publicstaticvoidmain(String[]args){

Bankcustomer=newBank("6666888866668888”,“Zhang");//初始化賬戶信息

customer.setPassword("123456");〃修改賬戶密碼

System.out.println("歡迎光臨模擬銀行)

Scannerscan=newScanner(System.in);

System.out.print(”請(qǐng)輸入存款金額:");

doubleamount=scan.nextDouble();

customer.depositMoney(amount);

System.out.println("當(dāng)前余額為:"+customer.getBalance()+“元”);

System.out.print(”請(qǐng)輸入取款金額:

amount=scan.nextDouble();

custome匚wilhdrawMoney(amount);

System.out.println("當(dāng)前余額為:"+customer.getBalance()+“元");

}

)

10.先在一個(gè)包中編寫(xiě)類ClassA,要求該類包括4種不同訪問(wèn)權(quán)限的成員變量和方法。

再在另一個(gè)包中編寫(xiě)類ClassB,在該類中編寫(xiě)一個(gè)方法訪問(wèn)ClassA的成員。在程序中實(shí)現(xiàn)

所有可以實(shí)現(xiàn)的訪問(wèn),并說(shuō)明所有不能訪問(wèn)的成員的原因。

答:

packageA;

publicclassClassA{

publicintpubliclnt;

intdefaultlnt;

protectedintprotectedlnt;

privateintprivatelnt;

publicvoidpublicMethod(){

System.out.println("publicMethodn);

)

voiddefaultMethod(){

System.oul.prinUn("defaukMethod”);

)

protectedvoidprotectedMethod(){

System.out.println(HprotectedMethodM);

)

privatevoidprivateMethod(){

System.out.println("privateMethod");

)

1

packageB;

importA.*;

classClassBextendsClassA{

voidaccessTest(ClassAa,ClassBb){

a.publiclnt;

a.defaultlnt;

tectedlnt;

a.privateint;

b.publiclnt;

b.defaultlnt;

tectedlnt;

b.privatelnl;

a.publicMethod();

a.defaultMethod();

tectedMethod();

a.privateMethod();

b.publicMethod();

b.defaullMethod();

tectedMethod();

b.privateMethod();

備注:上述代碼只是示意,請(qǐng)讀者自行完善,并在ClassB中添加main方法,或者再定義一

個(gè)主類。親自上機(jī)編譯、運(yùn)行一下,體驗(yàn)4種不同訪問(wèn)權(quán)限的作用。

第6章

1.B

2.C

3.接口中可以有的語(yǔ)句為;(從ABCD中多選)

一個(gè)類可以繼承―父類,實(shí)現(xiàn)—接口;一個(gè)接口可繼承一接口;(從EF中單選)

接口—繼承父類,—實(shí)現(xiàn)其它接口;實(shí)現(xiàn)某個(gè)接口的類—被該接口類型引用;(從

GH中單選)

(A)intx;

(B)inty=0;

(C)publicvoidaa();

(D)publicvoidbb(){System.out.println("hello");}

(E)僅一個(gè)

(F)一個(gè)或多個(gè)

(G)可以

(H)不可以

答案:BC;E;F;F;H;H;G

4.解釋this和super的意義和作用。

答:Java中,this

溫馨提示

  • 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)論