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語言運算子優先順序詳細列表請參看

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

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

若有以下定義語句則sizeofa和sizeofb的值分

如果一個int佔兩個位元組的話,也就是原來的16位系統,則只能選a了。因為,只有a才接近,而且struct沒有什麼策略,是多少就佔多少。而b是指標,存放地址,16系統地址就是2個位元組。a a 5 2 看樣子是16位編譯系統 int day 2位元組 char moutn 1位元組 int year...

c語言題目 若有下列定義 char a int b floa

豬頭或火寶寶 你好!char a int b float c double d c b d c這個表示式中含有不同的資料型別,那麼編譯器就會自動把低階型別向高階型別轉換 當然這個轉換是自動轉換的 即編譯器會把char int,float 轉換成double的型別,c b d c但是我們定義變數c是f...

若有定義int a 3,b 2,c 1,則執行程式段if abc a b else a c之後,a

great喜歡程式設計 問題不全啊?a的值?a b c啊,所以執行a b,即把b的值賦給a,所以a 2 a最後為2,符合a b c 若有定義 int a 3,b 2,c 1 則執行程式段if a b c a b else a c 之後,a的值為 polaris北斗 a的值為1 條件a b c的值為假...