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

時間 2021-06-25 15:04:14

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

若有說明語句 char c72 則變數c包含字

因為變數c宣告為char型別,char用於c或c 中定義字元型變數,只佔乙個位元組 8位 char型資料是計算機程式語言中只可容納單個字元的一種基本資料型別。字元是指計算機中使用的字母 數字 字和符號,包括 1 2 3 a b c 等等。在 ascii 編碼中,乙個英文本母字元儲存需要1個位元組。在...

c語言中若有定義 char c010怎樣解釋這條語

開頭的字串行是轉移字元,比如 n是換行的,還有一種格式,ddd ddd是1到3位8進製數 表示用ascii碼 八進位制數 表示乙個字元。c 010 表示將ascii值為8 8是十進位制,八進位制的10等於十進位制的8 的字元賦給c。010 是8進製的10也就是10進製的8,具體字元是backspac...

請教一道有關C語言的題目 若有定義a31,2,3,4,5,6,7,8,9,則表示式sizeof a

關鍵是理解這句話的意思,首先定義了乙個陣列。a 3 從此處可以看出是個三行三列的陣列。sizeof a 表示的是整個二維陣列的位元組數。因為a 0 代表的是第一行的位址,所以此處sizeof a 0 指的是一行的位元組數,那麼sizeof a sizeof a 0 求出來的也就是此陣列的行數。即結果...