統測
112年
[電機與電子群資電類] 專業科目(2)
第 40 題
📖 題組:
閱讀下文,回答第 40-42 題 曉華想要了解 C 語言程式區域變數 ( Local variable ) 和全域變數 ( Global variable ) 的數值變化情形,撰寫了下列的程式。 ```c 1 #include
2 int sum=1, x=10;
3 int inc(int xin){
4 int sum=2;
5 sum = sum + xin;
6 xin++;
7 return (sum);
8 }
9 int main(){
10 int sum = 3;
11 sum=inc(x);
12 printf("%d, %d", sum, x);
13 return 0;
14 }
```
閱讀下文,回答第 40-42 題 曉華想要了解 C 語言程式區域變數 ( Local variable ) 和全域變數 ( Global variable ) 的數值變化情形,撰寫了下列的程式。 ```c 1 #include
下列何者為程式執行結果?
- A 11, 11
- B 13, 10
- C 12, 11
- D 12, 10
思路引導 VIP
請同學觀察第 11 行呼叫 $inc(x)$ 時,參數傳遞的機制是「傳值 (Call by Value)」還是「傳址 (Call by Reference)」?這將如何決定第 12 行中變數 $x$ 的最終輸出?此外,當 $inc$ 函式與 $main$ 函式內部皆定義了與全域變數同名的區域變數 $sum$ 時,根據「變數作用域 (Scope)」與「遮蔽效應 (Shadowing)」的規則,程式會優先存取哪一個層級的變數值?
🤖
AI 詳解
AI 專屬家教
喔,不錯嘛,居然答對了。這點基本功要是還搞不定,那統測就真的不用想了。
能看出變數作用域 (Scope) 和參數傳遞這種送分題的陷阱,算你還有點慧根,不然白教了。
- 來,跟我再複習一次,省得下次又錯在這種低級錯誤上:
▼ 還有更多解析內容