國中教甄|資訊科技資訊科技114 年第 18 題單選題
下列程式的目的為何?
void mystery(char str[]) {
int len = strlen(str);
int mid = len / 2;
for (int i = 0; i < mid; i++) {
char temp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = temp;
}
}
A反轉整個字串正確答案
B將字串分成兩半後,分別將前後兩字串反轉
C將字串中索引為奇數的字元與索引為偶數的字元依序交換
D將字串中每個字元依序與最後一個字元交換
A正確答案
程式碼透過對稱位置的字元交換,將字串從頭到尾反轉。
逐選項解析
A反轉整個字串✓ 正確
迴圈執行長度的一半,每次將第 i 個字元與倒數第 i 個字元交換,達到反轉整個字串的效果。
B將字串分成兩半後,分別將前後兩字串反轉✕ 錯誤
若要分別反轉前後兩半,需要兩個獨立的迴圈分別處理前半段與後半段,而非首尾對稱交換。
C將字串中索引為奇數的字元與索引為偶數的字元依序交換✕ 錯誤
立即註冊,看完整詳解
這題的完整詳解,註冊就能看 · 每天 2 題免費
精選詳解- 完整逐選項解析
- 秒殺解題技巧與破題關鍵
- 關鍵知識表整理
- 陷阱與易錯提醒
- 同考點歷屆題庫連續刷題與錯題本