申論 1在達文西密碼一書中有提及Fibonacci 序列為1,1,2,3,5,8,13,21,…,即其定義為f(n) = f(n-1) + f(n-2),n≥3,f(1) = f(2) = 1,請以PASCAL,C,JAVA 中任一種語言寫一程式來計算Fibonacci 數f(n),並請使用遞迴副程式(recursive call,即副程式呼叫本身)。(20 分)
本卷皆為申論題,點「看答案與解析」查看擬答。
弱點分析
未作答的題目不計分。看我的紀錄
申論 2試寫出一BNF 文法,使其產生二進位數字,且數字之值為3 之倍數。(20 分)
申論 3㈠若程式語言本身不提供捷徑計算,則下列虛擬指令程式片段會出現什麼錯誤訊息?(10 分)index := 1;while(index <= listlen) and (list[index] <> key) do index := index + 1;(假設list[1..listlen]為被查詢之陣列,而key 為要查詢之值)㈡試說明Ada 程式語言預設為不提供捷徑計算之理由,並舉例說明之。(10 分)
申論 4一個平行程式語言(concurrent programming language)較非平行程式語言在設計上須增加競爭(competition)及合作(cooperation)同步(synchronization)機制,試以Ada 或Java 程式語言分別說明之。(20 分)
申論 5試算出下列虛擬指令之時間複雜度:(每小題10 分,共20 分)㈠for i = 0 to n dobeginj = i ;while j > 0 do j = j / 2;end㈡for i = 0 to n dobeginj = i ;while j > 0 do j = j - 1;end