1樓:匿名使用者
先算b/c=8/5理應等於1.6,但由於參與運算的變數和資料都是整型的,計算機會按照整型來計算,結果就是1.6取整數部分1,所以b/c=1
然後算b/c+0.4=1+0.4=1.4由於資料中出現雙精度型資料0.4,所以計算機會用double型進行計算得到1.4的結果
最後a=b/c+0.4;相當於a=1.4,或者a=(int)1.
4;由於a是整型變數,計算機缺省會做乙個將double型資料1.4強制轉換資料型別到int型的資料型別轉換工作,最終a的值是1.4取整後的1
2樓:飄啊飄依然是風
答案是 1。這個就是型別轉化的問題,隱式轉化規律:char ,int,float,double。
只有型別一致才能相加,相除。b/c 由於b,c都是int,結果就是int,所以b/c = 1,
1+0.4=1.4是double型別,強制轉化為int型別,結果就是1
3樓:春雨_潤物
1如果按照正常的結果應該是1.4。但int是整型,會省略小數.所以為1
4樓:狗長犄角
個人理解:
b賦值為8 ,c賦值為5
8/5+0.4賦值給a
a等於2
我是錯的!
5樓:匿名使用者
a是變數,b和c是常量
6樓:不浪漫罪名
這就是c語言的運算法則
7樓:匿名使用者
b和c為整型變數b/c=1,a為整型變數所以a =1
c語言!!求助,C語言求助!!!
沒什麼問題,兩題給出的答案都是正確的。第2題 後面按c語言要求帶上規定的字元或數字,構成轉義字元,因此要想將 賦給字元變數ch,需要定義為 ch 而不是ch 選項a是錯誤的。其餘選項都是正確的。選a第9題 011表示八進位制數,轉為十進位制數是9,執行printf語句,a,是a先自增1 9 1 10...
C語言求助,c語言求助?
我寫了個沒有case的版本 如果是acm的題目,那麼把有關提示的printf語句去掉即可,輸入輸出格式已嚴格控制 include int main char str1 up 11 char str2 11 char str2 up 11 while 1 flag up 1 if n if n 0 i...
C語言求助,C語言問題,求助
孫毅超 二進位制數在計算機記憶體儲的是其補碼 對於有符號數,正數的補碼和本身一樣,負數的補碼是本身的數字位取反後加1 比如 1 0001 補 0001 1 1001 補 1111 計算機儲存 1就是儲存的1111 而int是兩個位元組的,也就是16位的二進位制,因此65535也就是111111111...