LONGEPASS
電腦軟體設計(C++)/C++/Q10
簡單
正確率 -
Q10.

有關C++語言前置處理的描述,何者正確?

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

難易度分析

2 / 5

本題旨在辨析 C++ 編譯過程的基礎概念,透過設定關於指令屬性與位置的干擾選項,考查學習者對前置處理階段定義的掌握程度。

正確答案:③前置處理是在編譯前進行

③ 前置處理是在編譯前進行:前置處理階段確實發生在編譯之前,編譯器會先呼叫前置處理器處理所有以 `#` 開頭的指令(如巨集展開、檔案包含),再將結果交給編譯器進行語法分析。

錯誤選項解析

  • ① 前置處理指令屬於C 的語法指令:前置處理指令並非 C++ 語法的一部分,而是由前置處理器 (Preprocessor) 獨立處理的指令,不屬於編譯器的語法指令範疇。
  • ② 前置處理指令只能出現在程式的最前頭:前置處理指令可出現在程式碼的任何位置,並非僅限於檔案開頭,例如可在函數內部使用 `#ifdef` 進行條件編譯。
  • ④ #include 和 #set 是前置處理指令:C++ 的前置處理指令包含 `#include`、`#define`、`#ifdef`、`#ifndef`、`#endif`、`#undef` 等,但 `#set` 並非有效的前置處理指令,正確應為 `#define`。
Learning Tip

"本題核心考點為 C++ 前置處理器的運作時機與指令種類。常見陷阱包括:誤認 `#set` 為合法指令(實為 `#define`)、混淆前置處理與編譯階段的順序。切記所有前置處理指令皆以 `#` 符號開頭,且處理順序為:原始碼 → 前置處理 → 編譯 → 組譯 → 連結。"

學員答題分佈

①前置處理指令屬於C 的語法指令0%
②前置處理指令只能出現在程式的最前頭0%
③前置處理是在編譯前進行0%
④#include 和 #set 是前置處理指令0%

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

相似類型題目