
104年特種考試地方政府公務人員考試試題 代號:34360 全一張
(背面)
等別: 三等考試
類科: 資訊處理
科目: 程式語言
六、給定下列的文法(Grammar):
<assign>Æ<id> = <expr>
<id>=A|B|C
<expr>Æ<expr>+<id> | <expr>*<id> | (<expr>) | <id>
請畫出右列字串:A = ((A*B)+C*A),所對應 right-most derivation sequence 與對應的
分析樹(parse tree)。(5分)
七、請計算下列式子最後的 y值:(每小題 3分,共 15 分)
int x=3, y=2; y *= ++x + 3;
int x=3, y=2; y /= x++;
int x=10, y=1; y = x++ + --y;
int x=10, y=1; y /= ++x + y--;
int y=0;
for(int k=0; k < 10; y+=k)
{ if(++k == 6) continue;
k++;}
八、若採取二種不同參數傳遞的方法:pass by reference、pass by value result,執行下列
程式,則 x與y的值各為多少?(8分)
int x=1, y=3;
void fun(int a, int b);
void main()
{ int x=2;
fun(x, y);
printf("x=%d, y=%d", x, y);
}
void fun(int a, int b) {a=b+x; b=a+y;}
九、
如果有兩個整數 x, y,請寫出相對應的副程式碼,使得這兩數可以做交換。(5分)
T c[10]; int m=3, n=2;(T為某種 type,可能為 int、float、double 等),請寫出相對
應的副程式碼 swap,當呼叫形式為 swap(c, m, n),可讓 c[m]跟c[n]的值做交換,
即使 T的型態不同,此程式一樣可以正確處理。(5分)
十、利用 template 的概念,寫出一個函數 power(x, n)可以計算 xn,不管 x為實數、整數或
自然數,但假設 n為整數。(10 分)