c語言若有定義語句int b2則表示式b《2b 的值是

2021-06-25 15:03:46 字數 3485 閱讀 7059

1樓:匿名使用者

我感覺這題答了以後 採納率又會下來。。。

2 的二進位制形式 0010

b<<2 = 1000 = 8;

3||b =3||2 =1;

所以最後的表示式的值就是 8

至於你說的為什麼3||b =1.。。

首先你得分清 || 與 | 運算。

| 是按位或 就是你說的 011 | 010 後結果為 011

而在|| 的世界裡,只認兩個值 0 和 1。 即真和假

所有非零值 都會 被當成1 來 運算,零就是零。

所以 3||b 3被認為是1來進行運算的,即真值。一個真||(真/假)均為真。

所以3||b的值就是 真,就是1. 這個高中數學裡都用的吧。。那叫什麼邏輯命題來著。真真假假的,其實是一個東西。

另外if while 裡面的判斷條件 也和上面類似

if(b) 那麼b只要是非零都被認為是真 就是1 就會執行,0就不執行。

例如 while(3)

這也是個死迴圈,而不是 只有while(1)才會無限執行。。。3也是非零值,就被當做真值。

可能初學時候你們if的判斷還只寫作表示式的形式

if(a==b) 其實也是一樣的 。 a==b a>b abool 其實就是char型別 佔8位元組。只不過這裡的值 只能有 0和1.兩個

為了拿到採納率 所以多寫點,雖然比較無關。。。

bool c;

c =(a==b);

會判斷 如果a和b相等,那麼值就為1,賦值給c 不等就為0 賦值給c。

這也是if (a==b) 如果相等就執行的一個原因。

2樓:

搞定運算子的意思即可,8

3樓:匿名使用者

b<<2 = b*4 = 8

3||b = 1

(b<<2) / (3||b) = 8

若有定義:int a,b; 則表示式(a=2,b=5,a*2,b++,a+b)的值是?

4樓:聖雅柔顧妙

b++的意思是

先將b的原值帶入本條語句執行,然後再自加,這裡本條語句為b++;

即什麼也不做,然後自加

如果換成c=a+b++;則c=7;

而不是8

5樓:噴農藥的蘇

(float)(a+b)/2

得到浮點數2.5

(int)x%(int)y,因為把x,y強制裝換為其實就是3墨2得到int數1

結果是3.5

6樓:勤奮的欄欄

先掃描逗號表示式 結果是8

c語言:int b=2 b<<2/(3||b)是什麼意思?

7樓:匿名使用者

你的寫法有問題:

如果這樣寫的結果為:

int b;

b=b<<2/(3||b);

c語言運算子優先順序詳細列表請參看:http://www.slyar.com/blog/c-operator-priority.html

從此表可以看出:/運算子比左移運算子《級別高。而左移運算子《比邏輯或||運算子級別高,但此處邏輯或運算子被小括號()擴起來了,故該表示式的詳解為:

3||b:由於3為非零值故該表示結果為真,即結果為1由於除法運算級別高,故先執行除法,即2/1結果為2.

然後執行左移運算:將b的值左移2位,十進位制2的二進位制格式為0010,左移兩位為1000,故結果為8.

8樓:匿名使用者

int b=2;

(3||b)即3與b進行 “或” 運算,(3||2)為真,即(3||b)的結果為1;

算術運算子優先順序高於移位運算子,所以先進行算術運算,即b<<(2/1);

最後b左移2位,b=2,二進位制表示為0010,左移2位,則為1000,即為十進位制的8。

9樓:雲飄青峰上

《是左移運算子 /是算術運算子 ||是邏輯運算子 且優先順序() / << || 所以(3||b)=1 然後2/1=2 最後b<<2相當於b乘以2的2次方即b<<2=8

10樓:武曉瑤

這題的入手點是考運算子的優先順序 || 是邏輯或運算,《是左移運算

11樓:漆雕孤萍宦漪

b!=2

是判斷b是否為2。是,結果為0,不是,結果為1。

c--!=3

是判斷c是否為3。是,結果為0,不是,結果為1。

然後c自減1.

整體看((b!=2)||(c--!=3))||是或運算子,兩邊只要有一個是非零,結果就是1.

如果前面是非零,則系統不會再去處理後面部分,這樣的話,c值不變。

若有如下定義:int a=2,b=3; float x=3.5,y=2.5; 則表示式: (float)(a+b)/2+(int)x%(int)y 的值是

12樓:中職語文教學教研分享

float)(a+b)/2

得到來浮點數自2.5

(int)x%(int)y,因為bai把x,y強制裝du換為zhi其實就是3墨dao2

得到int數1

結果是3.5

3.5(float)(a+b)/2+(int)x%(int)y= (float)(2+3)/2+(int)3.5%(int)2.5= (float)(5)/2+3%2

= 5.0/2 + 1

= 2.5 +1

= 3.5

13樓:噴農藥的蘇

(float)(a+b)/2

得到浮點數2.5

(int)x%(int)y,因為把x,y強制裝換為其實就是3墨2得到int數1

結果是3.5

14樓:匿名使用者

答案是3.500000

若有定義int a=1,b=2,c=3;則執行表示式(a=b+c)||(++b)後a,b,c的值

15樓:紫瞳傲雪

1。 b+c=5

將 5 賦值 給 a

2. a =5 為真 || 短路或所以不執行 ++b

b 依然為2

所以 有 a=5 b=2 c=3;

16樓:匿名使用者

從左往右看,a=b+c a=5, ++b, b=3

c語言,若有定義:int a=1,b=2,c=3;則語句++a||++b&&++c;執行後b的值為

17樓:

優先順序 ++ > && > ||

可以看成++a || (++b && ++c),因為++a已經==2 > 0 因此,後面不再計算。

即a = 2, b= 2 ,c =3

C語言若有定義 int a 1,b 2,c 3則語句 a丨丨 bc,執行後b的值為多少

2,或運算只需乙個滿足就行 a 2不等於0個,故或運算結果為一,b運算沒得到執行 a 算得結果是邏輯真,跟後面的部分進行邏輯或運算,不管後面的部分算得結果是真還是假,最終結果都是趙,所以後面的部分就不算了。所以運算後 b 的值還是 2。同理,c 的值還是 3。c語言,若有定義 int a 1,b 2...

C語言若有語句int a 1,b 2,c 3則以下值為0的表示式是

因為a 的值為0,a 的值為1,所以c 0 因為 在後面,所有a 表示式的值沒有變,只是改變了a的值!選d,c a為真,值為1,a b 為假,值為0,是恆等於,當然0是不等於1的,所以表示式假,其值為0 答案是d 第乙個是 ascii 邏輯與 只有 a 和 b 中最少有個為 0 時才為0 直接編寫一...

若有定義語句 int a則下列語句正確的是

答案是bai c 解決這類題型du 首先要分清型別。zhi a錯,雖然 p 的型別是 dao int a 的型別是 int 但是陣列專名代表的屬位址也不能改變。b錯,因為 p 0 的型別是 int a 的型別是 int c對,p 0 的型別是 int a 1 2 的型別也是 int d錯,p 1 的...