高考申論題
108年
[資訊處理] 程式語言
第 二 題
二、請指出下列程式碼不合理之處。(25 分)
#include
#include
int main()
{
int s ,t;
scanf("%d%d", &s,&t);
while (s < 30) {
if (s < 100 || s >50) {
t++;
}
else if (s > 60 && s<-1) {
t++;
}
else if (s > 10 && s < 100) {
t--;
}
else
t++;
}
system("pause");
return 0;
}
📝 此題為申論題
思路引導 VIP
面對程式碼除錯或邏輯追蹤題,第一步應檢視「迴圈控制」,確認是否有條件更新以避免無窮迴圈。第二步運用「布林代數」檢視條件分支(if-else),尋找是否存在恆真(tautology)、恆假(contradiction)或與外層迴圈條件(如 s < 30)產生衝突的無效邏輯。
🤖
AI 詳解
AI 專屬家教
【破題】本題程式碼在「迴圈控制機制」與「條件分支邏輯」上皆存在嚴重的設計瑕疵,將導致無窮迴圈與大量的無效程式碼(Dead Code)。 【論述】 一、未更新迴圈控制變數(導致無窮迴圈)
▼ 還有更多解析內容