33 下列以 C 程式語言撰寫之程式執行後產生之輸出為何?
#define PLUS(a, b) a+b
#define MINUS(a, b) a-b
#include
main()
{ int m1 = 3, m2 = 5;
m1 = PLUS(m1, m2)*MINUS(m2, m1);
printf(“%d\n”, m1);
}
(A) -16
(B) 16
(C) 25
(D) 37
(A) -16
(B) 16
(C) 25
(D) 37
答案:登入後查看
統計: A(14), B(33), C(50), D(8), E(0) #173898
統計: A(14), B(33), C(50), D(8), E(0) #173898
詳解 (共 3 筆)
#191489
m1= m1+m2*m2-m1
2
0
#1586169
ml = PLUS(m1+m2, m1-m2)*MINUS(m2-m1, m2+m1);
= PLUS(a,b)*MINUS(c,d); // a --> m1+m2, b --> m1-m2, c --> m2-m1, d --> m2+m1
= a-b*c+d;
= m1+m2-b*c+d;
= m1+m2-m1-m2*c+d;
= m1+m2-m1-m2*m2-m1+d;
= m1+m2-m1-m2*m2-m1+m2+m1; // m1=5, m2=3
= 5+3-5-3*3-5+3+5
= -3
巨集只做單純的文字代換動作,不負責其它
1
1