C C 題目 基本資料型別

2021-09-24 11:28:04 字數 1681 閱讀 6010

【答案】

計算機是用二進位制來表示浮點數和整數的。在十進位制裡,0.1是個簡單、精確的小數,但是轉換二進位制表示卻是迴圈小數0.0001100110011…。因此,3.2在十進位制可以準確地表示,在二進位制卻不能。但二進位制轉換為十進位制時,該數值便就不一致了。

double a,b;

//…if(a==b)

【答案】

不相等。

解決:#include

if((fabs(a-b)<=epsilon*fabs(a)))

bool b=-7;

bool b=-7;

cout

1 -7

滿足b==true條件

請按任意鍵繼續. . .

【分析】

區別:(1)bool具有兩個值true(1)或者false(0)。bool也具有兩個值true(1)和false(0)。

(2)bool只佔1個位元組,而bool占用空間由編譯器決定的,一般是4個位元組。

(3)bool是布林型,而bool在windef.h標頭檔案裡定義是整型。

(4)bool的值為非零數(包括正負的浮點數和整數),其結果都為1,即true.而bool型別的值要麼是true,要麼就是false。如果某值不是這兩個值中的乙個,該值在true和false的條件下都不成立。

【答案】

【答案】

一般在x86體系的linux系統中,u8、u16、u32和u64的資料型別定義如下:

typedef unsigned char u8;

typedef unsigned short u16;

typedef unsigned int u32;

typedef unsigned long long u64;

原因如下:

(1)編寫**更方便,用簡短的字元替代了冗長的字元。

(2)提高**的可移植性,比如在不同平台下它們所對應的資料型別可能不同。比如u64,在一些平台下定義為

typedef unsigned long u64;

【提示】

考慮大小端位元組序。舉例,在記憶體中從低到高位址中存放的內容為12 34 ab cd(十六進製制數),如果cpu是小端位元組序,那麼它對應的整數值為:0xcdab3214;如果該cpu是大端位元組序,那麼它對應的整數值為:0x1234abcd。

【解析】

該題目考查大小端位元組序的移植性問題。在嵌入式開發中,c程式經常會在多個不同cpu體系下執行,所以不同cpu的大小端位元組序問題是必要考慮的事情,否則程式就會因為平台相容性問題而產生重大隱患。通常,在嵌入式開發除錯過程中可以獲得記憶體中的資料內容,根據這些資料可以驗證程式的正確性,於是會出現這樣的情況,比如已經從內容中列印出了乙個整數的數值內容,但由於不確定cpu的位元組序,所以無法直接確定該數值的正確結果,此時可以編寫乙個函式來實現整數值的正確解析。參考實現**如下。

int main()

答:a=255,b=-1,c=-1

【解析】

signed char取值範圍為-127--127,unsigned char取值範圍為0--255,至於char取值範圍取決於編譯器和編譯時所用的選項。

在vs環境下,該char型域signed char相同。

C C 基本資料型別

學了c然後c 然後mfc windows,然後是c 其中資料型別很多,由基本型別衍生的typedef型別也n多。熟知基本資料型別是我們正確表達實際問題中各種資料的前提,因此我分類總結了一下c c windows c 基本資料型別,以便日後查閱。ansi c c 基本資料型別 說明 1 型別修飾符si...

C C 基本資料型別

學了c然後 c 然後 mfc windows,然後是c 其中資料型別很多,由基本型別衍生的 typedef 型別也n 多。熟知基本資料型別是我們正確表達實際問題中各種資料的前提,因此我分類總結了一下 c c windows c 基本資料型別,以便日後查閱。ansi c c 基本資料型別 type s...

c c 基本資料型別

整型 浮點型 int main 執行結果 size char 1 short int 2 int 4 long 4 long long int 8 int long long 8 long long 8 三種寫法相同 float 4 double 8型別 大小 byte char 1short 2i...