計程Practice Problems

9/27/2007

 

部份是投影片上的練習題,部份是新題目。不用交,但要會做,下次上課時可能會小考。歡迎同學之間相互討論,也歡迎在office hours來問我。

 

1.     程式讀入兩個整數值,印出其中較大的值。

2.     程式讀入三個整數值,印出其中最大的值。

3.     程式讀入一個整數值,印出其絕對值。

4.     學生的分數80以上為A 70-79B 61-69C60D,不到60F,寫程式讀入學生分數,輸出換算出的letter grade

5.     程式印出11, 12, 13, 14, …, 20,輸出時每數字一行。

6.     程式印出0, 3, 6, 9, …, 27,輸出時每數字一行。

7.     程式印出1, 4, 7, 10, …, 28,輸出時每數字一行。

8.     程式印出0, -1, -2, -3, …, -30,輸出時每數字一行。

9.     程式印出15, 14, 13, 12, …, 0,輸出時每數字一行。

10.  程式印出74, 65, 56, 47, 38, 29, 20, 11,輸出時每數字一行。

11.  程式讀入兩個整數ab,如果a<b則印出a, a+1, a+2, …, b;如果a>b則印出a, a-1, a-2, …, b;如果a, b相等且為正數則印出aHello;如果a, b相等且為負數則印出 -aBye;如果a, b皆為零則不印出任何東西。輸出時每次一行。

 

本周上課沒有時間講解一個有用的程式寫法,在此補充。如果for loop每次重複時要做的事超過一個指令的話,需要用花括弧把多個指令包在一起。例如:

int i, x;

for (i=0; i<5; i++) {

   cin >> x;

   cout << x*x << endl;

}

會重複做5次相同的動作,每次讀入一個整數到變數x中,再印出x*x的值。

 

利用這種寫法,完成下面的題目。

12.  程式重複做5次相同的動作,每次讀入兩個整數值,印出其中較大的值。(參考第1)

13.  程式重複做10次相同的動作,每次讀入一個整數值,印出其絕對值。(參考第3)

14.  程式讀入一個非負的整數值k,重複做k次相同的動作,每次讀入一個學生分數,輸出換算出的letter grade(參考第4)