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 的...