天天看點

《Java 7程式設計入門經典》一3.17 習題

1.寫一個程式,從鍵盤讀入字元,直到接收到一個英文句号(.)。程式需要計算輸入的空格的個數。在程式結束時輸出總結果。

2.請寫出if-else-if梯隊的一般形式。

3.針對下列程式

《Java 7程式設計入門經典》一3.17 習題

其中最後的else子句與哪個if配對?

4.寫一個for循環語句,從1000計數到0,步進值為-2。

5.下面的代碼片段是否有效?

《Java 7程式設計入門經典》一3.17 習題

6.請解釋break語句的用途(包括其兩種形式。)

7.在下面的代碼片段中,break語句執行後會顯示什麼?

《Java 7程式設計入門經典》一3.17 習題

8.下面程式片段的輸出是什麼?

《Java 7程式設計入門經典》一3.17 習題

9.for循環中的疊代表達式不總是将循環控制變量加上或減去一個常量。它可以以任意的形式改變。用這個概念,編寫一個for循環,産生像1、2、4、8、13、62、…這樣的級數。

10.ascii碼中的小寫字母與大寫字母相差32。于是,如果要将小寫字母轉換為大寫字母,需要減去32。利用這點寫一個程式,它從鍵盤中讀入字元,将輸入的小寫字母都轉化為大寫字母,大寫字母都轉化為小寫字母,并顯示結果。對于其他字元,不要做任何改變。當使用者輸入英文句号時程式結束。在程式末尾,輸出改變了大小寫的字元的個數。

11.什麼是無限循環?

12.在使用帶标簽的break語句時,标簽所在的語句或語句塊是否要包括break語句?

13.以下三個字面量:5、'5'、"5"有何差別?

14.設c是一個char類型的變量。如何測試c的值是不是一個單引号字元?

15.本章的類contdemo示範了一種利用for循環輸出0~100之間整數的方法。寫個程式輸出同樣的結果,但使用以下方法:

a.使用for循環,每次疊代循環控制變量遞增2。

b.使用for循環,循環控制變量從0變到50。

c.使用for循環,循環控制變量從100變到0。

d.使用沒有條件表達式的無限for循環,用break語句退出循環。

e.使用while循環。

f.使用do-while循環。

16.編寫程式,使用循環輸出3的幂。輸出範圍為30~39(含邊界)。

17.編寫程式,用循環輸出清單,清單中有100個數,從1開始,每個數交替為1和-1。

18.本章讨論的類findfac輸出1~100之間的整數的所有因子。修改這個類,使其不再在100處停止循環,而在找到因子數恰好為9的數處停止循環。

19.編寫程式,不斷從鍵盤中讀入字元,直到讀入換行符'n'。輸出元音字母、輔音字母、數字和其他字元的個數。在計算其他字元的個數時包括最後的換行符。

20.下面的starpattern程式輸出程式下顯示的星星圖案。修改程式,使用嵌套的循環輸出其他星星圖案。

《Java 7程式設計入門經典》一3.17 習題

21.在正文中提到,java辨別符可以包括一個或多個字元。第一個字元必須是大寫字母或小寫字母,或下劃線(_),或美元符号($)。剩下的字元可以是大寫字母或小寫字母、數字0~9、下劃線或美元符号。編寫java程式,讀入一行字元,判斷這行字元是否是合法的java辨別符。

22.在unicode編碼中,字元'0'~'9'的編碼與其代表的整數值并不相同。即,字元'0'~'9'的unicode編碼是48~57,而不是0~9。但是可以将這些字元減去48,就很容易的轉換為對應的整數值了。特别地,如果c是一個包括字元'0'~'9'的char型變量,可以利用下面的語句建立一個int型變量x,得到其相應的整數值:

《Java 7程式設計入門經典》一3.17 習題

用這個方法,使程式讀入一個三位數,将其轉化為3位整數,然後将其乘以2,輸出其結果。例如,如果輸入分别是'3'、'4'、'5',輸出為690。

23.如果将1除以2,可以得到0.5;如果将它再除以2,可以得到0.25。編寫程式計算和輸出需要除以2多少次,才可以使商小于0.0001。