30 下列以 C 程式語言撰寫之程式執行後產生之輸出為何?
#include
#define MAX(a, b) (a < b ? b : a)
#define PRINT1(x) printf(“%d”, x)
#define PRINT3(x, y, z) PRINT1(x), PRINT1(y), PRINT1(z)
main()
{
int m1 = 1, m2 = 3;
PRINT3( MAX( m1++, --m2), m1, m2);
}
(A) 1 2 1
(B) 2 2 2
(C) 2 3 2
(D) 本程式編譯時,編譯器(Compiler)發出錯誤訊息,不能執行而無輸出結果產生
(A) 1 2 1
(B) 2 2 2
(C) 2 3 2
(D) 本程式編譯時,編譯器(Compiler)發出錯誤訊息,不能執行而無輸出結果產生
答案:登入後查看
統計: A(80), B(79), C(54), D(55), E(0) #173895
統計: A(80), B(79), C(54), D(55), E(0) #173895
詳解 (共 2 筆)
#311636
由式子 #define MAX(a, b) (a < b ? b : a)
帶入參數得到 MAX( m1++, --m2) => (m1++ < --m2 ? --m2 : m1++ )
1++ < --3 => 比較時系統看到m1=1, m2=2,
比較後結果為true,且結束後 m1=2, m2=2;
取冒號的左邊 --m2
m2=2 => --2 系統收到值為1
此時狀態m1=2, m2=1
14
0
#236241
有沒有高手解釋一下為什是A?
0
0