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不懂再問懂請採納 或運算,而且是左結合,b為真,整個表示式就為真了,不再繼續運算,也就是 a和 c沒有運算,表示式的結果就出來了。後首先根據運算子優先順序和結合性。b a c 然後先算 b,此時 b 1,為true,於是不需要專算 後的內容了。屬 因為 true 任意表示式 true。注意,運算子優先順序不代表計算優... 是非運算,參與 運算的量是真,結果為假 參與運算的量為假,結果為真c語言版規定 1為真,0為假 但對於變數,權非零即為真,0為假 所以 a 3 a表示假 a a b a 這個整體是與運算,有一個為假 整個結果就為假 在c語言中是邏輯非的意思,即為0或者是非0,題中a 3,所以 a就是0了 c語言裡i... 結果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 分別...C語言中。inta1,b0,c1執行語句bac後,a,b,c
C語言中,int a 3,b 0a a b a中, a具體定義是什麼 為什麼得出來是
c語言問題 int a 210,20,30,40,50,60p p a則p 2 1 的值為多少