版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java程序設(shè)計(jì)習(xí)題解析
本習(xí)題解析是《Java語(yǔ)言程序設(shè)計(jì)》(清華大學(xué)出版社2010.9,沈澤剛主編)一
書各章習(xí)題的全部答案。如果有答案不正確或有疑問,可聯(lián)系作者。
電話/p>
電子郵件:shenzegang@
[第1章習(xí)題解答
1.答:程序設(shè)計(jì)語(yǔ)言可分為機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言。機(jī)器語(yǔ)言的每條指令都
是一串二進(jìn)制代碼,完全依賴于硬件系統(tǒng),不同的機(jī)器有著不同的指令系統(tǒng),指令難以記
憶,程序難以閱讀。匯編語(yǔ)言用助記符表示計(jì)算機(jī)指令,程序要經(jīng)過(guò)匯編程序翻譯成機(jī)器
語(yǔ)言才能運(yùn)行。優(yōu)點(diǎn)是編寫程序比用機(jī)器語(yǔ)言節(jié)省時(shí)間,發(fā)生的錯(cuò)誤少,比機(jī)器語(yǔ)言容易
修改。缺點(diǎn)是面向機(jī)器。高級(jí)語(yǔ)言程序幾乎不用修改就可以用在不同型號(hào)的計(jì)算機(jī)上,比
匯編語(yǔ)言容易學(xué)習(xí),編程用的時(shí)間少、程序容易維護(hù)等。
2.答:面向過(guò)程是一種以過(guò)程為中心的編程方法,就是分析出解決問題的步驟,然后
用函數(shù)把這些步驟一步一步實(shí)現(xiàn)。面向?qū)ο蟮姆椒ㄊ且詫?duì)象為中心的編程方法,它的基本
思想是將要構(gòu)造的軟件系統(tǒng)表示為對(duì)象集合,其中每個(gè)對(duì)象是一組數(shù)據(jù)和對(duì)數(shù)據(jù)的操作組
成的封裝體,對(duì)象之間的聯(lián)系通過(guò)消息傳遞實(shí)現(xiàn)。
3.答:Java語(yǔ)言的特點(diǎn):簡(jiǎn)單的、面向?qū)ο蟮?、分布式的、解釋型的、平臺(tái)獨(dú)立的、
可移植的、健壯的、安全的、高性能的、多線程的、動(dòng)態(tài)的。
4.答:開發(fā)Java程序通常分3步:(1)編輯源程序;(2)編譯源程序;(3)執(zhí)行程
序。
5.答:JDK的編譯命令是javac.exe,命令格式:javacWelcome.java。如果編譯結(jié)果報(bào)
告找不到文件,可能是類名拼寫錯(cuò)誤或路徑錯(cuò)誤。
6.答:可獲得字節(jié)碼文件,文件擴(kuò)展名為.class。如果一個(gè)Java文件中定義了多個(gè)類,
包括外部類、內(nèi)部類、匿名內(nèi)部類,每一個(gè)類都會(huì)生成對(duì)應(yīng)的字節(jié)碼文件。
7.答:使用Java解釋器,即java.exe,命令格式:javaWelcome(無(wú)擴(kuò)展名)。
8.答:
(1)該程序缺少main。方法。輸出語(yǔ)句不能直接寫在類體中。
(2)語(yǔ)句缺少分號(hào)。
(3)缺少類的定義。
Java程序設(shè)計(jì)習(xí)題解析
(4)Main。方法不能作為程序執(zhí)行的入口點(diǎn),應(yīng)該定義main。方法。
9.答:保存為ClassTwo.java文件。Java源程序文件的擴(kuò)展名是.java,Java字節(jié)碼文
件的擴(kuò)展名是.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.答:編譯型語(yǔ)言寫的程序執(zhí)行前需要一個(gè)專門的編譯過(guò)程,把程序編譯成為機(jī)器
語(yǔ)言的文件,比如exe文件,以后要運(yùn)行的時(shí)候就不用重新翻譯了,直接使用編譯的結(jié)果
就行了(exe文件),因?yàn)榉g只做了一次,運(yùn)行時(shí)不需要翻譯,所以編譯型語(yǔ)言的程序執(zhí)
行效率高。
解釋型語(yǔ)言專門有一個(gè)解釋器能夠直接執(zhí)行程序,每個(gè)語(yǔ)句都是執(zhí)行的時(shí)候才翻譯。
這樣解釋性語(yǔ)言每執(zhí)行一次就要翻譯一次,效率比較低。
Java程序是半編譯半解釋型的。Java程序首先被編譯成一種稱為字節(jié)碼的中間代碼,
這種中間代碼只有在Java虛擬機(jī)上才能運(yùn)行,運(yùn)行時(shí)是解釋執(zhí)行的。
12.答:Java平臺(tái)是在Windows.Linux等系統(tǒng)平臺(tái)上的程序運(yùn)行平臺(tái),主要由Java
虛擬機(jī)(JavaVM)和Java應(yīng)用程序接口(JavaAPI)兩部分組成。
Java虛擬機(jī)是在一臺(tái)真正的機(jī)器上用軟件方式實(shí)現(xiàn)的一臺(tái)假想機(jī)。Java虛擬機(jī)是運(yùn)行
Java程序必不可少的環(huán)境。編譯后的Java程序指令由JVM執(zhí)行。
JVM的具體實(shí)現(xiàn)包括:指令集(等價(jià)于CPU的指令集)、寄存器組、類文件格式、棧、
垃圾收集堆、內(nèi)存區(qū)。
13.答:JVM使用的代碼存儲(chǔ)在.class文件中。JVM的部分指令很像真正的CPU指令,
包括算術(shù)運(yùn)算、流控制和數(shù)組元素訪問等。
Java虛擬機(jī)規(guī)范提供了編譯所有Java代碼的硬件平臺(tái)。因?yàn)榫幾g是針對(duì)假想機(jī)的,所
以該規(guī)范能讓Java程序獨(dú)立于平臺(tái)。它適用于每個(gè)具體的硬件平臺(tái),以保證為JVM編譯
的代碼的運(yùn)行。JVM不但可以用軟件實(shí)現(xiàn),而且可以用硬件實(shí)現(xiàn)。
第2章習(xí)題解答
1.答:標(biāo)識(shí)符必須以字符、下劃線(_)或美元符($)開頭,其后可以是字符、下劃
線、美元符或數(shù)字,長(zhǎng)度沒有限制。
錯(cuò)誤的標(biāo)識(shí)符:③以數(shù)字開頭④不允許使用連字符
2.答:Java共有8種基本數(shù)據(jù)類型。字節(jié)型、短整型、整型、長(zhǎng)整型、單浮點(diǎn)型、雙
浮點(diǎn)型、布爾類型、字符類型。int型數(shù)據(jù)的最大值是-231,最小值是23」。
Java中常用的引用數(shù)據(jù)類型有數(shù)組、類、接口、枚舉類型四種。
3.答:常量是在程序運(yùn)行過(guò)程中,其值不能被改變的量。變量是在程序運(yùn)行中其值可
以改變的量。
Java語(yǔ)言的字符型常量是用單引號(hào)將字符括起來(lái)單個(gè)字符;字符串常量是用雙引號(hào)括
起來(lái)的一個(gè)或多個(gè)字符組成,字符串不是Java的基本數(shù)據(jù)類型,屬于引用類型。
4.答:Java語(yǔ)言使用統(tǒng)一碼(Unicode)為字符編碼,它是由UnicodeConsortium建
立的一種編碼方案。Unicode字符集是用兩個(gè)字節(jié)(16位)的無(wú)符號(hào)整數(shù)為字符編碼,可
表示65536個(gè)字符。它可以表示各國(guó)的語(yǔ)言符號(hào),包括希臘語(yǔ)、阿拉伯語(yǔ)、日語(yǔ)以及漢語(yǔ)
等。
5.答:
算術(shù)運(yùn)算符有加(+)、減(-)、乘(*)、除(/)和取余數(shù)(%)5個(gè)二元運(yùn)算符和正
(+)、負(fù)(-)、自增(++)、自減(--)4個(gè)一元運(yùn)算符。
關(guān)系運(yùn)算符有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、
不等于(!=)6個(gè)。
邏輯運(yùn)算符包括以下幾種:邏輯非(!)、短路與(&&)、短路或(||)、邏輯與(&)、
邏輯或(|)、邏輯異或(A)o
位邏輯運(yùn)算符包括按位取反(~)、按位與(&)、按位或(|)和按位異或(“)4種。
移位運(yùn)算符包括左移(?),右移(>>)和無(wú)符號(hào)右移(>>>)3利、
賦值運(yùn)算符主要有兩類,一類是使用等號(hào)(=)賦值,它把一個(gè)表達(dá)式的值賦給一個(gè)
變量或?qū)ο?;另一類是擴(kuò)展的賦值運(yùn)算符,如+=。
6.答:自動(dòng)類型轉(zhuǎn)換也稱加寬轉(zhuǎn)換,它是指將具有較少位數(shù)的數(shù)據(jù)類型轉(zhuǎn)換為具有較
多位數(shù)的數(shù)據(jù)類型。例如:
byteb=64;
inti=b;//字節(jié)型數(shù)據(jù)b自動(dòng)轉(zhuǎn)換為整型
強(qiáng)制類型轉(zhuǎn)換是將位數(shù)較多的數(shù)據(jù)類型轉(zhuǎn)換為位數(shù)較少的數(shù)據(jù)類型,如將double型數(shù)
據(jù)轉(zhuǎn)換為byte型數(shù)據(jù)。其語(yǔ)法是在圓括號(hào)中給出要轉(zhuǎn)換的目標(biāo)類型,隨后是待轉(zhuǎn)換的表達(dá)
式。例如:
byteb=5;
doubled=333.567;
b=(byte)d;//將double型值強(qiáng)制轉(zhuǎn)換成byte型值
7.答:盡管Java語(yǔ)言提供了goto保留字,但不能使用,即不能實(shí)現(xiàn)控制的無(wú)條件轉(zhuǎn)
移。在Java程序中可以使用帶標(biāo)簽的continue和break語(yǔ)句實(shí)現(xiàn)將控制轉(zhuǎn)移到指定的標(biāo)簽。
但需要事先定義標(biāo)簽。標(biāo)簽一般在循環(huán)的開始定義。
8.答:先創(chuàng)建一個(gè)java.util.Scanner類的對(duì)象,然后調(diào)用其nextlnt。方法、nextDouble。
方法和nextLine。方法就可以實(shí)現(xiàn)從鍵盤上輸入整數(shù)、浮點(diǎn)數(shù)和字符串。
9.答:A,B,C,D10.答:B,D
II.答:C12.答:D
13.答:A,D,F14.答:A,D
Java程序設(shè)計(jì)習(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("請(qǐng)輸入華氏溫度:”);
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("請(qǐng)輸入圓柱底面半徑:”);
doubleradius=sc.nextDouble();
System,out.print("請(qǐng)輸入圓柱高:;
doubleheight=sc.nextDouble();
System,out.printf(“圓柱的體積:%8.2f'*zMath.PI*radius*radius*height);
)
}
32.參考程序如下:
importjava.util.Scanner;
publicclassTest{
publicstaticvoidmain(String[]args){
System.out.print("請(qǐng)輸入一個(gè)浮點(diǎn)數(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("請(qǐng)輸入第一個(gè)整數(shù):");
intnuml=sc.nextlnt();
System,out.print("請(qǐng)輸入第二個(gè)整數(shù):");
intnum2=sc.nextlnt();
System,out.print("請(qǐng)輸入第三個(gè)整數(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è)計(jì)習(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("請(qǐng)輸入第1個(gè)整數(shù):");
intmax=sc.nextlnt();
intmin=max;
for(inti=2;i<=10;i++){
System.out.print(“請(qǐng)輸入第”+i+”個(gè)整數(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'請(qǐng)輸入正整數(shù)x:
inta=sc.nextlnt();
System.out.print(”請(qǐng)輸入正整數(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è)計(jì)習(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項(xiàng)pi的值
intn=2;
intsign=1;
while(pi<3.1415926||pi>3.1415927)(
n=n+1;//從第3項(xiàng)開始計(jì)算
pi=pi+(sign*4/(double)(2*n-1));
sign=sign*-1;//改變符號(hào)
)
System.out.printIn("PI="+pi);
System,out.printIn("n='*+n);
程序輸出結(jié)果如下:
PI=3.1415926000000005
n=18660304
第3章習(xí)題解答
1.答:對(duì)象是現(xiàn)實(shí)世界中客觀存在的實(shí)體。每個(gè)對(duì)象一般具有兩方面的特征:狀態(tài)和
行為。狀態(tài)用來(lái)描述對(duì)象的靜態(tài)特征,行為用來(lái)描述對(duì)象的動(dòng)態(tài)特征。類是具有相似特征
和行為的對(duì)象集合。對(duì)象之間的聯(lián)系是通過(guò)消息傳遞實(shí)現(xiàn)的。
2.答:窗口的狀態(tài)可以有:大小、是否可見等。窗口的行為可以有:關(guān)閉、打開、最
大化、最小化等。
3.答:用類描述如下:
classTV{
Stirngfactory;//生產(chǎn)廠家
intsize;//尺寸
doubleprice;//價(jià)格
voidopen();//打開
intchangechannel(intn);//改變頻道
voidvoiceUp(intvoice);//增大聲音
voidvoiceDown(intvoid);//減小聲音
voidclose();//關(guān)閉
)
4.答:方法應(yīng)定義在類體中,需要指定方法的訪問修飾符、返回值、方法名、參數(shù)類
型和參數(shù)名,用一對(duì)大括號(hào)指定方法體。調(diào)用方法一般通過(guò)對(duì)象名調(diào)用。構(gòu)造方法用來(lái)創(chuàng)
建對(duì)象,普通方法是在對(duì)象上執(zhí)行操作。
5.答:如果參數(shù)是基本數(shù)據(jù)類型的變量,則將變量值的副本傳遞給方法,方法調(diào)用結(jié)
束后對(duì)原來(lái)變量的值沒有影響。如果參數(shù)是引用類型的變量,是將變量的引用(地址)傳
遞給方法,方法調(diào)用結(jié)束后原來(lái)的引用值不改變,但在方法體中可能改變對(duì)象的狀態(tài)。
6.答:構(gòu)造方法和普通方法都可以重載。構(gòu)造方法重載目的是提供多種創(chuàng)建對(duì)象的方
式。普通方法的重載是用相同名稱完成不同操作。
7.答:沒有用static修飾的成員是實(shí)例成員(實(shí)例變量和實(shí)例方法),用static修飾的
成員是類成員(類變量和類方法)或靜態(tài)成員。實(shí)例成員只能用實(shí)例名訪問,類成員可以
用實(shí)例名,也可以用類名訪問。
8.答:參閱教材353節(jié)的敘述。
9.答:參閱教材3.3.3節(jié)的敘述。
10.答:參閱教材3.6節(jié)的內(nèi)容。
11.答:使用importstaticjava.lang.Math.*;語(yǔ)句是將Math類的靜態(tài)成員和靜態(tài)方法導(dǎo)
入。程序中使用這些靜態(tài)成員時(shí)無(wú)需加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è)計(jì)習(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("該矩形的長(zhǎng)為:H+rect.getLength());
System.out.printIn("該矩形的寬為:n+rect.getWidth());
System.out.printin("該矩形的周長(zhǎng)為:"+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è)計(jì)習(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("該矩形的長(zhǎng)為:n+recl.getLength());
System.out.printIn("該矩形的寬為:H+recl.getWidth());
System.out.printin("該矩形的周長(zhǎng)為:H+recl.perimeter());
System.out.printIn("該矩形的面積為:H+recl.area());
System.out.printin();
Rectanglerec2=newRectangle();
System,out.printIn("該矩形的長(zhǎng)為:n+rec2.getLength());
System,out.printIn("該矩形的寬為:"+rec2.getWidth());
System,out.printin("該矩形的周長(zhǎng)為:"+rec2.perimeter());
System.out.printIn("該矩形的面積為:H+rec2.area());
System.out.printin();
rec2.setLength(100);
rec2.setWidth(50);
rec2.setColor("YELLOW");
System,out.printIn("該矩形的長(zhǎng)為:"+rec2.getLength());
System.out.printIn("該矩形的寬為:"+rec2.getWidth());
System.out.printin("該矩形的顏色:"+rec2.getColor());
System.out.printin("該矩形的周長(zhǎng)為:"+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è)計(jì)習(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運(yùn)算符創(chuàng)建一個(gè)數(shù)組后,系統(tǒng)自動(dòng)為數(shù)組的每個(gè)元素分配了存儲(chǔ)空間,
同時(shí)為每個(gè)元素賦了初值。
對(duì)于整型數(shù)組其元素的初值為0,對(duì)于浮點(diǎn)型數(shù)組,其元素的初值為0.0,對(duì)于布爾型
的數(shù)組其元素的初值為false,對(duì)于字符型數(shù)組其元素的初值為'u000(T,對(duì)于引用類型的數(shù)
組其元素的初值為nulk
3.答:在Java語(yǔ)言中數(shù)組屬于引用數(shù)據(jù)類型,它實(shí)際上繼承了Object類,并可以調(diào)
用繼承來(lái)的方法,另外每個(gè)數(shù)組有一個(gè)length成員,因此每個(gè)數(shù)組都是一個(gè)對(duì)象,這就是
數(shù)組對(duì)象。對(duì)象數(shù)組是指數(shù)組的元素為引用數(shù)據(jù)類型,是一個(gè)對(duì)象,例如,
Circle[]c=newCircle[5];
for(inti=0;i<c.length;i++)
c[i]=newCircle();
這里,數(shù)組c就是一個(gè)對(duì)象數(shù)組,因?yàn)閏的每個(gè)元素都是一個(gè)Circle類的對(duì)象。
4.答:二維數(shù)組實(shí)際上是數(shù)組的數(shù)組,例如:
Stringstr[][]=newString[3][2];
聲明了一個(gè)3行2列的數(shù)組。這3行可以看作數(shù)組str是一維數(shù)組有下面3個(gè)元素:str[O]、
str[l],str[2]o這3個(gè)元素本身又是一個(gè)二維數(shù)組,每個(gè)元素各有2個(gè)元素。如srt[O]的2
個(gè)元素是str⑼⑼和str⑼⑴。
5.答:A,C,D,E6.答:B7.答:A,B
8.答:Ao因?yàn)閍rrayl是一唯數(shù)組,其他是二維數(shù)組。
9.答:f2[0]=0.010.答:a[0]=l
11.答:
12345
0261220
12.答:
12345
12345
13.答:
o
12
345
6789
14.參考程序如下:
Java程序設(shè)計(jì)習(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. 本站所有資源如無(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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度關(guān)于解除企業(yè)合規(guī)審查律師代理協(xié)議書2篇
- 二零二五年度高科技溫室大棚出租服務(wù)協(xié)議3篇
- 2025年度文化公司股份轉(zhuǎn)讓協(xié)議書范本3篇
- 二零二五年度租賃合同租賃物租賃期滿續(xù)租條件協(xié)議范本
- 二零二五年度2025年商業(yè)地產(chǎn)租賃管理服務(wù)合同3篇
- 2025年度員工股權(quán)激勵(lì)與公司員工福利待遇提升的專項(xiàng)合同3篇
- 二零二五年度太陽(yáng)能光伏系統(tǒng)定期檢修與維修合同3篇
- 2025年度養(yǎng)殖場(chǎng)地承包與農(nóng)業(yè)廢棄物資源化利用合作協(xié)議3篇
- 二零二五年度競(jìng)業(yè)禁止協(xié)議期限及競(jìng)業(yè)限制解除程序3篇
- 二零二五年度回遷房更名與教育資源共享合同3篇
- 《機(jī)械識(shí)圖》(第四版)完整版教學(xué)課件全書電子講義(最新)
- 檔案借閱申請(qǐng)
- 高考語(yǔ)文備考之從小說(shuō)考點(diǎn)解讀《哦香雪》(知識(shí)點(diǎn)解讀+精品課件+比較閱讀+模擬命題)
- DB33∕2169-2018 城鎮(zhèn)污水處理廠主要水污染物排放標(biāo)準(zhǔn)
- 墩柱施工操作平臺(tái)相關(guān)計(jì)算
- 高職院校油層物理說(shuō)課
- 計(jì)算機(jī)課件:計(jì)算機(jī)安全
- SCH壁厚等級(jí)對(duì)照表
- 35kv及以下架空線路施工及驗(yàn)收規(guī)范
- 山東昌樂二中“271高效課堂”解讀
- 配電工程竣工資料
評(píng)論
0/150
提交評(píng)論