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

2021-04-30 15:14:42 字數 4936 閱讀 3901

1樓:匿名使用者

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

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

2樓:匿名使用者

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

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

已知: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

已知int i,a;執行語句「i=(a=2*3,a*5),a+6;」後,變數 i 的值是( ) a 6 b 12 c 30 d 36

6樓:多xdl點事

30。這裡考察的是c語言中運算子的優先順序,先執行括號的程式,然後執行逗號運算子,先執行a=2*3,再執行a*5,取右運算元,然後賦值給i,就是30。

**如下:

#include

int main()

程式執行結果:

擴充套件資料c語言中,逗號運算子確保運算元被順序地處理:先計算左邊的運算元,再計算右邊的運算元。右運算元的型別和值作為整個表示式的結果。

左運算元只是為了***需要而被計算,它其值會被丟棄。逗號運算子的優先順序是所有運算子中最低的。

7樓:匿名使用者

這個應該是選c。已經給你執行了,截圖了。你看看。

原因如下:先執行a=2*3,a=6,然後再a*5=30,注意此時有乙個括號,說明前面這個逗號表示式的值為30.後面再接著乙個逗號表示式。

因為賦值符號 =  的優先順序比逗號的高,所以直接把30賦值給了i。

如果把這題的括號去掉的話,結果就是6了。同樣根據優先順序的方法,i直接就等於a=2*3了。但是如果把題換成i=(a=2*3,a*5,a+6);後,答案就是12了。

根據逗號表示式的特點,就可以得出答案。

這題主要考優先順序關係。要學好c語言,這個一定要會哦。如果還不懂可以追問我哦。呵呵。逗號表示式的特點不知道的話可以去書上查下。

8樓:匿名使用者

選c 30,這個結果i=30,a=6。像這種並列逗號什麼的,賦值是取第乙個的。

9樓:

30 c

首先a=2*3=6 然後a*5 =30i=30

我執行過程式了 沒錯的 ^ _ ^

10樓:卡卡斬

逗號表示式,括號裡從左到右,而且a的值是傳遞的。故為30

11樓:匿名使用者

12,因為,運算子是從左到右呀6+6=12

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

12樓:

a int型

因為過程中並未對d進行強制型別轉換,所以d最後仍然是整型,即int型變數

13樓:

我覺得應該是double型

我們可以很快排除a,b兩個選項,字元型變數運算時是用其ascⅱ碼值,與float型資料進行運算後,結果為float型;

然後float型資料與double型資料運算,考慮到不喪失精度問題,那麼運算後的資料型別就是float l了!

14樓:雪寫江山

王高精度轉化,d是最高精度,選d

有一道c語言的題目:已知:char a; int b; float c; double d;則計算表示式a*c+c-d之後,記過的資料型別是

15樓:陽光少年

選d,因為double所表示的數的範圍最大。。。

16樓:匿名使用者

該題選擇d答案:

1、a定義的是char型,實際上他也可以看做是int型,你試過沒有將乙個char型的變數用%d的格式輸出後,為乙個整數,該整數是該字元的ascii碼,是十進位制而已。所以a*c之後的型別為float型

2、a*c+c自然也就是float型了。。那麼最後就變為float減去乙個double型,因為double型表示的數值精度比較高,那麼自然結果也就轉換成了double型了,你要明白型別的轉換實際上可以看做為資料在記憶體的對齊。。。

17樓:

d。向精度高的資料型別轉換

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

18樓:匿名使用者

答案: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 型。

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

19樓:匿名使用者

double

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

20樓:

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

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

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

已知函式已知

愛梅玥gqx 泡影果果 已讚過 已踩過 你對這個回答的評價是?收起泡影果果616 2016 02 15 知道合夥人軟體行家 泡影果果616 知道合夥人軟體行家 採納數 獲讚數 軟體技術從上學的時候就在研究,雖沒最強大腦那般無敵,但依靠後天的勤奮學習,相信可以很專業的幫助更多人 向ta提問 私信ta ...

已知向量oacosasinaa,已知向量OAcosa,sinaa,0向量m2,1向量n0,根號5,且向量m向量OA向量n1求向量OA

為了方便後bai面書寫,cosa c,sina s由於垂du直,zhi也就是點乘為零,c,s dao3 2,1 0 2c s 3 0 而三角函式滿足s 專2 c 2 1 且由屬於a的取值範圍得到s小於零大於負一 代入解方程s 3 2c 3 4 3 c 4c 2 c 2 1 一元二次方程,會吧。2 c...

已知1 3 4 2,1 3 5 9 3,1 3 5 7 16 4,1 3 5 7 9 25 51)仿照上例,計算

1 3 5 7 99 50 2 25001 3 5 n 2n 1 2 2從規律中可以看出,第乙個和最後乙個的和除以2再平方就是答案,1 3 5 7 99 1 99 2 50 2 2500 在遇到此類問題要從已知條件中發現存在什麼共同的規律,最簡單的就是先看前後數的和或積是否為一固定的數值,這樣就可很...