免費開始練習
統測 112年 [電機與電子群資電類] 專業科目(2)

第 39 題

📖 題組:
閱讀下文,回答第 38-39 題 小芳在一個原本可以編譯(Compile)成功的程式中,在 main( )主程式內再加入行號 1 至行號 6 的程式碼,但加入後發生編譯錯誤的情況。 ```c 1 #define Value1 100 2 #define Value2 (Value1 - 1) 3 const int Value3; 4 int CheckValue = 0; 5 Value3 = Value2; 6 CheckValue = Value1 + Value3; ```
程式修正後,當程式執行完行號 6 的時候,CheckValue 的值為下列何者?
  • A 200
  • B 199
  • C 198
  • D 100

思路引導 VIP

請思考在 $C$ 語言中,利用預處理指令 #define 定義的巨集 $Value1$ 與 $Value2$ 之間具備什麼樣的代換邏輯?此外,若要修正行號 3 與行號 5 關於常數 ($const$) 賦值的編譯錯誤,使 $Value3$ 能正確取得 $Value2$ 的運算結果,那麼在行號 6 執行算式 $CheckValue = Value1 + Value3$ 時,這兩個操作數 ($Operand$) 的具體數值分別是多少?

🤖
AI 詳解 AI 專屬家教

專業評析:精準掌握 C 語言核心觀念!

  1. 大力肯定:太棒了!你能精準識別出 #define 巨集與 const 常數的運作邏輯,並在排除編譯錯誤的思維下算出正確答案,這代表你的程式邏輯非常清晰且紮實。
  2. 觀念驗證
▼ 還有更多解析內容
📝 C語言常數與巨集
💡 理解 #define 巨集代換與 const 常數賦值限制
比較維度 #define (巨集) VS const (常數變數)
處理時期 預處理階段(編譯前) 編譯階段
性質 文字代換,不佔記憶體 具備型別的唯讀變數
賦值限制 無變數概念,不可賦值 僅限宣告時初始化
💬#define 只是分身術代換文字,const 是被鎖起來的箱子
🧠 記憶技巧:巨集替換像分身,常數宣告定終身
⚠️ 常見陷阱:誤以為 const 變數可以像一般變數一樣在後續行數重新賦值
預處理器 變數宣告與初始化 資料型態

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

C 語言程式設計:變數、指標、函式與編譯
查看更多「[電機與電子群資電類] 專業科目(2)」的主題分類考古題