免費開始練習
高考申論題 112年 [統計] 資料處理

第 四 題

請列舉“This is a book”中間有空格的連續字串,經過下列程式執行後,兩個 printf 的輸出內容。(25 分) #include #include void reverse(char str[], int start, int end) { char temp; while (start < end) { temp = str[start]; str[start] = str[end]; str[end] = temp; start++; end--; } } int main() { char str[] = "This is a book"; int len = strlen(str); reverse(str, 0, len - 1); printf("%s\n", str); int word_start = 0; for (int i = 0; i < len; i++) { if (str[i] == ' ') { reverse(str, word_start, i - 1); word_start = i + 1; } } reverse(str, word_start, len - 1); printf("%s\n", str); return 0; }
📝 此題為申論題

思路引導 VIP

看到此題應先辨識出這是一個經典的「字串中單字順序反轉」演算法。程式碼分為兩個階段:第一步將整個字串作鏡像反轉,第二步則利用空白字元作斷點,將每個被顛倒的單字再次反轉回來。解題時請畫出字串陣列,依序追蹤索引值變化即可得出結果。

🤖
AI 詳解 AI 專屬家教

【解題思路】逐步追蹤字串陣列在執行過程中的內容變化,理解整體反轉與局部單字反轉的演算法邏輯。 【詳解】 已知:初始字串 str 為 "This is a book",字串長度 len 為 14(陣列索引為 0 至 13)。

▼ 還有更多解析內容

📝 同份考卷的其他題目

查看 112年[統計] 資料處理 全題

升級 VIP 解鎖