每題十分,滿分 110.

  1. TIMEANDTIDEWAITFORNOMAN

    錯一個英文字母扣一分
  2. i = 10
    i = 9
    i = 8
    i = 7
    i = 6
    sum = 35

    這題在期中考出現過了。注意沒有大括號時,只有 i = 那行會被重覆印出。 每多印一行 sum = 扣一分。
  3. 7 5 4 3 2 1

    注意 K=6, 所以只有前六個元素會被處理.
  4. 13

    這題很多同學算得太辛苦了,努力把 5555 轉成二進位(還轉錯)。 速算法: s >> 5 就是 s / 32, 於是你得到 173. 至於 ~(~0 << 4) 你得到四個 1, 前面都是0. 所以取 AND 之後,相當於 173 除以 16 所得的餘數(13)。
  5. 2500

    sum 是一個 global variable, i 每次加 2
  6. 5          2          0

    有同學指出原題目 for (i=0; i<10; i += 2) 會超出陣列範圍(但不影響執行結果),加 5 分。
  7. 這兩行有錯,等號左邊是不正確的,要加上括號。

    *(pvector + 1) = *pvector + 2;
    *(pvector + 2) = *pvector + 3;

    等號右邊有同學有加括號,有人沒加。結果會不一樣。所以這題只要指出左邊的錯誤即可,不需要預測更正後的執行結果。
  8. 1
    2

  9. Factorial 2 is 2
    Factorial 3 is 6
    Factorial 4 is 24
    Factorial 5 is 120
    Factorial 6 is -48
    Factorial 7 is -80
    Factorial 8 is -128
    Factorial 9 is -128
    Factorial 10 is 0
    Factorial 11 is 0

    這是期中考的變化題。那時 factorial 宣告為 long (4 Bytes), 所以超出的部份要扣掉 2^32. 這題的 factorial 宣告為 char (1 Byte), 所以超出的部份要扣掉 2^8. (錯一個扣一分)
  10. 10! = 000000003628800

    這是簡單的 10 階乘計算。記得印出前面的 8 個 0, 不然就失去一半分數了。
  11. 這語法是錯的。參見課本 P.279 我請大家畫線那句解釋。