版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《聲和超聲》課件
- 杭州市住宅小區(qū)前期物業(yè)服務(wù)合同模板
- 工程造價專用合同條款
- 《氨基丁酸養(yǎng)生的》課件
- 2025年陜西貨運從業(yè)資格證考試模擬試題
- 2025年博爾塔拉貨運從業(yè)資格證考試技巧
- 2025年拉薩貨運從業(yè)資格證模擬考試題下載
- 2025年東莞貨運從業(yè)資格考試
- 《民事案例實例分析》課件
- 文化產(chǎn)業(yè)招投標(biāo)合同管理要點
- 排泄物、分泌物及體液檢驗方法和病例分析
- 合同責(zé)任分解及交底表1-5
- 《漢服》PPT課件(完整版)
- 復(fù)旦大學(xué)附屬腫瘤醫(yī)院病理科李大力,楊文濤
- 機械式停車設(shè)備安裝工藝
- AutoCAD 布局(圖紙空間)使用教程詳解
- 電化學(xué)原理知識點
- 龍泉街道文化產(chǎn)業(yè)及民族民俗文化發(fā)展工作匯報
- 壓力容器壁厚計算表
- Y-△降壓啟動控制線路ppt課件
- 制作同軸電纜接頭的方法課件
評論
0/150
提交評論