作者Parents (0oTDDSo0)
看板Examination
標題Re: [考題] C語言
時間Sun Dec 9 12:17:40 2012
※ 引述《jojonina (努力)》之銘言:
: 98身心障礙
: 求以下執行結果
: int i, j=2;
: i=(j=3) && 1 ;
: printf("%d %d \ n" , i, j);
: i=-1 || (j=5);
: printf ("%d %d \n", i, j);
: i=0 || (j=5);
: printf("%d %d\n", i , j); 非本科系 請問板上高手
: 這題 該如何下手呢?? 我知先用 邏輯運算子 判斷 true 或 false
: 然後 呢??
: 請高手 指點 非常謝謝
不材第一次幫大家解答計概,若有錯誤,請四方各達高手不吝指教
此題考的邏輯運算概念
它具有一個很特別的現象就是"短路"現象
意思是說
以OR來說
前方若是True,後方的值無須變動
假若前方為FALSE,後方的值須在判斷
以AND來說
前方只要為FALSE,後方的值無須探討
舉個例子
AND 只要一個否定說(0),答案結論肯定為0
OR 只要一個成立說(1),答案結果必為1
反知此方式建立在此問題上
注意一下優先權問題
()內記得先看
不材見解答案為
13
13
15
以上答案有錯誤,不吝指教~
感謝版上的高手與已賜教~謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.82.235.109
※ 編輯: Parents 來自: 115.82.235.109 (12/09 12:23)
1F:→ leiyan:true or false怎會變成3? 12/09 13:20
3F:→ Parents:好奇的點出來了~為何I = 1?? 12/09 14:25
4F:→ Parents:下一篇文章有更好的解答唷~ 12/09 14:27
5F:→ leiyan:我比較好奇你前面的說明正確但答案你還不知道為何錯 12/09 14:29
6F:→ Parents:呵呵~我知道哪個環節出問題~程式碼沒看清楚~謝謝您的提醒~ 12/09 14:33
※ 編輯: Parents 來自: 115.82.235.109 (12/09 14:33)
7F:→ leiyan:"前方若是成立,後方無須變動"再改吧... 12/09 14:38
8F:→ a33445500:這題其實還有一個概念,就是運算的優先順序 12/09 14:44
9F:→ Parents:我想請問l大這句話,為何需要改呢?短路現象不是這樣嗎? 12/09 14:50
10F:→ leiyan:答案參考2樓 那句話點出你錯的地方 12/09 14:54
11F:→ Parents:小弟迂腐~盼請l大說明並指教~謝謝~ 12/09 15:07
12F:→ leiyan:i=-1 || (j=5);前面為1後面就會自動省略直接傳1給i 12/09 15:10
13F:→ Parents:不好意思I=-1不是FALESE嗎?還是只是不要是0都是True? 12/09 15:17
14F:→ silentlich:非0都是TRUE 12/09 15:25
15F:→ Parents:謝謝您們給予我最佳的解釋,原來是這樣子~盲點已解惑! 12/09 15:28
※ 編輯: Parents 來自: 115.82.235.109 (12/09 15:33)
※ 編輯: Parents 來自: 115.82.235.109 (12/09 15:34)