[問題] 兩題c語言請教

看板C_and_CPP作者 (努力)時間16年前 (2010/02/24 14:42), 編輯推噓7(708)
留言15則, 5人參與, 最新討論串1/1
想請教高手,有兩題選擇題的c語言與法,小弟非常疑惑,麻煩指點迷津~~ 1.在c/c++語言中x=2;y=(x!=3); 這兩指令執行完後,x和y的值分別為? ans:x=2 y=1 問題:y=(x!=3) 這個要怎麼看??? 2.下列程式片斷是以類C語言(C-link)撰寫: int s=0; int i=10,j=3; while (i>2) { i=i-j; while (j>i) {s=s+j;j=j-2;} } printf(s); 試問上面程式片斷最後一行執行結果為何? ans:3 問題:因為i=10帶入第一個迴圈後i=i-j 求出10-3=7,因為還是大於j 請問如何看這個程式?? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.103.23

02/24 14:55, , 1F
1) 關係運算子, 回傳值有兩種 : 0 or 非0(通常是1)
02/24 14:55, 1F

02/24 14:55, , 2F
x!=3 為 true true是不是1我不確定 只確定false為0
02/24 14:55, 2F

02/24 14:56, , 3F
2)答案 = 逐步執行 + 監看式;
02/24 14:56, 3F

02/24 15:33, , 4F
第一題更正, K&R裡明確指出回傳值為 1 (P40)
02/24 15:33, 4F

02/24 23:04, , 5F
 true為1 false為0
02/24 23:04, 5F

02/24 23:05, , 6F
while(條件運算式) 當條件運算式不符合 即跳出
02/24 23:05, 6F

02/24 23:41, , 7F
回樓上 非0 為 true, 但是轉成整數會轉成 1
02/24 23:41, 7F

02/26 14:36, , 8F
第二題沒人回答嗎= = 答案3 打完跑跑看就知道了
02/26 14:36, 8F

02/26 14:40, , 9F
第三題: i=i-j == i=10-3 ==7 因為3<7 所以遞迴到上面
02/26 14:40, 9F

02/26 14:41, , 10F
然後i=7-3 == 4 跟上面一樣 3<4 再遞迴 最後i=4-3 == 1
02/26 14:41, 10F

02/26 14:43, , 11F
進入第二個while s=s+j == s=0+3 然後j=3-2=1 然後遞迴
02/26 14:43, 11F

02/26 14:45, , 12F
再進入第一個while i依序為10.7.4.1 因為j都沒大於i 遞迴
02/26 14:45, 12F

02/26 14:45, , 13F
後 印出s 就只有3 結束
02/26 14:45, 13F

02/26 15:29, , 14F
第二題個人覺得3F已經回答的很清楚了, step by step跑一
02/26 15:29, 14F

02/26 15:30, , 15F
遍(不管是用debuger或拿紙筆去算)就有答案的東西....
02/26 15:30, 15F
文章代碼(AID): #1BXCfJf- (C_and_CPP)