101年 高普考 高考三級 資訊處理 程式語言 試卷

pdf
224.06 KB
4 頁
MIS
侵權投訴
加載中. ..
PDF
101
年公務人員高等考試三級考試試題 代號36240
資訊處理
程式語言
考試時間: 2 小時
注意:
禁止使用電子計算器。
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
全四頁
一、給定下列的 BNF 語法規則(小寫字母 x, y, z 為終端符號,大寫字母為非終端符號,
S為起始符號,ε代表空字串):
S AB | CD | E
A xAy | ε
B zB | ε
C xC | ε
D yDz | ε
E xEz | F
F yF | ε
我們可以使用以上語法規則,推導出字串 xyz,但推導過程不唯一。請畫出三棵
可推導出 xyz 的剖析樹(parse tree)。(9分)
請列出所有長度為 6,且可由以上語法規則推導出的字串。(10 分)
二、考慮下列 C程式
#include
int f(void) {
static int x = 10; //
小題
x++;
return x;
}
int main(void) {
int j;
for (j = 0; j < 5; j++) {
printf("Value of f(): %dn", f());
}
return 0;
}
上列程式的執行結果為何?(10 分)
C語言中,一個變數的領域(scope)與生命期(lifetime)可以是不同的,請以
上列函數 f中的變數 x,來解釋這句話。(10 分)
(請接第二頁)
101
年公務人員高等考試三級考試試題 代號36240
資訊處理
程式語言
全四頁
三、以下 Java 程式片段試圖定義兩個有繼承關係的類別(classes),Parent Child,以
5print 方法(註解中標示的 A, B, C, D, E):
class Parent {
public void print() { // A
System.out.println( "In Parent" );
}
public void print( String message ) { // B
System.out.println( "In Parent" + 't' + message );
}
}
class Child extends Parent {
public void print( int value ) { // C
System.out.println( "In Child" + 't' + value );
}
public void print( String message ) { // D
System.out.println( "In Child" + 't' + message );
}
public int print() { // E
System.out.println( "In Child" );
return 5;
}
}
多載(overloading)與覆寫(overriding)是關於 print 方法的兩個不同的機制,請
以上列程式中定義的 5print 方法,說明那幾個是覆寫?那幾個是多載?為什
麼?(請以 A, B, C, D, E 方式作答)(15 分)
上列程式定義的 2個類別的 5print 方法中,那一個的型態部分會造成編譯錯誤?
為什麼?(6分)
(請接第三頁)
101
年公務人員高等考試三級考試試題 代號36240
資訊處理
程式語言
全四頁
四、請回答下列關於例外處理(exceptionhandling)的問題:
許多程式語言(例如:C++Java JavaScript)都有例外處理機制:try-catch
述與 throw 敘述。請簡述這兩個敘述的差別。(8分)
下列 Java 程式的執行結果為何?(12 分)
class FooException extends Exception {}
class ExceptionQuestion {
public void aMethod() throws FooException {
try {
System.out.println( "In aMethod" );
throw new FooException();
} catch ( FooException error ) {
System.out.println( "in first catch" );
throw new FooException();
} finally {
System.out.println( "Finally" );
}
}
public static void main( String[] args ) {
try {
System.out.println( "Start" );
ExceptionQuestion x =
new ExceptionQuestion();
x.aMethod();
System.out.println( "After method" );
} catch ( FooException e1 ) {
System.out.println( "In handler 1" );
} catch ( Exception e2 ) {
System.out.println( "In handler 2" );
}
System.out.println( "End" );
}
}
(請接第四頁)
101
年公務人員高等考試三級考試試題 代號36240
資訊處理
程式語言
全四頁
五、請回答下列 Web 網頁應用的問題:
下列網頁除內容外,也包含 CSScascading style sheet)指令與 JavaScript 程式碼。
請說明此網頁在瀏覽器的呈現效果(可繪圖說明),並解釋當按下網頁內的按鈕
Add)時,網頁會有什麼變化。(10 分)
Foo
tyle type="text/css">
li { color : red }
    id="list">
  • First
  • second" onclick="exec()">
    我們在製作網頁時,除了 HTML 外,我們也可同時使用 CSSDOMdomain
    object model)與 JavaScript。請說明四者所扮演的角色(彼此如何搭配與運作),
    可以用上列網頁為例來說明。(10 分)
    收藏 ⬇️ 下載