用戶【老張】點評問題和點評內容

【評論主題】35 解析度為 1000×1000 的彩色視訊(RGB 各 8 位元,30fps),如果要用 36Mbps 的速率傳輸,至少需要多 少壓縮倍率? (A) 10

【評論內容】RGB 各佔 8bits, 所以用24bits來表示顏色,因此一個畫禎(frame)要 24 X 1000 X 1000 = 24Mbps

【評論主題】12 若 X = 10011100,Y = 01110111,則 X 與 Y 的漢明距離(hamming distance)為多少? (A)3 (B)4

【評論內容】漢明距離就是把X xor Y 之後 1 的個數,也就是兩個等長度的二元碼,其位元值不相同位置的數目。

【評論主題】40 假設有一個 SQL 查詢包含下列四個子句,在查詢處理(query processing)過程中何者是最晚才執 行的? (A) FROM 子句 (B)

【評論內容】

同 39 題,執行順序由先到後為:

from 選擇和 join table 當成基礎資料。where 過濾資料(以 AND, OR, NOT等邏輯運算子過濾)。group by 聚合。having 過濾聚合的資料。select 回傳 query 的結果。order by 排序結果。limit 顯示資料的筆數。

因此根據題目,選C

【評論主題】30 執行下列 C 程式,輸出結果為何? (A) (2, 4) (2, 4) (3, 5) (B) (3, 4) (3, 4) (4, 5) (C) (3, 5) (3, 5

【評論內容】考 C 語言變數的 scope 與傳址呼叫。main 開始執行sub(&i, &j)執行為傳址呼叫,等等 *m 是 i 的值,*n 為 j 的值。故*m = i + *n; *m(也就是i的值) = 2 + 1 = 3*n = j + *m; *n(也就是j的值) = 1 + 3 = 4print("(%d, %d)", *m, *n); // 印出目前 *m, *n 的值,為 (3, 4)print("(%d, %d)", i++, j++); // i++ 代表印完後才加 1 ,i 的值為 *m = 3                             // j++ 代表印完後才加 1 ,j 的值為 *n = 4                             // 所以這裡印出 (3, 4)印完後i = 4, j = 5因此離開 sub 回到 main 列印結果為 (4, 5)故列印順序為 (3, 4) (3, 4) (4, 5) 選 (B)

【評論主題】29 下列 C 語言中的字串變數char str[] = \\"abc\\";下列那個指令的執行結果,與其他指令不同? (A)*str = 0; puts(str);

【評論內容】

A str 為空字串。B 把 ’/0’ 結束符號放在第一個元素, str 為空字串。C 利用 strcpy 函式把空字串 assign 給 str,因此 str 為空字串。D strcat 是字串連接函式,會把 str 後面連接上空字串,因此 str 結果為 abc題目問哪個執行結果不同,因此選D

【評論主題】27 執行下列 C++程式碼後,螢幕印出的數字為何? (A)3 (B)6 (C)9

【評論內容】

return (m>n) ? (m-n):(m+n);如果 m>n 則回傳 m-n ,否則回傳 m + n所以 f(3,4) = 7, f(6, 5) = 1, 原式變為 f(7, 1) = 6答案 6 選B

【評論主題】20 有關 Heap sort 演算法,主要是運用何種資料結構來設計? (A) Queue (B) Stack (C)

【評論內容】

如果這一題有答案是陣列,可能會不小心選下去。Heap 在設計上使用樹,而且一個 heap 是一顆 complete binary tree。選C因為 heap 是 completer binary tree 的這種特性,通常實作上使用1-D array 來實作,這可以降低空間浪費率。而且實作可以根據下面關係式比較好處理:

root 可以放 a[1]a[i] 的 父親 為 a[floor(i/2)]a[i] 的 左子為 a[2i]a[i] 的 右子為 a[2i +1]

第 14 題就是很好的例子。

【評論主題】26 考慮下列 C 語言結構變數(Structure variable)的宣告:下列何者設定句錯誤? (A) bill.id = -999; (B) bill.n

【評論內容】

B 會有 assignment to expression with array type error.原因是1. array 不可以直接給 array 賦值。2. pointer 不可以直接給 array 賦值。看一下範例比較容易了解:

char a[] = {'h', 'e', 'l', 'l', 'o'};char b[5];char* p = NULL;// 錯誤狀況char c[5] = a; // array 不可以直接給 array 賦值。char d[5] = p; // 2. pointer 不可以直接給 array 賦值。// 正確狀況*p = a; // 把 array 第一個地址 assign 給 point strcpy(b,a); //使用標準字串拷貝函數

而結構體出現這種問題通常用 strcpy 或 stmcpy 來處理,如果選項B改成:strcpy(bill.name, "A");就可以過關了。

【評論主題】19 有 n 個節點的連通無向圖(Connected Undirected Graph)G,假設其中每個邊(Edge)都有不同的加 權(Weight),今要在 G 中找出一最小展開樹(M

【評論內容】

通常算最小生成樹的演算法採用:

Borůvka's algorithmKruskal's algorithmPrim's algorithm

這些都屬於貪婪演算法(Greedy algorithm)

【評論主題】6 假設記憶體位址 200 中存放的資料是 201,位址 201 中存放的資料是 202,位址 202 中存放的資料是 205,今有一指令為 Load R13, [200],採用間接定址

【評論內容】

間接定址是建立在直接定址上的,也就是間接定址得到的數值是一個地址,透過這個地址找到最終資料。換句話說為兩次定址,第一次得到地址,第二次是目標資料。優點:擴大定址能力。缺點:要兩次參照,這樣造成速度較慢。因此 load r13, [200] 得到位址 200 中的資料為201,然後去位址 201 取資料,故得到 202,答案選C

【評論主題】8 在 C 語言程式中,宣告於函數(function)內的變數(未加 static 修飾字)會被配置於那個記憶體區段? (A) code segment (B) data seg

【評論內容】

記憶體的功能是提供處理器存取資料,在需要的時候再來存取。C有分配記憶體如下:

static / global 用來儲存全域變數,整個程式生命週期都會存在。stack 的部分是用來儲存函式的呼叫與區域變數的資訊,通常在函式結束時空間會被釋放,特點有下:stack 通常由 CPU 管理,程式無法去修改。變數會自動被配置,而且不用時會自動被 free。如果太多資料存在 stack 可能導致 stack overflow (例如遞迴層數太深等)。heap 是可以用來存動態分配的記憶體,特點有下:通常由程式來管理。可能導致 memory leap。C語言可以透過 malloc(), free() 等函式來配置或移除。code 是存放程式所需要的指令。

根據題意,選C

【評論主題】28 假設多工(multi-programming)作業系統採用分頁(paging)來管理記憶體,可用 6 GB 記憶體分為 150 個框架(frame),每個框架空間都是 40 MB。

【評論內容】

這題指出一個frame是 40mb,且 6gb 由 150 frame 組成,所以這題的6gb = 40 mb * 150 = 6000mb故:1gb = 1000 mb (因此在此題的環境下 1gb 不是 1024mb)根據題目給定條件第一個程式 1.3 gb = 1300 mb,需要 1300 / 40 = 32.5,故需要 33 個 frame ,選項A錯。第二個程式 2.7 gb = 2700 mb,需要 2700 / 40 = 67.5,故需要 68 個 frame,選項B錯。第三個程式 1.2 gb = 1200 mb,需要 1200 / 40  = 30,故需要 30 個 frame,選項C正確,選C。尚未使用的框架 = 150 - 33 - 68 - 30  = 19,選項D錯。

【評論主題】8 假如一棵二元樹的 8 個節點分別以 A-H 表示,已知後序走訪的結果依序是 FECBGDHA,而中序走訪的結果依序是 FECAHBDG,則下列那一個節點是樹葉節點? (A)節點 A

【評論內容】

小弟才疏學淺,如有錯誤請各位先進指正,謝謝。112 資訊技師 修改成:112 專技高考_電子工程技師:電子計算機原理這題的程式解法可以參考leetcode 105, 106。https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/description/

【評論主題】39 篩選資料是否符合的條件敘述例如 AND, OR, NOT 邏輯運算子通常寫在那一個 SQL 查詢子句內? (A) FROM 子句 (B) G

【評論內容】

同 40 題,查詢子句執行順序由先到後為:

from 選擇和 join table 當成基礎資料。where 過濾資料(以 AND, OR, NOT等邏輯運算子過濾)。group by 聚合。having 過濾聚合的資料。select 回傳 query 的結果。order by 排序結果。limit 顯示資料的筆數。

因此根據題目,選D