免費開始練習
地特四等申論題 105年 [資訊處理] 程式設計概要

第 null 題

📖 題組:
如果我們採取不同參數傳遞的方法,請回答下面程式執行的結果:(每小題 4 分,共 12 分) (一) pass-by-reference (二) pass-by-name (三) pass-by-value-result ```c int y=1, x=1; int fun(int a, int b) {b+=a; a=b+x; return a;} void main() { int x=2; y=fun(x, y) + y; printf(“x=%d, y=%d”, x, y); } ```
null
📝 此題為申論題

思路引導 VIP

遇到這類參數傳遞題型,首先釐清「全域變數」與「區域變數」的作用域,並確立運算式的求值順序(通常假設由左至右先計算函數副作用)。接著針對傳參考與傳值結果進行推導;而「傳名呼叫」則要特別注意考題刻意設計的同名變數 x,通常是為了測驗巨集展開所造成的「名稱捕獲 (Name Capture)」現象。

🤖
AI 詳解 AI 專屬家教

【解題關鍵】釐清各參數傳遞機制對變數的讀寫時機與作用域,特別注意本題刻意設計全域與區域變數同名 x,在傳名呼叫中易引發「名稱捕獲 (Name Capture)」;計算時假設運算式依由左至右順序求值。 【解答】 初始狀態:

▼ 還有更多解析內容

🏷️ 相關主題

C/C++ 程式設計:語法、指標與記憶體管理
查看更多「[資訊處理] 程式設計概要」的主題分類考古題