moea_joint_essay
108年
[資訊] 資訊管理、程式設計
第 二 題
📖 題組:
在常見的程式設計語言中,變數常區分為全域變數(Global Variable)與區域變數(Local Variable),並在某些情況下使用靜態變數(Static Variable),試回答下列問題:(16 分)
在常見的程式設計語言中,變數常區分為全域變數(Global Variable)與區域變數(Local Variable),並在某些情況下使用靜態變數(Static Variable),試回答下列問題:(16 分)
📝 此題為申論題,共 3 小題
小題 (二)
在一般程式設計中,若區域變數與全域變數同名,試問何者優先使用?(2 分)
思路引導 VIP
根據變數的遮蔽效應(Shadowing),內層變數的優先級高於外層變數。
小題 (一)
何謂靜態變數與區域變數?並說明兩者的特性、差別及個別的生命週期。(6 分)
思路引導 VIP
解釋靜態變數與區域變數的定義。比較它們在作用域(Scope)、記憶體配置與生命週期(Lifetime)的差異。
小題 (三)
有一打彈珠機函數 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;
}
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。