[考題] 101 地特四等計算機概論第39題

看板Examination (國家考試)作者 (鄧肯)時間13年前 (2013/06/28 22:58), 編輯推噓4(406)
留言10則, 5人參與, 最新討論串1/3 (看更多)
[考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處 #include <stdio.h> main(){ int x = 007, y = 010; if ( ++x >= y-- ) { if (y = x < 0) x = y + 4; } else x = x + 3; printf(“%d\n”,x – y ); } (A)0 (B)2 (C)4 (D)8 這題有陷阱 x與y 是八進制嗎?.. 用八進制與十進制算都不是正確答案(D) 更不可能是十六進制 有高手可以請教幫忙釐清觀念嗎!? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.169.97

06/28 23:14, , 1F
if (y = x < 0) 這邊把y改成0跳出迴圈
06/28 23:14, 1F

06/28 23:21, , 2F
都是8進制沒錯 用C跑才跑得出這結果 用C++跑會錯@0@...
06/28 23:21, 2F

06/28 23:23, , 3F
應該說是assign符號要最後看,x<0錯誤回傳0;再assign給y
06/28 23:23, 3F

06/28 23:24, , 4F
條件判斷式為0跳出if迴圈計算x-y得到8 以上?
06/28 23:24, 4F

06/28 23:31, , 5F
正解
06/28 23:31, 5F

06/28 23:43, , 6F
判斷 x<0 為false 把false assign給y, y即為0
06/28 23:43, 6F

06/28 23:44, , 7F
x y 皆為八進位,C語言好像不能直接表達二進位的值
06/28 23:44, 7F

06/28 23:46, , 8F
考題的C語言和實際上的寫法還是有點落差,覺得像是為了考試而
06/28 23:46, 8F

06/28 23:46, , 9F
出的寫法
06/28 23:46, 9F

06/29 12:45, , 10F
懂了!也是第一次遇到這變化題...感謝大家的詳細講說
06/29 12:45, 10F
文章代碼(AID): #1HpQIKxO (Examination)
文章代碼(AID): #1HpQIKxO (Examination)