1樓:空對空導彈
這個是根據運算子的優先順序來決定的,賦值的優先順序比較低,僅僅高於逗號運算子,所以前面不用括號。
c語言:已有定義int x=3,y=4,z=5;則表示式 !(x+y)+z-1&&y+z/2的值是?
2樓:
答案是1。
涉及到的運算子: ! () + - && /運算子優先順序為:() ! / + - &&運算過程:
x=3,y=4,z=5
!(x+y)+z-1&&y+z/2
!(3+4)+5-1&&4+5/2
所以表示式計算步驟為
!(3+4)+5-1&&4+5/2 -> !7+5-1&&4+5/2!7為 0
-> 0+5-1&&4+5/2
5/2 整數除整數得整數 2
-> 0+5-1&&4+2
-> 4&&6
邏輯運算 &&
擴充套件資料c語言運算子的優先順序:
如果同一優先順序的運算子,結合次序由結合方向所決定。
3樓:匿名使用者
只是等於1的,我是經過turbo c2.0編譯過的,答案應該沒什麼問題的,程式是:
main()
答案為什麼會等於1呢?那是因為運算級別的問題,根據運算級別,實現算括號裡面的先,所以程式就變成!7+z-1&&y+z/2;
然後就算!運算,由於7是大於1的,也就是真,所以!真就是假,也就是0,所以函式就變成0+z-1&&y+z/2;
然後再算除號的,由於你這裡兩個都是整形的,所以小數點後面的數忽略,所以就變成0+z-1&&y+2;
接著計算加減運算,也就是變成4&&6;
因為4和6都是大於1的數,所以就是真,由於&&兩邊都是真的話,輸出的就是真,所以結果就是1。
要是還有什麼不明白的話,就mm我吧!嘻嘻~~~~~~
4樓:匿名使用者
1優先順序: 算數》條件》關係》賦值
關係中的優先順序: 非》與》或
5樓:匿名使用者
1,把運算子優先順序搞清楚就好了
6樓:匿名使用者
x等於y加4。四家外加1+3+5+4+1等於三五+4+5+1。
7樓:匿名使用者
!(3+4)+5-1&&4+5/2
=!7+4&&4+2
=!11&&6
所以說那個式子的值是:不是11並且是6
6 .已知int x=1,y;執行下述語句後變數x的值是_________。 ( b ) y=++x>5&&++x<10; a. 1 b. 2 c. 3 d. 4
8樓:匿名使用者
你要明白&&這個的含義以及執行機制,&&操作,首先計算它前面的表示式:如果前面的表示式滿足,則計算&&後面的表示式看滿足否。如果前面的表示式不滿足,則絕對不可能執行後面的表示式。
因此,上述題首先執行 ++x>5,發現++x後x=2<5,因此前面不滿足,那麼整個條件不滿足,因此不可能執行 ++x<10這個語句,因此x=2
9樓:匿名使用者
&&和||都是短路運算子,&&運算子是前面的表示式值為0的時候後面的表示式將不執行。||運算子是前面的表達值值為1後面的表示式就不執行。拿&&運算子說,它本身的意思是前後兩個表示式都成立才行。
按順序先算前面的表示式,如果這個表示式不成立,那麼後面的表示式也就沒有算的意義了,所以後面的表示式不執行了。 這裡的++x>5即2>5值為0,後面的++x<10就沒有執行
10樓:智楠
因為你的第一個條件(即y=++x>5)就不滿足,對於「且&&」來說,只有第一個滿足才會判斷第二個條件,因為只要有一個不滿足就沒有繼續判斷的必要了,整個條件(y=++x>5&&++x<10)視為不成立。
11樓:匿名使用者
後面的答案很多,主要還是&&的理解;
12樓:匿名使用者
&& 前面部分的值為假,因此不需要判斷後面部分是否為真,整個值都是假,因此不會執行。
13樓:匿名使用者
turbo c++的結果是0
c語言問題:(2>3)&&(x=5)為什麼結果是1?(2<3)&&(x=5)結果是5?
14樓:白色夜空的星星
(2>3)&&(x=5)。&&這個是且。就是兩邊都要成立才行。2>3這是假的。所以不成立,後面的x=5就不會執行了。
(2<3)&&(x=5)。2<3成立了,再看x=5.這個是賦值,一定是真的,x的值變成了5。另外我都懷疑你寫錯了,是不是x==5,這個才是等號。
c語言請讀程式 int x 10 int y xprintfd,dxy ,y則上面程式的輸出結果是
printf先算後面的y 先輸出10然後再自加,這時y 11,括號表示式返回的值是最後那個,這時返回11,所以輸出11,10 因為printf是從右開始運算的 所以先算y 然後再算逗號裡面的 你選的是對的,copy答案就是c,當執行到y x 時,因為y x 是先運算後自加,所以y的值是10,此時x值...
c語言題目 已知,int x 10,y 3,z
z x y,x y 逗號表示式,結果為最後一個表示式的值。x y 10 3 表示整數除,結果應該是整數。3 3顯示的是z的值,z的值是逗號表示式的值,逗號表示式是後面的x y的值,x y 10 3 3 x y 為取餘運算 10對3除 餘1 x y 1x y 因為x和y都是整型 所以結果取整 x y ...
C語言為什麼輸出的是7 0啊,C語言 7 0,為什麼
字元 hex dec 0 0x00 0 從數值上說上面三個是相等的 0 0x30 48 請lz注意他們的區別 你可以這樣理解strlen 函式的實現 int strlen char str 定義的x是字元型陣列名,但在c語言中字元型變數可以被賦予整形資料,字串裡遇到結束符0 0 就會結束,不管後面是...