c語言中int型變數加上double型的變數

時間 2021-10-17 02:38:57

1樓:程振

會將int型別轉換成double型別再與double型別的變數相加。型別不一樣的數相加,首先將型別轉換成一樣的然後相加,轉換原則,短型別向長型別看齊,長短指在記憶體中所佔空間的長短

2樓:匿名使用者

得出的結果是double型.

這個不需要強制轉換的,系統會自動轉換的.

3樓:

double,計算時會自動轉化之double進行計算,因為double高於int

4樓:匿名使用者

下面回答者所答正確。預設是向高精度看齊的。即為double型。

這個應該是由編譯器自動完成。

5樓:匿名使用者

得出的結果應該是double型的,double型的優先順序比int型的優先順序高,會自動轉換。

6樓:鑽時封芯

輸出的是double型,這是預設的,以便保持精度

7樓:匿名使用者

double優先順序較高,int型別會隱式轉化成double型別,再進行運算,精度提高。

8樓:匿名使用者

double;

int 轉換成double ,這不是強制轉換

9樓:

會得到一個double結果

10樓:匿名使用者

double型,預設是進行位擴充套件的,通俗說就是 短的資料向長的資料看齊。

11樓:cj_陳嬌

結果得看你定義 變數型別,要與定義的變數型別保持一致。

12樓:匿名使用者

會得到 double型變數

c語言中,int型變數加float型結果是float型嗎?

13樓:匿名使用者

是的,跨型別運算的時候小型別往大型別上靠

14樓:匿名使用者

//以下可以通過編譯,說明是。

#include

#include

int main()

c語言中整型變數(int)實型變數(float)雙精度變數(double)到底是什麼東西?有什麼區

15樓:匿名使用者

整型[signed]int -2147483648~+2147483648

無符號整型unsigned[int] 0~4294967295

短整型 short [int] -32768~32768

無符號短整型unsigned short[int] 0~65535

長整型 long int -2147483648~+2147483648

無符號長整型unsigned [int] 0~4294967295

字元型[signed] char -128~+127

無符號字元型 unsigned char 0~255

單精度 float 3.4 x 10^(-38)~ 3.4 x 10^(+38)

雙精度double 1.7 x 10^(-308)~ 1.7 x 10^(+308)

長雙精度 long double 1.7 x 10^(-308)~ 1.7 x 10^(+308)

簡單的舉個例子 方便理解

比方說 輸入一個10進位制 數值 24 那我選用 char 型別就可以了 就夠用了 沒有必要 使用 更大的資料類詞能夠 double型別(浪費) 要是我的數值 是 24000 那我就選用 int型別(無符號)的 他的最大範圍是 65536 要是我用帶小數點的 就尋用 float 或者 double

這只是 簡單的 說一下 具體的 你要看書 或相關資料 進一步的 理解掌握

16樓:匿名使用者

public void validateabc()

c語言 double強制轉換int

17樓:風若遠去何人留

這都被你發現了

首先 float double這類的資料是近似值 有精度問題 這一點你知道吧

也就是說列印出來的8.0000 未必是8.00000在你這個例子裡面

我改了一下 改為列印出20位小數

#include

int main ()

b[5]='\0';

puts(b);

}你再執行一下看看

可以發現8.00000實際上是7.99999999999872812850 所以會是轉為int的7

一般來說 要把浮點轉為int 要取得最近似的值 都是採用(int)(a+0.5) 從而達到一種四捨五入的效果

18樓:匿名使用者

顯示是8.00000,但是實際很可能是7.999999,當然擷取整數部分,就成了7

所以對於這種情況,一般都要較上一個比較小的值

例如(int)(a+1e-6)

19樓:眾裡尋他

2.4568不能用double精確表示,可能是一個 2.456799999....的數,具體是多少要看double的位數與表示格式。

你看到輸出的是8.000000,其實在記憶體中表示的可能是7.999999...,所以強轉int就是7;

同理:用7.999999... - 7 = 9.999999... double輸出就是10,int就是9。

希望能幫到你!

20樓:九天之馬

運算過程中a已經被int了,結果當然是a被int了幾次,所以出現7和9。

c語言中強制型別轉換這樣寫對嗎? int i,j;double s=0.0; s=s+(1.0)i/j;

21樓:匿名使用者

可以 s=s+1.0*i/j;或者 s=s+(double)i/j;

22樓:heart水果沙拉

#include

double b2d(char *s);

int main(void)

return 0;

}double b2d(char *s)

return n;}

23樓:匿名使用者

肯定可以啊!因為1.0是實數,i和j是整數。實數和整數一起運算的時候,整數要先轉化成實數的。有關不同型別的數進行運算的時候怎樣轉換的,還是去看看c語言的書吧!

24樓:匿名使用者

判斷題21、 語言函式的預設(預設)型別是 void 型(空型別)。( 錯)

22、 在 c 語言中,函式不能巢狀定義,但可以巢狀呼叫。(錯 )

23、 一個程式中可以使用多條檔案包含命令,但一條檔案包含命令只能包含一個(對)

24、 在同一個陣列中可以儲存許多不同型別的值。(錯 )

25、 c 語言中,變數名用大小寫是等價的。(錯 )

26、 c 語言的所有迴圈語句都要求至少要執行一次迴圈體。( 錯)

27、 c 語言中,註釋可以出現在源程式中空格可以出現的任何位置。(錯 )

28、 c 語言規定:在一個源程式中,main 函式的位置可以任意。( 對)

29、 在同一種資料型別中,變數值越大,它所佔記憶體的位元組數越多。(錯 )

30、 在 c 語言中,十六進位制數是用英文字母 o和 x 後加一個整數來表示,例如 ox12f

31、 使用巨集定義時,巨集名可以是大寫或者小寫,但是常用大寫字母表示。( 對)

32、 強制型別轉換,如(double)x,只改變原變數的型別,而不改變其值。( 對)

33、 當 c 語言的函式先使用後定義時,應該作提前宣告。(對,但有的可免宣告 )

34、 在 c 語言程式中,不允許變數同名。( 錯)

35、 c 語言的所有迴圈語句都要求至少要執行一次迴圈體。( 錯)

程式填空題

36、 從鍵盤讀入一個字串,求該字串的長度。

#include

int len(char *);

void main()

int len(char * p)

return (n);

} 37、 從鍵盤讀入一個字串,統計其中英文小寫字母的個數。

#include "string.h"

#include "stdio.h"

void main()

38、 從鍵盤讀入兩個數,求其最大者。

#include "stdio.h"

int max(int,int);

void main()

while(epselon>=1e-6);

printf("pi=%8.6f\n",4*pi);

} 序分析題

40、#include

void main()

; int i,j,s=0;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(i==2-j) s=s+a[i][j];

printf("s=%d\n",s);

} 執行結果:__2,7,5_______________________________________

41、#include

int sub(int n)

void main()

執行結果:__15_______________________

42、#include

int x=2,y=5;

void f()

void main()

執行結果:____1,y;1,y;8,5________________________________

43、#include

#define n 5

void main() }

for(i=0;i

行結果:_____+****

0+***

00+**

000+*

0000+ _____________________

c語言中將一個浮點型賦值給整型時,會不會四捨五入?

25樓:幻翼高達

c語言中將一個浮點型賦值給整型時,不會四捨五入,會直接捨去小數部分的資料,也可以認為是執行了下取整運算。

將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:

賦值時的型別轉換實際上是強制的。

例如執行賦值後,無論5.4還是5.6都會變成5。

26樓:_夢幻陽光

不會的,不過可以寫一個函式自己轉換啊

#include

int fun(float x)

int main()

列印的為3和4,c語言很靈活的,樓主想要什麼幾乎都能實現

27樓:匿名使用者

不會的,如int x; 如果有 x=4.78; 則x的值是4

28樓:匿名使用者

不會,後面的小數就直接沒了,只有整數部分了

採納我哦

29樓:匿名使用者

不會的啦,整型的話,1/2=0,而不是0.5或者1,但整型變成浮點型要強制型別轉換,不知這麼解釋明白不。?

30樓:龍__鳳

不會的,看程式的執行結果:

31樓:路過

你好,不會的。浮點型資料賦給整型時,浮點型就會被自動轉換成整型,整型只是整數部分。

希望能夠幫到你。

32樓:匿名使用者

不會,一般是給你強轉成整形了,小數位就沒了,四捨五入是不存在的

33樓:匿名使用者

不會,只會把整數部分賦給整型變數

34樓:匿名使用者

不會,比如float a=4.45 那麼 printf("%d",a);輸入為4,直接把小數點後面的數刪去,不是四捨五入

c語言中int型變數與char型變數什麼情況下不能互換

其實這種問題,從表面說也沒有什麼特別的意義,因為本來就沒有什麼嚴格意義上的能不能互換的問題。只要能在使用過程中,滿足本來的要求就可以了。例如 在將int型變數轉換為char型時,要考慮到資料的溢位問題等 char轉換為int時,要考慮到它的符號問題。在根本上只要認清它們兩者之間的區別就可以了。int...

在C語言中,怎麼判斷變數是int型的還是char型的

變數是int型的還是char型,是由宣告決定的。函式呼叫時引數型別錯,你編譯時就通不過呀。unsigned char 可以當無符號整型用。 假設函式形式為 int function int n 方法1 判斷實參字長 int function int n 在c語言裡有個函式可以判斷輸入的是不是數字或者...

C語言中,如何定義布林型變數,C語言中,如何定義乙個布林型變數?

風若遠去何人留 c語言中並沒有bool型別變數。這是c 中新增的系統型別。要在c語言中使用bool型別,可以使用自定義的方式。1 使用整型做bool型別。typedef int bool 或typedef unsigned char bool 只要是整型,都可以當做bool使用。2 使用列舉型別做b...