1.寫一個程式,從鍵盤讀入字元,直到接收到一個英文句号(.)。程式需要計算輸入的空格的個數。在程式結束時輸出總結果。
2.請寫出if-else-if梯隊的一般形式。
3.針對下列程式
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL3YTOwcDNwYmMxAjZiBTNhRjZiRTOzETYwETO2YDM4UzN1QWZkFWNm9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
其中最後的else子句與哪個if配對?
4.寫一個for循環語句,從1000計數到0,步進值為-2。
5.下面的代碼片段是否有效?
6.請解釋break語句的用途(包括其兩種形式。)
7.在下面的代碼片段中,break語句執行後會顯示什麼?
8.下面程式片段的輸出是什麼?
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程式輸出程式下顯示的星星圖案。修改程式,使用嵌套的循環輸出其他星星圖案。
21.在正文中提到,java辨別符可以包括一個或多個字元。第一個字元必須是大寫字母或小寫字母,或下劃線(_),或美元符号($)。剩下的字元可以是大寫字母或小寫字母、數字0~9、下劃線或美元符号。編寫java程式,讀入一行字元,判斷這行字元是否是合法的java辨別符。
22.在unicode編碼中,字元'0'~'9'的編碼與其代表的整數值并不相同。即,字元'0'~'9'的unicode編碼是48~57,而不是0~9。但是可以将這些字元減去48,就很容易的轉換為對應的整數值了。特别地,如果c是一個包括字元'0'~'9'的char型變量,可以利用下面的語句建立一個int型變量x,得到其相應的整數值:
用這個方法,使程式讀入一個三位數,将其轉化為3位整數,然後将其乘以2,輸出其結果。例如,如果輸入分别是'3'、'4'、'5',輸出為690。
23.如果将1除以2,可以得到0.5;如果将它再除以2,可以得到0.25。編寫程式計算和輸出需要除以2多少次,才可以使商小于0.0001。