25 請問以下 C 語言程式碼最後印出的結果為何?
5ed5f868ead58.jpg
(A) b = 16
(B) b = 17
(C) b = 20
(D) b = 21

答案:登入後查看
統計: A(53), B(194), C(55), D(212), E(0) #2334371

詳解 (共 4 筆)

#4312264
A(x) (x+1)*x+1A(a+1)...
(共 70 字,隱藏中)
前往觀看
11
0
#4031237
call-by-name A(x) =...
(共 122 字,隱藏中)
前往觀看
10
0
#5612951

#define 宏定義
把替換的文本看成是一個字符串,並不會有任何計算發生,亦不會添加任何的符號
 所以 b = A(a+1) 中的 a+1 會直接取代定義中的 x 字符 (不會添加任何括號)

結果 : (a + 1 + 1) * a + 1 + 1

然後把 a = 3 代入 即為答案
( 3 + 1 + 1) * 3 + 1 + 1 = 5 * 3 + 1 + 1 = 17

------------------------------------------------------------------
若想要 21 的答案
那 #define 要改成 A(x) (x + 1) * ( x ) + 1    (加括號)

( a + 1 + 1 ) * ( a + 1 ) + 1        a 代入 3
( 3 + 1 + 1 ) * ( 3 + 1 ) + 1 = 5 * 4 + 1 = 21

6
0
#5328195
請問為什麼a+1代入後是(a + 1 +...
(共 71 字,隱藏中)
前往觀看
2
0