2018年4月12日 星期四

計概15-07副程式與函數-公職試題

【選擇題】

C01.關於參數(parameter)以傳參考(pass by reference)方式之敘述下列何者正確 (A)主程式把參數的值傳給副程式,並在副程式內建立一個變數,以便將參數的記憶體位址傳給副程式 (B)主程式把參數的值傳給副程式,並將記憶體內可用空間的位址傳副程式,以便副程式存放傳回值 (C)主程式和副程式共用代表某記憶體位址的變數,也就是在主程式和副程式中,會有名稱可能不同但參考到相同記憶體位址的變數 (D)主程式和副程式共用代表某記憶體位址的變數,而這個變數只存在於主程式中,副程式直接參考其記憶體位址,不須為此參考建立任何變數。[109地方四等電子]

Pass by Reference,主程式的變數與副程式的變數共用一個記憶體位址,會影響實際值。

Call by Value,主程式的變數與副程式的變數不共用記憶體位址,不會影響實際值。

 

D02.關於將參數(parameter)以傳值(pass by value)方式傳遞之敘述,下列何者正確? (A)是一種讓副程式改變主程式裡面的參數值的方法 (B)代表某記憶體位址的變數,由主程式和副程式共用 (C)在主程式和副程式當中,要有相同名稱的變數,才能順利傳值 (D)介於主程式和副程式之間的連繫,是單一方向的。[109普考電子]

傳值:主程式的參數與副程式的參數不共用記憶體位址,不會影響實際值,可以有不同名稱。

 

C03.下列那一種資料結構最適合用來置放遞迴函式(recursive function)之區域變數(local variables) (A)hash table (B)queue (C)stack (D)tree[109鐵路員級]

stack:先入後出,後入先出。

遞迴函式:函式在執行中,會不斷地自己呼叫自己,適合採用stack

 

D04.概念上,下列何者與其他三者相比,差異較大? (A)函數(function) (B)方法(method) (C)程序(procedure) (D)執行緒(thread)[109鐵路員級]

函數:可重複使用的程式片段。

方法:物件的執行功能。

程序:可重複使用的最小程式碼區塊。

執行緒:作業系統中進行運算排程的最小單位,被包含在Process中。

 

D05.有關以遞迴(Recursion)或迴圈(Iteration)設計程式,下列何者錯誤? (A)所有的遞迴函式都可以轉換為迴圈函式 (B)所有的迴圈函式都可以轉換為遞迴函式 (C)通常遞迴函式執行效率較迴圈函式慢 (D)為了維護函式呼叫的正確順序與次數,遞迴函式執行時需要用到佇列(Queue)資料結構,而迴圈函式則須用到堆疊(Stack)資料結構。[110鐵路員級]

(D)遞迴函式會用到堆疊(Stack)資料結構,迴圈函式會用到佇列(Queue)資料結構。

 

D06.遞迴程序(recursive procedures)是一種常見的編程方式,但如果一個程式中出現大量的遞迴程序呼叫,常會因為遞迴呼叫的深度過深,而造成記憶體使用量過大超出可用範圍。在此所指的記憶體,指的是下列那個區塊? (A)文字部分(text segment) (B)靜態數據部分(static data segment) (C)動態數據部分(dynamic data segment) (D)堆疊部分(stack segment)[111關務四等]

使用遞迴程序時,資料會儲存在堆疊中,遞迴呼叫次數過多,會浪費堆疊空間。

 

B07.河內之塔函式定義Hanoi(A, B, C, N)中,下列何者正確? (A)N可以省略 (B)A, B, C, N皆是形式參數 (C)A, B, C, N皆是實際參數 (D)A, B, C不可指定為中繼盤柱。[112地方四等電子]

河內塔的解法是遞迴。假設有三根柱子和N個大小不同的環。欲將N個環由A柱移到C柱,移動規則:一次只能移動一個環;在搬移的過程中,大環不能壓住小環。

 

D08.在一個多工的電腦系統內,下列那個情況並不會將正在執行(running)狀態的程序,轉換到另一種狀態? (A)程序工作結束 (B)程序執行到需要I/O的資源 (C)程序執行時間已經用完它所被分配的時槽 (D)程序執行一個遞迴函式(recursive function)的呼叫。[112國安五等]

遞迴函式:函式不只能被其他函式呼叫,也能自我呼叫(self-calling)

 

D09.事先寫好的函式(function)經過編譯(compile)後,將目的檔(object file)集合起來存放於一個檔案供其他程式連結使用,這種檔案稱為 (A)系統呼叫(System Call) (B)虛擬碼(Pseudo code) (C)中斷服務常式(Interrupt Service Routine) (D)函式庫(Library)[112普考電子]

事先寫好的函式(function)經過編譯(compile)後,將目的檔(object file)集合起來存放於函式庫供其他程式連結使用。

 

C10.假設有8個大小不一的穿孔圓盤,一開始由大到小依序套在A柱,最大的圓盤被壓在最底下;想逐一移到C柱,過程中可以暫時放在B柱,只能先移動最上方的最小圓盤,放入任何柱子的圓盤下方不能有比較小的圓盤。從一根柱子成功移動一個圓盤到另一根柱子稱為移動1次,將這A柱的8個圓盤全都移到C柱須移動至少幾次? (A)63 (B)128 (C)255 (D)256[113初考資處]

河內塔的解法是遞迴。移動次數 = 2 ^ n - 1 = 2 ^ 8 - 1 = 255

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。