101 地特四等計算機概論第39題 - 考試

Table of Contents

[考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處

#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)
更不可能是十六進制
有高手可以請教幫忙釐清觀念嗎!?
謝謝

--

All Comments

Yuri avatarYuri2013-07-02
if (y = x < 0) 這邊把y改成0跳出迴圈
Charlotte avatarCharlotte2013-07-04
都是8進制沒錯 用C跑才跑得出這結果 用C++跑會錯@0@...
Candice avatarCandice2013-07-05
應該說是assign符號要最後看,x<0錯誤回傳0;再assign給y
Necoo avatarNecoo2013-07-06
條件判斷式為0跳出if迴圈計算x-y得到8 以上?
Freda avatarFreda2013-07-07
正解
Oliver avatarOliver2013-07-07
判斷 x<0 為false 把false assign給y, y即為0
Suhail Hany avatarSuhail Hany2013-07-12
x y 皆為八進位,C語言好像不能直接表達二進位的值
Poppy avatarPoppy2013-07-15
考題的C語言和實際上的寫法還是有點落差,覺得像是為了考試而
出的寫法
Gary avatarGary2013-07-15
懂了!也是第一次遇到這變化題...感謝大家的詳細講說