資訊處理 101 年程式語言考古題
題目為考試當年公告版本,實務標準請以現行規範為準。
舉出2 種影響程式語言設計之重要因素,並各舉一例說明之。(10 分)
執行下列C++程式,如果有錯誤,寫出所犯之錯誤,如果沒錯誤,寫出所列印之結 果:(15 分) C++測試程式: #include "stdafx.h" // VisualC 所需要 #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) // VisualC 所需要之main() { int mdata[] = {5,2,8,0,10,-8,3,7,18,-4}; int i = 11, j = 10, k = 0, s = 0, a = 0; for (int i = 1; i < j-- - k; ) { if (j > k++ * 3 && (a = mdata[i++]) > 0) s += i++; cout<<" i="<<i<<" j="<<j<<" k="<<k<<" s="<<s <<" a="<<a<< endl; }; cout<<"* i="<<i<<" j="<<j<<" k="<<k<<" s="<<s <<" a="<<a<< endl; for (int s = 0; i <= 12; i++) { s += i; }; cout<<"* i="<<i<<" j="<<j<<" k="<<k<<" s="<<s <<" a="<<a<< endl; return 0; }
簡釋何謂例外處理(Exception handling),提供例外處理對程式語言有何重大益處? 就例外處理程式(Exception handler)之程式結構與繫合例外至例外處理程式 (Binding exceptions to handler)兩議題,比較C++與Java 兩程式語言之設計。(15 分)
就下列BNF 文法,寫出下列敘述(Statement)以最左推導法(Leftmost derivation) 之詳細推導過程,以及繪出其剖析樹(Parse tree)。(20 分) BNF: <exp> -> <id> + <exp> | <id> * <exp> | ( <exp>) | <id> <id> -> w | x | y | z 敘述: w + x * ( y + z ) 101年特種考試地方政府公務人員考試試題 類 科: 資訊處理
何謂動態繫合(Dynamic binding)?比較C++與Java 對動態繫合之設計。(20 分) 客戶 業務員 訂單 PK PK 業務員編號 客戶編號 名稱 電話 地址 姓名 地址 電話 PK 訂單編號 FK1 客戶編號 FK2 業務員編號 訂購日期 金額 六、瞭解「結構化查詢語言」(SQL: Structural Query Language)是開發網際網路資料庫 系統必備的技能,假設一個資料庫系統中有三個資料表,資料表的實體關係圖 (Entity-Relationship Diagram)如下圖所示,其中PK 表示為主索引鍵,FK 表示為 外來鍵: 請依序寫出下列各種查詢對應的SQL 敘述:(20 分) ㈠請列出姓名為「甲乙科技」的客戶所有資料。 ㈡請列出所有姓「王」的業務員姓名。 ㈢請列出訂單金額曾大於一百萬的客戶名稱。 ㈣請列出有經手過「甲乙科技」這位客戶訂單的所有業務員的編號與姓名(業務員 的資料不可重複列出)。 客戶編號 訂單編號 K 業務員編號 PK PK P