作者jolinboyfrie (宇)
看板Examination
標題[考題] 計算機概論 程式輸出問題
時間Fri Jul 18 23:28:31 2014
下列以 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
推 flydragon198:你要先了解 ? : 這個語法,意思是如果a>b為真,則執 07/18 23:29
→ flydragon198:行a,如果為false,則執行:後的b 07/18 23:29
推 flydragon198:因為++n被執行兩次,所以會是12,一次在printf,一次 07/18 23:33
→ flydragon198:在#define,這兩處 07/18 23:33
推 mantoro:巨集會替換成++n>m?++n:m 07/18 23:45
→ jolinboyfrie:謝謝噢~我聊解了,因為太少看到這樣的條件判斷式所以 07/19 00:40