程式語言考題一問 - 高考
By Daniel
at 2015-04-22T07:07
at 2015-04-22T07:07
Table of Contents
※ 引述《pringles27 (拉拉)》之銘言:
: 好奇的地方是reference不是共用記憶體
: 所以y在裡面時不是應該已變為2了嗎?
: 還是須等到}結束才把結果回寫回記憶體呢?
: 是我觀念有誤嗎? 請大大解惑??
這題 20 分,當時我全拿,這樣應該夠資格解釋。
先回答原 po 您的疑惑,您的觀念沒錯,是補習班工讀生搞錯了。
這題其實在考 Scoping,但沒考到 Scoping 的實作,算客氣了。
以 Scoping 來說,又分成:
Dynamic Scoping
Static Scoping
出題老師在題目中沒講是那一種,代表他不夠謹慎。
還好題目程式只有兩層,用那一種最後答案都會一樣。
call by value 人人都會,不講了。
講第二小題的 call by reference
若使用 Dynamic Scoping
因為 by reference 的關係 Function A 的 X 與 Program B 的 Y 共用同
一塊記憶體空間。
當 Function A 使用到沒宣告變數 Y,會沿著副程式呼叫順序反方向找 Y
執行結果為
2 2
2
若使用 Static Scoping
因為 by reference 的關係 Function A 的 X 與 Program B 的 Y 共用同
一塊記憶體空間。
當 Function A 使用到沒宣告變數 Y,會往副程式的上一層找 Y
執行結果仍為
2 2
2
======================下面沒有西斯點分隔線==============================
Scoping 再往下還有重點:
Hole In Scope 議題
保留法、預設值法
Scoping 的實作
Dynamic Scoping --> Dynamic Link
Static Scoping --> Static Link
這兩個的重點就又一堆
做這種程式語言理論類題目我是不建議用實際的程式語言去驗它,因為
Fortran 只提供靜態記憶體配置
Pascal 使用全部運算
C 語言使用捷徑運算
C 語言事實上只有 Call By Value (我知道有指標,但它底層仍是 by value)
C 語言是 Static Scoping
如果題目考 Dynamic Scoping 結果拿 C 語言去驗它,出來的答案一定是錯的
補習班請工讀生寫的擬答常常有問題,有時候工讀生會把維基百科的內容貼
過來當擬答,維基百科最為人詬病的就是文章語法不通順、巷議街談道聽塗
說,像資訊管理、系統分析這類科目很重視語法通順、用字精準,貼維基文
章當作擬答只會降低補習班自身專業形象。
國考出的題目也常常模擬兩可,甚至有誤。
君若不信,請用 LISP 去寫 103 年高考程式語言第四題看看。
: 好奇的地方是reference不是共用記憶體
: 所以y在裡面時不是應該已變為2了嗎?
: 還是須等到}結束才把結果回寫回記憶體呢?
: 是我觀念有誤嗎? 請大大解惑??
這題 20 分,當時我全拿,這樣應該夠資格解釋。
先回答原 po 您的疑惑,您的觀念沒錯,是補習班工讀生搞錯了。
這題其實在考 Scoping,但沒考到 Scoping 的實作,算客氣了。
以 Scoping 來說,又分成:
Dynamic Scoping
Static Scoping
出題老師在題目中沒講是那一種,代表他不夠謹慎。
還好題目程式只有兩層,用那一種最後答案都會一樣。
call by value 人人都會,不講了。
講第二小題的 call by reference
若使用 Dynamic Scoping
因為 by reference 的關係 Function A 的 X 與 Program B 的 Y 共用同
一塊記憶體空間。
當 Function A 使用到沒宣告變數 Y,會沿著副程式呼叫順序反方向找 Y
執行結果為
2 2
2
若使用 Static Scoping
因為 by reference 的關係 Function A 的 X 與 Program B 的 Y 共用同
一塊記憶體空間。
當 Function A 使用到沒宣告變數 Y,會往副程式的上一層找 Y
執行結果仍為
2 2
2
======================下面沒有西斯點分隔線==============================
Scoping 再往下還有重點:
Hole In Scope 議題
保留法、預設值法
Scoping 的實作
Dynamic Scoping --> Dynamic Link
Static Scoping --> Static Link
這兩個的重點就又一堆
做這種程式語言理論類題目我是不建議用實際的程式語言去驗它,因為
Fortran 只提供靜態記憶體配置
Pascal 使用全部運算
C 語言使用捷徑運算
C 語言事實上只有 Call By Value (我知道有指標,但它底層仍是 by value)
C 語言是 Static Scoping
如果題目考 Dynamic Scoping 結果拿 C 語言去驗它,出來的答案一定是錯的
補習班請工讀生寫的擬答常常有問題,有時候工讀生會把維基百科的內容貼
過來當擬答,維基百科最為人詬病的就是文章語法不通順、巷議街談道聽塗
說,像資訊管理、系統分析這類科目很重視語法通順、用字精準,貼維基文
章當作擬答只會降低補習班自身專業形象。
國考出的題目也常常模擬兩可,甚至有誤。
君若不信,請用 LISP 去寫 103 年高考程式語言第四題看看。
推 emstarbucks: 查了一下資料,你是對的 !!謝謝 !! 04/22 07:49
推 pringles27: 感謝高手解惑 04/22 08:15
※ 編輯: fcouple (211.76.33.33), 04/22/2015 08:45:04 推 gary22204: 當時好像也是差不多方向考慮,不過沒全拿就是了qq 04/22 09:02
→ gary22204: 去年lisp改很鬆,當場唬出來(可能有唬中)拿快滿分傻眼 04/22 09:04
→ gary22204: 國考考過一輪才知道中文維基有多爛阿...... 04/22 09:05
推 lei70200: 推著眼點跟Scoping的想法 04/22 09:25
推 lakers110: 感謝高手 05/15 18:21
Tags:
高考
All Comments
By Hedy
at 2015-04-23T16:53
at 2015-04-23T16:53
By Xanthe
at 2015-04-23T20:00
at 2015-04-23T20:00
By Hardy
at 2015-04-27T01:57
at 2015-04-27T01:57
By Heather
at 2015-04-28T01:30
at 2015-04-28T01:30
By Sandy
at 2015-04-30T12:32
at 2015-04-30T12:32
By Heather
at 2015-05-03T10:53
at 2015-05-03T10:53
By Adele
at 2015-05-07T02:51
at 2015-05-07T02:51
Related Posts
程式語言考題一問
By Kyle
at 2015-04-21T22:18
at 2015-04-21T22:18
請問高考受訓住宿問題
By Dinah
at 2015-04-21T13:02
at 2015-04-21T13:02
有關高考會計學的命題大綱
By Andy
at 2015-04-21T08:38
at 2015-04-21T08:38
103年國營電機甲,地特四等,港務錄取心得
By Hardy
at 2015-04-20T22:54
at 2015-04-20T22:54
tkb熱流老師
By Kristin
at 2015-04-20T19:20
at 2015-04-20T19:20