LONGEPASS
數位電子/程式語言/Q44
簡單
正確率 -
Q44.

在C 語言程式的編譯過程中,哪一過程是將組合語言轉換為CPU 可讀取並解析的目標碼(object code)?

數位電子 · 乙級 · 程式語言 · Q44

難易度分析

2 / 5

此題考查對程式轉換流程中各個步驟技術功能的精確理解,需要考生具備辨別不同語言層級轉換階段之定義的能力。

正確答案:①Assembler

① Assembler:Assembler(組合語言編譯器)負責將組合語言(Assembly Language)逐行翻譯為機器碼(Machine Code),產生 CPU 可直接執行的目標碼(Object Code)。此為編譯流程中將人類可讀的助記符轉換為二進位指令的關鍵步驟。

錯誤選項解析

  • ② Compiler:Compiler(編譯器)的作用是將高階語言(如 C 語言)轉換為組合語言或低階中繼碼,而非直接產生目標碼。此選項混淆了編譯器與組合語言編譯器的職責分界。
  • ③ Linker:Linker(連結器)的功能是將多個目標檔(Object Files)與函式庫(Libraries)合併,解析外部符號參考後產生最終的可執行檔(Executable)。它不負責將組合語言轉換為目標碼。
  • ④ Preprocessor:Preprocessor(前置處理器)在編譯前處理巨集展開(Macro Expansion)、標頭檔引入(#include)及條件編譯(#ifdef)等指令。它僅進行文字層級的替換,不涉及任何程式碼轉換為目標碼的過程。
Learning Tip

"本題核心考點為 C 語言編譯四階段的職責劃分:前置處理(Preprocessing)→ 編譯(Compilation)→ 組合(Assembly)→ 連結(Linking)。常考陷阱在於混淆 Compiler 與 Assembler 的輸出產物——Compiler 輸出組合語言,Assembler 才輸出目標碼。實務上需熟悉 `gcc -E`、`gcc -S`、`gcc -c` 等參數對應的階段輸出檔。"

學員答題分佈

①Assembler0%
②Compiler0%
③Linker0%
④Preprocessor0%

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

相似類型題目