LONGEPASS
電腦軟體設計(C++)/C++/Q57
中等
正確率 -
Q57.

針對以下C 程式,執行後輸出是那一個?電腦軟體設計(C++) 乙級 C++ 第 57 題 題目 圖片

電腦軟體設計(C++) · 乙級 · C++ · Q57

難易度分析

3 / 5

本題要求考生能精確追蹤迴圈的執行流程,並留意計數變數的非典型初始值設定,屬於需要細心分析程式邏輯以避免陷阱的基礎應用題。

正確答案:③8

③ 8:函數 `f` 使用 for 迴圈同時遞增索引 `i` 與指標 `s`,直到遇到字串結束字元 '\0'。字串 "abcdefg" 長度為 7,`i` 從 1 開始遞增至 8 時迴圈結束,故輸出 8。

錯誤選項解析

  • ① 0:字串長度計算不會從 0 開始,因為迴圈初始值 `i=1`,且字串 "abcdefg" 包含 7 個字元,結果應為 7+1=8。
  • ② 7:此選項僅計算了字串 "abcdefg" 的字元個數 7,但忽略了變數 `i` 的初始值為 1,每次遞增後最終值會比字串長度多 1。
  • ④ 10:數值 10 與本題字串長度計算邏輯無關,字串 "abcdefg" 僅有 7 個有效字元,加上初始值 1 後結果為 8。
Learning Tip

"本題考點為 C 語言字串走訪與指標運算。關鍵在於理解 `for(i=1; *s; i++, s++)` 的執行邏輯:`*s` 作為迴圈條件,會在遇到 NULL 字元 '\0' 時終止。由於 `i` 從 1 開始計數(而非 0),最終返回值會比實際字串長度多 1。常見陷阱是忽略初始值設定,誤選字串長度 7。"

學員答題分佈

①00%
②70%
③80%
④100%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目