C語言課件第2章數(shù)據(jù)類型和表達(dá)式.ppt_第1頁
C語言課件第2章數(shù)據(jù)類型和表達(dá)式.ppt_第2頁
C語言課件第2章數(shù)據(jù)類型和表達(dá)式.ppt_第3頁
C語言課件第2章數(shù)據(jù)類型和表達(dá)式.ppt_第4頁
C語言課件第2章數(shù)據(jù)類型和表達(dá)式.ppt_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章數(shù)據(jù)類型和表達(dá)式,C語言編程,第二章,本章的主要內(nèi)容,本章介紹了C語言的基礎(chǔ),包括:數(shù)據(jù)類型運(yùn)算符和表達(dá)式是編程的基礎(chǔ)知識(shí),為什么要討論這些知識(shí)?通常,程序應(yīng)該操作和處理數(shù)據(jù):處理的對(duì)象是由操作符和表達(dá)式操作的數(shù)據(jù),3例如,例2.1計(jì)算半徑為5厘米的圓的面積。程序如下:主()浮動(dòng)r,區(qū)域;r=5;面積=3.14 * r * rprintf (%fn,面積);計(jì)算結(jié)果是輸出圓的面積:78.500000,程序中使用的數(shù)據(jù):r,面積,5,3.14。數(shù)據(jù)的計(jì)算:*,=,4,分析:當(dāng)計(jì)算機(jī)運(yùn)行和處理時(shí),有必要完成以下任務(wù):在內(nèi)存中為半徑r和計(jì)算結(jié)果區(qū)域打開存儲(chǔ)空間并存儲(chǔ)它們的值。應(yīng)該留出多少空間來

2、存儲(chǔ)它們的價(jià)值?數(shù)據(jù)5和3.14不同于R和area,因?yàn)樗鼈冊(cè)诔绦蚓帉憰r(shí)被賦予了確定的值,并且在操作過程中不會(huì)改變。如何處理這樣一臺(tái)數(shù)字計(jì)算機(jī)?當(dāng)用計(jì)算機(jī)存儲(chǔ)時(shí),整數(shù)5和小數(shù)3.14之間有區(qū)別嗎?涉及數(shù)據(jù)類型的基本知識(shí),5。C語言的數(shù)據(jù)類型和C數(shù)據(jù)類型。本章討論基本類型數(shù)據(jù)的類型,6,2.1.1整數(shù)數(shù)據(jù)和1整數(shù)數(shù)據(jù),包括基本整數(shù)數(shù)據(jù)int、分配2字節(jié)短整數(shù)數(shù)據(jù)短int、分配2字節(jié)長整數(shù)數(shù)據(jù)長int和分配4字節(jié)整數(shù)數(shù)據(jù),所有這些都以二進(jìn)制補(bǔ)碼的形式存儲(chǔ)。問題:我們?yōu)槭裁匆醚a(bǔ)語?如何表達(dá)?7,在計(jì)算機(jī)中表示正數(shù)和負(fù)數(shù),例如:109 (1101101)2區(qū)分:109和109該方法是將符號(hào)數(shù)字化,即

3、正符號(hào)用0表示,負(fù)符號(hào)用1表示,計(jì)算機(jī)中的數(shù)字表示方法是:符號(hào)位二進(jìn)制值(以8位為例)109 110 1101 0110 1101 109 110 1101 1110 1101,8。問題是計(jì)算機(jī)計(jì)算復(fù)雜,例如,(-19) (22) 1001 0011 0001 0110。解決方法是:判斷符號(hào)是否相同:如果相同,結(jié)果的符號(hào)保持不變,絕對(duì)值相加;如果它們不同,則取絕對(duì)值較大的數(shù)字符號(hào),并減去絕對(duì)值,9,原碼、補(bǔ)碼和補(bǔ)碼,正數(shù):原碼、補(bǔ)碼和補(bǔ)碼的相同符號(hào)為0,數(shù)值為相應(yīng)的二進(jìn)制數(shù)。109,01101101 original=01101101 reverse=01101101補(bǔ)碼負(fù)數(shù):原碼的符號(hào)位為1

4、,該值為絕對(duì)值的二進(jìn)制數(shù)。10911101101原始反碼符號(hào)位為1,帶有絕對(duì)值的二進(jìn)制數(shù)被反轉(zhuǎn)。10910010010補(bǔ)碼的符號(hào)位為1,其值為絕對(duì)值的二進(jìn)制數(shù)改變1。10910010011增補(bǔ),10,2。有符號(hào)和無符號(hào)整數(shù)數(shù)據(jù),有符號(hào)整數(shù)數(shù)據(jù)區(qū)別在于最高位被視為符號(hào)位還是數(shù)據(jù)位。例如,當(dāng)1111110101000用作有符號(hào)數(shù)時(shí),最高符號(hào)位為負(fù)。該值為:-88(再次補(bǔ)碼),當(dāng)用作無符號(hào)數(shù)時(shí),最高值為帶數(shù)據(jù)位的無符號(hào)數(shù),該值為:65448,11,例如:main()無符號(hào)int m;m=65448printf(nm=%dn,m);printf(m=%un,m);輸出結(jié)果:m=-88 m=65448,

5、按有符號(hào)數(shù)和無符號(hào)數(shù)輸出,12,整數(shù)數(shù)據(jù)類型和規(guī)則,方括號(hào)表示可選整數(shù)分配2字節(jié),長分配4字節(jié),13,2.1.2實(shí)數(shù)數(shù)據(jù),1類型實(shí)數(shù)數(shù)據(jù),單精度實(shí)數(shù)數(shù)據(jù)浮點(diǎn),4字節(jié)雙精度實(shí)數(shù)數(shù)據(jù)雙精度,分配存儲(chǔ)8字節(jié)2實(shí)數(shù)數(shù)據(jù),單精度實(shí)數(shù)數(shù)據(jù),索引部分,小數(shù)部分,十進(jìn)制符號(hào)位,索引符號(hào)位,14,實(shí)數(shù)數(shù)據(jù)類型和規(guī)則。c標(biāo)準(zhǔn)沒有規(guī)定各種實(shí)際數(shù)據(jù)所占用的字節(jié)數(shù),也沒有規(guī)定特定小數(shù)和指數(shù)部分的位數(shù)。一般來說,小數(shù)部分位數(shù)較多,數(shù)據(jù)代表的有效位數(shù)較多,所以準(zhǔn)確性較高;但是,如果索引部分有更多的數(shù)字,數(shù)據(jù)范圍將會(huì)更大。,有效數(shù)字的含義是什么?15,2.1.3字符數(shù)據(jù),字符,1字節(jié)字符數(shù)據(jù)的分配指的是字母、數(shù)字、各種符號(hào)和

6、其他用ASCII值表示的字符。例如,A是一種字符類型的數(shù)據(jù),它被稱為字符常量,存儲(chǔ):0.1100001,2.1.4空類型,通常與指針或函數(shù)結(jié)合使用。16,2.2常量,變量和標(biāo)準(zhǔn)函數(shù),主要內(nèi)容:常量變量標(biāo)準(zhǔn)庫函數(shù),17,2.2.1常量,程序運(yùn)行過程中值保持不變的量1整數(shù)常量十進(jìn)制:09八進(jìn)制:07,十六進(jìn)制從0: 09開始,AF/af,從0 x或0X開始,例如:100-8 0 123 010 024 0100 0730x38 0X 10 0X 10 0X 10 0X ff0x 0A,18,1。整數(shù)常量,整數(shù)常量的類型:根據(jù)值大小的默認(rèn)類型。如果在整數(shù)常量后加上l或l,則認(rèn)為是長整型,例如:123

7、L,0L,432l,0 x100l。注意:十六進(jìn)制常量中可以使用大寫字母af或小寫字母AF。數(shù)字8或9不能出現(xiàn)在八進(jìn)制常量中,例如:018,0921是非法的,19,2。實(shí)數(shù)常數(shù),十進(jìn)制1.0 1。12.0 -12.0 0.0指數(shù)形式1e3 1.8e-3 -123E-6 -.1E-3,指數(shù)只能是整數(shù),尾數(shù)可以是整數(shù)或小數(shù)。指數(shù)和尾數(shù)都不能省略,例如:1e,E5,E3。默認(rèn)情況下,非法實(shí)數(shù)常量的類型是雙精度的,后跟f(或f),它強(qiáng)調(diào)數(shù)字是浮點(diǎn)型的,例如:3.5f,1e2F,20,3。字符常量。可視字符常量用單引號(hào)括起來的單個(gè)可視字符,例如:轉(zhuǎn)義字符常量A、A、3等。與單引號(hào)中的可視字符結(jié)合使用,如

8、:21,4。字符串常量,用雙引號(hào)括起來的字符序列,例如:ABC,123,A,nt nGood早晨字符串常量長度:字符串常量存儲(chǔ)模式中包含的字符數(shù):占用的存儲(chǔ)單元數(shù):字符串長度1,例如:字符串結(jié)束標(biāo)記,22,5。符號(hào)常數(shù),由標(biāo)識(shí)符表示的常數(shù)是預(yù)先編譯的。預(yù)處理命令定義的定義在編譯時(shí)被系統(tǒng)表示的常數(shù)代替,然后被編譯。例如,#定義LEN 2.5主()浮動(dòng)a,b;a=2 * 3.14 * LENb=3.14 * LEN * LENprintf(a=%f,b=%fn,a,b);編譯前被系統(tǒng)替換,23,5。符號(hào)常數(shù),主()浮點(diǎn)a,b;a=2 * 3.14 * 2.5b=3.14 * 2.5 * 2.5pr

9、intf(a=%f,b=%fn,a,b);define是一個(gè)編譯預(yù)處理命令,它必須以“#”開頭,將在第7章中討論。替換為、24,2.2.2變量,1。變量的相關(guān)概念在程序運(yùn)行過程中其值發(fā)生變化的數(shù)據(jù)稱為變量,由標(biāo)識(shí)符表示,稱為變量名。使用前必須定義變量。系統(tǒng)為變量分配存儲(chǔ)單元并存儲(chǔ)它們的值。編寫程序時(shí),變量值由變量名存儲(chǔ)和獲取。例如,有一個(gè)值為510,25,2的變量A。變量定義,變量定義的一般格式:數(shù)據(jù)類型描述符變量列表;例如:int i,j;long k,m;浮動(dòng)x,y;char ch1,ch2、必須使用合法標(biāo)識(shí)符作為變量名,并且不能使用關(guān)鍵字來命名變量。26,3。變量初始化:描述變量時(shí),允許

10、給變量賦值初始值。例如:int a=5,b=10 2;雙x=23.568,y;char ch1=a,ch2=66,ch3=142意味著定義變量并將值分配給變量存儲(chǔ)位置。初始化錯(cuò)誤:int a=3 b,b=5;浮子m=n=23.16,27,2.2.3標(biāo)準(zhǔn)庫函數(shù),一種由c編譯系統(tǒng)定義的函數(shù),存儲(chǔ)在系統(tǒng)庫函數(shù)中。用戶可以根據(jù)需要隨時(shí)調(diào)用常用函數(shù),如printf、scanf、fabs、sqrt、sin(參見教科書P418附錄中的常用數(shù)學(xué)函數(shù))。函數(shù)調(diào)用形式:函數(shù)名稱(參數(shù)表)如putchar(a) sqrt(x. 28,2.3運(yùn)算符和表達(dá)式,主要內(nèi)容:算術(shù)運(yùn)算符和算術(shù)表達(dá)式賦值運(yùn)算符和賦值表達(dá)式關(guān)系運(yùn)

11、算符和關(guān)系表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式按位運(yùn)算符和按位運(yùn)算符條件運(yùn)算符和條件表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式其他運(yùn)算符及其操作,29,運(yùn)算符的相關(guān)概念,函數(shù):完成指定的操作數(shù)操作類型:按操作數(shù):單眼、雙目和三眼;按函數(shù):算術(shù)、賦值、關(guān)系、邏輯條件、逗號(hào)、位、其他、30;操作員的優(yōu)先級(jí)和組合;優(yōu)先級(jí)是指各種操作符號(hào)的操作優(yōu)先級(jí)順序;例如,算術(shù)運(yùn)算優(yōu)先于關(guān)系算術(shù)運(yùn)算。組合性是指操作數(shù)和操作數(shù)的組合方向,分為從左到右(左組合)和從右到左(右組合)。例如,算術(shù)運(yùn)算符是左組合a-b 4賦值運(yùn)算符是右組合A=B=5(見教材P41語言規(guī)定表2.5),31,本章涉及的運(yùn)算符,-*/%-=-=*=/=%=A=1表達(dá)

12、式的值是5,a=6,B=5,37。描述:和-的操作數(shù)只能是變量(或有變量運(yùn)算結(jié)果的表達(dá)式),不能是常量(或有數(shù)值運(yùn)算結(jié)果的表達(dá)式)。例如:5。(a 2)是非法的。具有右綁定屬性,綁定方向從右向左。例如:A相當(dāng)于-(a)如果多個(gè)操作符連續(xù)出現(xiàn),C系統(tǒng)將從左到右盡可能多的字符組合成一個(gè)操作符。例如,i j等于(i) j -i -j等于-(i) (-j),38,main()int a=5;printf(%d %dn,a,a);說明(續(xù)):功能參數(shù)評(píng)估順序:Turbo C系統(tǒng)先計(jì)算最右邊的參數(shù)值,然后依次計(jì)算左邊的參數(shù)值。示例2.5有多個(gè)函數(shù)參數(shù),同一變量是自增的。輸出結(jié)果:6 5,39,描述(續(xù)):

13、例2.6有多個(gè)函數(shù)參數(shù),同一變量多次自增。main()int a=5;printf(%d%dn,a,(a)(a);輸出結(jié)果:7 11,40,賦值操作,賦值運(yùn)算符(右組合)=-=*=/=%=printf(%d %dn,a),輸出結(jié)果:8 102-11,0000 0000 1010 printf (%d% dn,ab-1),輸出結(jié)果:40 9,請(qǐng)自己分析運(yùn)行結(jié)果,53,條件表達(dá)式操作,條件運(yùn)算符:條件表達(dá)式表達(dá)式1的一般形式?表達(dá)式2 :表達(dá)式3示例:m=10個(gè)字符;你可以把變量a,ch和學(xué)生的x翻倍;printf(%d %d,sizeof(int),sizeof(a);printf(%d %d,sizeof(double),sizeof(x);printf(%d %dn,sizeof(float),sizeof(char);輸出結(jié)果:2 2 8 8 4 1,59,2.4運(yùn)算中的數(shù)據(jù)類型轉(zhuǎn)換,2.4.1自動(dòng)數(shù)據(jù)類型轉(zhuǎn)換原理:自動(dòng)將低精度、小表示范圍的操作數(shù)類型轉(zhuǎn)換為高精度、大表示范圍的操作數(shù)類型,例如,有定義:int a;char ch表達(dá)式:a-ch*2

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論