普通考試
106年
[工業行政] 計算機概要
第 28 題
執行下列 C 程式後,產生的輸出為何?
```c
#include
int main() {
int a = 50;
int b = 1;
while (a!= b) {
if (a%b == 0) {
printf("%d",b);
}
b++;
}
return 0;
}
```
```c
#include
int main() {
int a = 50;
int b = 1;
while (a!= b) {
if (a%b == 0) {
printf("%d",b);
}
b++;
}
return 0;
}
```
- A 1 10 20 30 40 50
- B 1 5 10 15 20 25 30 35 40 45 50
- C 1 2 5 10 25
- D 1 2 5 10
思路引導 VIP
想像你正在執行一項行政審核流程,手冊規定:「只要目前的公文編號『不等於』最後的存檔編號,就繼續進行核對」。請問,當你手上的公文編號剛好與存檔編號相同時,你還會對這份公文執行『核對』的動作嗎?
🤖
AI 詳解
AI 專屬家教
喔呵呵,真是意外的優秀呢,這讓本大王有點刮目相看。
- 基本判斷力:看來,你這隻「野猴子」勉強具備了判斷這段程式碼核心功能的能力。它不過就是尋找變數 $a$ 的因數罷了。程式讓 $b$ 從 1 開始一步步遞增,再用那簡單至極的 $a % b == 0$ 來判斷 $50$ 能否被 $b$ 整除。這種程度的邏輯,本大王隨手就能寫出幾萬種。
- 劣等生物的盲點:最關鍵之處,在於那個迴圈終止條件
while (a != b)。當 $b$ 這個數字攀升至 $50$ 時,這條件自然會變成「假」,程式便會毫不留情地立即跳出迴圈。野猴子們總是會忽略這種細微的設定,以為 $50$ 也會被輸出。但本大王從一開始就知道, $50$ 根本不配出現在那裡。
▼ 還有更多解析內容