C語言問題謝謝

2021-07-12 09:19:05 字數 1202 閱讀 3659

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語言編譯的時候是從左往右編譯的

C語言問題,謝謝,一個C語言問題,謝謝

這是一個輸出1000以內因子加和等於本身的數的程式 如果放在定義的時候,程式編譯是沒有錯誤的,但因為m會一直累加而不被重新歸零,執行始終沒有達成m s的條件,所以不會在控制檯輸出結果 如果在定義裡面賦初值,那麼在做迴圈 for s 2 s 1000 s 第一次的時候的確是零,而到了第二次,m的初值之...

c語言問題,C語言問題!

prid32是個什麼?而且你的雙引號得加轉義符吧?去掉prid32前後的雙引號,另外prid32是否有定義?你的這個軟體支援c99或者c11嘛 就像vc6.0版本太老就不支援c99 看看軟體支不支援 沒有巨集定義,在標頭檔案下面加 define prid32 d c語言問題!因為s是一個指向floa...

c語言問題,c語言問題

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 從...