C語言程序設(shè)計(jì)課件第2章 2.1C程序設(shè)計(jì)基礎(chǔ)_第1頁
C語言程序設(shè)計(jì)課件第2章 2.1C程序設(shè)計(jì)基礎(chǔ)_第2頁
C語言程序設(shè)計(jì)課件第2章 2.1C程序設(shè)計(jì)基礎(chǔ)_第3頁
C語言程序設(shè)計(jì)課件第2章 2.1C程序設(shè)計(jì)基礎(chǔ)_第4頁
C語言程序設(shè)計(jì)課件第2章 2.1C程序設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C語言程序設(shè)計(jì)

錄目錄CONTENTS

C程序組成元素2.1

運(yùn)算符和表達(dá)式2.4

常量2.2

變量2.3

數(shù)據(jù)類型轉(zhuǎn)換2.5下面我們首先來看一個(gè)簡單的C程序:#include<stdio.h> /*編譯預(yù)處理指令*/intmain() /*主函數(shù)的函數(shù)頭*/{ /*函數(shù)體的開始標(biāo)記*/ inta,b,c; /*定義3個(gè)整型變量*/ scanf("%d%d",&a,&b); /*運(yùn)行程序時(shí),分別為a,b輸入整數(shù)值*/ c=a+b; /*計(jì)算a+b的值,將結(jié)果賦值給c*/ printf("a=%d,b=%d,c=%d\n",a,b,c); /*依次輸出a,b,c的值*/ return0; /*程序返回值0*/} /*函數(shù)的結(jié)束標(biāo)記*/由該程序可以看出,C程序中主要包括了關(guān)鍵字、變量、常量、運(yùn)算符、標(biāo)識符、分隔符、其他符號等。下面我們就來介紹一下這些元素及其特點(diǎn)。關(guān)鍵字變量常量運(yùn)算符

2.1

C程序組成元素2.1.1C語言程序的格式特點(diǎn)標(biāo)識符C語言中規(guī)定具有特別意義的字符串稱為關(guān)鍵字,亦稱保留字,關(guān)鍵字不能用作它用。C語言的關(guān)鍵字共有37個(gè),如表所示。chardoubleenumfloatintlongshortsignedstructunionunsignedvoidfordowhilebreakcontinueifelsegotoswitchcasedefaultreturnautoexternregisterstaticconstsizeoftypedefvolatileinlinerestrict_Bool_Complex_Imaginary

2.1

C程序組成元素2.1.2關(guān)鍵字總體而言,C語言中的關(guān)鍵字大致可以分為以下幾類:數(shù)據(jù)類型說明符,如整型int,字符型char等。語句定義符,如選擇結(jié)構(gòu)中的if、else,循環(huán)結(jié)構(gòu)中的for、while、do等。存儲類型關(guān)鍵字,如聲明自動(dòng)變量的auto,聲明靜態(tài)變量的static等。其他關(guān)鍵字,如聲明常量的const等。

2.1

C程序組成元素12342.1.2關(guān)鍵字所謂變量,是指程序運(yùn)行過程中其值可以改變的量,如上例中的a,b,c。所謂常量,是指程序運(yùn)行過程中其值不變的量,如上例中的0。我們在本章稍后會對C語言中的常量和變量進(jìn)行更為詳細(xì)的解釋。

2.1

C程序組成元素2.1.3變量與常量所謂標(biāo)識符,指的是編程人員在編寫程序時(shí)自己規(guī)定的具有特定含義的詞,用來標(biāo)明設(shè)定的變量名、數(shù)組名、函數(shù)名等。在C語言中,標(biāo)識符應(yīng)遵循以下一些命名規(guī)則。標(biāo)識符只能由字母、下劃線、數(shù)字組成,且第一個(gè)字符必須是字母或下劃線,不能是數(shù)字。如abc,_abc1,str_2都是合法的標(biāo)識符,但2abc,2_abc,&123,%lsso,M.Jack,-L2都是錯(cuò)誤的標(biāo)識符。標(biāo)識符區(qū)分英文字母大小寫,如score和Score是兩個(gè)不同的標(biāo)識符。標(biāo)識符不能是C語言中的關(guān)鍵字。

2.1

C程序組成元素2.1.4標(biāo)識符123

提示1.雖然從語言標(biāo)準(zhǔn)來說,C語言并未對標(biāo)識符的長度作出限制,但在實(shí)際使用中,其長度會受到具體編譯系統(tǒng)和機(jī)器環(huán)境的制約。比如,某些編譯器規(guī)定標(biāo)識符的前8個(gè)字符為有效區(qū)分部分,若兩個(gè)標(biāo)識符的前8個(gè)字符完全相同,會被視作同一個(gè)標(biāo)識符。2.在命名標(biāo)識符時(shí),應(yīng)盡量讓其名稱能夠體現(xiàn)出所代表的含義,做到“見名知義”。這樣可以顯著提升程序的可讀性,例如表示學(xué)生姓名的變量,可命名為StuName。3.在C程序的標(biāo)識符中,只能使用英文字母(包括大寫和小寫)、數(shù)字以及下劃線(_)。需要注意的是,像!、#、&等其他英文特殊符號是不允許用于標(biāo)識符的。不過,在程序的注釋以及字符串常量中,則可以使用包括漢字和中文標(biāo)點(diǎn)在內(nèi)的任意字符。

2.1

C程序組成元素2.1.4標(biāo)識符在C語言中,為了指明每個(gè)變量、函數(shù)可存儲什么類型的數(shù)據(jù),以及可以進(jìn)行哪些運(yùn)算或操作,系統(tǒng)提供了多種數(shù)據(jù)類型。數(shù)據(jù)類型不同,其在內(nèi)存中占用的存儲空間大小也有所不同。在C語言中,數(shù)據(jù)類型可分為四類,它們分別是基本類型、構(gòu)造類型、指針類型和空類型,如圖所示。其中,基本類型又可細(xì)分為整型、實(shí)型、字符型和枚舉型;構(gòu)造類型包括數(shù)組類型、結(jié)構(gòu)體類型和共用體類型。在本章中,我們將主要介紹C語言的基本類型,對于其他數(shù)據(jù)類型,將在后面各章陸續(xù)介紹。

2.1

C程序組成元素2.1.5數(shù)據(jù)類型

知識拓展

2.1

C程序組成元素整型常量即整常數(shù),C語言中整型數(shù)據(jù)可以有以下三種表示形式:十進(jìn)制整數(shù),由數(shù)字0-9組成,不能以0開頭(數(shù)字0本身除外)。示例:0、123、-456、10086。八進(jìn)制整數(shù)。以數(shù)字0開頭,后面跟由0-7組成的數(shù)字序列。示例:012(對應(yīng)十進(jìn)制的10)、077(對應(yīng)十進(jìn)制的63)、-010(對應(yīng)十進(jìn)制的-8)。十六進(jìn)制整數(shù)。以0x或0X開頭,后面跟由0-9、A-F(或a-f)組成的數(shù)字序列(A-F表示10-15)。示例:0x1A(對應(yīng)十進(jìn)制的26)、0Xff(對應(yīng)十進(jìn)制的255)、-0x20(對應(yīng)十進(jìn)制的-32)。

提示這三種形式在程序中可以根據(jù)需求靈活使用,編譯器會自動(dòng)將它們轉(zhuǎn)換為二進(jìn)制形式存儲。例如,10(十進(jìn)制)、012(八進(jìn)制)、0xa(十六進(jìn)制)在內(nèi)存中都表示同一個(gè)整數(shù)(十進(jìn)制值為10)。

2.2

量2.2.1整型常量123實(shí)型數(shù)據(jù)指帶小數(shù)的數(shù)值(實(shí)數(shù)),又稱浮點(diǎn)數(shù)(因小數(shù)點(diǎn)是“浮動(dòng)的”而得名)。C語言中實(shí)型常量只用十進(jìn)制形式表示,但其表示方式也有兩種:小數(shù)形式。由整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分組成,必須包含小數(shù)點(diǎn)??梢灾挥姓麛?shù)部分和小數(shù)點(diǎn)(此時(shí)小數(shù)部分默認(rèn)為0),如3.、-100.,可以只有小數(shù)點(diǎn)和小數(shù)部分(此時(shí)整數(shù)部分默認(rèn)為0),如.5、-.89,也可以同時(shí)包含整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分,如3.14、-0.618。指數(shù)形式,由十進(jìn)制數(shù)、指數(shù)符號e或E以及指數(shù)部分組成,格式為:aEn(表示a×10?)。其中a是小數(shù)形式的實(shí)數(shù)(可以帶正負(fù)號),n是十進(jìn)制整數(shù)(可正可負(fù))。示例:1.23e5(表示1.23×10?,即123000)、3.14E-2(表示3.14×10?2,即0.0314)、-5e3(表示-5×103,即-5000)。

注意:指數(shù)形式中,e或E前后必須有數(shù)字,且指數(shù)部分必須是整數(shù)。例如e3、5e、3.2e1.5都是不

合法的表示。

2.2

量2.2.2實(shí)型常量12字符型常量包括字符常量、字符串常量和轉(zhuǎn)義字符。字符常量1C語言中字符常量必須用單撇號(單引號)括起來,且單撇號中只能是單個(gè)字符。如'A'、'a'、'3'、'*'是正確的,'cd'、’12’、’!@’是錯(cuò)誤的。字符型數(shù)據(jù)在C語言中是以ASCII碼形式存儲的,字符常量的值就是其對應(yīng)的ASCII碼的值。如字符'a'的ASCII碼值為97,'A'的ASCII碼值為65。因?yàn)锳SCII碼值為整型,所以C語言中字符型數(shù)據(jù)與整型數(shù)據(jù)可以互用,例如,'a'-32相當(dāng)于97-32,等于65,對應(yīng)的字符為'A';同理,'A'+32為字符'a'。這也是字母大小寫轉(zhuǎn)換的一種方法。

提示字符'8'和整數(shù)8是不同的概念,字符'8'只是代表一個(gè)符號,在內(nèi)存中以ASCII碼形式存儲,對應(yīng)的ASCII碼值為56,而整數(shù)8在內(nèi)存中存儲的就是數(shù)值8。

2.2

量2.2.3字符常量字符串常量2除單個(gè)字符外,C語言還可以處理多個(gè)字符組成的常量,稱為字符串常量。字符串常量是一對雙撇號(雙引號)括起來的一個(gè)或多個(gè)字符,例如,"A","China","Howareyou!"等。C語言中存儲字符串常量時(shí),系統(tǒng)會在字符串的末尾自動(dòng)加一個(gè)'\0'作為字符串的結(jié)束標(biāo)志。例如,字符串常量"China"在內(nèi)存中的存儲形式如圖所示。

提示字符串常量不能被修改(存放在常量區(qū)),例如不能直接給"hello"中的字符賦值。連續(xù)的字符串常量會被自動(dòng)拼接,例如"ab""cd"等價(jià)于"abcd"??兆址?"僅包含結(jié)束符'\0',占1字節(jié)內(nèi)存。

2.2

量2.2.3字符常量轉(zhuǎn)義字符3C語言中還有一類特殊字符,無法直接輸入或有特殊含義的字符,需用轉(zhuǎn)義字符表示(以反斜杠開頭)稱為轉(zhuǎn)義字符。轉(zhuǎn)義字符通常用來表示一些控制代碼和功能定義,例如,例1-1中的語句“printf("歡迎您學(xué)習(xí)C語言!\n");”中,“\n”表示換行。C語言中常用的轉(zhuǎn)義字符如表所示。轉(zhuǎn)義字符說明轉(zhuǎn)義字符說明\n回車換行\(zhòng)'單引號符'\b退格\"雙引號符"\r回車\a鳴鈴\t水平制表\f走紙換頁\v垂直制表\ddd1~3位八進(jìn)制數(shù)所代表的字符\\反斜線符\\xhh1~2位十六進(jìn)制數(shù)所代表的字符實(shí)際上,任何一個(gè)字符都可以用轉(zhuǎn)義字符\ddd或\xhh來表示,ddd和hh分別為八進(jìn)制和十六進(jìn)制的ASCII碼,例如,'\101'表示字母'A','\134'表示右斜杠,'\X0A'表示換行等。

2.2

量2.2.3字符常量符號常量,即以一個(gè)標(biāo)識符來代表某一個(gè)字面常量,它通常利用C語言的宏定義命令#define來聲明,格式為:#define標(biāo)識符

常量值。其中:#define是預(yù)處理命令(不是語句,末尾不需要分號);標(biāo)識符是符號常量的名稱,通常使用大寫字母(約定俗成,便于區(qū)分);常量值可以是整數(shù)、實(shí)數(shù)、字符、字符串等;示例:特點(diǎn)與作用:①替代作用,編譯預(yù)處理階段,編譯器會將代碼中所有出現(xiàn)的符號常量標(biāo)識符替換為對應(yīng)的常量值(宏替換);②提高可讀性,用有意義的標(biāo)識符(如PI、MAX_AGE)代替直接寫數(shù)值,使代碼更易理解;③便于修改,當(dāng)需要修改常量值時(shí),只需修改#define定義處,無需逐個(gè)修改代碼中所有出現(xiàn)該值的地方。注意事項(xiàng):①符號常量定義后不能被修改,也不能對其賦值(如PI=3.14;是錯(cuò)誤的);②定義時(shí)標(biāo)識符與常量值之間是空格,不是等號;③通常在程序開頭定義符號常量,以便整個(gè)程序都能使用。

2.2

量2.2.3符號常量【例2-1】已知圓的半徑,求圓的周長和面積。【問題分析】在本例中,可以使用符號常量來表示圓周率,在運(yùn)行時(shí)先顯示文字,提示用戶輸入圓的半徑值。用戶輸入值后,經(jīng)過計(jì)算就可以得到圓的周長和面積,最后將計(jì)算結(jié)果顯示出來。

2.2

量2.2.3符號常量【參考代碼】#include<stdio.h>#definePI3.14159 /*使用符號常量表示圓周率*/intmain(){ doubler,l,s; /*定義雙精度型變量半徑r,周長l和面積s*/ printf("請輸入圓的半徑:"); /*輸出提示語*/ scanf("%lf",&r); /*輸入半徑r的值*/ l=2*PI*r; /*計(jì)算周長l*/ s=PI*r*r; /*計(jì)算面積s*/ printf("圓的周長為%f,圓的面積為%f\n",l,s); /*輸出周長l和面積s*/ return0; /*程序返回值0*/}

2.2

量2.2.3符號常量【運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖所示。【程序說明】用格式輸入函數(shù)scanf輸入雙精度型數(shù)據(jù)時(shí),輸入格式為%lf;用格式輸出函數(shù)printf輸出雙精度型數(shù)據(jù)時(shí),輸出格式為%f,關(guān)于格式輸入輸出函數(shù)將在第后續(xù)章節(jié)中詳細(xì)介紹。

2.2

量2.2.3符號常量變量的定義:變量在使用前必須先定義,變量定義的過程其實(shí)是為變量在內(nèi)存中開辟儲存單元的過程。變量定義的基本格式為:數(shù)據(jù)類型

變量名;數(shù)據(jù)類型決定變量存儲的數(shù)據(jù)類型(如整數(shù)、浮點(diǎn)數(shù)、字符等),例如int、float、char等。變量名遵循標(biāo)識符命名規(guī)則(由字母、數(shù)字、下劃線組成,不能以數(shù)字開頭,不能是關(guān)鍵字)。示例:intage;//定義一個(gè)整型變量agefloatscore;//定義一個(gè)單精度浮點(diǎn)型變量scorechargender;//定義一個(gè)字符型變量gender也可以在定義時(shí)同時(shí)初始化(賦值):intnum=10;//定義整型變量num并初始化為10floatpi=3.14f;//定義浮點(diǎn)型變量pi并初始化為3.14charch='A';//定義字符變量ch并初始化為'A'變量的本質(zhì):變量本質(zhì)上是內(nèi)存中的一塊存儲空間,用于存放數(shù)據(jù):定義變量時(shí),編譯器會根據(jù)數(shù)據(jù)類型分配相應(yīng)大小的內(nèi)存(例如int通常占4字節(jié),char占1字節(jié))。變量名相當(dāng)于這塊內(nèi)存空間的“別名”,通過變量名可以訪問或修改內(nèi)存中的數(shù)據(jù)。變量的使用規(guī)則:先定義后使用:C語言要求變量必須先定義,后使用,否則會報(bào)錯(cuò)。

錯(cuò)誤示例:使用未定義的變量intmain(){x=5;//錯(cuò)誤,x未定義return0;}

2.3

變量整型變量是用來存儲整數(shù)的變量。整型可分為兩大類:有符號型和無符號型。有符號整數(shù)指的是數(shù)值可以帶正負(fù)號,所以需要一個(gè)符號位;無符號整數(shù)指的是數(shù)值只有正數(shù),所以可以去掉符號位。默認(rèn)情況下,C語言中的整型變量都是有符號的,若要告訴編譯器變量是無符號整數(shù),需要把它聲明成無符號類型(用關(guān)鍵字unsigned表示)。

拓展閱讀我們知道,數(shù)據(jù)是以二進(jìn)制形式存儲在計(jì)算機(jī)中的。整數(shù)在存儲單元中的存儲方式是以補(bǔ)碼形式存放的。一個(gè)正數(shù)的補(bǔ)碼是此數(shù)的二進(jìn)制形式,一個(gè)負(fù)數(shù)的補(bǔ)碼是由該數(shù)絕對數(shù)的二進(jìn)制數(shù)按位取反后加1得到。

2.3

變量2.3.1整型變量為了適應(yīng)不同的應(yīng)用場合,C語言提供了多種整數(shù)類型,其長度各不相同。其中,常用的有符號整型(用關(guān)鍵字int表示)長度為32位(4個(gè)字節(jié))。此外,考慮到有些程序所需的數(shù)很大,C語言為此提供了長整型(用關(guān)鍵字long表示);如果程序中整數(shù)的值都不大,為了節(jié)省空間,可使用C語言提供的短整型(用關(guān)鍵字short表示)。

提示不同的編譯器,分配給整型變量的存儲空間的大小是不一樣的。如TurboC2.0為每個(gè)整型數(shù)據(jù)分配2個(gè)字節(jié)(16位),而VisualC++6.0為每個(gè)整型數(shù)據(jù)分配4個(gè)字節(jié)(32位)。在本書中,我們采用VisualC++6.0編譯器中的規(guī)定。

2.3

變量2.3.1整型變量編寫程序時(shí),可以指明變量是長整型或短整型,有符號整型或無符號整型,還可以把說明符組合起來。因此,整型變量可以分為有符號基本整型、無符號基本整型、有符號短整型、無符號短整型、有符號長整型和無符號長整型這6種類型。具體的關(guān)鍵字表示和各類型的取值范圍如表所示。類型名稱關(guān)鍵字表示字節(jié)數(shù)最小值最大值有符號基本整型[signed]int4-2147483648(-231)2147483647(231-1)無符號基本整型unsigned[int]404294967295(232-1)有符號短整型[signed]short[int]2-32768(-215)32767(215-1)無符號短整型unsignedshort[int]2065535(216-1)有符號長整型[signed]long[int]4-2147483648(-231)2147483647(231-1)無符號長整型unsignedlong[int]404294967295(232-1)

2.3

變量2.3.1整型變量

知識庫有符號整數(shù)將存儲單元中最左側(cè)的一位作為符號位,如果該位為0,表示數(shù)值為正;如果該位為1,表示數(shù)值為負(fù)。因此,最大的32位整數(shù)的二進(jìn)制表示形式是01111111111111111111111111111111,對應(yīng)的數(shù)值是2147483647(即231-1)。無符號整數(shù),即不帶符號位的整數(shù)(最左側(cè)的位是數(shù)值的一部分)。所以最大的32位整數(shù)的二進(jìn)制表示形式就是11111111111111111111111111111111,對應(yīng)的數(shù)值是4294967295(即232-1)。

2.3

變量2.3.1整型變量例如,定義一個(gè)整型變量a,并為其賦值0的方法如下:inta; /*定義一個(gè)整型變量a*/a=5; /*為a賦值5*/用戶也可定義變量的同時(shí)為變量賦初值,這種形式稱為變量的初始化。例如:inta=10; /*定義一個(gè)整型變量a并初始化為10*/

提示表格中的[]為可選部分。例如[signed]int,在編寫程序的時(shí)候可以用signedint表示有符號基本整型,也可以省略關(guān)鍵字signed,直接用int表示。

2.3

變量2.3.1整型變量

易錯(cuò)點(diǎn)撥編寫程序時(shí),定義變量的所有語句應(yīng)放在程序的最前面,即在其他所有語句之前,否則會產(chǎn)生錯(cuò)誤,例如:intc; /*定義一個(gè)整型變量c*/a=0; /*錯(cuò)誤?。?!因?yàn)橘x值語句前沒有定義變量a*/intb; /*定義變量b*/b=2; /*為變量b賦值*/

2.3

變量2.3.1整型變量【例2-2】#include<stdio.h>intmain(){ shorta,b; /*定義兩個(gè)短整型變量a和b*/ a=32767; /*將值32767賦給變量a*/ b=a+1; /*將a的值加1后賦給變量b*/ printf("a=%d,b=%d\n",a,b); /*輸出a和b的值*/ return0; /*函數(shù)返回值*/}有符號短整型數(shù)據(jù)的溢出。

2.3

變量2.3.1整型變量【運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖所示。

2.3

變量2.3.1整型變量【程序說明】我們定義的變量a和b都是有符號的短整型,其取值范圍為-32768~32767,所以無法表示大于32767或者小于-32768的數(shù),所以當(dāng)a的值加1變成了32768后就發(fā)生了“溢出”。但運(yùn)行時(shí)并不報(bào)錯(cuò),它好像汽車?yán)锍瘫硪粯樱_(dá)到最大值以后,又從最小值開始計(jì)數(shù)。所以32767加1后得到的結(jié)果不是32768,而是-32768。從這里可以看到:C語言的用法比較靈活,即使程序存在潛在問題,系統(tǒng)也不會給出“出錯(cuò)信息”,此時(shí)只能依靠程序員的經(jīng)驗(yàn)來保證結(jié)果的正確。在這里,我們只需把變量b改成int型或者long型,就可以得到預(yù)期的結(jié)果了(32768)。

拓展閱讀在使用整型常量時(shí),可以在常量的后面加上字符L(l)或者U(u)進(jìn)行修飾。L表示該常量為長整型,U表示該常量為無符號整型,例如:a=1256L; /*L表示長整型*/b=500U; /*U表示無符號整型*/

2.3

變量2.3.1整型變量整數(shù)類型并不適用于所有應(yīng)用。有時(shí)需要變量能夠存儲帶小數(shù)點(diǎn)的數(shù),或者能夠存儲極大數(shù)或極小數(shù)。這類數(shù)可以用實(shí)型變量進(jìn)行存儲,實(shí)型變量也稱為浮點(diǎn)型變量。實(shí)型變量根據(jù)精度可以分為單精度類型、雙精度類型和長雙精度類型等3種類型。具體的關(guān)鍵字表示和各類型的取值范圍如表所示。類型名稱關(guān)鍵字字節(jié)數(shù)精度取值范圍(絕對值)單精度float46個(gè)數(shù)字0以及1.2×10-38~2.4×1038雙精度double815個(gè)數(shù)字0以及2.3×10-308~1.7×10308長雙精度longdouble815個(gè)數(shù)字0以及2.3×10-308~1.7×10308

2.3

變量2.3.2實(shí)型變量

拓展閱讀C標(biāo)準(zhǔn)沒有說明float、double和longdouble類型提供的數(shù)據(jù)精度到底是多少,因?yàn)椴煌挠?jì)算機(jī)可以用不同方法存儲浮點(diǎn)數(shù)。大多數(shù)現(xiàn)代計(jì)算機(jī)都遵循IEEE754標(biāo)準(zhǔn)規(guī)范。數(shù)值以科學(xué)計(jì)數(shù)法的形式存儲,每個(gè)數(shù)都由三部分組成:符號、指數(shù)和小數(shù)。其中,指數(shù)部分的位數(shù)決定了實(shí)數(shù)的大小,小數(shù)部分的位數(shù)決定了實(shí)數(shù)的精度。

2.3

變量2.3.2實(shí)型變量單精度類型1單精度類型使用關(guān)鍵字float來進(jìn)行定義變量,它在內(nèi)存中占4個(gè)字節(jié),提供6位有效數(shù)字,取值范圍為-2.4×1038~-1.2×10-38、0以及1.2×10-38~2.4×1038。例如,定義一個(gè)單精度型變量fx,并為其賦值為5.78的方法如下:floatfx; /*定義單精度變量fx*/fx=5.78F; /*為fx賦值5.78*/

2.3

變量2.3.2實(shí)型變量由于實(shí)型變量由有限的存儲單元組成,能提供的有效數(shù)字總是有限的,在有效位以外的數(shù)字將無法正確處理,由此可能會產(chǎn)生一些誤差,稱為實(shí)型數(shù)據(jù)的舍入誤差。上面提到了單精度有效數(shù)字為6位,超過6位將有可能無法正確顯示。

提示默認(rèn)狀態(tài)下,實(shí)型常量為double雙精度類型,如果要賦值給單精度類型的變量,可在常量后面加上符號F或者f。

2.3

變量2.3.2實(shí)型變量【例2-3】#include<stdio.h>intmain(){ floatf; /*定義單精度型變量f*/ f=1234567.90123; /*將值1234567.90123賦給變量f*/ printf("f=%f\n",f); /*輸出變量f的值*/ return0; /*函數(shù)返回值0*/}單精度型數(shù)據(jù)的有效位。

2.3

變量2.3.2實(shí)型變量【運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖所示?!境绦蛘f明】由于float型只接受6-7位有效數(shù)字,因此顯示的數(shù)據(jù)中只有前7位是保證正確的,后面的數(shù)據(jù)將無法正確處理,顯示的是編譯器隨機(jī)給出的數(shù)。為了擴(kuò)展有效數(shù)字范圍,可使用double類型或longdouble類型。

2.3

變量2.3.2實(shí)型變量雙精度類型2在C語言中,雙精度型(double)是用于存儲高精度浮點(diǎn)數(shù)的數(shù)據(jù)類型,相比float(單精度)具有更高的精度和更大的數(shù)值范圍,其特點(diǎn)和使用規(guī)則如下:存儲特性:通常占用8字節(jié)(64位)內(nèi)存空間;遵循IEEE754標(biāo)準(zhǔn),由1位符號位、11位指數(shù)位和52位尾數(shù)位組成;精度約為15-17位有效數(shù)字,數(shù)值范圍約為

±1.7×103??。

2.3

變量2.3.2實(shí)型變量【例2-4】#include<stdio.h>intmain(){ doublef; /*定義雙精度型變量f*/

f=1234567.90123; /*將值1234567.90123賦給變量f*/ printf("f=%f\n",f); /*輸出變量f的值*/ return0; /*函數(shù)返回值0*/}將例2-3中的變量定義為double類型。

2.3

變量2.3.2實(shí)型變量【運(yùn)行結(jié)果】運(yùn)行結(jié)果如圖所示。

2.3

變量2.3.2實(shí)型變量【程序說明】由于double型提供15-17位有效數(shù)字,所以輸出的數(shù)據(jù)數(shù)值是正確的。

提示用格式輸出函數(shù)printf輸出實(shí)型時(shí),輸出格式采用%f,默認(rèn)輸出6位小數(shù),不足6位補(bǔ)0,多于6位只保留6位,多余位數(shù)四舍五入,我們將在第4章中詳細(xì)介紹。

2.3

變量2.3.2實(shí)型變量長雙精度類型

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論