阿摩線上測驗
登入
首頁
>
程式語言
>
99年 - 99 鐵路特種考試_高員三級_資訊處理:程式語言#27555
> 申論題
申論題
試卷:99年 - 99 鐵路特種考試_高員三級_資訊處理:程式語言#27555
科目:程式語言
年份:99年
排序:0
申論題資訊
試卷:
99年 - 99 鐵路特種考試_高員三級_資訊處理:程式語言#27555
科目:
程式語言
年份:
99年
排序:
0
題組內容
三、一函數 fun 定義如程式 A 所示,若將 fun 使用於程式 B 中,則 sum1 及 sum2 之值 分別為何?
程式 A: 程式 B:
int fun (int *k) { void main ( ) {
*k += 4; int a =8, b = 16, sum1, sum2;
Return 3 * (*k) – 2; sum1 = (a / 2) + fun (&a);
} sum2 = fun (&b) + (b / 2);
}
申論題內容
⑴若各表示式中,由左至右運算。(10 分)
詳解 (共 2 筆)
詳解
提供者:a29813287
sum1=38 sum2=68
詳解
提供者:114年高考上榜
程式 A 定義了一個函數 fun,該函數將指針所指向的整數加上 4,然後返回 3 倍這個整數減去 2。因此,如果我們將函數 fun 應用於程式 B 中,則 sum1 和 sum2 的值分別如下:
首先,在程式 B 中,我們聲明了兩個整數 a 和 b,並將它們初始化為 8 和 16。然後,我們聲明了兩個變量 sum1 和 sum2,並分別將它們初始化為 0。
對於 sum1,我們首先計算 a 的一半,然後調用函數 fun,將其應用於 a,並將其返回值添加到 a 的一半中。因此,在第一次調用 fun 之後,a 的值將為 12,sum1 的值將為 4+ 3 * (12) - 2 = 38。
對於 sum2,我們首先調用函數 fun,將其應用於 b,並將其返回值存儲在 sum2 中。然後,我們計算 b 的一半,並將其添加到 sum2 中。因此,在第一次調用 fun 之後,b 的值將為 20,sum2 的值將為 3 * (20) - 2 + 20 / 2 = 42。
因此,最終 sum1 的值為 38,sum2 的值為 68。