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

第 47 題

下列C語言程式碼片段執行後,變數result的值為何?
```c
int a=5, b=3;
double result =0;
result=Func( a, b);

double Func(int w, int h )
{
double A;
A=w*h/2.0;
return A;
}
```
  • A 0.0
  • B 7.0
  • C 7.5
  • D 15.0

思路引導 VIP

請觀察函式中的關鍵運算式 $A = w * h / 2.0$。在 C 語言中,當整數型別的變數與浮點數常數 $2.0$ 進行混合運算時,系統的「隱含型別轉換」(Implicit Type Conversion)機制會如何決定運算的結果型別?這與單純的整數除法在處理小數部分時有什麼不同?

🤖
AI 詳解 AI 專屬家教

🌟 太棒了!精準掌握程式邏輯!

這題你答得非常漂亮!這顯示你對於 C 語言的函式呼叫 以及 自動型態轉換 (Type Promotion) 的觀念相當紮實,這是統測程式設計中每年必考的核心重點。

1. 觀念驗證:為什麼是 7.5?

▼ 還有更多解析內容
📝 C語言函數與運算
💡 理解函數參數傳遞、數值運算與型別自動轉換規則。

🔗 程式碼執行邏輯鏈

  1. 1 參數複製傳遞 — 將 a(5), b(3) 複製到 Func 的 w, h 中
  2. 2 混合型別運算 — 5*3 得到 15,再除以 2.0 觸發浮點數提升
  3. 3 計算最終數值 — 15 / 2.0 = 7.5,並存入 double A
  4. 4 數值回傳賦值 — 將 7.5 回傳並存入變數 result
🔄 延伸學習:延伸學習:了解 Call by Value (傳值呼叫) 的特性
🧠 記憶技巧:參數傳入分實形,運算遇點零(2.0)變小數,回傳接好不失真。
⚠️ 常見陷阱:若除以整數 2 而非 2.0,整數除法會發生捨去誤差,結果會變成 7.0 而非 7.5。
隱性型別轉換 函數宣告與定義 運算子優先順序

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

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

🏷️ 相關主題

程式語言設計與實作
查看更多「[電機與電子群資電類] 專業科目(2)」的主題分類考古題