- 全國計算機等級考試教程:二級C語言程序設計
- 全國計算機等級考試教材編寫組
- 1677字
- 2019-11-22 18:55:12
2.4 實型數據
當進行數據運算需要用到小數或指數時,用C語言來實現的話,就需要用到實型數據。
2.4.1 實型變量
1 實型變量的分類
學習提示
【熟記】實型變量的分類及其取值范圍
C語言中的實型變量分為單精度(float)、雙精度(double)和長雙精度(long double)3種類型。在VC6.0中實型變量所占字節數、有效位數及其取值范圍如表2-2所示。
表2-2 實型數據

2 實型變量的定義
實型變量定義的一般形式為:
類型說明符 變量名1[,變量名2,…];
例如
floatx,y; /*x,y為單精度實型變量*/
doublea,b,c;/*a,b,c為雙精度實型變量*/
3 實型變量的舍入處理
由于實型變量也是用有限的存儲單元存儲的,所以能夠接受的有效數字的位數也是有限的。有效位數以外的位數將被舍去。請看下面的例子。
【例2-2】實型變量的舍入處理。
程序代碼
#include<stdio.h>
void main( )
{ float fa;
/*定義了單精度浮點型變量fa*/
double db;
/*定義了雙精度浮點型變量db*/
fa=11111.111111;
/*分別對兩個浮點型變量賦初值*/
db=11111.111111111111111111;
printf("fa=%f\ndb=%f",fa,db);
/*輸出兩個浮點型變量*/
}
此程序的輸出結果為:
fa=11111.111328
db=11111.111111
對本實例的結果分析如下。
(1)fa是單精度浮點型的變量,有效位數(有效位數是指整數部分和小數部分的總位數)只有7位。而整數部分已占5位,故小數點后2位之后的數均為無效數字。
(2)db是雙精度浮點型的變量,有效位數為16位。但VC6.0規定小數后最多保留6位,其余部分舍去。
2.4.2 實型常量
1 實型常量的表示
學習提示
【熟記】實型常量的表示方法
實型常量即不包括整數的實數,在C語言中又稱浮點數。浮點數均為有符號浮點數,沒有無符號浮點數。其值有兩種表達形式,分別為十進制小數形式和指數形式。
(1)十進制小數形式由數字和小數組成,必須有小數點,且小數點的位置不受限制。
例如
3.1425、0.123、300.和.123都是合法的小數。
(2)指數形式
由十進制數加階碼標志“e”或“E”以及階碼(只能為整數,可以帶符號)組成。其一般形式為:
尾數E(e) 整型指數
說明
“尾數”是一個小數形式的實型常量;E或e是指數形式的標識,又稱階碼標識;“整型指數”說明了指數的大小,又稱階碼,而且必須是整數。
例如
6.0E6或者 6.0e6是合法的實型數據,表示6.0×106。
123(無小數點)、E79(階碼標志E之前無數字)、-5(無階碼標識)和2.7E(無階碼)是不合法的實型數據。
一個實數可以有多種指數表示形式,如11.34可以表示為 11.34e0、1.134e1、0.1134e2和0.1134e02等。我們把其中的1.134e1稱為“規范化的指數形式”,即在字母e(或E)之前的小數部分中,小數點左邊應有一位(且只能有一位)非零的數字。
C語言允許浮點數使用后綴。后綴為“f”或“F”即表示該數為浮點數,如123f和123.是等價的。
2 實型常量的類型
實型常量又分float(單精度)型和double (雙精度)型。一個實型常量可以賦給一個實型變量(float型或double型)。
例如
float a; /*這里定義a為單精度實型變量*/
a=5555.5555;
由于float型變量只能接受7位有效數字,因此最后一位小數不起作用。
請思考
怎樣變化才能使上面的8位數字都能夠存儲在變量a中?
真題演練
【例1】以下選項中可用作 C程序合法實數的是( )。
A)3.0e0.2 B)1e0
C)E9 D)9.12E
【解析】選項A中,“E”后面的指數必須為整數,故錯誤。C語言規定,“E”之前必須要有數字,故選項C錯誤。“E”后面必須要有數字,且必須為整數,故選項D錯誤。因此選擇選項B。
【答案】B
【例2】以下選項中合法的實型常量是(?。?/p>
A)0 B)3.13e-2.1
C).914 D)2.0*10
【解析】選項A為整型數據。選項B中“e”后面必須為整數。選項D是表達式,不是常量,所以選擇選項C。
【答案】C
【例3】在C語言中,以下選項中不能正確表示10×1000之值的是(?。?。
A)1.0E4.0 B)1.E4
C)10E3 D)1.0e4
【解析】實型常量用帶小數點的數字表示,其值有兩種表達形式,分別為十進制小數形式和指數形式。指數形式由十進制數加階碼標志“e”或“E”以及階碼(只能為整數,可以帶符號)組成。指數形式中階碼必須是整型常量,而選項A中4.0是浮點數,所以選項A不能正確表示10×1000之值,選項B、C、D都表示正確并且值為10000,因此選擇選項A。
【答案】A
【例4】C語言中 double類型數據占字節數為( )。
A)4 B)8
C)12 D)16
【解析】double型數據在內存中占 8個字節,float型數據占4個字節,int型數據占2個字節,char型數據占1個字節。因此選擇選項B。
【答案】B
- 2013全國計算機等級考試新版無紙化上機考試臨考沖刺模擬實戰:二級Access數據庫
- 2020年3月全國計算機等級考試《四級軟件工程》復習全書【核心講義+歷年真題詳解】
- 計算機應用技能實戰:全國計算機等級考試一級MS Office
- 全國計算機等級考試一本通:一級計算機基礎及MS Office應用
- 2020年3月全國計算機等級考試《四級數據庫原理》復習全書【核心講義+歷年真題詳解】
- 汪博士解讀PMP考試
- 全國職稱計算機考試標準教材與專用題庫:PowerPoint 2007中文演示文稿
- 2024年全國計算機等級考試模擬考場二級C語言
- 數據結構搶分攻略:真題分類分級詳解(第2版)
- 2023年全國計算機等級考試上機考試題庫二級C語言
- 全國會計從業資格考試應試指南·真題·預測三合一:財經法規與會計職業道德
- 軟件設計師考前突破:考點精講、真題精解、難點精練
- 2014年全國計算機等級考試3年真題精解與過關全真訓練題:二級Access數據庫程序設計
- 全國職稱計算機考試講義 真題 預測三合一:Word 2003中文字處理
- 2020年3月全國計算機等級考試《三級信息安全技術》復習全書【核心講義+歷年真題詳解】