在資料庫中,建有資料表「CompanyA」與「CompanyB」,其分別為A與
B兩家電腦公司本身販賣的產品,內容如下表所示,表格有兩個欄位,欄
位分別代表ID與產品品項名稱。請回答下列問題:
CompanyA
CompanyB
寫一個SQL指令查詢上述兩家公司販售的所有產品品項,重複的品項不
要刪除,且產品品項名稱按字母順序排序,查詢結果如下表所示。(10分)
Item
CPU
GPU
Keyboard
Monitor
Mouse
Mouse
NB
NB
PC
PC
Router
Tablet
Tablet
寫一個SQL指令查詢上述兩家公司販賣的相同產品品項,且產品品項名
稱按字母順序反項排序,查詢結果如下表所示。(15分)
Item
Tablet
PC
NB
Mouse
寫一個SQL指令查詢CompanyB公司有販售但CompanyA公司沒有販售
的產品品項名稱,查詢結果如下表所示。(15分)
Item
CPU
Router
ID
Product
1
CPU
在人工智慧與機器學習領域,狀態空間表示一個問題的所有可能解的集
合,如下圖所示。請從狀態A 開始,以字母排序的先後順序,用兩種常
用的演算法:廣度優先搜尋(Breadth-First Search, BFS)與深度優先搜尋
(Depth-First Search, DFS),分別列舉搜尋的結果。(25 分)
K
H
L
D
G
A
B
F
C
E
J
I
P4
NB
請列舉“This is a book”中間有空格的連續字串,經過下列程式執行後,
兩個printf 的輸出內容。(25 分)
#include <stdio.h>
#include <string.h>
void reverse(char str[], int start, int end) {
char temp;
while (start < end) {
temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
int main() {
char str[] = "This is a book";
int len = strlen(str);
reverse(str, 0, len - 1);
printf("%s\n", str);
int word_start = 0;
for (int i = 0; i < len; i++) {
if (str[i] == ' ') {
reverse(str, word_start, i - 1);
word_start = i + 1;
}
}
reverse(str, word_start, len - 1);
printf("%s\n", str);
return 0;
}