農會 資訊管理類程式設計107 年第 6 題單選題
在程式語言中,主程式執行副程式之呼叫與返回,通常靠何種資料結構來進行參數傳遞?
A正確答案
函式呼叫與返回依賴「堆疊(Stack)」的後進先出(LIFO)特性來儲存返回位址與引數。
為什麼答案是 A
堆疊(Stack)具有後進先出(LIFO)特性,系統使用「呼叫堆疊(Call Stack)」來儲存副程式的返回位址、區域變數與引數,確保能正確返回主程式。
考點:堆疊應用考點:佇列應用考點:資料型態考點:樹狀結構
載入中…
完整詳解
Pro · 無限重點 函式呼叫與返回依賴「堆疊(Stack)」的後進先出(LIFO)特性來儲存返回位址與引數。
看到「副程式呼叫與返回」、「遞迴」,直覺選「堆疊(Stack)」!
逐選項分析
A堆疊應用✓ 正確
堆疊(Stack)具有後進先出(LIFO)特性,系統使用「呼叫堆疊(Call Stack)」來儲存副程式的返回位址、區域變數與引數,確保能正確返回主程式。
B佇列應用✕
佇列(Queue)為先進先出(FIFO)結構,常用於作業系統的任務排程、訊息佇列或緩衝區,不適用於函式呼叫的巢狀返回。
C資料型態✕
記錄(Record)是一種複合資料型態(如C語言的struct),用於將不同型別的資料組合在一起,並非用來控制程式執行流程的結構。
D樹狀結構✕
樹狀結構(Tree)用於表達具有階層或分支關係的資料(如檔案目錄、DOM樹),與副程式呼叫的線性返回機制無關。
常見資料結構與應用場景對照
| 資料結構 | 核心特性 | 典型應用場景 |
|---|
| 堆疊 (Stack) | 後進先出 (LIFO) | 副程式呼叫/返回、遞迴、撤銷(Undo)功能 |
| 佇列 (Queue) | 先進先出 (FIFO) | 任務排程、訊息佇列、廣度優先搜尋(BFS) |
| 樹 (Tree) | 階層/分支結構 | 檔案系統目錄、資料庫索引、DOM結構 |
考生易將堆疊與佇列混淆。記住:需要「原路返回」或「最新優先」的場景(如副程式呼叫、遞迴)選堆疊;需要「排隊等待」的場景(如印表機排程)選佇列。