所屬科目:水利會◆程式設計概要
1.【圖 1】Python 程式片段執行後,螢幕輸出結果為何?
(A) [[1, 2], [3, 4]] (B)[[1, 9], [3, 4]] (C) [[9, 2], [3, 4]] (D)程式執行時發生錯誤
2.【圖 2】Java 程式片段執行後,螢幕輸出結果為何?
(A) true,true (B)true,false (C) false,true (D) false,false
3.【圖 3】C++程式片段執行後,螢幕輸出結果為何?
(A) 2,10 (B)7,10 (C) 2,5 (D) 7,3
4.【圖 4】Java 程式片段執行後,螢幕輸出結果為何?
(A) Ann (B)Bob (C) Cal (D)程式執行時發生錯誤
5.【圖 5】C++程式片段執行後,螢幕輸出結果為何?
(A) 4 (B)6 (C) 24 (D) 48
6.【圖 6】C#程式片段執行後,螢幕輸出結果為何?
(A) 3,2 (B)3.4,2 (C) 2,3 (D) 17,5
7.【圖 7】C++程式片段執行後,螢幕輸出結果為何?
(A) A (B)B (C) BC (D) BCD
8.【圖 8】C 程式片段執行後,螢幕輸出結果為何?
(A) 12 (B)15 (C) 3 (D) 0
9.【圖 9】C 程式片段執行後,螢幕輸出結果為何?
(A) 0 (B)1 (C) 14 (D) 16
10.【圖 10】Python 程式片段執行後,螢幕輸出結果為何?
(A) 130 (B)150 (C) 160 (D)程式執行時發生錯誤
11.【圖 11】Python 程式片段執行後,螢幕輸出結果為何?
(A) 0 [0] (B)2 [0, 2] (C) 3 [0, 2, 3] (D) True [0, 2, 3]
12.【圖 12】C++程式片段執行後,螢幕輸出結果為何?
(A) 9 (B)18 (C) 27 (D) 15
13.【圖 13】Python 程式片段執行後,螢幕輸出結果為何?
(A) 1 1 1 1 (B)1 2 1 3 (C) 1 2 3 4 (D)程式執行時發生錯誤
14.下列何者為 Python 語言中合法的變數名稱? (A) total_score (B)2value (C) class (D) user-name
15.在 C++標準函式庫中,若需要一種可動態改變大小、並可用索引方式存取元素的序列容器,較適合 使用下列哪一項? (A) std::vector (B)std::stack (C) std::queue (D) std::pair
16.在 C#語言中,列舉型別(enumeration type, enum type)的主要用途為何? (A)用來表示一組固定且有名稱的選項 (B)用來自動排序陣列中的所有元素 (C)用來捕捉程式執行時發生的例外 (D)用來建立可動態增減大小的字串集合
17.關於 Python 的 dictionary(字典),下列敘述何者正確? (A) dictionary 以鍵(key)對應值(value)的方式儲存資料,且同一個 dictionary 中的鍵不可重複 (B)dictionary 中的資料一定會依照值(value)的大小自動排序 (C) dictionary 的鍵(key)一定只能使用整數,不能使用字串 (D) dictionary 與 list 完全相同,都是以連續整數索引存取資料
18.關於 C++的 break,下列敘述何者正確? (A) break 可用來結束目前最內層的迴圈(loop)或 switch 敘述 (B)break 會直接結束整個程式執行,效果等同於 exit()函式 (C) break 只能用在 if 敘述中,不能用在迴圈或 switch (D) break 會跳過本次迴圈剩餘敘述後,直接進入下一次迴圈判斷
19.在 C++中,關於 virtual 虛擬函式(virtual function),下列敘述何者正確? (A)虛擬函式(virtual function)只能宣告為靜態成員函式(static member function) (B)虛擬函式(virtual function)可讓衍生類別(derived class)覆寫(override),並支援透過基底類別(base class)指標(pointer)或參考(reference)進行動態繫結(dynamic binding) (C)虛擬函式(virtual function)只能出現在全域函式(global function)中 (D)宣告虛擬函式(virtual function)後,該函式不能被衍生類別(derived class)重新定義
20.關於 C 語言的指標(pointer),下列敘述何者正確? (A)指標變數可用來儲存某個物件或函式的位址,並可透過間接運算子(indirection operator)*存取其所指 向的物件 (B)指標變數只能儲存整數值,不能儲存位址 (C)若使用取址運算子(address-of operator)&,會直接刪除變數內容 (D)指標變數一旦宣告後,就不能再改變其所儲存的位址
21.在 C 語言中,設有變數宣告 int x = 7, y = 15;,則執行條件式 if (x > 5 && y < 10) 時,其邏輯判斷 結果為何? (A)真(True) (B)偽(False) (C)編譯錯誤 (D)執行期錯誤
22.在未經特別優化的標準氣泡排序法(Bubble Sort)中,若要將一個含有 n 筆觀測資料的陣列進行排 序,不論該資料初始狀態為何,其時間複雜度恆為何? (A) O(n) (B)O(n log n) (C) O(n2 ) (D) O(2n )
23.在一筆擁有 n 個元素的「未排序」陣列中,若使用循序搜尋法(Sequential Search)尋找特定目標物, 在最壞情況下需要進行多少次比對? (A) 1 次 (B)log2 n 次 (C) n 次 (D) n 2 次
24.在 Python 語言中,執行運算式 [x * 2 for x in range(3)] 後,產生的串列(List)內容為何? (A) [0, 2, 4] (B)[2, 4, 8] (C) [0, 2, 4, 8] (D) [0, 1, 2, 3]
25.下列 SQL 語法中,何者能正確從名為 Reservoir 的資料表中,篩選出容量(Capacity)大於 100 萬噸 的所有欄位資料? (A) GET ALL FROM Reservoir WHERE Capacity > 100 (B)SELECT * FROM Reservoir WHERE Capacity > 100 (C) SELECT Reservoir WHERE Capacity > 100 (D) FIND * IN Reservoir WHERE Capacity > 100
26.在 C 語言中,下列何者屬於編譯前的「預處理指令」(Preprocessor Directive)? (A) import (B)include (C) #include (D) using
27.在撰寫 HTML 網頁程式時,下列哪一個標籤是用來定義網頁之超連結? (A)<link> (B)<a> (C)<href> (D)<url>
28.在設計一個遞迴函數(Recursive Function)時,為避免程式陷入無窮遞迴,最核心且不可或缺的設 計要素為何? (A)宣告靜態變數 (B)終止條件(Base Case) (C)全域變數的引入 (D)動態記憶體分配
29.在 Python 中,若執行敘述 print(type(5.0)),其輸出的資料型態類別為何? (A)<class 'int'> (B)<class 'float'> (C)<class 'double'> (D)<class 'decimal'>
30.在前端網頁設計中,CSS(Cascading Style Sheets)最主要的作用為何? (A)處理瀏覽器端之邏輯運算與事件觸發 (B)定義網頁的排版與視覺外觀樣式 (C)負責與後端資料庫進行資料傳輸 (D)宣告網頁的結構與文件內容節點
31.在 C 語言中,若執行【圖 14】程式碼,則螢幕上將輸出何值?
(A) 15 (B)25 (C) 35 (D) num 陣列的起始記憶體位址
32.在 C 語言中,若執行【圖 15】程式片段,螢幕上將顯示出何值?
(A) 4 (B)6 (C) 10 (D) 12
33.假設有一雜湊表(Hash Table)大小為 7(索引為 0 至 6),雜湊函數為 H(key) = key(mod 7),並採用 「線性探測法」(Linear Probing)處理碰撞。若依序插入鍵值 15, 8, 22, 29,請問最後存入的鍵值 29 會被 安置在雜湊表的哪一個索引位置? (A)索引 1 (B)索引 2 (C)索引 3 (D)索引 4
34.在一個已經由小到大排序妥當且含有 128 筆觀測資料的陣列中,使用二元搜尋法(Binary Search) 尋找目標值,在「最壞情況」下,最多需要進行幾次比對即可確認目標是否存在? (A) 128 次 (B)64 次 (C) 8 次 (D) 12 次
35.已知一棵二元樹的前序走訪(Pre-order Traversal)結果為 ABDEC,中序走訪(In-order Traversal) 結果為 DBEAC,則該二元樹的後序走訪(Post-order Traversal)結果為何? (A) DEBCA (B)DEBAC (C) EDBCA (D) DECBA
36.快速排序法(Quick Sort)在「平均情況」下,其時間複雜度為何? (A) O(n) (B)O(nlog n) (C) O(n2 ) (D) O(2 n )
37.在 JavaScript 的 DOM(Document Object Model)操作中,下列哪一行程式碼可以將網頁中 id 為"title" 的元素內容修改為"Water Level"? (A) document.getElementByName("title").value = "Water Level"; (B)document.getElementById("title").innerHTML = "Water Level"; (C) document.id("title").innerHTML = "Water Level"; (D) document.getElementById("title").style = "Water Level";
38.在 C 語言中,設有變數宣告 int a = 6, b = 12;,若執行敘述 a += b++;,則執行完畢後 a 與 b 的值 分別為何? (A) a = 18, b = 12 (B)a = 18, b = 13 (C) a = 19, b = 13 (D) a = 6, b = 13
39.在標準 32 位元或 64 位元作業系統環境下,C 語言標準內建資料型態 int 通常在記憶體中佔用多少 空間? (A) 1 位元組(Byte) (B)2 位元組(Bytes) (C) 4 位元組(Bytes) (D) 8 位元組(Bytes)
40.一棵深度為 d(假設根節點深度為 1)的二元樹(Binary Tree),其所能擁有的「最大節點總數」為 何? (A) 2 d (B)2 d-1 (C) 2 d -1 (D) 2 d+1
第一題:
請任選 C、C++、C#、Java 或 Python 其中一種語言設計一完整程式,作答時須先說明使用何種語言。 程式需設計一個函式或方法 check_password(password),判斷密碼是否符合下列規則:【20 分】
1.長度至少 8 個字元
2.至少包含一個英文字母
3.至少包含一個數字 主程式請使用下列密碼資料逐一測試,並輸出每個密碼是否合格。 密碼資料如下: passwords = ["abc12345", "abcdefg", "12345678", "code2026"] (
備註:程式須依題意使用變數、條件判斷與迴圈完成,不得直接以多行輸出指令列印題目所列之固定答案; 若未依題意設計程式邏輯,不予計分。本題須定義函式或方法 check_password(password),不得僅針對題目 所列四組密碼直接輸出固定結果。)
(一)請問該程式執行完畢後,螢幕上輸出的 Result 1 與 Result 2 分別為何?【10 分】
(二)請從電腦作業系統「記憶體配置(Memory Stack Frame)」以及「變數存取機制」的角度,詳細 剖析為什麼「步驟一」與「步驟二」會產生不同的變數修改效果,並藉此說明傳值呼叫 (Call-by-value)與傳址呼叫(Call-by-address)兩者之本質差異。【10 分】