C語言 - 考試

Table of Contents

※ 引述《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

以上答案有錯誤,不吝指教~


感謝版上的高手與已賜教~謝謝!
--

All Comments

Blanche avatarBlanche2012-12-09
true or false怎會變成3?
Skylar DavisLinda avatarSkylar DavisLinda2012-12-12
好奇的點出來了~為何I = 1??
Hedy avatarHedy2012-12-13
下一篇文章有更好的解答唷~
Todd Johnson avatarTodd Johnson2012-12-16
我比較好奇你前面的說明正確但答案你還不知道為何錯
Ursula avatarUrsula2012-12-17
呵呵~我知道哪個環節出問題~程式碼沒看清楚~謝謝您的提醒~
Lucy avatarLucy2012-12-19
"前方若是成立,後方無須變動"再改吧...
Yuri avatarYuri2012-12-23
這題其實還有一個概念,就是運算的優先順序
Anonymous avatarAnonymous2012-12-24
我想請問l大這句話,為何需要改呢?短路現象不是這樣嗎?
Lucy avatarLucy2012-12-24
答案參考2樓 那句話點出你錯的地方
Harry avatarHarry2012-12-28
小弟迂腐~盼請l大說明並指教~謝謝~
Sarah avatarSarah2012-12-29
i=-1 || (j=5);前面為1後面就會自動省略直接傳1給i
Carolina Franco avatarCarolina Franco2012-12-31
不好意思I=-1不是FALESE嗎?還是只是不要是0都是True?
Olivia avatarOlivia2013-01-03
非0都是TRUE
Steve avatarSteve2013-01-04
謝謝您們給予我最佳的解釋,原來是這樣子~盲點已解惑!