C語言中int a 9,b 5那麼表示式b(a

2021-08-11 08:07:25 字數 3142 閱讀 8772

1樓:駱海旗靜雲

b=(a=4)/(b=a);

1,把4賦值給a;

a=42;把a賦值給b

b=a3.相除

結果就時1了

其實不管a是多少(0除外)

結果都是1

2樓:縱藹英芷蝶

inta=9,b=5

這句是給a,b賦初值

b=(a=4)/(b=a)

在這句中a=4是給a重新賦值了,此時a=4,所以b=a=4b=(a=4)/(b=a)=(a=4)/(b=4)=4/4=1

3樓:捷煜白之

把表示式分解開:

a=4;

b=a;

b=a/b;

1.變數為整型,故為整除

如i=3/2時,i的也為1

2.優先運算括號

4樓:錯炎御玄穆

a=4這個式子的值是4

b=a這個式子的值是b,即賦過a值後的b,也為4

4/4=1

5樓:潮鳴豐逸馨

我想b=(a=4)/(b=a)這個執行順序應該是先執行(a=4),a=4;

再執行(b=a),那麼b=4;

再執行除法,4/4

=1不知道對不對。。

再就是,/是整除

6樓:閃深薊菁

先執行++a,得到a=4

然後做a-c=4

-5=-1

在做(a-c)+b=-1-4=-5

最後做b++,b=-3

最後表示式結果是-5

c語言:當a=5,b=4,c=2時,表示式a>b&&b>c的值是?

7樓:育知同創教育

c語言:表示式a>b&&b>c的值是首先分析a>b是成立的,b>c也是成立的,所以值為true

8樓:匿名使用者

1,a>b為真,b>c為真,&&兩邊都為真時結果為真

c語言中有一道題目:已知"int a=4,b=5,c;",則執行表示式"c=a=a>b後變數a的值為( ) a 0 b 1 c 4 d 5

9樓:匿名使用者

這個涉及到c語言的單目運算子優先順序與結合性的知識:

62616964757a686964616fe59b9ee7ad9431333330356165

優先順序:

在表示式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算子優先順序相同時,則按運算子的結合性所規定的結合方向處理。

結合性:

c語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。如有表示式x-y+z 則y 應先與“-”號結合,執行x-y 運算,然後再執行+z 的運算。

這種自左至右的結合 方向就稱為“左結合性”。而自右至左的結合方向稱為“右結合性”。

在你的問題中,"="在表示式中是賦值運算子,而在c語言中,賦值運算子是典型的右結合性運算子。如x=y=z,由於“=”的右結合性,應先執行y=z 再執行x=(y=z)運算。

所以,本例就是先計算雙目運算子“>”:a>b,因為a=4,b=5,a是小於b的,所以式子計算就變成了c = a = 0,然後再計算a = 0(即a = (a > b)),最後式子就是c = 0, 所以答案選a

具體運算子優先順序和結核性請參考:

10樓:0冷雨

答案是a;因為a=a>b意思為把波爾值a>b賦值給a,因為a大於b,a>b等於0,所以a為0.望採納~

11樓:匿名使用者

a, a=0

= 是由du右向zhi左運算的,

a>b值為daofalse,值為0

所以c=a=0

另外也可以專寫程式屬驗證:

#include

int main(void)

設int a=5,b=6,表示式(++a==b--)?++a:--b的值是

12樓:匿名使用者

結果為bai7。

條件表示式

du為:表

zhi達式1?表示式2:表示式3。先求解dao表示式內1,若其值為真(非容0)則將表示式2的值作為整個表示式的取值,否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。

先判斷++a==b--是否為真,++a表達的值為6,b--表達的值為6,兩者相等,為真。則將表示式++a的值作為整個表示式的取值,因為在此之前a的值已經自增變成6,再進行++a表示式的值為7。

13樓:匿名使用者

最後值為7,這是一個if語句,就是

int a=5,b=6;

if(++a==b--) ++a;

else --b;

++ar的規則

是先運算,所以括號中左值++a=6,a=6;

==的優先順序低版過--,所以先計算權b--b--的規則是先賦值,所以括號中右值b--=6,b=5;

左值6==右值6,即條件為真,執行++a,因為a值已是6, 所以加1操作後,

結果為 7

14樓:烏石

7,條件表示式條件為真,取值為++a;原來為6,執行++a後為7

c語言 這種寫法 a=b=(a=5,b=10) 的a,b值是多少,為什麼?

15樓:

a=10

b=10

過程如下:

對於 a=b=c 語句,執行順序是 b=c ,然後 a= (b=c) => a=b, 所以 a,b,c值全相等.

再看c是一個逗號表專達式, 逗號表示式從左向右運算屬, 表示式的值為最後一個子表示式的值.

對於 (a=b,b=10) ,它的值為 b=10, 值為10.

所以最後 a=10, b=10

16樓:匿名使用者

都是10;因為(a=5,b=10) 是個逗號表示式,逗號表示式整個表示式值是表示式2的值,也就是10,所以a=b=10;

在c語言中int a 2,b 3,c 6,ma cb 1 ac 0 b a 2 0 2為什麼ma cbac b

a c a c 的值為0。很簡單 b a 2.0的值為6.所以總體是6.個人見解,沒有跑程式驗證 你確定你對這兩個左值賦值沒問題?a c 0 b a 2.0 2 c語言中int a 3,b 2,c 1執行if a b c a b else a c 後a 1 執行的時候bai,應該寫a b b c 你...

在C語言中b5表示什麼意思,c語言中b3b5之類的語句是什麼意思。

是b b 5 的意思 就是b b 5的意思 同樣a 3 a a 3 c語言中 b 3 b 5 之類的語句是什麼意思。是b b 3 b b 5的簡略語句 b 3就是b b 3。b 5就是b b 5 c語言中b 5 0 什麼意思?很明顯,這是在對複陣列 制b 5 進行初始化,具體操作的細節bai需要根d...

c語言中如果ar是個陣列那麼表示式ari與什麼等價

ar是一個陣列,就是ar是名為ar的陣列的首地址。ar i 就是ar陣列的第i個元素,用指標的表達方式表達就是 a i 例如 intar 5 p 如果想讓p指向陣列首元素的話,可以寫 p ar 則會將首地址賦值給p 如果是寫ar 3 7 則編譯程式會取ar陣列首地址,加上7 sizeof int 後...