[考題] 計算機概論 程式輸出問題

看板Examination作者 (宇)時間11年前 (2014/07/18 23:28), 編輯推噓3(303)
留言6則, 3人參與, 最新討論串3/4 (看更多)
下列以 C 程式語言撰寫之程式執行後產生之輸出為何? #include <stdio.h> #define MAX(a, b) a>b?a:b int main() { int m = 10, n = 10; printf("%d", MAX(++n, m)); return 0; } a.10 b.11 c.12 d.13 答案為C 想請問一下各位,MAX(++n,m)意思是說要把n+1再帶出去 那帶到上面MAX a=11,b=10,接下來a>b?a:b這到底是什麼意思啊? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.231.93.28 ※ 文章網址: http://www.ptt.cc/bbs/Examination/M.1405697313.A.B4B.html

07/18 23:29, , 1F
你要先了解 ? : 這個語法,意思是如果a>b為真,則執
07/18 23:29, 1F

07/18 23:29, , 2F
行a,如果為false,則執行:後的b
07/18 23:29, 2F

07/18 23:33, , 3F
因為++n被執行兩次,所以會是12,一次在printf,一次
07/18 23:33, 3F

07/18 23:33, , 4F
在#define,這兩處
07/18 23:33, 4F

07/18 23:45, , 5F
巨集會替換成++n>m?++n:m
07/18 23:45, 5F

07/19 00:40, , 6F
謝謝噢~我聊解了,因為太少看到這樣的條件判斷式所以
07/19 00:40, 6F
文章代碼(AID): #1JoJqXjB (Examination)
文章代碼(AID): #1JoJqXjB (Examination)