Java程序設(shè)計習(xí)題解析_第1頁
Java程序設(shè)計習(xí)題解析_第2頁
Java程序設(shè)計習(xí)題解析_第3頁
Java程序設(shè)計習(xí)題解析_第4頁
Java程序設(shè)計習(xí)題解析_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java程序設(shè)計習(xí)題解析

本習(xí)題解析是《Java語言程序設(shè)計》(清華大學(xué)出版社2010.9,沈澤剛主編)一

書各章習(xí)題的全部答案。如果有答案不正確或有疑問,可聯(lián)系作者。

電話/p>

電子郵件:shenzegang@

[第1章習(xí)題解答

1.答:程序設(shè)計語言可分為機器語言、匯編語言、高級語言。機器語言的每條指令都

是一串二進制代碼,完全依賴于硬件系統(tǒng),不同的機器有著不同的指令系統(tǒng),指令難以記

憶,程序難以閱讀。匯編語言用助記符表示計算機指令,程序要經(jīng)過匯編程序翻譯成機器

語言才能運行。優(yōu)點是編寫程序比用機器語言節(jié)省時間,發(fā)生的錯誤少,比機器語言容易

修改。缺點是面向機器。高級語言程序幾乎不用修改就可以用在不同型號的計算機上,比

匯編語言容易學(xué)習(xí),編程用的時間少、程序容易維護等。

2.答:面向過程是一種以過程為中心的編程方法,就是分析出解決問題的步驟,然后

用函數(shù)把這些步驟一步一步實現(xiàn)。面向?qū)ο蟮姆椒ㄊ且詫ο鬄橹行牡木幊谭椒ǎ幕?/p>

思想是將要構(gòu)造的軟件系統(tǒng)表示為對象集合,其中每個對象是一組數(shù)據(jù)和對數(shù)據(jù)的操作組

成的封裝體,對象之間的聯(lián)系通過消息傳遞實現(xiàn)。

3.答:Java語言的特點:簡單的、面向?qū)ο蟮摹⒎植际降?、解釋型的、平臺獨立的、

可移植的、健壯的、安全的、高性能的、多線程的、動態(tài)的。

4.答:開發(fā)Java程序通常分3步:(1)編輯源程序;(2)編譯源程序;(3)執(zhí)行程

序。

5.答:JDK的編譯命令是javac.exe,命令格式:javacWelcome.java。如果編譯結(jié)果報

告找不到文件,可能是類名拼寫錯誤或路徑錯誤。

6.答:可獲得字節(jié)碼文件,文件擴展名為.class。如果一個Java文件中定義了多個類,

包括外部類、內(nèi)部類、匿名內(nèi)部類,每一個類都會生成對應(yīng)的字節(jié)碼文件。

7.答:使用Java解釋器,即java.exe,命令格式:javaWelcome(無擴展名)。

8.答:

(1)該程序缺少main。方法。輸出語句不能直接寫在類體中。

(2)語句缺少分號。

(3)缺少類的定義。

Java程序設(shè)計習(xí)題解析

(4)Main。方法不能作為程序執(zhí)行的入口點,應(yīng)該定義main。方法。

9.答:保存為ClassTwo.java文件。Java源程序文件的擴展名是.java,Java字節(jié)碼文

件的擴展名是.class。

210.參考程序:

publicclassShowStars{

publicstaticvoidmain(Stringargs[]){

for(inti=9;i>0;i=i-2){

for(intj=i;j>O;j-)

System.out.print(n;

System.out.printIn();//換行

11.答:編譯型語言寫的程序執(zhí)行前需要一個專門的編譯過程,把程序編譯成為機器

語言的文件,比如exe文件,以后要運行的時候就不用重新翻譯了,直接使用編譯的結(jié)果

就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執(zhí)

行效率高。

解釋型語言專門有一個解釋器能夠直接執(zhí)行程序,每個語句都是執(zhí)行的時候才翻譯。

這樣解釋性語言每執(zhí)行一次就要翻譯一次,效率比較低。

Java程序是半編譯半解釋型的。Java程序首先被編譯成一種稱為字節(jié)碼的中間代碼,

這種中間代碼只有在Java虛擬機上才能運行,運行時是解釋執(zhí)行的。

12.答:Java平臺是在Windows.Linux等系統(tǒng)平臺上的程序運行平臺,主要由Java

虛擬機(JavaVM)和Java應(yīng)用程序接口(JavaAPI)兩部分組成。

Java虛擬機是在一臺真正的機器上用軟件方式實現(xiàn)的一臺假想機。Java虛擬機是運行

Java程序必不可少的環(huán)境。編譯后的Java程序指令由JVM執(zhí)行。

JVM的具體實現(xiàn)包括:指令集(等價于CPU的指令集)、寄存器組、類文件格式、棧、

垃圾收集堆、內(nèi)存區(qū)。

13.答:JVM使用的代碼存儲在.class文件中。JVM的部分指令很像真正的CPU指令,

包括算術(shù)運算、流控制和數(shù)組元素訪問等。

Java虛擬機規(guī)范提供了編譯所有Java代碼的硬件平臺。因為編譯是針對假想機的,所

以該規(guī)范能讓Java程序獨立于平臺。它適用于每個具體的硬件平臺,以保證為JVM編譯

的代碼的運行。JVM不但可以用軟件實現(xiàn),而且可以用硬件實現(xiàn)。

第2章習(xí)題解答

1.答:標(biāo)識符必須以字符、下劃線(_)或美元符($)開頭,其后可以是字符、下劃

線、美元符或數(shù)字,長度沒有限制。

錯誤的標(biāo)識符:③以數(shù)字開頭④不允許使用連字符

2.答:Java共有8種基本數(shù)據(jù)類型。字節(jié)型、短整型、整型、長整型、單浮點型、雙

浮點型、布爾類型、字符類型。int型數(shù)據(jù)的最大值是-231,最小值是23」。

Java中常用的引用數(shù)據(jù)類型有數(shù)組、類、接口、枚舉類型四種。

3.答:常量是在程序運行過程中,其值不能被改變的量。變量是在程序運行中其值可

以改變的量。

Java語言的字符型常量是用單引號將字符括起來單個字符;字符串常量是用雙引號括

起來的一個或多個字符組成,字符串不是Java的基本數(shù)據(jù)類型,屬于引用類型。

4.答:Java語言使用統(tǒng)一碼(Unicode)為字符編碼,它是由UnicodeConsortium建

立的一種編碼方案。Unicode字符集是用兩個字節(jié)(16位)的無符號整數(shù)為字符編碼,可

表示65536個字符。它可以表示各國的語言符號,包括希臘語、阿拉伯語、日語以及漢語

等。

5.答:

算術(shù)運算符有加(+)、減(-)、乘(*)、除(/)和取余數(shù)(%)5個二元運算符和正

(+)、負(fù)(-)、自增(++)、自減(--)4個一元運算符。

關(guān)系運算符有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、

不等于(!=)6個。

邏輯運算符包括以下幾種:邏輯非(!)、短路與(&&)、短路或(||)、邏輯與(&)、

邏輯或(|)、邏輯異或(A)o

位邏輯運算符包括按位取反(~)、按位與(&)、按位或(|)和按位異或(“)4種。

移位運算符包括左移(?),右移(>>)和無符號右移(>>>)3利、

賦值運算符主要有兩類,一類是使用等號(=)賦值,它把一個表達(dá)式的值賦給一個

變量或?qū)ο?;另一類是擴展的賦值運算符,如+=。

6.答:自動類型轉(zhuǎn)換也稱加寬轉(zhuǎn)換,它是指將具有較少位數(shù)的數(shù)據(jù)類型轉(zhuǎn)換為具有較

多位數(shù)的數(shù)據(jù)類型。例如:

byteb=64;

inti=b;//字節(jié)型數(shù)據(jù)b自動轉(zhuǎn)換為整型

強制類型轉(zhuǎn)換是將位數(shù)較多的數(shù)據(jù)類型轉(zhuǎn)換為位數(shù)較少的數(shù)據(jù)類型,如將double型數(shù)

據(jù)轉(zhuǎn)換為byte型數(shù)據(jù)。其語法是在圓括號中給出要轉(zhuǎn)換的目標(biāo)類型,隨后是待轉(zhuǎn)換的表達(dá)

式。例如:

byteb=5;

doubled=333.567;

b=(byte)d;//將double型值強制轉(zhuǎn)換成byte型值

7.答:盡管Java語言提供了goto保留字,但不能使用,即不能實現(xiàn)控制的無條件轉(zhuǎn)

移。在Java程序中可以使用帶標(biāo)簽的continue和break語句實現(xiàn)將控制轉(zhuǎn)移到指定的標(biāo)簽。

但需要事先定義標(biāo)簽。標(biāo)簽一般在循環(huán)的開始定義。

8.答:先創(chuàng)建一個java.util.Scanner類的對象,然后調(diào)用其nextlnt。方法、nextDouble。

方法和nextLine。方法就可以實現(xiàn)從鍵盤上輸入整數(shù)、浮點數(shù)和字符串。

9.答:A,B,C,D10.答:B,D

II.答:C12.答:D

13.答:A,D,F14.答:A,D

Java程序設(shè)計習(xí)題解析

15.答:去掉unsigned,將b=b-1改為b=(byte)(b-l)

16.答:

byteb=24

02shorts=128

inti=1111

long1=286331153

charc=A

floatf=0.333

doubled=1.001E-5

booleanbool=true

17.答:C,D18.答:C19.答:C

20.答:521.答:①3②true③true

22.答:i=2,j=223.答:D

24.答:A,B,F25.答:A

26.答:if(x=y)改為if(x==y),while(y-)改為while(y->0)

27.答:D28.答:break;j==I29.答:B

30.參考程序如下:

importjava.util.Scanner;

publicclassTemperature{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

System.out.print("請輸入華氏溫度:”);

doublehtemp=sc.nextDouble();

doublectemp=(5.0/9)*(htemp-32);

System.out.printf(“攝氏溫度為:%8.2f",ctemp);

)

)

31.參考程序如下:

importjava.util.Scanner;

publicclassCylinderDemo{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

System.out.print("請輸入圓柱底面半徑:”);

doubleradius=sc.nextDouble();

System,out.print("請輸入圓柱高:;

doubleheight=sc.nextDouble();

System,out.printf(“圓柱的體積:%8.2f'*zMath.PI*radius*radius*height);

)

}

32.參考程序如下:

importjava.util.Scanner;

publicclassTest{

publicstaticvoidmain(String[]args){

System.out.print("請輸入一個浮點數(shù):“);

Scannersc=newScanner(System.in);

doubled=sc.nextDouble();

System.out.printin("整數(shù)部分:*'+(int)d);

System.out.printin(“小數(shù)部分:"+(d-(int)d);

33.參考程序如下:

importjava.util.Scanner;

publicclassNumCompare{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

System.out.print("請輸入第一個整數(shù):");

intnuml=sc.nextlnt();

System,out.print("請輸入第二個整數(shù):");

intnum2=sc.nextlnt();

System,out.print("請輸入第三個整數(shù):");

intnum3=sc.nextlnt();

intmax,min,mid;

if(numl>num2){

if(numl>num3){

max=numl;

if(num2>num3){

mid=num2;

min=num3;

}else{

mid=num3;

min=num2;

)

}else{

max=num3;

mid=numl;

min=num2;

)

}else{

if(num2>num3){

max=num2;

if(numl>num3){

mid=numl;

min=num3;

}else{

mid=num3;

min=numl;

}

)

else{

max=num3;

mid=num2;

min=numl;

Java程序設(shè)計習(xí)題解析

System.out.printIn(Hmin=u+min);

System.out.printin(nmid="+mid);

6System.out.printin("max=n+max);

34.參考程序如下:

importjava.util.Scanner;

publicclassTenNum{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

System,out.print("請輸入第1個整數(shù):");

intmax=sc.nextlnt();

intmin=max;

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

System.out.print(“請輸入第”+i+”個整數(shù):”);

intnum=sc.nextlnt();

if(num>max)max=num;

if(num<min)min=num;

)

System.out.printIn("max=n+max);

System.out.printin("min="+min);

)

}

35.參考程序如下:

publicclassChickenHare{

publicstaticvoidmain(String[]args){

intlegs=100;

intheads=40;

intchick,hare;

for(chick=0;chick<=50;chick++){

for(hare=0;hare<=25;hare++){

if((chick+hare)==40&&(chick*2+hare*4)==100)

System.out.printin("chick="+chick+n,hare="+hare);

)

)

)

)

36.參考程序如下:

publicclassNarcissus{

publicstaticvoidmain(String[]args){

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

inta=i%10;

intb=(i/10)%10;

intc=i/100;

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

System.out.printin(i);

37.參考程序如下:

importjava.util.Scanner;

publicclassGCDLCM{

//求最大公約數(shù)(GreatestCommonDivisor)

//若x>y,gcd(x,y)=gcd(x-y,y)

//若x<v,gcd(x,y)=gcd(x,y-x)

//若x=y,gcd(xzy)=x=y

publicstaticintgcd(intx,inty){

if(x>y)

returngcd(x-y,y);

if(x<y)

returngcd(xzy-x);

returnx;

)

//求最小公倍數(shù)(LeastCommonMultiple)

//最小公倍數(shù)等于兩數(shù)之積除以最大公約數(shù)

publicstaticint1cm(intx,inty){

intgcd=gcd(x,y);//求最大公約數(shù)

returnx*y/gcd;

)

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

System.out.printC'請輸入正整數(shù)x:

inta=sc.nextlnt();

System.out.print(”請輸入正整數(shù)y:;

intb=sc.nextlnt();

System.out.printin("最大公約數(shù)=”+gcd(azb));

System,out?println("最d、公倍數(shù)="+1cm(a,b));

)

)

38.參考程序如卜:

publicclassPerfectNumber{

publicstaticbooleanperfect(intn){

intsum=l;

for(intk=2;k<n;k++){

if(n%k==0)

sum=sum+k;

1

if(sum==n)

returntrue;

Java程序設(shè)計習(xí)題解析

else

returnfalse;

}

publicstaticvoidmain(Stringargs[]){

8for(inti=1;i<=1000;i++)

if(perfect(i))

System.out.printin(i);

)

}

39.參考程序如下:

importjava.util.Scanner;

publicclassPrimeFactor{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

System.out.print(nInputanumber:");

intn=sc.nextlnt();

do{

for(intk=2;k<=n;k++){

if(n%k==0){

System.out.printin(k);

n=n/k;

break;

)

)

}while(n!=1);

)

)

40.參考程序如下:

publicclassComputePI{

publicstaticvoidmain(String[]args){

doublepi=4*(1-1/3.0);//前2項pi的值

intn=2;

intsign=1;

while(pi<3.1415926||pi>3.1415927)(

n=n+1;//從第3項開始計算

pi=pi+(sign*4/(double)(2*n-1));

sign=sign*-1;//改變符號

)

System.out.printIn("PI="+pi);

System,out.printIn("n='*+n);

程序輸出結(jié)果如下:

PI=3.1415926000000005

n=18660304

第3章習(xí)題解答

1.答:對象是現(xiàn)實世界中客觀存在的實體。每個對象一般具有兩方面的特征:狀態(tài)和

行為。狀態(tài)用來描述對象的靜態(tài)特征,行為用來描述對象的動態(tài)特征。類是具有相似特征

和行為的對象集合。對象之間的聯(lián)系是通過消息傳遞實現(xiàn)的。

2.答:窗口的狀態(tài)可以有:大小、是否可見等。窗口的行為可以有:關(guān)閉、打開、最

大化、最小化等。

3.答:用類描述如下:

classTV{

Stirngfactory;//生產(chǎn)廠家

intsize;//尺寸

doubleprice;//價格

voidopen();//打開

intchangechannel(intn);//改變頻道

voidvoiceUp(intvoice);//增大聲音

voidvoiceDown(intvoid);//減小聲音

voidclose();//關(guān)閉

)

4.答:方法應(yīng)定義在類體中,需要指定方法的訪問修飾符、返回值、方法名、參數(shù)類

型和參數(shù)名,用一對大括號指定方法體。調(diào)用方法一般通過對象名調(diào)用。構(gòu)造方法用來創(chuàng)

建對象,普通方法是在對象上執(zhí)行操作。

5.答:如果參數(shù)是基本數(shù)據(jù)類型的變量,則將變量值的副本傳遞給方法,方法調(diào)用結(jié)

束后對原來變量的值沒有影響。如果參數(shù)是引用類型的變量,是將變量的引用(地址)傳

遞給方法,方法調(diào)用結(jié)束后原來的引用值不改變,但在方法體中可能改變對象的狀態(tài)。

6.答:構(gòu)造方法和普通方法都可以重載。構(gòu)造方法重載目的是提供多種創(chuàng)建對象的方

式。普通方法的重載是用相同名稱完成不同操作。

7.答:沒有用static修飾的成員是實例成員(實例變量和實例方法),用static修飾的

成員是類成員(類變量和類方法)或靜態(tài)成員。實例成員只能用實例名訪問,類成員可以

用實例名,也可以用類名訪問。

8.答:參閱教材353節(jié)的敘述。

9.答:參閱教材3.3.3節(jié)的敘述。

10.答:參閱教材3.6節(jié)的內(nèi)容。

11.答:使用importstaticjava.lang.Math.*;語句是將Math類的靜態(tài)成員和靜態(tài)方法導(dǎo)

入。程序中使用這些靜態(tài)成員時無需加Math類名。

12.答:

(1)Strings=null;(2)去掉void(3)intdata=10;前加static

(4)去掉static或在intdata=10;前加static

13.答:double

14.答:不能。odd。方法的返回值為int,而if的條件表達(dá)式應(yīng)該為boolean型。

Java程序設(shè)計習(xí)題解析

15.答:j=116.答:i=417.答:100

18.答:ACD19.答:ACD20.答:AC

21.答:A22.答:A

皿23.答:

j=100

InitDemo.j=100

i=5

j=10

j=1000

aa.j=500

24.代碼如下:

publicdoubledistance(Pointp){

doublexdiff=x-p.x;

doubleydiff=y-p.y;

returnMath.sqrt(xdiff*xdiff+ydiff*ydiff);

)

25.參考程序如下:

publicclassPerson{

Stringname;

intage;

publicvoidsetName(Stringname){

=name;

)

publicStringgetName(){

returnname;

)

publicvoidsetAge(intage){

this.age=age;

)

publicintgetAge(){

returnage;

)

publicvoidspeak(){

System.out.printin("Name="+name);

System.out.printin("Age="+age);

)

publicstaticvoidmain(String[]args){

Personp=newPerson();

p.setName("LiMingH);

p.setAge(20);

p.speak();

System.out.printin(p.getName());

System.out.printin(p.getAge());

)

)

26.參考程序如下:

publicclassRectangle{

doublelength;

doublewidth;

publicvoidsetLength(doublelength){

this.length=length;

)

publicdoublegetLength(){

returnlength;

)

publicvoidsetwidth(doublewidth){

this.width=width;

)

publicdoublegetWidth(){

returnwidth;

)

publicdoubleperimeter(){

return2*(length+width);

)

publicdoublearea(){

returnlength*width;

)

)

publicclassRectDemo{

publicstaticvoidmain(Stringargs[]){

Rectanglerect=newRectangle();

rect.setLength(20);

rect.setwidth(10);

System.out.printIn("該矩形的長為:H+rect.getLength());

System.out.printIn("該矩形的寬為:n+rect.getWidth());

System.out.printin("該矩形的周長為:"+rect.perimeter());

System.out.printin("該矩形的面積為:n+rect.area());

27.參考程序如下:

publicclassRectangle{

doublelength;

doublewidth;

publicRectangle(doublelength,doublewidth){

this.length=length;

this.width=width;

}

publicRectangle(){

this(0.0,0.0);

)

publicvoidsetLength(doublelength){

this.length=length;

)

publicdoublegetLength(){

Java程序設(shè)計習(xí)題解析

returnlength;

)

publicvoidsetwidth(doublewidth){

this.width=width;

El

publicdoublegetWidth(){

returnwidth;

)

publicdoubleperimeter(){

return2*(length+width);

)

publicdoublearea(){

returnlength*width;

)

}

publicclassRectDemo{

publicstaticvoidmain(Stringargs[]){

Rectanglereel=newRectangle(20,10);

System,out.printIn("該矩形的長為:n+recl.getLength());

System.out.printIn("該矩形的寬為:H+recl.getWidth());

System.out.printin("該矩形的周長為:H+recl.perimeter());

System.out.printIn("該矩形的面積為:H+recl.area());

System.out.printin();

Rectanglerec2=newRectangle();

System,out.printIn("該矩形的長為:n+rec2.getLength());

System,out.printIn("該矩形的寬為:"+rec2.getWidth());

System,out.printin("該矩形的周長為:"+rec2.perimeter());

System.out.printIn("該矩形的面積為:H+rec2.area());

System.out.printin();

rec2.setLength(100);

rec2.setWidth(50);

rec2.setColor("YELLOW");

System,out.printIn("該矩形的長為:"+rec2.getLength());

System.out.printIn("該矩形的寬為:"+rec2.getWidth());

System.out.printin("該矩形的顏色:"+rec2.getColor());

System.out.printin("該矩形的周長為:"+rec2.perimeter());

System.out.printIn("該矩形的面積為:H+rec2.area());

28.參考程序如下:

publicclassTriangle{

doublea,bzc;

publicTriangle(){

this.a=0;this.b=0;this.c=0;

)

publicTriangle(doublea,doubleb,doublec){

this.a=a;this.b=b;this.c=c;

}

publicdoublearea(){

doubles=(a+b+c)/2.0;

returnMath.sqrt(S*(s-a)*(s-b)*(s-c));

}

publicstaticvoidmain(String[]args)(

Triangleta=newTriangle(3,4,5);

System.out.printin(ta.area());

}

)

29.參考程序如下:

importjava.util.Scanner;

publicclassInput{

staticScannersc=newScanner(System.in);

publicstaticbytereadByte(){

System.out.print("Pleaseinputabytevalue:;

returnsc.nextByte();

)

publicstaticshortreadShort(){

System.out.print("Pleaseinputashortvalue:");

returnsc.nextShort();

)

publicstaticintreadlnt(){

System.out.print("Pleaseinputaintvalue:H);

returnsc.nextlnt();

)

publicstaticlongreadLong(){

System.out.print("Pleaseinputalongvalue:H);

returnsc.nextLong();

)

publicstaticfloatreadFloat(){

System.out.print("Pleaseinputafloatvalue:'*);

returnsc.nextFloat();

)

publicstaticdoublereadDouble(){

System.out.print(nPleaseinputadoublevalue:;

returnsc.nextDouble();

)

publicstaticbooleanreadBoolean(){

System.out.print("Pleaseinputabooleanvalue:");

returnsc.nextBoolean();

)

publicstaticvoidmain(Stringargs[]){

doubled=Input.readDouble();

System.out.printin(Hd="+d);

)

30.參考程序如下:

Java程序設(shè)計習(xí)題解析

publicclassComplexNumber{

privatedoublerealPart;

privatedoubleimaginaryPart;

publicComplexNumber(){//默認(rèn)構(gòu)造方法

14)

publicComplexNumber(doubler,doublei){

this.realPart=r;

this.imaginaryPart=i;

)

publicdoublegetRealPart(){

returnrealPart;

)

publicdoublegetlmaginaryPart(){

returnimaginaryPart;

I

publicvoidsetRealPart(doubled){

this.realPart=d;

)

publicvoidsetImaginaryPart(doubled){

this.imaginaryPart=d;

)

publicComplexNumbercomplexAdd(ComplexNumberc){

ComplexNumbertemp=newComplexNumber(0.0z0.0);

temp.setRealPart(this.getRealPart()+c.getRealPart());

temp.setImaginaryPart(this.getlmaginaryPart()+

c.getlmaginaryPart());

returntemp;

)

publicComplexNumbercomplexMinus(ComplexNumberc){

ComplexNumbertemp=newComplexNumber(0.0z0.0);

temp.setRealPart(this.getRealPart()-c.getRealPart());

temp.setImaginaryPart(this.getlmaginaryPart()-

c.getlmaginaryPart());

returntemp;

)

publicComplexNumbercomplexMulti(ComplexNumberc){

ComplexNumbertemp=newComplexNumber(0.0,0.0);

temp.setRealPart(this.getRealPart()*c.getRealPart()+

this.getlmaginaryPart()*c.getlmaginaryPart());

temp.setImaginaryPart(this.getlmaginaryPart()*c.getRealPart()+

this.getRealPart()*c.getlmaginaryPart());

returntemp;

)

publicStringtoString(){

if(realPart==0.0)

returnimaginaryPart+'*in;

if(imaginaryPart==O.0)

returnrealPart+nn;

if(imaginaryPart<0.0)

returnrealPart+nH+imaginaryPart+ni";

else

returnrea1Part+H+,,+imaginaryPart+niu;

第4章習(xí)題解答

1.答:在Java中使用數(shù)組分為三步:①聲明數(shù)組②創(chuàng)建數(shù)組③數(shù)組初始化

2.答:使用new運算符創(chuàng)建一個數(shù)組后,系統(tǒng)自動為數(shù)組的每個元素分配了存儲空間,

同時為每個元素賦了初值。

對于整型數(shù)組其元素的初值為0,對于浮點型數(shù)組,其元素的初值為0.0,對于布爾型

的數(shù)組其元素的初值為false,對于字符型數(shù)組其元素的初值為'u000(T,對于引用類型的數(shù)

組其元素的初值為nulk

3.答:在Java語言中數(shù)組屬于引用數(shù)據(jù)類型,它實際上繼承了Object類,并可以調(diào)

用繼承來的方法,另外每個數(shù)組有一個length成員,因此每個數(shù)組都是一個對象,這就是

數(shù)組對象。對象數(shù)組是指數(shù)組的元素為引用數(shù)據(jù)類型,是一個對象,例如,

Circle[]c=newCircle[5];

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

c[i]=newCircle();

這里,數(shù)組c就是一個對象數(shù)組,因為c的每個元素都是一個Circle類的對象。

4.答:二維數(shù)組實際上是數(shù)組的數(shù)組,例如:

Stringstr[][]=newString[3][2];

聲明了一個3行2列的數(shù)組。這3行可以看作數(shù)組str是一維數(shù)組有下面3個元素:str[O]、

str[l],str[2]o這3個元素本身又是一個二維數(shù)組,每個元素各有2個元素。如srt[O]的2

個元素是str⑼⑼和str⑼⑴。

5.答:A,C,D,E6.答:B7.答:A,B

8.答:Ao因為arrayl是一唯數(shù)組,其他是二維數(shù)組。

9.答:f2[0]=0.010.答:a[0]=l

11.答:

12345

0261220

12.答:

12345

12345

13.答:

o

12

345

6789

14.參考程序如下:

Java程序設(shè)計習(xí)題解析

publicclassIntArray{

publicstaticvoidmain(String[]args){

int[]a={15,56,20,-2,10,80,-9,33,76,-3,99,21};

intsum,max,min;

16doubleavg;

sum=max=min=a[0];

for(inti=l;i<a.length;i++){

sum=sum+a[i];

if(a[i]>=max)

max=a[i];

if(a[i]<=min)

min=a[i];

}

avg=((double)sum

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論