阿摩線上測驗 登入

申論題資訊

試卷: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。