請試述下列名詞之意涵:(每小題3分,共15分)
(一) Context-Free Grammar
(二) LR parser
(三) Binding time
(四) Turing Machine
(五) Dynamic Programming
題型:申論題
難易度:尚未記錄
2.
10 TBytes換算為多少bits?(5分)
題型:申論題
難易度:尚未記錄
3.
關於副程式中參數的binding可分為shallow binding、deep binding和ad hoc binding等方法:
(一) 請解釋上述三種binding 的差別與優缺點。(9分)
(二) 下列為Java Script的syntax codes,請問執行sub1 之後,最後x的輸出(在sub2)為多少?請根據上述三種binding分別作答。(6分)
function sub1() {
var x;
function sub2() {altert(x);} // 輸出x
function sub3() { var x; x=3;
sub4(sub2);}
function sub4(subx) { var x; x=4;
subx();}
x=1; sub3();};
請計算下列式子最後的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++;}
題型:申論題
難易度:尚未記錄
8.
若採取二種不同參數傳遞的方法: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;}
題型:申論題
難易度:尚未記錄
9.
(一) 如果有兩個整數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分)