c語言中,設int a,b,c執行表示式a b 1,a

2021-03-11 10:56:42 字數 3659 閱讀 7598

1樓:葉子離去是紀念

a=b=1 //此時a值為1,b值為1;

a++ //a自增為2b+1 //不對b的值產生任何影響c=a+b-- //首先,b--優先運算,專運算結果是1,然後b自減

屬為0,此時a值為2,再算c,所以c值 為 a+(b--)值為2+1=3

2樓:匿名使用者

a=b=1,//a=1 b=1 c=0a++, //a=2 b=1 c=0b+1, //a=2 b=1 c=0c=a+b-- //a=2 b=0 c=3//----------------------區別(i++)和(++i)-------給你個例回子

int i=1;

int y=i++;// y=1 i=2 //i--同理答int i=1;int y=++i;// y=2 i=2 //--i同理

3樓:匿名使用者

a=1 -> a++ (a=2)

b=1 -> b+1 (b=1) -> b-- (b=0)

c=a+b=2+1=3

大學c語言問題 執行「int a,b,c;a=b=c=1;--b&&++c||++a;"後,變數a

4樓:我才是淡淡

|,首先你要把整個結構弄清楚,&&的優先順序高於||,所以上面的式子等價於(--b&&++c)||(++a),

先看(--b&&++c),--b導致b的值為0,所以(--b&&++c)必然為假,所以c就不會加一了,c的值還是1。然後(--b&&++c)為假並不能直接斷定(--b&&++c)||(++a)的真假,因為||需要兩邊為假才是假,所以需要判斷右邊的(++a),這裡a自加一次變為2,(++a)為真,整個表示式(--b&&++c)||(++a)的值為真。最後a,b,c的值分別是2,0,1

5樓:

你的**是順序結構;

所以執行的時候是先對a進行賦值,也就是a=1;

至於後面對b和c的運算,並不能改變a的值。

第一步 int a,b,c;

第二步 a=b=c=1;

第三步 --b&&++c||++a;//這個地方只有++a能改變啊的值 b和c對a的值不影響

第四步輸出a的值;

6樓:益達是誰

這判斷式a,b,c應該是2-0-2啊,怎麼是201,還有我想問這式子對嗎

7樓:匿名使用者

答案應該是2 1 1

c語言中c=(a+b,a++,b+1);什麼意思

8樓:匿名使用者

逗號表示式的取值,是最右邊一個表示式的值

程式先計算逗號表示式最左邊的式子a+b,計算結果沒有儲存,對a,b,c的取值沒有影響[a=1,b=2]

然後計算a++[a=2,b=2]

然後計算b+1[b+1=3,a=2,b=2],計算結果會當作整個逗號表示式的最終取值賦值給c[a=2,b=2,c=3]

9樓:匿名使用者

逗號運算子的作用,取最後一個,所以結果會是後面的。

相當b=b+1;

//因為是a++,所以忽略

c=b;

10樓:邪眼王·飛影

(a+b,a++,b+1)是逗號表示式,從左到右執行,值為最右邊的,b+1=3,結果為3

c語言中。int a=1,b=0,c=1; 執行語句 !b||++a&&++c 後,a,b,c

11樓:

或運算,而且是左結合,!b為真,整個表示式就為真了,不再繼續運算,也就是++a和++c沒有運算,表示式的結果就出來了。

12樓:匿名使用者

|後首先根據運算子優先順序和結合性。((!

b))||((++a)&&(++c))

然後先算!b,此時(!b)=1,為true,於是不需要專算||後的內容了。屬

因為:true||任意表示式=true。

注意,運算子優先順序不代表計算優先順序。

如果你把b=1 結果就是212

13樓:卿楓凌

對於!b||++a&&++c;按照規bai

定, 要先計du算 && (&&的優先順序zhi比||高)也就是需要計算dao出 ++b和c++;

但是按專照優化, 只要計算出 a>0 就可屬以了,不需要計算出 ++b和c++,「||」在這裡起到了短路的功能(短路就是,當第一條表示式能決定整條表示式的結果,那麼後面的語句都不執行!),這也叫做布林法則,給你推薦一本書叫做「c語言解惑」。望採納

c語言中int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf

14樓:匿名使用者

c語言copy提供一種特殊的運算子——逗號運算子。用它將兩個表示式連線起來。如:

3+5,6+8

稱為逗號表示式,又稱為「順序求值運算子」。逗號表示式的一般形式為表示式1,表示式2

逗號表示式的求解過程是:先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。例如,上面的逗號表示式「3+5,6+8」的值為14。又如,逗號表示式

a=3*5,a*4

對此表示式的求解,讀者可能會有兩種不同的理解:一種認為「3*5,a*4」 是一個逗號表示式,先求出此逗號表示式的值, 如果a的原值為3,則逗號表示式的值為12,將12賦給a, 因此最後a的值為12。另一種認為:

「a=3*5」是一個賦值表示式」,「a*4」是另一個表示式,二者用逗號相連,構成一個逗號表示式。這兩者哪一個對呢?賦值運算子的優先順序別高於逗號運算子, 因此應先求解a=3*5(也就是把「a=3*5」作為一個表示式)。

經計算和賦值後得到a的值為15,然後求解a*4,得60。整個逗號表示式的值為60。

15樓:匿名使用者

c=(a+=a+2),(a=b,b+3);

->c=(a+=a+2);(a=b,b+3);

->c=(a+=a+2);a=b;b+3;

16樓:焚香木弋

int a=1,b=2,c=3;

c=(a+=a+2),(a=b,b+3);

相當於兩個順序語句:

先執行了c=(a+=a+2)這個語句得出c=a=a+1+2=4;

然後執行a=b,b+3;得出a=b=2;後面專的b+3單純是迷惑人

屬而已,不起作用。

所以輸出的答案是a=2,b=2,c=4;

17樓:沫宸萱

樓主自己敲下**執行結果不就知道了?

18樓:康康

2,2,4

可以自己編譯跑一下啊,比來問以後效率得多

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

19樓:育知同創教育

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

20樓:匿名使用者

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

在C語言中,設有char a Cb A執行語句printfd

設有char a c b a 執行語句printf d,d b,a b 後,輸出結果是 a 65,2 因為在c中,char 等同於一個8位有符號整數,只是內作 字元 解讀。容所以,char a c b a 等同於char a 67 b 65 在以 d格式輸出時的值就是 65,2 選擇a,這個就是把對...

C語言代數關係,c語言中,關係表示式和邏輯表示式的值是什麼?

1 並 union 關係r與s具有相同的關係模式,即r與s的元數相同 結構相同 r與s的並是屬於r或者屬於s的元組構成的集合,記作r s,定義如下 r s 2 差 difference 關係r與s具有相同的關係模式,關係r與s的差是屬於r但不屬於s的元組構成的集合,記作r s,定義如下 r s 3 ...

C語言中設int a3,0a ,請問a值是多少

你說得對,是優先於 所以可以看成是0 4,但0 任何數字結果都是0,所以最後a還是0 運算子就是先判斷左邊是否非零,如果非零在判斷右邊。題目左邊為零,右邊不做運算和判斷,這種問題叫 短路 在計算的時候,當 運算前半部分判斷為false時,不會執行後半部分,因此 a 不執行,a不變 同理,當前半部分判...