免費開始練習
moea_joint_essay 108年 [資訊] 資訊管理、程式設計

第 二 題

📖 題組:
在常見的程式設計語言中,變數常區分為全域變數(Global Variable)與區域變數(Local Variable),並在某些情況下使用靜態變數(Static Variable),試回答下列問題:(16 分)
📝 此題為申論題,共 3 小題

小題 (二)

在一般程式設計中,若區域變數與全域變數同名,試問何者優先使用?(2 分)

思路引導 VIP

根據變數的遮蔽效應(Shadowing),內層變數的優先級高於外層變數。

🤖
AI 詳解
AI 專屬家教

在一般程式設計中,若區域變數與全域變數同名,程式會優先使用區域變數(此現象稱為變數遮蔽 Variable Shadowing)。

小題 (一)

何謂靜態變數與區域變數?並說明兩者的特性、差別及個別的生命週期。(6 分)

思路引導 VIP

解釋靜態變數與區域變數的定義。比較它們在作用域(Scope)、記憶體配置與生命週期(Lifetime)的差異。

🤖
AI 詳解
AI 專屬家教
  1. 區域變數 (Local Variable):宣告於函數或區塊內部的變數。其特性是僅在該函數或區塊執行時才有作用,並儲存於記憶體的堆疊 (Stack) 區。
  2. 靜態變數 (Static Variable):使用 static 關鍵字宣告的變數。若宣告於函數內,則具有區域作用範圍,但其值在函數呼叫之間會被保留,儲存於記憶體的資料區 (Data Segment)。 兩者的差別與生命週期:

小題 (三)

有一打彈珠機函數 balls,接收引數 input1、input2 分別代表輸入值與輸出倍數,其功能要求:80 %機率失敗,回傳值為 0;20 %機率成功,回傳值 = 輸入值*輸出倍數,宣告一變數 count 初始值 1,000,並記錄每次呼叫後之剩餘值。請在下列底線部分填入適當程式碼:(每項 2 分,共 8 分)

int balls ( int input1, int input2 ) { // input1:輸入值;input2:輸出倍數
(1) )
int output = 0;
if ( rand() >= (2) ) // rand()為亂數函數,0 <= rand() < 1
{
(3) )
}
count = (4) )
return output;
}

思路引導 VIP

分析程式邏輯: (1) 宣告 count,且需紀錄每次呼叫後的剩餘值(生命週期長),因此使用 static。

🤖
AI 詳解
AI 專屬家教

(1) static int count = 1000; (2) 0.8 (3) output = input1 * input2;

🏷️ 相關主題

物件導向程式設計與系統分析核心概念
查看更多「[資訊] 資訊管理、程式設計」的主題分類考古題