定義 int x 3,y 4,z 5則表示式 x y z 1 y z

2021-08-04 18:43:13 字數 1644 閱讀 4060

1樓:仍易闕鈴

c語言的優先順序(從上到下依次遞減):

醋-初等,4個:()

[]->

指向結構體成員

.結構體成員

壇-單目,9個:!~

++--

-負號(型別)

*指標&取地址

sizeof長度

酸-算術,5個:*/

%+-減味-位移,2個:

<<>>灌-關係,6個:

<<=>>===等於

!=不等於

味-位邏,3個:

&按位與

^按位異或

|按位或

落-邏輯,2個:

&&邏輯與

||邏輯或

跳-條件,1個,三目:?:

福-賦值,11個:=+=

-=*=

/=%=

>>=<<=&=^=

|=豆-逗號,1個:

,你可以發現算術運算子高於邏輯運算子,而非!高於算術運算子。

所以該表示式可以等於((!(x+y))+z-1)&&(y+z/2)現在就一目瞭然了。

x+y=7,那麼!7=0(邏輯運算都是規定0為假,除了0外都為真。那麼(!真)=假=0)

所以&&左邊的=0+z-1=0+5-1=4&&右邊的=4+5/2=6.5

因為是int型,所以取整它等於6

!(x+y)+z-1&&y+z/2它等於4&&6,由於4和6都是真所以4&&6等於1

該表示式的值為1

2樓:匡醉卉顧梓

1!(x+y)+z-1

先計算x+y,再!(x+y),然後結果)+z-1,結果是0+5-1=4

所以要計算&&之後的表示式

y+z/2=6

4&&6

=1附:c語言的操作符共有15個優先順序,如下:

operators

associativity()

->.left

toright!~

++--+-

*(type)

sizeof

right

toleft*/

%left

toright+-

left

toright

<<>>left

toright

<<=>>=left

toright

==!=

left

toright

&left

toright

^left

toright

|left

toright

&&left

toright

||left

toright

?:right

toleft=+=

-=*=

/=%=

&=^=

|=<<=

>>=right

toleft

,left

toright

優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

3樓:尋絲微孛彩

先x+y

再求非然後z/2

然後計算&&兩邊的表示式

最後執行&&運算

已有定義 int x 3,y 4,z 5,則表示式 x

你這個是c語言吧。你可以看看布林值其他型別的轉換規則。表示式 x y z 1 y z 2的值只可能是0和1,也就是假和真。這裡是表示式條件滿足,所以是1。x y z 1和y z 2分別判斷是0還是1,然後再進行邏輯與 運算。c語言當中,整數轉布林值的時候是非0轉1,0轉0吧。按這個規則來的。x y ...

c語言如果有定義變數int x 3,y 4,z 4則表示式 zyx 1 0的值為什麼

z y x 1 0 判斷z y x的值,如果為1,則值為1,否則為0從左到右運算 z y即4 4,結果為1 true 然後1 x,即1 3,結果為0 false 所以表示式的值為0 z y x 1 0 這是個條件表示式,z y x 括號裡面是個複合關係表示式,先比較z y,表示式為真,而在內c語言中...

請問數學 2x 3y 4z 38,(1)3x 4y 5z 50,(2)4x 5y 6z 623)x

解 思路是消x,過程如下 1 2 3 得 y 2z 14 即y 14 2z 分別帶入 專1 2 得 2x 3 14 2z 4z 38 2x 2z 4 x z 2 4 3x 4 14 2z 5z 50 3x 3z 6 x z 2 此結果與屬 4 相同,所以這個方程組其實只有2個方程,卻有三個未知數,解...