版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C程序設(shè)計第二講n變量名的命名規(guī)則?變量名的命名規(guī)則?n數(shù)據(jù)的類型有何作用?數(shù)據(jù)的類型有何作用?n如何輸入數(shù)據(jù)?如何輸入數(shù)據(jù)?n如何輸出數(shù)據(jù)?如何輸出數(shù)據(jù)?基礎(chǔ)知識基礎(chǔ)知識n關(guān)鍵字是由語言規(guī)定的具有特定意義的字符串,通常也關(guān)鍵字是由語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標(biāo)識符不應(yīng)與關(guān)鍵字相同。語稱為保留字。用戶定義的標(biāo)識符不應(yīng)與關(guān)鍵字相同。語言的關(guān)鍵字分為以下幾類:言的關(guān)鍵字分為以下幾類:n (1)類型說明符類型說明符 用于定義、說明變量、函數(shù)或其它數(shù)據(jù)結(jié)構(gòu)的類型。如用于定義、說明變量、函數(shù)或其它數(shù)據(jù)結(jié)構(gòu)的類型。如int,doublen (2)語句定義符語句定義符 用于表
2、示一個語句的功能。如用于表示一個語句的功能。如if 就是條件語句的語句定就是條件語句的語句定義符。義符。C語言的關(guān)鍵字語言的關(guān)鍵字n標(biāo)準(zhǔn)標(biāo)準(zhǔn)ANSI C 89一共只有一共只有32個關(guān)鍵字個關(guān)鍵字 p378 autobreakcasecharconstcontinuedefaultdo double else enum extern float for goto if int long register return short signed static sizeof struct switch typedef union unsigned void volatilewhileC99中新增:中
3、新增:inline restrict _bool _complex _imaginaryn(1) 數(shù)據(jù)類型說明符(數(shù)據(jù)類型說明符(14個)個) 長短雙正負(fù)長短雙正負(fù) long short double unsigned singned 無值整型浮點(diǎn)字符無值整型浮點(diǎn)字符 void int float char 聯(lián)合枚舉結(jié)構(gòu)聯(lián)合枚舉結(jié)構(gòu) union enum struct(2) 變量類型(變量類型(4個):個): 外部外部 靜態(tài)自動靜態(tài)自動 寄存器寄存器 extern static auto register (3)常量()常量(1個)個): constn(2)程序結(jié)構(gòu)語句定義符(程序結(jié)構(gòu)語句定義
4、符(10個)個)n判斷:判斷: ifn循環(huán):循環(huán): for do while n轉(zhuǎn)移:轉(zhuǎn)移:goton跳出:跳出: break continuen返回:返回:returnn開關(guān):開關(guān):switch case3、其它關(guān)鍵字、其它關(guān)鍵字nsizeof 類型大小類型大小ntypedef類型定義類型定義ndefault 默認(rèn)默認(rèn)nvolatile可變的變量可變的變量n數(shù)據(jù)為什么要區(qū)分類型?數(shù)據(jù)為什么要區(qū)分類型?n不同類型的數(shù)據(jù)代表不同的不同類型的數(shù)據(jù)代表不同的數(shù)據(jù)表示形式數(shù)據(jù)表示形式合法的取值范圍合法的取值范圍占用內(nèi)存空間大小占用內(nèi)存空間大小可參與的運(yùn)算種類可參與的運(yùn)算種類 數(shù)據(jù)類型(數(shù)據(jù)類型(Dat
5、a TypeData Type) p42p42語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型 n數(shù)據(jù)類型:對數(shù)據(jù)分配存儲單元的安排,包數(shù)據(jù)類型:對數(shù)據(jù)分配存儲單元的安排,包括存儲單元的長度(所占字節(jié)數(shù)),以及數(shù)括存儲單元的長度(所占字節(jié)數(shù)),以及數(shù)據(jù)的存儲形式。據(jù)的存儲形式。 n不同的類型分配不同的長度和存儲形式。不同的類型分配不同的長度和存儲形式。n在語言中,數(shù)據(jù)類型可分為:在語言中,數(shù)據(jù)類型可分為:基本類型,基本類型,枚舉類型,空類型,派生類型枚舉類型,空類型,派生類型四大類四大類 p43p43。基本類型基本類型派生類型派生類型枚舉類型枚舉類型 (enum)空類型空類型(void)整型整型浮點(diǎn)類型浮點(diǎn)類型基
6、本整型基本整型 (int)長整型長整型 (long)短整型短整型 (short)*雙長整型雙長整型 (long long int)字符型字符型 (char)*布爾型布爾型 (bool)數(shù)據(jù)類型數(shù)據(jù)類型單精度浮點(diǎn)型單精度浮點(diǎn)型 (float)雙精度浮點(diǎn)型雙精度浮點(diǎn)型 (double)復(fù)數(shù)浮點(diǎn)型復(fù)數(shù)浮點(diǎn)型數(shù)組類型數(shù)組類型 ( )結(jié)構(gòu)體類型結(jié)構(gòu)體類型 (union)共用體類型共用體類型 (stuct)數(shù)據(jù)類型數(shù)據(jù)類型(p43)(p43)指針類型指針類型 ( * )函數(shù)函數(shù)計算機(jī)中的數(shù)據(jù)單位:bit, Byte, KB, MB, GB, TBnbit,位,位nByte,字節(jié),字節(jié) , BnKilo b
7、yte(KB), K nMega byte(MB),MnGiga byte(GB), GnTera byte(TB), T為什么每增加一個量級是為什么每增加一個量級是1024而不是更容易計算的而不是更容易計算的1000?為什么為什么2M網(wǎng)絡(luò)下載速度只有兩百多網(wǎng)絡(luò)下載速度只有兩百多K?常量和符號常量常量和符號常量 (p39)n在程序運(yùn)行過程中在程序運(yùn)行過程中, ,其值不能被改變的量稱為常量其值不能被改變的量稱為常量n常量區(qū)分為不同的類型:常量區(qū)分為不同的類型:整型整型 100,012,3.14浮點(diǎn)型浮點(diǎn)型 3.14 , 1.23E2字符型字符型 a, 2,n字符串字符串 “a”, “ab”,“1
8、232”符號常量符號常量 #define PRICE 30 變量變量 (p41)n變量的值存放在特定存儲單元中的數(shù)據(jù),在程序運(yùn)變量的值存放在特定存儲單元中的數(shù)據(jù),在程序運(yùn)行期間,變量的值是可以改變的。行期間,變量的值是可以改變的。n變量名對應(yīng)著內(nèi)存空間中的某個地址,在對程序編變量名對應(yīng)著內(nèi)存空間中的某個地址,在對程序編譯連接時由編譯系統(tǒng)給每一個變量名分配對應(yīng)的內(nèi)譯連接時由編譯系統(tǒng)給每一個變量名分配對應(yīng)的內(nèi)存地址。從變量中取值,實(shí)際上是通過變量名找到存地址。從變量中取值,實(shí)際上是通過變量名找到相應(yīng)的內(nèi)存地址,從該存儲單元中讀取數(shù)據(jù)。相應(yīng)的內(nèi)存地址,從該存儲單元中讀取數(shù)據(jù)。圖 3-33變量值變量名
9、存儲單元auint 整數(shù),在目前絕大多數(shù)編譯器上占整數(shù),在目前絕大多數(shù)編譯器上占4個字節(jié)。個字節(jié)。TC3.0中是中是2個字節(jié)個字節(jié) int a=64 ;ufloat 浮點(diǎn)數(shù)浮點(diǎn)數(shù)單精度浮點(diǎn)數(shù),一般是單精度浮點(diǎn)數(shù),一般是4 4個字節(jié)長個字節(jié)長 float b=64.0 ;float b=64.0 ;uchar 字符字符字符,一般是字符,一般是1 1個字節(jié)長個字節(jié)長用來表示用來表示256256個個ASCIIASCII字符,或者字符,或者0-2550-255的整數(shù)。的整數(shù)。 char=a ;基本數(shù)據(jù)類型基本數(shù)據(jù)類型變量在內(nèi)存中以補(bǔ)碼的形式存儲。變量在內(nèi)存中以補(bǔ)碼的形式存儲。short int:000
10、0000000001101int 或或 long int型:型:00000000000000000000000000001101在在VC中,以整數(shù)中,以整數(shù)13為例:其二進(jìn)制數(shù)為為例:其二進(jìn)制數(shù)為:1101負(fù)整數(shù)的補(bǔ)碼為其正整數(shù)的反碼負(fù)整數(shù)的補(bǔ)碼為其正整數(shù)的反碼+1負(fù)數(shù)負(fù)數(shù)13:1000000000001101附符號位外,取反(附符號位外,取反(1變變0,0變變1)在在VC中,以整數(shù)中,以整數(shù)-13為例:其二進(jìn)制數(shù)為為例:其二進(jìn)制數(shù)為:-11011111111111110010反碼反碼+11111111111110011unsigned int 65523ushort int,短整型,短整型,
11、2個字節(jié)。個字節(jié)。 簡寫為簡寫為shortulong int,長整型,長整型, 4個字節(jié)。個字節(jié)。 簡寫為簡寫為longusigned用來修飾用來修飾char、int、short和和long,說明他們是有符號的整,說明他們是有符號的整數(shù)(正整數(shù)、數(shù)(正整數(shù)、0和負(fù)整數(shù))。一般和負(fù)整數(shù))。一般缺省缺省都是都是有符號有符號的,所以這的,所以這個修飾符通常省略個修飾符通常省略uunsigned用來修飾用來修飾char、int、short和和long,說明他們是無符號的整,說明他們是無符號的整數(shù)(正整數(shù)和數(shù)(正整數(shù)和0)整型數(shù)據(jù)類型修飾符整型數(shù)據(jù)類型修飾符關(guān)鍵字關(guān)鍵字sizeof 計算不同類型數(shù)據(jù)所占
12、字節(jié)數(shù)計算不同類型數(shù)據(jù)所占字節(jié)數(shù)用法:用法: sizeof(變量或變量類型變量或變量類型) 返回變量類型所占字節(jié)數(shù)返回變量類型所占字節(jié)數(shù)#include stdio.hvoid main() printf(char : %dn, sizeof(char); printf(int : %dn, sizeof(int); printf(long : %dn, sizeof(long); printf(float : %dn, sizeof(float); printf(double : %dn, sizeof(double); 各類整型量所分配的內(nèi)存字節(jié)數(shù)及數(shù)的表示范圍。各類整型量所分配的內(nèi)存字節(jié)
13、數(shù)及數(shù)的表示范圍。 p45類型說明符類型說明符在在VC中,變量的范圍中,變量的范圍字節(jié)數(shù)字節(jié)數(shù)short-3276832767 即即 -215(215-1)2unsigned short065535 即即 0(216-1)2(long) int-231(231-1)4unsigned long0(232-1)4兩字節(jié)的最大數(shù)為兩字節(jié)的最大數(shù)為:1111111111111111signed,最高位是符號位,最高位是符號位,15位有效數(shù)字,位有效數(shù)字, 最大值為最大值為 215-1unsigned, 16位有效數(shù)字,位有效數(shù)字, 最大值為最大值為 216-1浮點(diǎn)數(shù):用來表示具有小數(shù)點(diǎn)的實(shí)數(shù)浮點(diǎn)數(shù):
14、用來表示具有小數(shù)點(diǎn)的實(shí)數(shù) 以指數(shù)的形式存放在存儲單元中以指數(shù)的形式存放在存儲單元中float 單精度浮點(diǎn)數(shù)單精度浮點(diǎn)數(shù) 4 字節(jié)字節(jié)(VC)double 雙精度雙精度浮點(diǎn)數(shù)浮點(diǎn)數(shù) 8 字節(jié)字節(jié)(VC)long double 長雙精度長雙精度 8字節(jié)字節(jié)(VC)浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型變量浮點(diǎn)型變量(1)(1)浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式 l浮點(diǎn)型數(shù)在內(nèi)存中占浮點(diǎn)型數(shù)在內(nèi)存中占4 4個字節(jié)個字節(jié)(32(32位位) )。l浮點(diǎn)型數(shù)據(jù)是按照指數(shù)形式存儲的。浮點(diǎn)型數(shù)據(jù)是按照指數(shù)形式存儲的。l浮點(diǎn)型數(shù)分成小數(shù)部分和指數(shù)部分。浮點(diǎn)型數(shù)分成小數(shù)部分和指數(shù)部分。l指數(shù)部分采用規(guī)范化的指數(shù)形
15、式。指數(shù)部分采用規(guī)范化的指數(shù)形式。浮點(diǎn)型常量的兩種表示方法浮點(diǎn)型常量的兩種表示方法小數(shù)小數(shù)指數(shù)指數(shù)0.1230.1231.23e-3 1.23e-3 或或 1.23E-31.23E-3 注意注意: : 1.1.字母字母e(e(或或E)E)之前必須有數(shù)字,且之前必須有數(shù)字,且e e后面的指數(shù)必須為整數(shù)后面的指數(shù)必須為整數(shù) 2. 2. 數(shù)字和數(shù)字和e e之間不能有空格。之間不能有空格。 規(guī)范化的指數(shù)形式:規(guī)范化的指數(shù)形式: 在字母在字母e e(或(或E E)之前的小數(shù)部分中,小數(shù)點(diǎn)左邊)之前的小數(shù)部分中,小數(shù)點(diǎn)左邊應(yīng)有一位(且只能有一位)非零的數(shù)字應(yīng)有一位(且只能有一位)非零的數(shù)字. . 例如例如
16、: : 123.456 123.456 可以表示為:可以表示為: 123.456e0, 12.3456e1, 1.23456e2, 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e50.123456e3, 0.0123456e4, 0.00123456e5 “規(guī)范化的指數(shù)形式規(guī)范化的指數(shù)形式”為:為: 1.23456e3 1.23456e3 。 浮點(diǎn)數(shù)在內(nèi)存中的存放形式浮點(diǎn)數(shù)在內(nèi)存中的存放形式 p50浮點(diǎn)數(shù)占浮點(diǎn)數(shù)占4個字節(jié)(個字節(jié)(32位)內(nèi)存空間。按指數(shù)形式存儲。位)內(nèi)存空間。按指數(shù)形式存儲。浮點(diǎn)數(shù)浮
17、點(diǎn)數(shù)3.14159在內(nèi)存中的存放形式如下:在內(nèi)存中的存放形式如下:.3141591符號符號 小數(shù)部分小數(shù)部分 指數(shù)指數(shù) 0.314159 * 101= 3.14159用二進(jìn)制表示浮點(diǎn)數(shù)用二進(jìn)制表示浮點(diǎn)數(shù)n二進(jìn)制只有二進(jìn)制只有0和和1,小數(shù)用下面的方式來表示:,小數(shù)用下面的方式來表示:a12-1+a22-2+a32-3+.+an2-n n其中其中a1,a2等只可以是等只可以是0或者或者1。類型說明符類型說明符bit(byte)有效數(shù)字位數(shù)有效數(shù)字位數(shù)數(shù)的范圍數(shù)的范圍float 32(4)6710-371038 double64 (8)151610-30710308 單精度浮點(diǎn)數(shù)單精度浮點(diǎn)數(shù)4字節(jié)
18、(字節(jié)(32bit),), 其中其中小數(shù)部分占小數(shù)部分占23 bit,指數(shù)占,指數(shù)占8 bit,符號位符號位1 bit。雙精度浮點(diǎn)數(shù)雙精度浮點(diǎn)數(shù)8字節(jié)(字節(jié)(64 bit),其中小數(shù)部分占),其中小數(shù)部分占52 bit,指數(shù)占,指數(shù)占11bit,符號位符號位1 bit。小數(shù)部分的位數(shù)(小數(shù)部分的位數(shù)(bit)決定浮點(diǎn)數(shù)的精度。)決定浮點(diǎn)數(shù)的精度。思考:為什么思考:為什么float的有效數(shù)字位數(shù)不是的有效數(shù)字位數(shù)不是7,而是,而是6 7?ufloatfloat型數(shù)據(jù)提供型數(shù)據(jù)提供7 7位有效數(shù)字位有效數(shù)字udoubledouble型數(shù)據(jù)提供型數(shù)據(jù)提供1616位有效數(shù)字位有效數(shù)字 u使用不當(dāng)導(dǎo)致舍
19、入誤差使用不當(dāng)導(dǎo)致舍入誤差#include main()float a;double b;a = 123456.789e4;b = 123456.789e4;printf(%fn%fn,a,b);程序執(zhí)行結(jié)果:程序執(zhí)行結(jié)果:123457888.0000001234567890.000000uTC2中中int的范圍是的范圍是-3276832767u如果我們給它一個小于如果我們給它一個小于-32768或者大于或者大于32767的數(shù)會如何呢?的數(shù)會如何呢?超出取值范圍會怎樣?超出取值范圍會怎樣?u一臺安裝了一臺安裝了Windows 95/98的機(jī)器,如果連續(xù)的機(jī)器,如果連續(xù)運(yùn)行運(yùn)行49.7天沒有重新
20、啟動,可能死機(jī)天沒有重新啟動,可能死機(jī) u原因:原因:Windows自啟動時刻起,有一個計數(shù)器,記錄系統(tǒng)自啟動時刻起,有一個計數(shù)器,記錄系統(tǒng)已經(jīng)運(yùn)行了多少毫秒。這個計數(shù)器是個已經(jīng)運(yùn)行了多少毫秒。這個計數(shù)器是個unsigned long 類型的變量類型的變量unsigned long 的最大值是:的最大值是:4294967295(232-1)一天有一天有 24*60*60*1000 = 86400000毫秒毫秒4294967295 / 86400000 = 49.71026961805當(dāng)當(dāng)49.7天的時候,此計數(shù)器會溢出,引起死機(jī)天的時候,此計數(shù)器會溢出,引起死機(jī)溢出(溢出(Overflow)造
21、成的危害)造成的危害u整型常數(shù)整型常數(shù)18、-31長整型常量長整型常量 123l、123L、123456l、123456L無符號型常量無符號型常量 123u、 123Uu浮點(diǎn)常數(shù)浮點(diǎn)常數(shù)十進(jìn)制小數(shù)形式十進(jìn)制小數(shù)形式 123.45、456.78指數(shù)形式指數(shù)形式 1e-2、4.5e3單精度浮點(diǎn)型常量單精度浮點(diǎn)型常量 123.45f、 456.78F、1e-2f、4.5e3F長雙精度浮點(diǎn)型常量長雙精度浮點(diǎn)型常量 123.45l、 456.78L、1e-2l、4.5e3L常數(shù)(常數(shù)(ConstantConstant)n整型常數(shù)缺省被看作整型常數(shù)缺省被看作int類型,如果超出類型,如果超出int的范圍,
22、就自的范圍,就自動被看作動被看作long。可以在數(shù)字后面加上??梢栽跀?shù)字后面加上l或者或者L強(qiáng)制其為強(qiáng)制其為long。n浮點(diǎn)常數(shù)缺省為浮點(diǎn)常數(shù)缺省為double,后綴,后綴f或或F為為float,后綴,后綴l或或L為為long double。n因為字母因為字母l和數(shù)字和數(shù)字1容易混淆,所以當(dāng)用容易混淆,所以當(dāng)用l做后綴時,常使用做后綴時,常使用大寫形式。大寫形式。u以數(shù)字以數(shù)字“0”開始的整型常數(shù)是八進(jìn)制數(shù)開始的整型常數(shù)是八進(jìn)制數(shù)0 02222、- -0 037370 01010和和1010大小不一樣大小不一樣u以以“0 x0 x”或者或者“0X0X”開始的整型常數(shù)是十六進(jìn)制開始的整型常數(shù)是十
23、六進(jìn)制A-FA-F和和a-fa-f用來表示十進(jìn)制的用來表示十進(jìn)制的10-1510-15十六進(jìn)制的形式比較常用,尤其在進(jìn)行位一級的控制的時候十六進(jìn)制的形式比較常用,尤其在進(jìn)行位一級的控制的時候0 x0 x1212、- -0 x0 x1F, -1F, -0 x0 x1f1f八進(jìn)制與十六進(jìn)制常數(shù)八進(jìn)制與十六進(jìn)制常數(shù)練習(xí),下列哪些數(shù)是合法的練習(xí),下列哪些數(shù)是合法的16進(jìn)制數(shù)進(jìn)制數(shù)n0X2An0XA0n5An0XFFFFn0X3Hu字符常數(shù)的表示方法字符常數(shù)的表示方法na a, A A , 5 5 , % % , $ $ n單引號內(nèi)只能有一個字符,除非用單引號內(nèi)只能有一個字符,除非用 開頭!開頭!n單引
24、號內(nèi)不能沒有字符!單引號內(nèi)不能沒有字符!u字符常數(shù)是一個普通整數(shù),可參與各種運(yùn)算字符常數(shù)是一個普通整數(shù),可參與各種運(yùn)算n每個字符具有一個每個字符具有一個0-2550-255之間的數(shù)值,可從之間的數(shù)值,可從ASCIIASCII表查出表查出n注意:注意: 5 5 和整數(shù)和整數(shù)5 5的區(qū)別的區(qū)別字符(字符(CharacterCharacter)常數(shù))常數(shù)ASCII碼表u轉(zhuǎn)義字符轉(zhuǎn)義字符 (p40)一些特殊字符(無法從鍵盤輸入或者另有它用)用轉(zhuǎn)義字符表示一些特殊字符(無法從鍵盤輸入或者另有它用)用轉(zhuǎn)義字符表示字符常數(shù)字符常數(shù)用八進(jìn)制轉(zhuǎn)義字符表示用八進(jìn)制轉(zhuǎn)義字符表示ASCII碼碼nooo 中的o代表8進(jìn)
25、制數(shù)(最多三位數(shù))。n取值范圍為: 0 至 777n注意,8進(jìn)制數(shù)中不包含8.n使用規(guī)則:先將八進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),再取十進(jìn)制對應(yīng)的ASCII碼。用十六進(jìn)制轉(zhuǎn)義字符表示用十六進(jìn)制轉(zhuǎn)義字符表示ASCII碼碼nxhh 中的h代表16進(jìn)制數(shù)(最多兩位數(shù))。n取值范圍為: 0 至 FFn使用規(guī)則:先將十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),再取十進(jìn)制對應(yīng)的ASCII碼。u定義方式:定義方式: char 變量名;變量名;u占占 1 個內(nèi)存單元。個內(nèi)存單元。u字符型變量可做為整型變量計算和顯示。字符型變量可做為整型變量計算和顯示。u取值范圍:取值范圍:uunsigned char 0- FF 0- 255usigne
26、d char -128 - 127字符型變量課堂練習(xí):寫出以下程序的輸出課堂練習(xí):寫出以下程序的輸出結(jié)果。結(jié)果。#include stdio.hvoid main() char cOctal = 101; char cHex = x41; char cVariable = 65; printf(“cOctal: %c, %d n, cVariable, cVariable); printf(“cHex: %c, %d n, cHex, cHex); printf(“cVariable:%c, %d n, cOctal, cOctal); u小寫字母轉(zhuǎn)換為大寫字母小寫字母轉(zhuǎn)換為大寫字母#incl
27、ude main()char ch = b; ch = b - 32; printf(%c, %dn, ch, ch); #include main() char ch = a; /*定義定義 ch 為字符型變量為字符型變量*/ printf(“%c, %dn”, ch, ch);/*分別以字符形式、整數(shù)形式輸出分別以字符形式、整數(shù)形式輸出ch */Char Char 型與型與 int int 型之間的關(guān)系型之間的關(guān)系u以字符型和整數(shù)型兩種格式輸出字符變量。以字符型和整數(shù)型兩種格式輸出字符變量。u用雙引號括住的由用雙引號括住的由0個或多個字符組成的字符序列個或多個字符組成的字符序列I am a
28、 stringI am a string表示空字符串表示空字符串轉(zhuǎn)義字符也可以在字符串中使用轉(zhuǎn)義字符也可以在字符串中使用引號只作為字符串開始和結(jié)束的標(biāo)志引號只作為字符串開始和結(jié)束的標(biāo)志C C語言內(nèi)部用語言內(nèi)部用 0 0 表示字符串的結(jié)束表示字符串的結(jié)束除注釋外,是唯一可以出現(xiàn)中文的地方除注釋外,是唯一可以出現(xiàn)中文的地方ux和和x是不同的是不同的u里定義了一系列專門的字符串處理函數(shù)里定義了一系列專門的字符串處理函數(shù)字符串(字符串(StringString)常數(shù))常數(shù)u宏常量宏常量也稱符號常量也稱符號常量一般采用大寫字母表示一般采用大寫字母表示 u#define 標(biāo)識符標(biāo)識符 字符串字符串不是語句
29、,而是一種編譯預(yù)處理命令不是語句,而是一種編譯預(yù)處理命令u宏替換(宏替換(Macro Substitulition) #include #define PI 3.14159#define R 5.3main()printf(area = %fn, PI * R * R);printf(circumference = %fn, 2 * PI * R);宏常量宏常量l習(xí)慣上符號常量的標(biāo)識符用大寫字母,變量標(biāo)識符用小寫字母,以示區(qū)別。習(xí)慣上符號常量的標(biāo)識符用大寫字母,變量標(biāo)識符用小寫字母,以示區(qū)別。u用用const修飾定義的變量為常量修飾定義的變量為常量nconst float pi = 3.142
30、5926; u常量只能在定義時賦值,然后不能再改變常量只能在定義時賦值,然后不能再改變其值其值u常數(shù)常數(shù)、 const常量常量、宏常量和枚舉常量,宏常量和枚舉常量,都可以用來表示一個永遠(yuǎn)不會改變的數(shù)。都可以用來表示一個永遠(yuǎn)不會改變的數(shù)。constconst常量常量#include stdio.hvoid main() int iNum =65; const int iCount = 10; iNum = iCount; iCount = iNum; printf(%d, %d n, iNum, iCount);課堂練習(xí):寫出以下程序的輸出課堂練習(xí):寫出以下程序的輸出結(jié)果。結(jié)果。輸出函數(shù) pri
31、ntf()nprintf函數(shù)稱為格式輸出函數(shù)函數(shù)稱為格式輸出函數(shù),用來向標(biāo)準(zhǔn)輸出設(shè)備用來向標(biāo)準(zhǔn)輸出設(shè)備(屏幕屏幕)寫數(shù)據(jù)寫數(shù)據(jù);nprintf(“格式控制串格式控制串”,參數(shù)表,參數(shù)表 ); n格式化字符串包括兩部分內(nèi)容格式化字符串包括兩部分內(nèi)容: n1.正常字符正常字符, 這些字符將按原這些字符將按原 樣輸出樣輸出; n2. 格式聲明格式聲明, %格式字符格式字符, 確定輸出格式。確定輸出格式。n參數(shù)表個數(shù)必須與格式化字聲明的個數(shù)一樣參數(shù)表個數(shù)必須與格式化字聲明的個數(shù)一樣,n 各參數(shù)之間用各參數(shù)之間用,分開分開, 且順序一一對應(yīng)且順序一一對應(yīng), n 參數(shù)可以是變量參數(shù)可以是變量, 常量和表達(dá)
32、式。常量和表達(dá)式。n1. 格式字符格式字符 符號符號作用作用 %d decimal 十進(jìn)制有符號整數(shù)十進(jìn)制有符號整數(shù) %f float浮點(diǎn)數(shù)浮點(diǎn)數(shù) (默認(rèn)小數(shù)點(diǎn)后(默認(rèn)小數(shù)點(diǎn)后6位)位) %c character 單字符單字符 %s string字符串字符串 %u unsigned 十進(jìn)制無符號整數(shù)十進(jìn)制無符號整數(shù) %p pointer 指針指針 %e exponential指數(shù)形式的浮點(diǎn)數(shù)指數(shù)形式的浮點(diǎn)數(shù)(1.2e+02) %x, %Xhex 無符號以十六進(jìn)制表示的整數(shù)無符號以十六進(jìn)制表示的整數(shù) %o octal無符號以八進(jìn)制表示的整數(shù)無符號以八進(jìn)制表示的整數(shù)說明:說明:n除了除了X,E,G
33、外,其他格式字符必須用小寫。外,其他格式字符必須用小寫。n可以在可以在printf函數(shù)中的函數(shù)中的“格式控制格式控制”字符串中包含轉(zhuǎn)義字符。字符串中包含轉(zhuǎn)義字符。n一個格式說明必須以一個格式說明必須以“%”開頭,以開頭,以9個格式字符之一為結(jié)束,個格式字符之一為結(jié)束,中間可以插入附加格式字符。中間可以插入附加格式字符。n想輸出想輸出%,則應(yīng)該在格式控制字符串中用連續(xù)兩個,則應(yīng)該在格式控制字符串中用連續(xù)兩個%表示表示n(1) 在在“%”和字母之間插進(jìn)數(shù)字表示最大場寬。和字母之間插進(jìn)數(shù)字表示最大場寬。 %3d 表示輸出表示輸出3位整型數(shù)位整型數(shù), 不夠不夠3位右對齊。位右對齊。 %9.2f 表示輸
34、出場寬為表示輸出場寬為9的浮點(diǎn)數(shù)的浮點(diǎn)數(shù), 其中小數(shù)位為其中小數(shù)位為2, 整數(shù)位為整數(shù)位為6, 小數(shù)點(diǎn)占一位小數(shù)點(diǎn)占一位, 不夠不夠9位右對齊。位右對齊。 n(2)“-“ 輸出左對齊。輸出左對齊。 %-7d 表示輸出表示輸出7位整數(shù)左對齊位整數(shù)左對齊格式輸入與輸出格式輸入與輸出(一)(一). .格式輸入函數(shù)格式輸入函數(shù)n函數(shù)作用:按照變量在內(nèi)存的地址將變量值存函數(shù)作用:按照變量在內(nèi)存的地址將變量值存 進(jìn)去。進(jìn)去。n一般格式:一般格式:scanfscanf(格式控制,地址表列)(格式控制,地址表列)同同printf函數(shù)函數(shù)是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址是由若干個地址
35、組成的表列,可以是變量的地址,或字符串的首地址 使用使用scanf() scanf() 函數(shù)時應(yīng)注意的問題函數(shù)時應(yīng)注意的問題 :(1)scanf() (1)scanf() 函數(shù)中的函數(shù)中的“格式控制格式控制”后面應(yīng)當(dāng)是變量地址,而不應(yīng)后面應(yīng)當(dāng)是變量地址,而不應(yīng)是變量名。是變量名。 (2)(2) 如果在如果在“格式控制格式控制”字符串中字符串中除了格式說明以外還有其他字除了格式說明以外還有其他字符符, 則在輸入數(shù)據(jù)時則在輸入數(shù)據(jù)時在對應(yīng)位置應(yīng)輸入與這些字符相同的字符在對應(yīng)位置應(yīng)輸入與這些字符相同的字符。 (3) (3) 在用在用“”格式輸入字符時,空格字符和格式輸入字符時,空格字符和“轉(zhuǎn)義字符轉(zhuǎn)
36、義字符”都都作為有效字符輸入作為有效字符輸入 (4) (4) 在輸入數(shù)據(jù)時,遇以下情況時認(rèn)為該數(shù)據(jù)結(jié)束。在輸入數(shù)據(jù)時,遇以下情況時認(rèn)為該數(shù)據(jù)結(jié)束。 遇空格,或按遇空格,或按“回車回車”或或“跳格跳格”(TabTab)鍵;)鍵; 按指定的寬度結(jié)束,如按指定的寬度結(jié)束,如“”,只取列;,只取列; 遇非法輸入。遇非法輸入。寫出下列程序的執(zhí)行結(jié)果:#include stdio.hvoid main() int a=12, b=32; printf(%d, %x, %d, %x, a, a, b, b);%x, %Xhex 無符號以十六進(jìn)制表示的整數(shù)無符號以十六進(jìn)制表示的整數(shù)寫出下列程序的執(zhí)行結(jié)果:#i
37、nclude stdio.hvoid main() int a=-12, b=32; printf(%u, %d, a, b);%u unsigned 十進(jìn)制無符號整數(shù)十進(jìn)制無符號整數(shù) 寫出下列程序的執(zhí)行結(jié)果:#include stdio.hvoid main() float a=345.234, b=22.1; printf(%f, %e, a, b); printf(n); printf(%6.2f, %6.0e, a, b);n%f float浮點(diǎn)數(shù)浮點(diǎn)數(shù) (默認(rèn)小數(shù)點(diǎn)后(默認(rèn)小數(shù)點(diǎn)后6位)位)n可以在可以在“%”和字母之間插進(jìn)數(shù)字表示最大場寬。和字母之間插進(jìn)數(shù)字表示最大場寬。寫出下列程
38、序的執(zhí)行結(jié)果:#include stdio.hvoid main() int a=97; printf(%c=, a); printf(%d, %c, a, a);%c character 單字符單字符n2. 常用轉(zhuǎn)義字符常用轉(zhuǎn)義字符 p40n 字符字符 作用作用 n 換行換行 f 清屏并換頁清屏并換頁 r 回車回車 t Tab符符 輸出輸出課外知識,IEEE 754標(biāo)準(zhǔn)n浮點(diǎn)數(shù)浮點(diǎn)數(shù) 在在IEEE 754標(biāo)準(zhǔn)中標(biāo)準(zhǔn)中的的表示形式表示形式n V(1)S(M)2(E-127) nS符號位、符號位、M有效數(shù)字有效數(shù)字 、 E指數(shù)指數(shù)nS=0 表示正數(shù)表示正數(shù), S=1 表示負(fù)數(shù)表示負(fù)數(shù)nM是是規(guī)范
39、指數(shù)表示的規(guī)范指數(shù)表示的二進(jìn)制小數(shù)二進(jìn)制小數(shù) (1.xxxx* 2n )nE指數(shù)部分指數(shù)部分(E=n+127)nfloat是用是用4字節(jié)即字節(jié)即32位二進(jìn)制位來存儲。位二進(jìn)制位來存儲。n其中其中1位符號位,位符號位,8位指數(shù)位和位指數(shù)位和23位有效數(shù)字位。位有效數(shù)字位。n有效數(shù)字為標(biāo)準(zhǔn)指數(shù)格式有效數(shù)字為標(biāo)準(zhǔn)指數(shù)格式 1.xxxx* 2n ,存儲時省略,存儲時省略1。n指數(shù):指數(shù):E-127,指數(shù)位的數(shù)字為,指數(shù)位的數(shù)字為E,實(shí)際值為,實(shí)際值為E-127,值大,值大于于0為正指數(shù),小于為正指數(shù),小于0指數(shù)為負(fù)值。指數(shù)為負(fù)值。n將一個浮點(diǎn)數(shù)轉(zhuǎn)化為實(shí)數(shù)存儲格式的步驟為:將一個浮點(diǎn)數(shù)轉(zhuǎn)化為實(shí)數(shù)存儲格式的步驟為:n(1)先化為二進(jìn)制數(shù))先化為二進(jìn)制數(shù) n(2) 將二進(jìn)制數(shù)寫成標(biāo)準(zhǔn)指數(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024離婚雙方關(guān)于股權(quán)分配的合同
- 新課綱核心能力特色與說明課件
- 2024食品供應(yīng)商銷售協(xié)議簡版版
- 2024年施工員考試題庫附參考答案
- 2024石材行業(yè)綠色礦山建設(shè)與生態(tài)環(huán)境保護(hù)合同2篇
- 2024年勞動保障知識競賽題庫及答案(共120題)
- 2025年度10架AC311A直升機(jī)購銷及售后服務(wù)保障合同3篇
- 2024年門面房屋租賃合同范本(含違約責(zé)任及賠償)3篇
- 2025年度出租車運(yùn)營管理服務(wù)合同3篇
- 2024版:內(nèi)部技術(shù)交流保密協(xié)議
- 新概念英語第4冊課文(中英文對照)
- 七年級數(shù)學(xué)上冊專題18 一元一次方程有整數(shù)解(解析版)
- 梁山伯與祝英臺小提琴譜樂譜
- 酒店安全生產(chǎn)責(zé)任制
- 漢字文化解密學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫2023年
- 福建地理概況課件
- 單體澆鑄尼龍
- 供應(yīng)鏈金融大數(shù)據(jù)平臺商業(yè)計劃書課件
- 企業(yè)內(nèi)部審計報告范文10篇
- GB/T 24476-2023電梯物聯(lián)網(wǎng)企業(yè)應(yīng)用平臺基本要求
- 管線探測技術(shù)介紹
評論
0/150
提交評論