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語言編譯的時候是從左往右編譯的 y冰靨之星 你可能要先理解下 switch a 這個條件是得到a值代入後面滿足條件的case式子計算,再自增。再理解下沒有break的case語句 當case式子之後不帶break的話,該式子及之後所有條件的式子都會被執行 所以程式中的a,b值變化是 a 1,b 0 初始值 a 1,b 1,b 0,... 密碼忘記了 遞迴呼叫,結果是輸出陣列中所有數的和,對這個例子結果是6.if n 這句話表示如果n 1,就以該陣列第二個數為輸出作為一個新陣列,n 1為新的n,遞迴呼叫該函式,將返回值和當前輸入陣列的第一個元素加起來的和作為返回值。else return a 0 表示n為1時,直接返回陣列第一個元素。... 選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...C語言問題求解如圖謝謝為何是三,C語言問題求解如圖謝謝為何這個不用 與號
c語言問題?詳細解答一下,謝謝,C語言問題,詳細解答一下,謝謝
C語言問題,C語言問題C語言問題