高考申論題
112年
[資訊處理] 程式設計
第 一 題
關於下列 C 程式碼,請說明程式執行後,程式碼編號 27~33 的輸出,以及其運算邏輯。(25 分)
01 #include
02 #define SIZE 30
03 typedef enum direction {North, South, East=3, West} dir_t;
04 int f1(int a, int b) {
05 int x = 3.0/a;
06 double y = (a/2)*(b%3) + x;
07 return y;
08 }
09 int f2(dir_t d) {
10 d= (North+East)/2 > d? East: West;
11 return d;
12 }
13 int f3(int a, int b) {
14 if (b==a || b<=1) return a+b;
15 else if (a<=1) return b-a;
16 else return f3(a-b, a-1)+b+a;
17 }
18 int f4(int a, int b) {
19 int data[SIZE];
20 for (int i=1, k=0; i
📝 此題為申論題
思路引導 VIP
本題測驗 C 語言的綜合基礎觀念,包含型別轉換(浮點數與整數)、列舉(enum)的自動賦值規則、遞迴函數追蹤、陣列操作(需特別注意未初始化及越界存取)以及位元運算。建議考生在作答時,先釐清各型態與運算子的優先權,並採用樹狀或逐步展開法追蹤遞迴呼叫,以防計算錯誤。
🤖
AI 詳解
AI 專屬家教
【解題關鍵】本題測驗 C 語言的資料型別轉換、列舉(enum)賦值規則、遞迴(recursion)追蹤、陣列邊界與記憶體初始化觀念,以及位元運算(bitwise operations)。 【解答】 各行輸出結果與運算邏輯詳細解析如下:
▼ 還有更多解析內容