• 沒有找到結果。

全四頁第一頁

N/A
N/A
Protected

Academic year: 2021

Share "全四頁第一頁"

Copied!
4
0
0

加載中.... (立即查看全文)

全文

(1)

107年公務人員特種考試警察人員、一般警察人員考試及

107年特 種 考 試 交 通 事 業 鐵 路 人 員 考 試 試 題 代號:70620

全四頁 第一頁 考 試 別: 鐵路人員考試

等 別: 高員三級考試 類 科 別: 資訊處理 科 目: 程式語言

考試時間 : 2 小時 座號:

※注意: 禁止使用電子計算器。

不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。

本科目除專門名詞或數理公式外,應使用本國文字作答。

一、Java 程式語言採用 dynamic dispatching。請問下面的 Java 程式輸出為何?並請略加解 釋 dynamic dispatching。(20 分)

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); } }

(請接第二頁)

(2)

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"); } }

(請接第三頁)

(3)

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 分)

(請接第四頁)

(4)

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 = %d\n", X); } };

class B : public A { public:

B() { X = 2; printf("X = %d\n", X); } };

main() {

B * pB = new B;

}

參考文獻

相關文件

(三)完成尺寸:左右 19cm × 天地 26cm 兩頁,或左右 38cm × 天地 26cm 跨頁一頁,頁邊 留白為 2cm,請製作出血

1、本案移工當次聘僱許可於109年11月23日前屆滿者,應

73  同注 70 Rémusat 書第 38 頁 ;同注 70 Thomas 書第 35 頁。. 74  同注 70 Thomas 書第

(一)作品單頁應為 A4 規格(29.7cmx21cm),直、橫式均可。材質 不拘,圖面應求清楚。內頁應為 12 頁以上、24

48   《大正新脩大藏經》第 374 號,第 12 冊,第 459 頁下欄第 3 行至第 460 頁上 欄第 13

《大正藏》第 2123 號,第 54 冊,第 6 頁下欄第 26 行至第 7 頁上欄第 4

20 《傳心法要》 , 《大正藏》冊 48,依序見頁 379 下、頁 380 上、頁 380 中。頁 381 上、頁 381 上。 《宛陵錄》 ,頁 384

29 太虛: 〈議印度之佛教〉 (民國 31 年 10 月) , 《太虛大師全書》 ,第 25 冊,雜藏,書評,一 六,頁 48-49。.. 30