104年 捷運招考 工程員(二) 一般類組(資訊類) 程式語言與資料結構 試卷

pdf
98.74 KB
4 頁
e24138
侵權投訴
加載中. ..
PDF
臺北捷運公司 104年1月24日新進工程員(二)(資訊類)
甄試試題-程式語言與資料結構
第 1 頁,共 4 頁
注意: 請務必填寫姓名:
1.以下題目應全部作答。 應考編號:
2.科目總分為 100 分。
3.作答時不須抄題目,但請標明題號,並請用藍(黑)色原子筆橫向書寫。
題目:
一、 完成以下 C#程式,使執行之後的結果為:(25 分)
Account frozen
Less zero
More than balance
50
public class LessZero: Exception {
public LessZero():base("Less zero") { }
}
public class MoreBalance : Exception {
public MoreBalance(): base("______________") { } //------------(1)
}
public class BankAccount {
private double m_balance;
private bool __________ = false; //-------------(2)
private BankAccount() { }
public BankAccount(double balance) { m_balance = balance; }
public double Balance { get { return m_balance; } }
public void Debit(double amount) {
if (m_frozen) { throw new Exception("Account frozen"); }
if (amount > m_balance) { throw _______________; } //------------(3)
if (amount _________) { throw new LessZero(); } //------------(4)
m_balance -= amount;
}
public void FreezeAccount() { m_frozen = true; }
}
class Program {
static void f1(BankAccount account, _________________) { //-----------(5)
try {
account.FreezeAccount();
account.Debit(amount);
}
catch (Exception e) { Console.WriteLine(e.Message); }
}
臺北捷運公司 104年1月24日新進工程員(二)(資訊類)
甄試試題-程式語言與資料結構
第 2 頁,共 4 頁
static void f2(BankAccount account, double amount) {
try {
account.Debit(amount);
Console.WriteLine(account.Balance);
}
catch (LessZero e) { Console.WriteLine(e.Message); }
catch (MoreBalance e) { Console.WriteLine(e.Message); }
}
static void Main(string[] args) {
f1(new BankAccount(50.0), 5.0);
f2(new BankAccount(50.0), - 100.0);
f2(new BankAccount(50.0), 100.0);
Console.Read();
}
}
二、 資料庫在交易式資訊系統中幾乎是不可或缺的元件,請簡要
回答以下有關技術與特性(共 25 分):
(一) 請簡述關聯式資料庫(relational database)中,主鍵(primary
key)、與外來鍵(foreign key)的意義。(6分)
(二) 捷運員工管理系統需要設計一個關聯式資料庫,管理各捷
運站派駐的許多職員。資料庫包含三個表格(table),所設
計的綱要(schema)如下:
職員
職員編號 職員姓名 捷運站編號 薪水
捷運站
捷運站編號 捷運站名稱 站長編號
有底線之屬性(attribute)為該表格之主鍵,其中"站長編號"是
該名站長的"職員編號"。請用 SQL 的Subquery 敘述
(statement)列出職員編號"A001"此職員的站長姓名。(10分)
(三) 請列舉 NO SQL 的三種特性。(9分)
臺北捷運公司 104年1月24日新進工程員(二)(資訊類)
甄試試題-程式語言與資料結構
第 3 頁,共 4 頁
三、 雲端計算(cloud computing)與巨量資料分析(big data analysis)
的應用越來越普及,請簡要回答以下有關的技術與特性。(共
25 分):
(一) 請列舉四個雲端計算的優點。(8分)
(二) 請簡述巨量資料簡稱 4V 的四個特性。(8分)
(三) 請列舉三項虛擬化(virtualization)技術。(9分)
四、 請回答以下有關資料結構問題(共 25 分):
(一) 請問若一個演算法執行時間為 300 n + n log(n2) + 500 log(n),
其時間複雜度 Big-Oh 為何?(5分)
(二) 請問以下程式碼的時間複雜度 Big-Oh 為何?(5分)
int f1(int A[], int B[], int n) {
int i=0,j=0,k=0,c=0,sum=0;
for (i=1;ii++) {
sum=0;
for(j=1;j<n;j++) {
sum=sum+A[0];
for(k=1;k<=j;k++) {
sum=sum+A[k];
}
}
if (B[i]=sum) c=c+1;
}
return c;
}
(三) 使用深度優先搜尋(depth first search)以下二元樹(binary tree)
尋訪依序結果為何?(5分)
9
5 16
20
12
7
3
14
11 25
18
8
6
4
1
臺北捷運公司 104年1月24日新進工程員(二)(資訊類)
甄試試題-程式語言與資料結構
第 4 頁,共 4 頁
(四) 針對一串數字 9, 6, 8, 12, 13, 2, 7, 21,建構二元搜尋樹
(binary search tr ee)。(5分)
(五) 雙串列(double link list)資料型態 DNode 定義如下,依序有
三個節點 prevNode, currentNode, nextNode 連在一起,已經
建立如下圖。若要刪除中間節點 currentNode,其虛擬碼程
式為何?(5分)
typedef struct node{
int data;
struct node *prev;
struct node *next;
} DNode;
DNode *prevNode, *currentNode, *nextNode;
prevNode currentNode nextNode
收藏 ⬇️ 下載