107年 鐵路特考 高員三級 資訊處理 程式語言 試卷

pdf
67.49 KB
4 頁
win7 2007
侵權投訴
加載中. ..
PDF
107
年公務人員特種考試警察人員一般警察人員考試及
107
特種考試交通事業鐵路人員考試試題
代號:70620 全四頁
第一頁
考試別 鐵路人員考試
等別 高員三級考試
類科別 資訊處理
科目 程式語言
考試時間 2 小時
※注意:
禁止使用電子計算器。
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
本科目除專門名詞或數理公式外,應使用本國文字作答。
一、Java 程式語言採用 dynamic dispatching請問下面的 Java 程式輸出為何?並請略加解
dynamic dispatching20 分)
import java.lang.*;
class A1 {
public void accept(B1 V, C1 W) { System.out.println("1.n");
V.visit(W, this); }
public void accept(B2 V, C2 W) { System.out.println("2.n");
V.visit(W, this); }
public void accept(B3 V, C3 W) { System.out.println("3.n");
V.visit(W, this); }
}
class A2 extends A1 {
public void accept(B1 V, C1 W) { System.out.println("4.n");
V.visit(W, this); }
public void accept(B2 V, C2 W) { System.out.println("5.n");
V.visit(W, this); }
public void accept(B3 V, C3 W) { System.out.println("6.n");
V.visit(W, this); }
}
class A3 extends A2 {
public void accept(B1 V, C1 W) { System.out.println("7.n");
V.visit(W, this); }
public void accept(B2 V, C2 W) { System.out.println("8.n");
V.visit(W, this); }
public void accept(B3 V, C3 W) { System.out.println("9.n");
V.visit(W, this); }
}
class B1 {
public void visit(C1 W, A1 U) { System.out.println("11.n");
W.inspect(U , this); }
public void visit(C2 W, A2 U) { System.out.println("12.n");
W.inspect(U , this); }
public void visit(C2 W, A3 U) { System.out.println("13.n");
W.inspect(U , this); }
public void visit(C3 W, A3 U) { System.out.println("14.n");
W.inspect(U , this); }
}
(請接第二頁)
107
年公務人員特種考試警察人員一般警察人員考試及
107
特種考試交通事業鐵路人員考試試題
代號:70620 全四頁
第二頁
考試別 鐵路人員考試
等別 高員三級考試
類科別 資訊處理
科目 程式語言
class B2 extends B1 {
public void visit(C1 W, A1 U) { System.out.println("15.n");
W.inspect(U , this); }
public void visit(C2 W, A2 U) { System.out.println("16.n");
W.inspect(U , this); }
public void visit(C2 W, A3 U) { System.out.println("17.n");
W.inspect(U , this); }
public void visit(C3 W, A3 U) { System.out.println("18.n");
W.inspect(U , this); }
}
class B3 extends B2 {
public void visit(C1 W, A1 U) { System.out.println("31.n");
W.inspect(U , this); }
public void visit(C2 W, A2 U) { System.out.println("32.n");
W.inspect(U , this); }
public void visit(C2 W, A3 U) { System.out.println("33.n");
W.inspect(U , this); }
public void visit(C3 W, A3 U) { System.out.println("34.n");
W.inspect(U , this); }
}
class C1 {
public void inspect(A1 U, B1 V)
{ System.out.println("41.n"); }
public void inspect(A2 U, B2 V)
{ System.out.println("42.n"); }
public void inspect(A3 U, B3 V)
{ System.out.println("43.n"); }
}
class C2 extends C1 {
public void inspect(A1 U, B1 V)
{ System.out.println("51.n"); }
public void inspect(A2 U, B2 V)
{ System.out.println("52.n"); }
public void inspect(A3 U, B3 V)
{ System.out.println("53.n"); }
}
(請接第三頁)
107
年公務人員特種考試警察人員一般警察人員考試及
107
特種考試交通事業鐵路人員考試試題
代號:70620 全四頁
第三頁
考試別 鐵路人員考試
等別 高員三級考試
類科別 資訊處理
科目 程式語言
(請接背面)
class C3 extends C2 {
public void inspect(A1 U, B1 V)
{ System.out.println("61.n"); }
public void inspect(A2 U, B2 V)
{ System.out.println("62.n"); }
public void inspect(A3 U, B3 V)
{ System.out.println("63.n"); }
}
class Demo {
public static void main(String[] arg) {
A2 a; B2 b; C2 c;
a = new A3();
b = new B3();
c = new C3();
a.accept(b, c);
}
} // end of the Demo class
二、
請問下面的 Scheme 程式執行結果為何?(10 分)
(define x 0)
(+ 5 (call/cc (lambda (cc)
(set! x cc) 6) ) )
(* 8 (* 9 (+ 10 (x 35))))
執行完上列程式之後,接著再執行下面的程式,結果又為何?(10 分)
(+ 8 (- 9 (* 12 (x 31))))
三、在 Unix/Linux 的系統裡,libfoo.a libfoo.so 之類的程式庫(libraries)有何不同?
並依生成方式、使用方式、使用時機、對系統的影響等面向說明。20 分)
(請接第四頁)
107
年公務人員特種考試警察人員一般警察人員考試及
107
特種考試交通事業鐵路人員考試試題
代號:70620 全四頁
第四頁
考試別 鐵路人員考試
等別 高員三級考試
類科別 資訊處理
科目 程式語言
考慮下列與前後文無關的文法context-free grammar 請問它是 LL(1)文法嗎?如果是
請寫出它的 LL(1)文法分析表(LL(1) parse table 。如果不是,請說明理由。20 分)
1.S ::= ABC
2.A ::= dB
3.A ::= e
4.B ::= Af
5.B ::= g
6.C ::= h
五、
請問下列 C程式執行的結果是什麼?(10 分)
#include <stdio.h>
int a, b;
void main() {
a = 4;
b = 30;
printf("Before the switch statement, a= %d.n", a);
switch (a) {
case 1: a = a *10; break;
case 2: a = a *10; break;
case 3: a = a *10;
while (a < b ) case 4: { a = a + 5; } break;
case 5: a = a *10; break;
default:
b = a *10; break;
} // end of switch
printf("after the switch statement, a= %d.n", a);
}
請檢視下面的 C++程式,請問執行該程式後的輸出為何?(10 分)
#include <stdio.h>
class A{
public:
int X;
A() { X = 1; printf("X = %dn", X); }
};
class B : public A {
public:
B() { X = 2; printf("X = %dn", X); }
};
main()
{
B * pB = new B;
}
收藏 ⬇️ 下載