c語言有定義語句,C語言 有定義語句char a int b float c double d

2021-03-17 09:56:40 字數 5022 閱讀 9948

1樓:夢幻子凝

首先,在c中,資料之間的運算必須是同型別的才能進行運算。如果型別不一致,就必須先轉換成相同的型別----------由低級別 → 高階別轉換。

資料型別級別由低到高分別為:char→int→float→double。轉換時由低級別向高階別轉換。

本題中,資料型別分別為:char型、int型、float型和double型。

按照轉換規則,就要先char轉換為doubl型(因為double級別比char高),int 型轉為double型 ,float型轉為double型, 即全部轉為 double型 再進行運算。 所以,最後的資料型別是double型 。

【注意】不能理解為:先將char轉換成int,再轉換成floatd,再轉換成double。

希望對您有所幫助!

2樓:愛國者搗蛋

都變成了double型的

已知:char a;int b;float c;double d;執行語句 c=a+b+c+d;後,變數c的資料型別是_

3樓:賞攸司空曉凡

c的型別不會變,仍然是float,只是在運算過程中的中間結會是double型,然後轉化為float,賦給c。

變數的型別經過定義後是不會變的。

4樓:聽不清啊

執行語句 c=a+b+c+d;後,變數c的資料型別仍是float。

做加法運算時系統會自動進行型別轉換的。a+b時,自動轉換為int,再+c時,自動轉換為float,最後+d時,自動轉換為double。最後的結果是double,但是把此結果賦值給c時,自動轉換為float。

5樓:紅顏不求得

運算時的「型別自動轉換」轉換的是「值」,而不是「變數本身的型別」。

所以不管你是c=a+b+c+d還是a=b+c-d或者別的什麼表示式,運算結束後a還是char,b還是int,c還是float,d還是double

若有以下定義語句;char a ;int b ;float c ;double d;則表示式a*b+d-c 值的型別是?為什麼?

6樓:匿名使用者

答案:double型別

參考:「隱式型別轉換」

c++定義了一組內建的型別物件之間的標準轉換,在必要時它們被編譯器隱式的應用到物件上。在算式轉換保證了二元操作符,如加法或乘法的兩個運算元被提公升為共同的型別,然後再用它表示結果的型別。兩個通用的指導原則如下:

1、為防止精度損失,如果必要的話,型別總是被提公升為較寬的型別。

2、所有含有小於整形的有序型別的算術表示式在計算之前其型別都會被轉換成整形。

規則的定義如上面所述,這些規則定義了乙個型別轉換層次結構,我們從最寬的型別long double 開始,那麼另乙個運算元無論是什麼型別都將被轉換成long double .如果兩個運算元千不是long double 型,那麼若其中乙個運算元的型別是double 型,則另乙個就被轉換成double 型。例如:

int ival;

float fval;

double dval;

dval + fval + ival //在計算加法前fval和ival都被轉換成double

類似地,如果兩個運算元都不是double型而其中乙個操作float型 ,則另乙個被轉換成float型。例如:

char cval;

int ival;

float fval;

cval + ival + fval //在計算加法前ival和cval都被轉換成float

否則如果兩個運算元都不是3種浮點型別之一,它們一定是某種整值型別。在確定共同的目標提公升型別之前,編譯器將在所有小於int 的整值型別上施加乙個被稱為整值提公升的過程。

在進行整值提公升時型別char、signed char、unsigned char和short int 都被提公升為型別int 。如果機器上的型別空間足夠表示所有unsigned short 型的值,這通常發生在short用半個字而int 用乙個字表示的情況下,則unsigned short int 也被轉換成int 否則它會被提公升為unsigned int 。wchar_t和列舉型別被提公升為能夠表示其底層型別所有值的最小整數型別。

在下列表示式中:

char cval;

bool found;

enum mumbermval;

unsigned long ulong;

cval + ulong;ulong + found; mval + ulong;

在確定兩個運算元被提公升的公共型別之前,cval found 和mval都被提公升為int 型別。

一旦整值提公升執行完畢,型別比較就又一次開始。如果乙個操作是unsigned long 型,則第二個也被轉換成unsigned long 型。在上面的例子中所有被加到ulong上的3個物件都被提公升為unsigned long 型。

如果兩個操作型別都不是unsigned long 而其中乙個操作long型,則另乙個也被轉換成long型。例如:

char cval;

long lval;

cval + 1024 + lval; //在計算加法前cval和1024都被提公升為long型 。

long型別的一般轉換有乙個例外。如果乙個操作long型而另乙個是unsigned int 型,那麼只有機器上的long型的長度足以unsigned int 的所有值時(一般來說,在32位作業系統中long型和int 型都用一長表示,所以不滿足這裡的假設條件),unsigned int 才會被轉換為long型,否則兩個運算元都被提公升為unsigned long 型。若兩個運算元都不是long型而其中乙個是unsigned int 型 ,則另乙個也被轉換成unsigned int 型,否則兩個運算元一定都是int 型。

儘管算術轉換的這些規則帶給你的困惑可能多於啟發,但是一般的思想是盡可能地保留型別表示式中涉及到的值的精度。這下是通過把不同的型別提公升到當前出現的最寬的型別實現的。

7樓:匿名使用者

double

值型別按照運算元裡面範圍大的來取

8樓:

c語言型別轉換分級別,一般多是:

預設狀態:低階向高階轉換,級別高低(小到大):int,float,double,(注意char只可以和int之間轉換);

若要高階向低階轉換:就要用到強制型別轉換符!如int(7.7)=7;

已知:char a;int b;float c;double d;執行語句c=a+b+c+d;後,變數c的資料型別是( )

9樓:匿名使用者

在c語言中,char是ascii碼表示的,也可以轉換成數字其它型別會強制轉換成占用位元組多的型別

所以,a+b+c+d的型別應該是double但賦值到c的時候,又被強制轉換成float所以,應該是float

10樓:匿名使用者

c語言系列正常應該編譯不過過去的

其它對型別要求不嚴格的語言一般含有char結果應該是char型的

有以下定義int a=0; double b=1.25; char c=』a』; #define d 2下語句中錯誤的是a)a++; b)b++ c)c++d d++

11樓:匿名使用者

d錯誤。

int,float,double和char都可以進行後自增操作,d是#define的常量,執行d++等價於

2++,常量不可以自增,是錯誤的。

12樓:匿名使用者

哥們。這是倆個執行結果

答案不一定是對的

#include

int a=0;

double b=1.25;

char c='a';

#define d 2

int main(int argc, char* argv)

13樓:匿名使用者

答案是錯的哇,double和float型別能進行自加運算...那abc都是可以自增的,那個d就不行, #define d 2說明d代表了2,不能改變,要改變只能只定義的時候去改

14樓:

double和float型別不能進行自加運算...

15樓:

d是錯誤的!#define d 2說明的d=2是常數,在這個程式中是不能變更的!

16樓:胖胖丶不胖

是b啊~~

a++=1;

c++=『b』;

d++=3;

b是double型別,不能自加

char a: int b: float c: double d: 執行語句 c=a+b+c+d

17樓:匿名使用者

c/c++麼?c這貨還是float啊= =

18樓:匿名使用者

當然還是float=,=運算又不會改變變數的型別。但是a+b+c+d這個中間值得型別是double哦

19樓:觀音大_溼

double 吧 好像有自動型別轉換

c語言: 、設有以下定義:int a=0;double b=1.25;char c=』a』;#de

20樓:匿名使用者

a.a++正確

注意:bai++是整形變數

du(int)或者指zhi針變數(*p)專用的運算子,dao其它型別變數不可回用

要想表達相關的可以這答麼寫(有』+『、』-『和數字或對應型別的變數、常量)c=c+1、c=c+'b'-'b'

有#define d 2

則d是個常量,d++;為變數運算,形式錯誤

21樓:匿名使用者

abc都對。語法沒錯誤。

22樓:匿名使用者

應該選a

b:雙精度浮點數

c:字元型

d:巨集定義,值不能改變

c語言定義結構體變數,C語言 定義結構體變數

樂跑小子 首先,定義一個結構的一般形式為 struct結構名 成員表由若干個成員組成,每個成員都是該結構的一個組成部分。對每個成員也必須作型別說明,其形式為 型別說明符 成員名 成員名的命名應符合識別符號的書寫規定。例如 struct stu 在這個結構定義中,結構名為stu,該結構由4個成員組成。...

c語言無符號整數怎麼定義,c語言中定義無符號整型變數有什麼作用

需要準備的bai 材料分別有du 電腦 c語言編譯器。1 首先,zhi 開啟daoc語言編譯器,版新建乙個初始.cpp檔案,例如 權test.cpp。2 在test.cpp檔案中,輸入c語言 unsigned int a 1024 printf u a 3 編譯器執行test.cpp檔案,此時成功定...

c語言結構體定義了,C語言結構體 定義了typedef struct int key element 能否在main函式裡定義element x

bai。太強大了。翻譯過du來是這樣zhi的。定義 型別dao 型別名。簡單說。int是整型內。容那element 就相當於int a中的a,struct相當於int。理解麼?不理解。換個,陣列名。就是element,陣列就是 struct key就是陣列裡面的 i。這樣該懂了吧。沒有名稱的結構體就...