請寫出下列敘述的正規表達式(regular expression):
“Each word must start with two digits, followed by a upper case letter, and then followed
by at least one letter either upper case or lower case.” (10 分)
參考下述BNF grammar
S S + S | S - S | S * S | S / S | ( S ) | a
請回答總共有幾個不同的剖析樹(parse tree)可得到下列結果。本題不需畫出剖析
樹,但請說明。(每小題5 分,共20 分)
a + a * a
a + a * a / a
a + a + a + a
(a + (a + a)) + a
請問下列Java 程式執行結果為何?(10 分)
import java.io.IOException;
public class throwException {
public static void main(String[] args) throws E {
try {E e1 = new E(“here comes e1”);
throw e1;
System.out.println(“gets here”); }
catch(E e1) { System.out.println(“catches e1”);}
}//main
}//throwException
class E extends IOException {
E(String message) { super(message); }
}// class E
參考右圖類C 語言的程式,請依下列小題所述參數傳遞方式,寫出執行程式B 後之
輸出結果。(每小題10 分,共20 分)
Y is passed by value.
Y is passed by reference.
請問下列Java 程式輸出為何?(10 分)
public class C6 {
public static void main(String[] args) {
int [] a = new int[2];
int [] b = new int[2];
a[0] = 6;b[0] = 6;a[1] = 7;b[1] = 7;
System.out.println(a.equals(b));
}}
1 0 3 年公務人員特種考試警察人員考試
103年公務人員特種考試一般警察人員考試
103年特種考試交通事業鐵路人員考試試題
全一張
(背面)
請用Scheme 或Lisp 等Functional Programming Language 寫一個符合下述規範的遞
迴函數calculate。所寫的遞迴函數應該越簡潔越好。(20 分)
(calculate A B C):A 是某函數(function),B 是一整數(integer),C 是任
一數值(value),回傳滿足N >= B 且(A N)= C 的最小整數N。例如
(calculate list 0 ‘(3))應回傳 3.
(calculate (lambda (X) (> X 10)) 0 T) 應回傳 11.
(calculate (lambda (X) (* X X)) 0 100) 應回傳 10.
103年公務人員高等考試三級考試試題
全一張
(背面)
(3)
請問下列Java 程式輸出為何?(20 分)
import java.text.DecimalFormat;
public class C3 {
public static void main(String[] args) {
DecimalFormat d = new DecimalFormat("0.00");
double grosspay = 800.416;
System.out.println(d.format(grosspay));
grosspay = 1234.567;
System.out.printf("%1.2f", grosspay);
} }
請參考以下的Java classes,解釋下列各小題的語法是否正確,如不正確請說明原因。
(每小題5 分,共15 分)
class X { public void x( ) { … } }
class Y extends X { public void y( ) { … } }
class Z extends Y { public void z( ) { … } }
int count(Set<Y> s) { … } … count(new TreeSet<Z>( ));
int count(Set<? extends Y> s) { … } … count(new
TreeSet<Z>());
int count(Set<? super Z> s) { for (X a : s) a.x( ); … };
下列為一物件導向程式:
class A { private int a1;
public void m1( ); { a1 = 1;}
public void m2( ); { a1 = 3;} }
class B extends A { private int b1; private int b2;
public void m2( ); { b1 = 1; b2 = 2;}
public void m3( ); { a1 = 2; } }
請說明其中的繼承(inheritance)及覆寫(overriding);
並請說明class B 的物件內含那些資料欄位(data fields)?(20 分)
下述Prolog 程式可推論圖形中A 點到B 點的可行性,但是無法知道路徑。請改寫
該程式使其可以用Prolog list 來記錄A 點到B 點的路徑。若A 點到不了B 點,則
回應fail(false)即可。(15 分)
get_to (A, B) :- path (A, B).
get_to (A, B) :- path (A, C), get_to (C, B).
請說明下列main 程式執行情形。(10 分)
請以此程式解釋動態繫結(dynamic binding)。(10 分)
public class X
{public String whatIAm() {return “I’m an X.”;}}
public class Y extends X
{public String whatIAm() {return “I’m a Y.”;}}
public static void main(String[] args) throws IOException
{ X x;
BufferedReader reader = new BufferedReader
(new InputStreamReader(System.in));
if (reader.readLine().equals(“Go with X”)) x = new X();
else x = new Y();
System.out.println(x.whatIAm());
} // main