程式設計基礎(虛擬碼追蹤)
÷ 為除法,代入整數型變數(含引數)時捨去小數部分。以 f(9087) 呼叫下列函式 f 時,回傳值為下列何者?
○整數型: f(整數型: x)
整數型: s ← 0
while (x > 0)
s ← s + x mod 10
x ← x ÷ 10
endwhile
return s
- A4
- B15
- 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。