096 年度 11902 電腦軟體設計 ( 第二堂 -C++) 乙級技術士技能檢定學科測試試題本試題有單選題與複選題, 共 70 題, 單選題每題 0.5 分, 複選題每題 1 分, 計 65 分, 測試時間為 120 分鐘 每題中所有選項均正確才給分, 否則該題以零分計算, 答錯不倒扣分數 准考證號碼 : 另附有答案卡, 請在答案卡上作答 姓名 : 一 單選題 : 1.(4) 下列何者不是關連式表格 (Relational Tables) 中關連表的特性? 不含重覆的值組 (Tuples) 值組 (Tuples) 之間沒有順序性 屬性之間沒有順序性 屬性值可為一個集合 2.(2) 與資料庫系統相較, 下列有關檔案系統的觀念那一個不正確? 檔案系統資料共享性比資料庫差 檔案系統的使用效率比資料庫差 檔案系統資料獨立性比資料庫差 檔案系統資料結構化程度比資料庫低 3.(2) SQL 中若要比較屬性是否為 NULL 值, 應用下列何者? = IS EQUAL AS 4.(4) 關連式資料表 (Relational Tables)Employee(EID,DNo,Salary), 分別表示員工之員工編號 所屬部門編號 薪水, 假設要列出一些員工姓名, 其條件為其薪水小於任何一個部門編號為 5 的員工薪水, 若用巢狀 (Nested) 結構查詢, 則其外層 ( 第一層 ) 的條件應如何寫才對? Salary<EVERY(SELECT Salary FROM Employee WHERE DNo=5) Salary < ANYONE(SELECT Salary FROM Employee WHERE DNo=5) Salary < (SELECT Salary FROM Employee WHERE DNo=5) Salary <ANY(SELECT Salary FROM Employee WHERE DNo=5) 5.(1) ANSI/SPAC 三層式架構中, 資料庫系統的邏輯資料獨立性 (Logical Data Independence) 指的是下列何者? 修改外部層 (External Layer) 不影響概念層 (Conceptual Layer) 修改概念層 (Conceptual Layer) 不影響外部層 (External Layer) 修改內部層 (Internal Layer) 不影響概念層 (Conceptual Layer) 修改概念層 (Conceptual Layer) 不影響內部層 (Internal Layer) 6.(1) 資料庫交易 (Transaction) 中, 所有已承諾 (Commit) 的改變將永遠保留的特性, 稱為下列何者特性? 持續性 (Durable) 一致性 (Consistent) 隔離性 (Isolated) 簡易性 (Simplicity) 7.(2) 在關連式資料表 (Relational Tables) 中, 下列何者不會變更到資料庫狀態? 新增 查詢 刪除 修改 8.(4) 有關弱實體型態 (Weak Entity Types) 的候選鍵 (Candidate Key), 何者有誤? 部分是弱實體本身屬性 部分是其他實體屬性 一定會有複合鍵 (Composite Key) 一定只有一組 9.(1) 若要建立一個名為 Student 的資料表, 其中包含 Name, Address 及 Department 三個欄位, 而 Name 欄位中的資料不允許虛值 (Null Value), 試問以下那個 SQL 查詢可達到上述要求的功能? CREATE TABLE Student (Name char(20) Not Null, Address char(50), Department char(20)); INSERT INTO Student (Name char(20) Not Null, Address char(50), Department char(20)); ADD TABLE Student (Name char(20) PRIMARY KEY, Address char(50), Department char(20)); CREATE TABLE Student (Name char(20) Unique, Address char(50), Department char(20)); 10.(3) 關連式資料表 (Relational Tables)Employee(EID,DNo,Salary), 分別表示員工之員工編號 所屬部門編號 薪水, 假設要列出不屬於任何部門員工姓名, 則其條件應如何寫才對? DNo = {} DNo = NULL DNo IS NULL DNo AS EMPTY 二 複選題 ( 答案含一個或一個以上 ): 11.(124) 下列屬 C++ 與 JAVA 皆擁有的資料型態, 是那三項? 長整數 (Long Integer) 浮點數 (Floating Point) 指標型態 (Pointer) 多維陣列 (Multi-dimensional Array) 096 電腦軟體設計 ( 第二堂 -C++) 乙 8-1( 序 001)
12.(34) 右列運算式 :, 下列那二項敘述是正確的? if (average=0 and count=0) then average=count=1 if (average==count) then average=sum/count if (count>0) then average = sum/count if count=0 then average=1 13.(24) 下列有關堆積 (Heap) 的敘述, 那二者是正確的? 可應用於資料壓縮 可視為一棵完整二元樹 (Complete Binary Tree) 可視為一棵二元搜尋樹 (Binary Search Tree) 只要利用一維陣列即可表示堆積的資料結構 14.(3) 將資料鍵值依照某特定技巧或數學公式計算法則, 從原來的鍵值轉換成新的鍵值或位址, 此種搜尋方式是下列那一項? 二元搜尋法 (Binary Searching) 費式搜尋法 (Fibonacci Searching) 雜湊搜尋法 (Hashing) 循式搜尋法 (Sequential Searching) 15.(134) 結構化程式迴圈之控制計數, 可以使用以下那三個資料型態? int float short long 16.(3) 加入節點 12 於下圖中的 AVL Tree, 下列敘述何者是正確? 需做一次 single rotation 及一次 double rotation 僅需做一次 single rotation 僅需做一次 double rotation 需做二次 single rotation 17.(14) 下面的文法可以產生那二種字串 (String)? abab aabba abba aabab 18.(3) 下圖為符號 A B C D 之 Huffman Tree, 若壓縮碼為 01110111011, 經還原成明碼後, 下列何者是明碼之最後一個符號? A B C D 19.(2) 形成 8 層之 AVL 平衡樹 (Balanced Tree) 至少需要幾個節點? 53 54 55 56 20.(4) 對於 C 程式的宣告 char s[3][4]; char *p;, 下列那一個正確? p=s; p =s[1][2]; p=s[0][0]; p = *s 21.(4) 有關 C++ 語言中變數和常數作用的敘述, 以下那一個錯誤? 變數用來存放資料, 以利程式執行, 可以是整數, 浮點, 字串的資料型態 程式中可以操作 改變變數的值 常數存放固定數值, 可以是整數, 浮點, 字串的資料型態 程式中可以操作 改變常數值 22.(2) 下列遞迴式其解何者正確? θ(nlogn) θ(n ) θ(n) θ(logn) T(n)=T(n-1)+ n, 096 電腦軟體設計 ( 第二堂 -C++) 乙 8-2( 序 001)
23.(2) 依據以下類別之定義, 下列 C++ 程式最後一個敘述之輸出, 下列何者是正確? My name is Rover, and my breed is a Weiner My name is Rover, and my breed is a Weiner 不會印出任何內容 24.(4) 下列為含有五個運算元之運算式, 此運算式是以前序追蹤 (Preorder Traversal) 方式表示, 其中 "*" 表示乘法運算, 這些前序追蹤所對應的運算樹 (Expression Tree), 其高度何者是最高? * * 1 * 2 3 * 4 5 * * 1 2 * * 3 4 5 * * * 1 2 * 3 4 5 * 1 * 2 * 3 * 4 5 25.(2) 下列 C++ 程式片段, 輸出結果何者正確? 1 2 3 4 26.(12) 依據以下類別之定義, 下列之敘述那二者是正確的? pb() 可以使用成員 b1, b2 及 d pd() 可以使用成員 b1 及 d outside() 僅可以使用成員 pd() outside() 僅可以使用成員 pb() 27.(2) 以下仿 C 程式, 若 n=3 將得到那一個結果? 12 4 6 程式無法停止 28.(4) C++ 中定義 Template 函數如下 : 下列函數呼叫何者是錯誤? int x=3, y=4; cout << larger(x,y); float x=3, y=4; cout << larger(x,y); char x='3', y='4'; cout << larger(x,y); char x[]="3", y[]="4"; cout << larger(x,y) 096 電腦軟體設計 ( 第二堂 -C++) 乙 8-3( 序 001)
29.(13) 某二元樹 (Binary Tree) 之中序走訪 (Inorder Traversal) 為 GDBAEHCIFJ, 而前序走訪 (Preorder Traversal) 為 ABDGCEHFIJ, 對於該二元樹之性質, 下列敘述那二者是正確的? 分之度為 1 之節點共有 3 個 分之度為 2 之節點共有 4 個 葉節點 (Leaf Node) 共 4 個 二元樹共有 5 層 30.(1) 將右列堆積 (Heap)[ 20 15 17 10 12 5 16 7 3 11] 的最大元素刪除後, 所形成的堆積何者正確? [17 15 16 10 12 5 11 7 3] [17 15 16 10 12 11 5 7 3] [17 16 15 10 12 5 11 7 3] [20 15 17 10 12 5 16 7 3] 31.(2) 一個遞迴演算法如下, 下列之敘述何者是正確的? mysteryy(3,2) 之結果為 18 mysteryy(3,2) 之結果為 20 mysteryy(3,2) 之結果為 38 mysteryy(3,2) 之結果為 42 32.(1) 假設二元樹之左子樹有 3000 個節點, 右子樹有 100 個節點, 欲以前序 (Preorder) 追蹤此二 元樹, 則樹根前面之序列有幾個節點? 0 100 3000 3100 33.(23) 下列有關延伸二元樹 (Extended Binary Tree) 的敘述, 那二者是正確的? 當二元樹為 歪斜樹 (Skewed Tree) 時, 具有最小之內路徑長度 (Internal Path Length) 當二元樹 為完整二元樹 (Skewed Tree) 時, 具有最小之外路徑長度 (External Path Length) 當 二元樹為完整二元樹 (Complete Binary Tree) 時, 具有最小之內路徑長度 (Internal Path Length) 當外路徑長 (External Path Length) 愈大時, 內路徑長度 (Internal Path Length) 則愈小 34.(12) 對於下列程式語言的敘述, 那二者正確? PROLOG 適合人工智慧應用 SNOBOL 適合處 理字串 FORTRAN 商業資料處理 COBOL 適合科學運算使用 35.(14) 陣列 (Array) 是一組變數的組合, 下列對這些變數的描述, 那二項是正確? 具有相同的資 料型態 具有不同的資料型態 分散存在記憶體空間 線性相鄰地存在記憶體空間 36.(134) 下列屬於執行副程式時活動紀錄 (Activation Record) 中之組成元素的, 為那三項? 返回 點 (Return Point) 全域變數 (Global Variable) 區域資料 (Local Data) 實際參數 (Actual Parameter) 37.(34) 下列敘述那二者是正確的? 38.(12) 物件導向語言私有實例 (Private Instance) 變數的描述, 以下那二個正確? 不能被外面的 類別直接修改 外面的類別可以透過該類別的公開方法修改 外面的類別可以使用該類別 產生的物件名稱, 加上一點和私有實例變數名稱修改 外面的類別可以使用該類別名稱, 加上一點和私有實例變數名稱修改 39.(1) 有一高度為 3 的 20 階 B 樹 (B Tree of Order 20), 根節點 (root node) 至少有多少個子節點 (Child Node)? 2 3 10 20 40.(1) 以下那一個 C++ 語言運算子有最高的優先等級? unary + binary + % * 41.(3) 下列敘述何者錯誤? 佇列 (Queue) 具有先進先出的特性 堆疊 (Stack) 具有先進後出的特 性 鏈結串列 (Linked List) 必須佔用連續記憶體的空間 在求出費氏級數 (Fibonacci Sequence) 時常使用堆疊的資料結構 096 電腦軟體設計 ( 第二堂 -C++) 乙 8-4( 序 001)
42.(3) 下列 C++ 程式之執行結果何者正確? 11 0 0 11 11 11 0 0 43.(13) 依序將 18,35,37,25 存入 7 個 Bucket( 單一 Slot, 位址編號為 0 至 6), 若以重雜湊 (Rehashing) 來處理溢位情形, 雜湊函數如下 : 則下列敘述哪二者正確? 第二個雜湊函數共使用一次 第二個雜湊函數共使用二次 第三個雜湊函數共使用一次 第三個雜湊函數共使用二次 44.(4) 搜尋二元樹 (Binary Tree) 之某一個值 x, 在最壞情況下處理 Find(x) 所需之時間, 下列敘述何者是正確? θ(log n) θ(nlog n) θ(n) 45.(2) C++ 程式指令 printf("%6.2f", 597.7231); 執行後輸出為以下那一個? 597.723 597.72 000597.72 597 46.(24) 以下那二個是 C++ 語言的關鍵字 (Keyword)? BIOS this then friend 47.(124) 下列具有 "case" 多重選擇器 (Multi-selector) 的程式語言, 是那三項? C PASCAL LISP ADA 48.(4) 下列仿 C 函數原型及變數宣告, 那一個是錯誤函數呼叫? function1(); function2( r, s); function3( r, a, r, a); function4( a, b, c, d, e); 49.(1) 將資料 1 2 3 4 依序分別經由佇列 (Queue) 做排列則下列敘述何者是正確的? 以 Queue 排列只有 1 組輸出 以 Queue 排列只有 6 組輸出 以 Queue 排列只有 12 組輸出 以 Queue 排列只有 24 組輸出 50.(3) 河內塔 (Tower of Hanoi) 問題中, 欲搬動 n 個套環, 最少必須移動幾次? n n(n+1)/2 51.(24) 下圖階數 (Order) 為 5 之 B-tree, 下列敘述那二者是正確的? 插入鍵值 (Key)20 於原始 B-tree, 則此 B-tree 之節點共有 1 次分裂 (Split) 插入鍵值 (Key)65 於原始 B-tree, 則此 B-tree 之節點共有 1 次分裂 (Split) 插入鍵值 (Key)80 於原始 B-tree, 則此 B-tree 之高度會增加 插入鍵值 (Key)85 於原始 B-tree, 則鍵值 64 是放在 (48,60) 節點內 096 電腦軟體設計 ( 第二堂 -C++) 乙 8-5( 序 001)
52.(2) 下列有關物件導向的多型 (Polymorphism) 觀念, 何者是不正確? 多型 (Polymorphism) 性指同一訊息 (Message) 在不同 class 中有不同對應的 Methods 動態多型性 (Dynamic Polymorphism) 與繼承 (Inheritance) 是兩個不相關的概念 C++ 語言利用 Overloading 達到靜態多型 (Static Polymorphism) 的功能 C++ 語言利用 Virtual Function 達到動態多型的功能 53.(4) 下列那一類程式語言最能夠支援抽象資料形態 (Abstract Data Types)? 指令式 (Imperative) 函數式 (Functional) 宣告式 (Declarative) 物件導向 (Object-oriented) 54.(4) 下列敘述何者正確? 圖形採深度優先搜尋 (Depth-First Search) 追蹤是利用佇列結構 最小展開樹 (Minimum Spanning Tree) 是唯一的 一連通圖若有 n 個頂點, 則至少具有 n 個邊 相鄰矩陣 (Adjacency Matrix) 可以表示有方向圖 (Directed Graph) 55.(123) 下列關於循序搜尋法 (Sequential Searching) 的敘述, 那三項為正確? 被搜尋的資料記錄不需要依鍵值大小排列 又稱為線性搜尋法 (Linear Searching) 對於有 N 個資料記錄檔案最壞情況需比較 N 次 若該檔案有 N 筆資料, 找到一筆正確資料, 平均需比較 N 次 56.(1) 有一 C 程式片段如下, 則當程式執行結束後,ans1 和 ans2 之值分別為何? ans1=12, ans2=23 ans1=12, ans2=35 ans1=30, ans2=23 ans1=30, ans2=35 57.(12) 下圖為街道圖, 其中方框內數字表城市編號, 線段表兩城市間街道之長度有一有線電視網路公司欲舖設地下纜線, 將訊號傳送到六個城市為得到最低道路挖掘成本, 下列那二個路段是不必要挖掘? 1-2 3-4 3-5 4-5 58.(1) 一雜湊函數 (Hashing Function) 為 H(X)=X mod 11, 則 H(35) 與下列那一項會碰撞 (Collision)? H(13) H(25) H(38) H(100) 096 電腦軟體設計 ( 第二堂 -C++) 乙 8-6( 序 001)
59.(1) 依據下列仿 Pascal 之程式語法結構, 若以 Pass- by-reference 方式進行參數傳遞, 程式在執行後, 下列之結果何者是正確的? 3 1 1 1 2 2 2 1 60.(14) 下列 C++ 程式那二個敘述在執行編譯 (Compile) 時會產生錯誤? ptr1 = pay"; *ptr1 = `P'; ptr2 = phone"; *ptr2 = `O' 61.(4) 若依 ASCII 順序為其字母之大小, 下列那ㄧ序列不是最大堆積 (Max Heap)? [ G F E D C B A] [G F E A B C D] [G D F A C B E] [G E D A B F C] 62.(3) 若一個只包含根節點的二元樹其高度為 1, 則高度 (Height) 為 7 的二元樹最多有幾個節點? 63 64 127 128 63.(2) 針對以下 C++ 程式, 執行完後輸出結果是那一個? 0 20 可以編譯, 無法執行 無法編譯 64.(12) 關於 C++ 語言 new 運算子功能的描述, 以下那二個正確? 動態配置記憶體 造出物件 回收未使用的記憶體 顯示記憶體位置 65.(1) 以下仿 C 程式執行完, 輸出是那一個? x=2.0,y=2.5 x=-2.0,y=2.0 x=2.0,y=-2.5 x=2.0,y=2.0 096 電腦軟體設計 ( 第二堂 -C++) 乙 8-7( 序 001)
66.(1) 下列四棵二元樹 (Binary Tree), 滿足最大堆積 (Max-heap) 特性之二元樹共有幾棵? 0 1 2 3 67.(3) 以下何種排序演算法屬於各個擊破法 (Divide and Conquer) 的排序演算法? 選擇排序法 (Selection Sort) 插入排序法 (Insertion Sort) 合併排序法 (Merge Sort) 泡沫排序法 (Bubble Sort) 68.(24) 下列哪些運算子, 那二者不能定義超載 (Overload) >> sizeof?: 69.(4) 欲搜尋資料共有 2048 筆, 若採用二元搜尋法 (Binary Search), 最差情況下需搜尋幾次才能找到一筆已知的資料? 2048 10 11 12 70.(234) 下列具有遞迴 (Recursive) 能力的語言, 是那三項? FORTRAN77 SMALLTALK JAVA C++ 096 電腦軟體設計 ( 第二堂 -C++) 乙 8-8( 序 001)