1樓:萌寵奇趣秀
直接拿你的**在編譯器執行了一下,
結果如下:
下面說一下我對這道題目的解析:
1、為什麼 x+++y == 7 ?
首先你要知道,+和++都是運算浮,但是因為++的優先順序為2, +的優先順序為4,所以這個公式可以看成 x++ (+ y), 而x的++雲算浮在後,所以先使用x==2參與運算, 2 + 5 == 7。
2、為什麼 x < y < 4的輸出結果是 1 ?
同上,< 也是運算浮, 優先順序為6, 結合規則從左至右, 所以這個公式是先計算的 x < y ,因為不成立所以條件為假 (false 也就是 0), 然後 0 < 4成立,條件為真,所以輸出結果為1.
備註:這個題目考察的問題點實際上就是雲算符的優先順序 和 結合規則,如果能熟練掌握,其實很簡單的,加油。
以上是我對這道題目的解析,如果對你有幫助,請採納一下,謝謝。
2樓:金色潛鳥
表示式 (x+++y) 中 "++"運算子優先於 "+" 號,所以可以化為:
((x++)+y) ; 由於 x++是字尾++,在表示式裡 x 用原值,出了表示式再增1,於是表示式化為: ((x)+y) , 出了表示式再做 x=x+1.
所以第一空格 填 7。 即,
int x=2,y=5;
printf("%d\n",x+++y); //輸出 7。
x=2,y=5;
printf("%d\n",(x++)+y); //輸出 7。
表示式 (x x=2,y=5; (x x=2,y=5; printf("%d\n",x x=2,y=5; printf("%d\n",((x 3樓:匿名使用者 此題解析如下:運算子'++'的優先順序高於運算子'+'的優先順序,在一個要知道i++與++i的區別,前者是i先參與運算然後在執行自身加一,後者正好相反,故:x+(++y)= x + (y + 1) = 2 + 6 = 8; 4樓:知不足而後進 (x++)+y=2+1+5=8 c語言編譯的時候是從左往右編譯的 這是一個輸出1000以內因子加和等於本身的數的程式 如果放在定義的時候,程式編譯是沒有錯誤的,但因為m會一直累加而不被重新歸零,執行始終沒有達成m s的條件,所以不會在控制檯輸出結果 如果在定義裡面賦初值,那麼在做迴圈 for s 2 s 1000 s 第一次的時候的確是零,而到了第二次,m的初值之... prid32是個什麼?而且你的雙引號得加轉義符吧?去掉prid32前後的雙引號,另外prid32是否有定義?你的這個軟體支援c99或者c11嘛 就像vc6.0版本太老就不支援c99 看看軟體支不支援 沒有巨集定義,在標頭檔案下面加 define prid32 d c語言問題!因為s是一個指向floa... include void main 定義f 0 1 f 1 1 for i 2 i 20 i 從2開始到19做迴圈,這裡你少打一個i f i f i 2 f i 1 例如當前i 2則f 2 f 0 f 1 2 迴圈繼續 i 3則 f 3 f 2 f 1 3 迴圈繼續.for i 0 i 20 i 從...C語言問題,謝謝,一個C語言問題,謝謝
c語言問題,C語言問題!
c語言問題,c語言問題