高考申論題
109年
[電力工程] 計算機概論
第 五 題
五、以下C++程式的目的為何?詳述執行流程並寫出程式的輸出。(20分)
```cpp
#include
#include
using namespace std;
int main(){
int x = 30, y = 100, ok = 1;
int i, j;
for(i = x ; i <= y; i++){
ok = 1;
for(j = 2; j < i ; j++)
if(i % j == 0){
ok = 0;
break;
}
if(ok == 1) cout << i << " ";
}
cout << endl;
return 0;
}
```
```cpp
#include
#include
using namespace std;
int main(){
int x = 30, y = 100, ok = 1;
int i, j;
for(i = x ; i <= y; i++){
ok = 1;
for(j = 2; j < i ; j++)
if(i % j == 0){
ok = 0;
break;
}
if(ok == 1) cout << i << " ";
}
cout << endl;
return 0;
}
```
📝 此題為申論題
思路引導 VIP
這是一道程式追蹤題。首先從變數的初始值與迴圈邊界來分析:外層迴圈從 30 跑到 100,內層迴圈則嘗試將外層的變數 i 除以 2 到 i-1 的每個數字 (j)。若發現 i % j == 0,代表 i 有因數,將旗標 ok 設為 0 並 break 跳出。最後若 ok 仍為 1 就印出 i。這正是「尋找質數 (Prime number)」的典型演算法。因此:
- 程式目的:找出並印出 30 到 100 之間的所有質數。
🤖
AI 詳解
AI 專屬家教
【考點分析】
考查 C++ 程式邏輯理解與追蹤能力:包含巢狀迴圈(nested loops)的運作、條件判斷、模數運算子(%),以及質數(Prime number)判斷的經典演算法實現。
【理論/法規依據】
▼ 還有更多解析內容