官术网_书友最值得收藏!

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

主站蜘蛛池模板: 阿图什市| 克拉玛依市| 星座| 雅江县| 静安区| 纳雍县| 东辽县| 德庆县| 杭州市| 望城县| 兴义市| 迭部县| 宁津县| 双江| 桐梓县| 阿拉善右旗| 鹤壁市| 苗栗县| 汾阳市| 大连市| 林口县| 新巴尔虎右旗| 五原县| 东兴市| 东城区| 龙海市| 甘肃省| 广东省| 南澳县| 韶山市| 隆德县| 卫辉市| 凤城市| 花莲市| 津南区| 旬邑县| 新竹市| 福州市| 荣昌县| 彩票| 民权县|