1樓:匿名使用者
按優先順序,先進行非運算。
!x等價於!(x!=0),x=1,x!=0為真,值為1,!(x!=0)值為0
y--是自減運算子,執行語句後y再自減1
表示式等價於(1||1),為真,值為1
表示式的值為1
2樓:手機使用者
優先順序別是-->!>|| 所以計算機計算的過程是y--=1 !x=0 1||0=1 //此處的y--是要y先去運算再轉回來--,所以y--仍為1 最後結果為1採納哦
設int x=1,y=1;表示式(!x||y--)的值 是怎麼 運算的。求解。
3樓:四舍**入
1、先算!x,結果為0;
2、再算y--,結果為1,y的值變為0;
3、再算邏輯或||,0或1,結果為1。所以最後結果為1優先順序:自減運算子》邏輯非運算子》邏輯或。
基本的優先順序需要記住:
指標最優,單目運算優於雙目運算,如正負號。
先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7。
邏輯運算最後結合。簡單記就是:! > 算術運算子 > 關係運算子 > && > || > 賦值運算子。
4樓:匿名使用者
|此問題主要是考察運算子的優先等級問題:
(!x||y--)中,括號等級最高為第一優先等級,所以先計算括號裡面的內容;
邏輯運算子號 ! 和算術運算子號--為相同等級,為第二優先等級,邏輯或運算子號||為第12優先等級,故此語句的計算是這樣的:先計算!
x和y--,因為!x=0;y--=1,再計算||,也就是0||1,那麼此時您應該知道結果是多少了,就是1,所以您所提的問題的運算順序已經解決了。
希望能幫助到您,謝謝!
5樓:匿名使用者
涉及的知識點是c語言中運算子的優先順序和結合性!
圓括號()的優先順序是1,邏輯非 ! 和自減運算子 —— 的優先順序是 2,邏輯或 || 的優先順序是12。運算時先優先順序大的,然後優先順序小的。同優先順序看結合性。
本題的結果是1,運算後x和y的值分別是1和0 ;
c語言表示式求值設intx=1,y=1;表示式(!x++||y--)的值
6樓:刀無極啊
因為++與!的運算優復先級一樣,
並且結制合性都是從右bai向左,所以!x++先計算dux++,x++等於2,再求反,非zhi0求反值為0,至於daoy--,y自減運算,運算子在後面先取y的值,再進行自減運算,y--,y的值為0,但是自減之前先取y的值參與邏輯或運算,0邏輯或1結果為1
7樓:匿名使用者
(!x++||y--) = 1
y-- = 1,表示先賦值後自減,賦值是1
!x++ = !1 = 0,賦值同上,!取反
c語言中有符號型別的int範圍,C語言中 有符號型別的int範圍( 128 127)是怎麼求出來的,特別是 128 怎麼理解 負數用二進位制怎麼表示
恩!首先要指出你的一個錯誤!int的範圍不是 128 127 這個是char的範圍,範圍的大小是由型別所佔有的位元組來決定的。如此所示 char是一個位元組8bit,那麼在二進位制中,8bit最大值是255,最小值是0 在是在無符號時 如果是有符號的話.那麼就還有一位是符號為,最高位是符號為。例如 ...
C語言關於int變成float,C語言中如何實現將一個浮點數float轉成int型別?
定義的資料型別不一樣!int和float的資料寬度都不一樣!要麼就強制轉換!但是強制轉換也會出錯!因為int不能強制轉換成float float的位寬比int長 程式裡你定義a是整型,輸出的卻是浮點型,相矛盾 我藉助csdn上一文章告訴 你 printf不會關心你輸入的引數的型別,你輸入的實際是 p...
在c語言中 如果下面的變數都是int型別 則輸出的結果是
輸出結果是為7 1.pad sum 先將sum 此時為5 賦值給pad 此時sum的值,賦值給pad,pad也為5 再進行sum 操作。2.pad 該 直接執行,結束後,pad由5 1操作,變為6。3.pad,pad直接操作 動作,6 1,結果pad為7,該 執行結束。4.printf列印出7 su...