大學c語言問題 int a 0,b 1,c 1,d 3 表示式 bca的值

2021-03-28 14:46:49 字數 4339 閱讀 4355

1樓:匿名使用者

||(|++ -- 都是比&& || 優先順序高的運算子,所以先算++ --

b就是2 c就是0 a就是-1

然後算&& ||

2&&0||-1 = 0||-1 = 1 (|| 兩邊只要有一個不為0,結果則為1)望採納

假設int a=0,b=1,c=1,d=3;表示式a*b&&c-d是多少

2樓:聽不清啊

值為0。

a*b=0

c-d=-2

0&&(-2)=0

作邏輯運算時,c語言是可以這樣用的: 非0的整型數和ascii碼非0的字元都認為是真 0和ascii碼為0的字元被認為是假

3樓:匿名使用者

&&兩邊的表示式為真時結果才為真,只要有一邊的表示式為假,整個表示式結果都為假,a*b結果為假,所以a*b&&c-d結果為假,結果等於0

大學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語言的 ++ 問題, 設int a=1,b=2,c,d,e; 15

8樓:

++在前是先+後用,++在後先用後+;--類同;

c=(-a++)+(++b);轉換為

++b;                //b = 3;

c = (-a)+b;     //c = 2;

a++;               //a = 2;

d=(b--)+(++a)-a;  轉換為++a;                //a = 3;

d = b+a-a;        //d = 3;

b--;                    //b = 2;

e=(a/(++b))-(a/(--a));//此時從左至右,(a/++b) = (a/(b+1)) = 3/(2+1)=1;

//(a/(--a))=(a/(a-1))=(3/(3-1))=3/2 = 1;定義的是int型是整數所以捨去餘數,等於1;前式-後式 = 1- 1 =0;

9樓:就愛養魚

c=(-a++)+(++b); a計算再自加1,b先+1用於計算故:

c=(-a++)+(++b); 和c=(-a)+(b+1);a+=1;b+=1;在結果相同

經過:c=(-a)+(b+1);a+=1;b+=1;,c=2,a=2,b=3

d=(b--)+(++a)-a;中,a先自加再計算,b先計算再自加

d=(b--)+(++a)-a;和d=b+(a+1)-(a+1);a+=1;b-=1;結果相同

d=b+(a+1)-(a+1);a+=1;b-=1;後a=3,b=2,d=3

同理e=(a/(++b))-(a/(--a));結果和:e=((a-1)/(b+1))-((a-1)/(a-1));a +=1;b +=1;結果相同

所以結果是:2,3,2,3,0

純筆算,未程式驗證

10樓:匿名使用者

vs用的編譯器下的答案是c,d,e == 2,3,-1. a,b=2,3

舉個例子,前二個吧

c=(-a++)+(++b); // c=(-1)+(2); a=2;b=3

d=(b--)+(++a)-a //d=(2)+(3)-2; a=3;b=2;

……編譯器不同答案是不相同的,vs的編譯器是從右往左計算的,所以就是上述答案

11樓:

第一步:計算a++得a=2,計算++b得b=3,最後計算c,c=(-1)+(3)=2

第二步:計算b--得b=2,計算++a得a=3,最後計算d,d=(3)+(3)-3=3

第三步:計算++b得b=3,計算--a得a=2,最後計算e,e=(3/3)-(3/2)=1-1=0

故最終得到的結果為:a=2 b=3 c=2 d=3 e=0

12樓:匿名使用者

e=-1

a=3;b=2;c=2;d=3

-a++=-1; ++b=3;(a++表現的值不變-a=-1;++b=加一);

b--=2;++a=3;(b--表現的值不變,)下面的 都是類推;

13樓:匿名使用者

a = 2, b= 3,c=2,d=3,e=0 執行一下就知道了,看一下運算子優先順序

c語言問題 int a=10,b=20,c=3; 表示式a/b*c的值是0 為什麼呢

14樓:匿名使用者

10/20*3

子表示式10/20的結果為0,因為參與的型別均為整型,所以結果也是整型的0

大學c語言問題 int a=0,b=1,c=1,d=3 表示式++b&&--c||--a的值是多少?變數a,b,c的值分別是多少?為什麼?

15樓:gta小雞

先計算++b,為2,再計算--c,為0,2&&0為0;然後計算--a,為-1,0||-1為1。所以表示式為1,a,b,c分別為-1,2,0.

16樓:匿名使用者

先計算++b,b = 2 不為0 ,然後計算--c c = 0,不滿足邏輯運算關係,所以還要計算--a,a=0.

b = 2 , c = 0, a = -32768.

一道c語言的題?設int a=1,b=2,c=3,d=4;則表示式a++

17樓:匿名使用者

剛剛錯了!

自右往左:

先算a++=2

2,2為真取值為a,為假取值為(c就是假,取(c

然後就是c

18樓:

上式相當於a++括號裡面的,明顯c=3,d=4,所以c顯為真且a++,則a=1,故最終結果的值為1。

以上僅供參考

19樓:匿名使用者

最好去自己程式設計除錯就ok了,除錯的每步都可以檢視每個變數的結果

假定int a=3,b=2,c=0表示式c=a>b>1&&(a++==1+b++),a+b+c的值是?

20樓:匿名使用者

因為a>b為真所以a>b=1,而1不可能大於1,所以a>b>1為假,所以a>b>1=0,導致&&後的語句不執行,所以c=0,a=3,b=2,所以a+b+c=5

21樓:寒茗

不懂那個表示式是什麼意思

c語言執行以下程式段後變數a的值是:( ) int a=0, b=3;

22樓:匿名使用者

條件a+b&&a++&&b-a&&a是這樣執行的,a+b=3,a++先判斷在自增,判斷為0,自增後為1,因為判斷為0,所以邏輯短路,後面的也就不判斷了

switch裡面是0,所以case 0執行成功,也就是說從case 0後面的語句都要執行,知道遇到break

a++;

case 1:b++;

case 2:a+=b;

也就是這些都有執行

所以是6

選d不懂再問懂請採納

C語言中。inta1,b0,c1執行語句bac後,a,b,c

或運算,而且是左結合,b為真,整個表示式就為真了,不再繼續運算,也就是 a和 c沒有運算,表示式的結果就出來了。後首先根據運算子優先順序和結合性。b a c 然後先算 b,此時 b 1,為true,於是不需要專算 後的內容了。屬 因為 true 任意表示式 true。注意,運算子優先順序不代表計算優...

C語言中,int a 3,b 0a a b a中, a具體定義是什麼 為什麼得出來是

是非運算,參與 運算的量是真,結果為假 參與運算的量為假,結果為真c語言版規定 1為真,0為假 但對於變數,權非零即為真,0為假 所以 a 3 a表示假 a a b a 這個整體是與運算,有一個為假 整個結果就為假 在c語言中是邏輯非的意思,即為0或者是非0,題中a 3,所以 a就是0了 c語言裡i...

c語言問題 int a 210,20,30,40,50,60p p a則p 2 1 的值為多少

結果60 指標p指向的是0號行,也就是a 0 p 2 a 2 p 2 1 a 2 1 p 2 1 對應陣列元素a 2 1 因此值為 60。我也看不懂,誰來講講啊?c語言的問題 int a 3 4 1,2,3,4,5,6,7,8,9,10,11,12 int p 4 p a 因為p 0 和p 1 分別...