看板 TransCSI 關於我們 聯絡資訊
1. #define DOUBLE(x) 2*x #define PRINT(int) printf("int=%d\n",int) #include <stdio.h> main() { int m1=1,m2=2; m1=DOUBLE(m1+m2); PRINT(m1); } 問程式輸出為何? (a) m1=5 (b) m1=8 (c) int=5 (d)int=8 為什麼是 c 而不是 d? 2. #include <stdio.h> main() { int m1=123,m2=5; do {m1%=m2;} while(m2--); printf("%d\n",m1); } 問程式輸出為何? (a)0 (b)1 (c)本程式編譯時,complier 發出錯誤訊息,不能執行而無輸出結果產生 (d)本程式執行時,發生錯誤,故無輸出結果產生 為什麼是 d ? 難道是 while 的敘述要是 boolean type? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.116.194.99
MrTang:第一題我用COMPILER去跑是INT=4耶... 12/26 15:49
MrTang:怪怪.... 12/26 15:55
MrTang:第二題我也是跟你想的一樣.... 12/26 15:57
MrTang:因為WHILE裡面是做條件判斷... 12/26 15:58
alanpin:第一題:2*1+2=4 解題關鍵:define只是作"展開"的動作 12/26 17:03
ccler:5對,4也對,看compile而定 12/26 18:24