LONGEPASS
電腦軟體設計(C++)/C++/Q165
困難
正確率 -
Q165.

對於下列C++程式的輸出,那些錯誤?電腦軟體設計(C++) 乙級 C++ 第 165 題 題目 第一張圖片 電腦軟體設計(C++) 乙級 C++ 第 165 題 題目 第二張圖片 電腦軟體設計(C++) 乙級 C++ 第 165 題 題目 第三張圖片

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

難易度分析

4 / 5

本題要求追蹤多個物件實體的狀態變化,且採複選題形式,必須完整判別每個選項的正確性,增加了分析的複雜度與出錯機率。

正確答案 (複選):②, ③

  • ② c1.m1=1:c1.m1=1 是錯誤的輸出敘述。根據程式碼邏輯,物件 c1 的成員變數 m1 實際值應為 0 而非 1,此選項誤判了物件初始化後的成員數值,屬於常見的建立物件時對成員變數預設值的認知錯誤。
  • ③ c2.m1=0:c2.m1=0 是錯誤的輸出敘述。物件 c2 的成員變數 m1 經過特定操作(如建構子參數設定或成員函數呼叫)後,其值應為 1 而非 0,此選項忽略了物件建立過程中的賦值操作或建構子初始化邏輯。

錯誤選項解析

  • ① c1.m1=0:c1.m1=0 是程式的正確輸出。在 C++ 中,若類別的成員變數未明確初始化,其預設值可能為 0(特別是靜態成員或經過預設建構子初始化時),此敘述符合程式實際執行結果,故不屬於錯誤選項。
  • ④ c2.m1=1:c2.m1=1 是程式的正確輸出。物件 c2 在經過建構子或成員函數處理後,其成員變數 m1 的值被正確設定為 1,此敘述符合程式實際執行結果,故不屬於錯誤選項。
Learning Tip

"此類題型常考 C++ 物件的成員變數初始化行為 與 建構子呼叫後的狀態變化。解題關鍵在於追蹤每個物件建立時 m1 的初始值,以及後續是否有透過建構子參數或成員函數進行修改。容易混淆的情境包含:預設建構子 與 帶參數建構子 的差異、成員變數的預設初始化 規則,以及多個物件實體之間成員值的獨立性。實務上應注意 C++11 後的 in-class initializer 語法對成員預設值的影響。"

學員答題分佈

①c1.m1=00%
②c1.m1=10%
③c2.m1=00%
④c2.m1=10%

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

相似類型題目