阿摩線上測驗
登入
首頁
>
程式語言
> 98年 - 98 高等考試_三級_資訊處理:程式語言#34599
98年 - 98 高等考試_三級_資訊處理:程式語言#34599
科目:
程式語言 |
年份:
98年 |
選擇題數:
0 |
申論題數:
11
試卷資訊
所屬科目:
程式語言
選擇題 (0)
申論題 (11)
⑴解釋什麼是強勢型態程式語言(strongly-typed programming language)和弱勢 型態程式語言(weakly-typed programming language)。(10 分)
⑵列舉三個理由並舉例說明為何 C 程式語言不是一個強勢型態程式語言。(10 分)
⑴ printf("%X\ n ", &A[0][1][2]);
⑵ printf("%X\n ", &A[0][1][2]+1);
⑶ printf("%X\n ", &A[0][1]+2);
⑷ printf("%X\n ", &A[0]+3);
⑴說明如何使用啟動紀錄中的 function parameters 實作下列兩種副程式的參數傳遞 (parameter passing)方法:call-by-value(或稱 pass-by-value)和 call-by-address (或稱 pass-by-address, call-by-reference)。(10 分)
【已刪除】⑵考慮下列的 C 程式語言的程式片段,說明當主程式 main 呼叫副程式 foo 之後,
副程式 foo 的啟動紀錄之 function parameters 內容為何?並寫出主程式 main 的輸
出值。(10 分)
⑴假設 C1 和 C2 是由 〈condition〉 展開的程式碼,S1 和 S2 是由 〈statement〉 展開
的程式碼,畫出 〈conditional statement〉:
if C1 then if C2 then S1 else S2
的語法樹(或稱剖析樹,parse tree),並解釋何謂「搖擺 else 問題」(dangling
else problem)。(10 分)
⑵舉出兩個方法,解釋程式語言如何在設計、實作、或使用時解決「搖擺 else 問 題」。(10 分)
五、考慮 C 程式語言的位元運算(bitwise operation),變數 m 和陣列(array)n 的宣告
如下:
unsigned int m;
unsigned char n[4];
假設 m 的二進位值(binary value)為:
b
32
b
31
b
30
b
29
b
28
b
27
b
26
b
25
b
24
b
23
b
22
b
21
b
20
b
19
b
18
b
17
b
16
b
15
b
14
b
13
b
12
b
11
b
10
b
9
b
8
b
7
b
6
b
5
b
4
b
3
b
2
b
1
寫一個 C 語言的程式將陣列 n 的元素(element)設定為:
n[0]: b
31
b
32
b
29
b
30
b
27
b
28
b
25
b
26
n[1]: b
23
b
24
b
21
b
22
b
19
b
20
b
17
b
18
n[2]: b
15
b
16
b
13
b
14
b
11
b
12
b
9
b
10
n[3]: b
7
b
8
b
5
b
6
b
3
b
4
b
1
b
2
即是將 m 的二進位值,以每兩個位元一組,作位元調換(bit swap),再切割成四個
位元組。除了迴圈控制變數(loop control variable)外,程式中不可使用+, -, *, /, %的
算術運算(arithmetic operations)(可以宣告和使用其他變數)。(20 分)