高考申論題
105年
[資訊處理] 程式語言
第 一 題
📖 題組:
在程式語言中變數可歸類成下列幾種:static variable、stack-dynamic variable、explicit heap-dynamic variable、implicit heap-dynamic variable。 (一) 請比較上述變數的差異。(12 分) (二) 在 C++語言裡,如果有變數定義如下 int *data; data=new int; delete data; 請問“data”屬於那一種變數?試說明之。(3 分)
在程式語言中變數可歸類成下列幾種:static variable、stack-dynamic variable、explicit heap-dynamic variable、implicit heap-dynamic variable。 (一) 請比較上述變數的差異。(12 分) (二) 在 C++語言裡,如果有變數定義如下 int *data; data=new int; delete data; 請問“data”屬於那一種變數?試說明之。(3 分)
📝 此題為申論題,共 2 小題
小題 (一)
請比較上述變數的差異。(12 分)
思路引導 VIP
看到本題,應先從「記憶體配置時間(Binding Time)」與「記憶體區段(Data/Stack/Heap)」兩個維度來切入比較四種變數。對於子題二,務必敏銳區分「指標變數本身」與「動態配置出的匿名記憶體空間」兩者在記憶體存放位置與生命週期的根本差異,這是拿滿分的關鍵陷阱。
小題 (二)
在 C++語言裡,如果有變數定義如下 int *data; data=new int; delete data; 請問“data”屬於那一種變數?試說明之。(3 分)
思路引導 VIP
本題重點在於區分「指標變數本身」與「指標所指向的動態記憶體空間」。考生需清楚指出 data 是一個宣告在堆疊(Stack)上的指標變數,而 new int 產生的無名變數才是配置在堆積(Heap)上的顯式動態變數。