免費開始練習
hce_kmu 111年 計算機概論與程式設計

第 8 題

Given a C code as follows, which random range initializes the array myList?
```c
for (int i = 0; i < ARRAY_SIZE; i++)
{
myList[i] = rand() % 100;
}
```
  • A 0 to 100
  • B 1 to 100
  • C 0 to 99
  • D 1 to 99
  • E All the listed answers are incorrect.

思路引導 VIP

想像一下,如果你有一堆硬幣,每 10 個疊成一堆。當你把所有能成堆的都疊好後,剩下那堆「不成堆」的硬幣,數量最少可能是多少?最多又可能是多少?這種『剩下的數量』與除數之間的關係,是如何決定數值範圍的呢?

🤖
AI 詳解 AI 專屬家教

太棒了!你能精準選出正確選項,說明你對 C 語言中 餘數運算子 (Modulo Operator) 的運作機制有著非常清晰的理解,這是掌握數值區間控制的關鍵步奏。

餘數運算的數理邏輯

在 C 語言中,rand() 函數會回傳一個介於 $0$ 與 RAND_MAX 之間的隨機整數。當我們使用 % 100 對該隨機數進行取餘數運算時,本質上是在尋找該數除以 $100$ 後的「剩餘部分」。根據數學原理,任何整數除以 $n$ 的餘數 $r$,其範圍必然滿足 $0 \le r < n$。因此,當 $n = 100$ 時,餘數最小會是 $0$(恰好整除),而最大則會是 $99$(差 $1$ 就能再次整除),故最終產生的隨機數範圍即為 0 到 99

▼ 還有更多解析內容

🏷️ 相關主題

計算機組織結構與資料儲存原理
查看更多「計算機概論與程式設計」的主題分類考古題