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的值為假...