30 執行下列 C 程式,輸出結果為何?

【老張113中華國營聯招地特】評論
考 C 語言變數的 scope 與傳址呼叫。main 開始執行sub(&i, &j)執行為傳址呼叫,等等 *m 是 i 的值,*n 為 j 的值。故*m = i + *n; *m(也就是i的值) = 2 + 1 = 3*n = j + *m; *n(也就是j的值) = 1 + 3 = 4print("(%d, %d)", *m, *n); // 印出目前 *m, *n 的值,為 (3, 4)print("(%d, %d)", i++, j++); // i++ 代表印完後才加 1 ,i 的值為 *m = 3 // j++ 代表印完後才加 1 ,j 的值為 *n = 4 // 所以這裡印出 (3, 4)印完後i = 4, j = 5因此離開 sub 回到 main 列印結果為 (4, 5)故列印順序為 (3, 4) (3, 4) (4, 5) 選 (B)