程式設計基礎(虛擬碼追蹤)

÷ 為除法,代入整數型變數(含引數)時捨去小數部分。以 f(9087) 呼叫下列函式 f 時,回傳值為下列何者?

○整數型: f(整數型: x)
  整數型: s ← 0
  while (x > 0)
    s ← s + x mod 10
    x ← x ÷ 10
  endwhile
  return s
  1. A4
  2. B15
  3. C24
查看答案與解析

正確答案:C. 24

x mod 10 取出 x 的個位數,x ← x ÷ 10 因捨去小數部分而成為整數除法,會去掉個位數。mod 的優先順序高於 +,因此 s ← s + x mod 10 的意思是 s ← s + (x mod 10)。x 依序變為 9087、908、90、9、0,s 依序加上 7、8、0、9,得到 7 + 8 + 0 + 9 = 24。這是求各位數字總和的函式。

  • A. 這是先計算 +、成為 (s + x) mod 10 時的值。mod 要比 + 先計算。
  • B. 這是像 while (x ≧ 10) 那樣,在加上最高位數9之前就停止時的值。
  • C. 正確。9 + 0 + 8 + 7 = 24。
練習這個領域 前往領域頁面

相關計算工具

程式設計基礎(虛擬碼追蹤)的其他題目

  1. ÷ 為除法,代入整數型變數(含引數)時捨去小數部分。以 toBin(12) 呼叫下列函式 toBin 時,回傳值為下列何者?
  2. 下列程式以減法使兩個整數 a、b 逐漸相等。執行後 k 的值為下列何者?
  3. 下列函式 isLeap 在西元 y 年為閏年時回傳 true。and 比 or 先計算。isLeap(y) 回傳 true 的 y 為下列何者?
  4. ÷ 為除法,代入整數型變數(含引數)時捨去小數部分。以 pow(2, 10) 呼叫下列函式 pow 時,pow 被呼叫的次數(含第一次呼叫)為下列何者?
  5. 以 s(7) 呼叫下列函式 s 時,回傳值為下列何者?