c語言 這題怎麼算,C語言計算問題

2023-06-04 02:40:15 字數 4029 閱讀 1470

1樓:網友

應該是3,1,0,0

的運算順序是自右至左,所以應該是c的值先賦給b,b在賦值給a,所以a=3

表示想等,優先順序比=高,所以先判斷b是否等於c等於為1不等於為0,在賦給a。因為前面已經將c的值賦給了b,所以c與b相等,因此a被賦值為1

的優先順序最高(比==還有高),所以先算括號裡面的,現將c的值賦給b,所以b=3,在判斷a、b是否相等因為在前式中(a=b==c),a中的值是1,所以a、b不相等返回0

根據以上規則,a==(b==c)就好判斷了,現在a=0,b=3,c=3,結果是0

因此顯示的結果是3,1,0,0

2樓:網友

因為a=1;b=2;c=3

所以b先賦值給a,a就變2了,然後c賦值給b,所以最後答案是3。。。

這時a=2,b=3,c=3

先算b==c(優先順序高) 是bool值b等於c,所以返回1,之後1在賦值給a,所以答案變1了。。。

這時a=1,b=3,c=3

肯定先算括號裡的。。。c賦值給b,b這時等於3,a和b比較下來是不相等,所以最後返回0。。。

a=1,(b==c)返回1,之後a==1比較我感覺應該返回1的。。。

我算出的答案是 最後1個就不確定了哈。。。

3樓:

第一個3是賦值表示式,從右邊算到左邊,把c賦給b,b=3,然後在把b賦給a,所以最後a=3;

第二個是個把b==c賦值給a,因為上面已經把c賦給b了,所以b==c所以b==c就為1,即a=1;

第三個是同理,a顯然不等於b的,所以a==b的值為0;

第四個同理啦,由第一點可得a等於3;然後b等於c,邏輯表示式的值為1,所以a!=1即邏輯表示式a==1的值為0,就這樣啦。

4樓:欣

1) 首先 先計算a==(b==c)

b和c的值相等嗎? 不等則(b==c)值為0a和0 相等嗎? 不等 則輸出 0

此時 a=1,b=2,c=3

2)再計算 a==(b=c)

先把c的值付給b ,此時b的值為3

再 a和b的值相等嗎? 不等 則輸出 0

此時 a=1,b=3,c=3

3)然後計算a=b==c

先 b和c相等嗎? 相等 這b==c 的值為1再 把1賦值給a 輸出 1

此時 a=1,b=3,c=3

4)最後計算a=b=c

把c的值賦給a和b 輸出 3

最後的結果就是 3,1,0,0

5樓:網友

從這一句來說:printf("%d,%d,%d,%d",a=b=c,a=b==c,a==(b=c),a==(b==c));

首先a=b=c

意思是將c的值賦給b(此時b的值是3(也就是c的值)),再將b的值賦給a(此時a的值就是3),最後輸出結果就是3

c語言計算問題

6樓:湯菊孝嬋

答案是22.。

t=(+i)+(i)+(i)=6+8+8=22。。

為什麼呢。這是v

c++編譯器。

的特性。就是最後兩個數的優先順序是相同的。。這樣說起來有點抽象。舉幾個例子您自己去琢磨吧。。

這是因為31=6+7+9+9。。

這是因為41=6+7+8+10+10

這是因為52=6+7+8+9+11+11。。

我只能這樣解釋了。。什麼看不懂的再問我吧。。嘿嘿。

7樓:盤季問浩

c語言裡以0開頭的數表示是八進位制數,那麼,八進位制轉換成二進位制的方法是,一個八進位制位佔3個二進位制位。

如果用二進位制表示那麼。

x=001011

y=010101

z=000001

z=111110

的優先順序高於^,,優先順序高於|

y&z=000001,.x|y&z=001011,即十進位制的11,所以第一個用%d輸出的是11

y&~z=010100,.x|y&~z=011111,十進位制的31y&~z=010111,x^y&~z=011111,十進位制的31

8樓:實娜夫白

首先x,y,z都是八進位制的數,這裡面的運算都是用二進位制的所以化為二進位制是x=00001011,y=0010101,z

00000001(用八位表示,不足八位的用0補足)(1)先進行與運算再進行或運算即(x|(y&z))11(十進位制)

2)先進行取反再進行與運算,最後或運算即(x|(y&(~z))31(十進位制)

3)先進行取反再進行與運算,最後進行異或運算即(x^(y&(~z))

00001011^(00010101&(~00000001))=00011111=31(十進位制)

9樓:燕澹厲採

求反運算。求反運算子~為單目運算子,具有右結合性。

其功能是對參與運算的數的各二進位按位求反。例如~9的運算為:

0000000000001001)結果為:1111111111110110

按位或運算。

按位或運算子「|」是雙目運算子。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有一個為1時,結果位就為1。參與運算的兩個數均以補碼出現。

例如:9|5可寫算式如下:

十進位制為13)可見9|5=13

按位與運算。

按位與運算子"&"是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1,否則為0。參與運算的數以補碼方式出現。

例如:9&5可寫算式如下:

9的二進位制補碼)&00000101

5的二進位制補碼) 00000001

1的二進位制補碼)可見9&5=1。

c語言計算題

10樓:佔亞運

首先執行a*a;在執行a-=144;算出a=-132.再執行a+=-132

幾道c語言基礎計算題,求詳解

11樓:網友

輸出結果為。

只有b勉強對。

12樓:匿名使用者

5、scanf的格式化輸入"%d%c%d%c"中沒有指定分隔符,預設以空格、回車、tab為輸入分隔,所以選b

6、"%3d%f"第一個輸入指定長度為3,所以會擷取12345的前三位置入x中,後2位置入y中,空格分開的67相當於第三個輸入數字,沒有置入任何變數,所以選b

7、printf的格式化輸出"x+y+z=%d"中的x+y+z=為普通字元,原樣輸出,%d指定以整型方式輸出x+y+z的和值,所以選a

8、a和b的寫法程式不會報錯,但輸入的東西沒有賦給任何變數,等於無效;c浮點輸入時不必指定格式也可得到正確結果,所以選d

9、"x=%d,y=%d,z=%d"格式化輸入,除了%d用具體數字替換外,其他都要在輸入中正確寫出來了,所以選c

10、"%長度為8,小數保留3位,不足的右側補空格。

",長度為10,小數保留3位,不足的左側補空格。

所以選b11、unsigned int長度為2位元組,65535的二進位制碼為1111 1111 1111 1111

d按有符號整型來輸出,上面的二進位制碼相當於-1的補碼,所以輸出為-1,選d

注,這個長度是turbo c中的標準,換到已經是4位元組了,所以沒有發生溢位,還是輸出65535

12、%運算子只支援整型,所以選b

c語言計算題?

13樓:喜羊羊

100的二進位制是1100100,48的二進位制是 110000。

進行邏輯與&操作,兩邊全為1得1,否則得0,得到0100000,即32.

進行邏輯或|操作,兩邊全為0得0,否則為1,得到1110100,即116.

進行邏輯異或^操作,兩邊相同為0,相異為1,令運算元偶數位為1,即可取反。

c語言求這題計算過程 100

14樓:匿名使用者

s2=a++*a+b+c*a*++b/4;

你的答案有問題吧?

c語言運算怎麼算,C語言 運算怎麼算

按位與,與運算就是全1得1,其他都得例 include intmain void 擴充套件資料c語言運算子 圓方括號 箭頭一句號 指的是第1級的運算子。其中圓方括號很明顯 箭頭指的是指向結構體成員運算子 句號指的是結構體成員運算子 八位與,七位異,六位或 其中八位與指的是第8級的按位與運算子 七位異...

關於c語言計算除法的問題,關於c語言計算除法的問題

n 2,因為左面的值為假,右面就不做了,所以n的值不發生變化,仍為2 c語言除法問題求教!運算子的優先順序問題,和 是同一執行級別,那麼如果沒有用括號說明,那麼就會從左到右執行,也就是先除以2,然後在乘以a。如果你先要除以 2 a這個整體,那麼就必須要用括號括起來。括號的運算優先順序高於 乘除。x1...

c語言問題,C語言問題?

include include int main max min i 0 sum i 0 i 1 i 2 i 3 i 4 i 5 i 6 for j 0 j 6 j printf 去掉一個最高分 0.6lf max printf 去掉一個最低分 0.6lf n min printf 該選手最後的得分...