第2章 數(shù)據(jù)類型和運(yùn)算0306_第1頁
第2章 數(shù)據(jù)類型和運(yùn)算0306_第2頁
第2章 數(shù)據(jù)類型和運(yùn)算0306_第3頁
第2章 數(shù)據(jù)類型和運(yùn)算0306_第4頁
第2章 數(shù)據(jù)類型和運(yùn)算0306_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第2 2章章 數(shù)據(jù)類型和運(yùn)算數(shù)據(jù)類型和運(yùn)算34main( ) float=* *printf (%fn ,) ; 56C數(shù)據(jù)類型數(shù)據(jù)類型數(shù)組類型數(shù)組類型結(jié)構(gòu)體類型結(jié)構(gòu)體類型共用體類型共用體類型枚舉類型枚舉類型指針類型指針類型構(gòu)造類型構(gòu)造類型7表2-1字符型數(shù)據(jù)的類型及規(guī)定類型名稱類型標(biāo)識符長度(字節(jié))取值范圍字符型char10255有符號字符型signed char1-128127無符號字符型unsigned char102558 標(biāo)準(zhǔn)C語言沒有具體規(guī)定各種類型的整型數(shù)據(jù)所占字節(jié)數(shù),在不同的運(yùn)行環(huán)境下編譯系統(tǒng)的處理方式是不同的。 本書將以VC+6.0環(huán)境為基礎(chǔ)描述數(shù)據(jù)類型。補(bǔ)碼補(bǔ)碼l1、在計

2、算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼來表示(存儲)。、在計算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼來表示(存儲)。 主主要原因:使用補(bǔ)碼,可以將符號位和其它位統(tǒng)一處理;同時要原因:使用補(bǔ)碼,可以將符號位和其它位統(tǒng)一處理;同時,減法也可按加法來處理。另外,兩個用補(bǔ),減法也可按加法來處理。另外,兩個用補(bǔ) 碼表示的數(shù)相加碼表示的數(shù)相加時,如果最高位(符號位)有進(jìn)位,則進(jìn)位被舍棄。時,如果最高位(符號位)有進(jìn)位,則進(jìn)位被舍棄。 l2、補(bǔ)碼與原碼的轉(zhuǎn)換過程幾乎是相同的。、補(bǔ)碼與原碼的轉(zhuǎn)換過程幾乎是相同的。l3、補(bǔ)碼系統(tǒng)的最大優(yōu)點(diǎn)是可以在加法或減法處理中,不需、補(bǔ)碼系統(tǒng)的最大優(yōu)點(diǎn)是可以在加法或減法處理中,不需因為數(shù)字的正負(fù)而使用

3、不同的計算方式。只要一種加法電路因為數(shù)字的正負(fù)而使用不同的計算方式。只要一種加法電路就可以處理各種有符號數(shù)加法,而且減法可以用一個數(shù)加上就可以處理各種有符號數(shù)加法,而且減法可以用一個數(shù)加上另一個數(shù)的補(bǔ)碼來表示,因此只要有加法電路及補(bǔ)碼電路即另一個數(shù)的補(bǔ)碼來表示,因此只要有加法電路及補(bǔ)碼電路即可完成各種有號數(shù)加法及減法,在電路設(shè)計上相當(dāng)方便??赏瓿筛鞣N有號數(shù)加法及減法,在電路設(shè)計上相當(dāng)方便。l求給定數(shù)值的補(bǔ)碼表示分以下兩種情況:求給定數(shù)值的補(bǔ)碼表示分以下兩種情況:正數(shù)的補(bǔ)碼正數(shù)的補(bǔ)碼與原碼相同。與原碼相同。負(fù)數(shù)的補(bǔ)碼負(fù)數(shù)的補(bǔ)碼負(fù)數(shù)的補(bǔ)碼是對其原碼逐位取反,但符負(fù)數(shù)的補(bǔ)碼是對其原碼逐位取反,但符號

4、位除外;然后整個數(shù)加號位除外;然后整個數(shù)加1。1011+25和和-25在計算機(jī)內(nèi)在計算機(jī)內(nèi)存中的表現(xiàn)形式是如存中的表現(xiàn)形式是如何計算的?何計算的?12 111 1111 1010 1000 作為作為使用時,最高為符號位使用時,最高為符號位為負(fù)數(shù),值是:為負(fù)數(shù),值是:(再求一次補(bǔ))(再求一次補(bǔ)) 作為作為使用時,最高為數(shù)據(jù)位使用時,最高為數(shù)據(jù)位為無符號的數(shù),值是:為無符號的數(shù),值是:13main( ) int m; m= ; printf(m=n,m); printf(m=n,m); 按有符號數(shù)輸出按有符號數(shù)輸出按無符號數(shù)輸出按無符號數(shù)輸出1415小數(shù)的符號位小數(shù)的符號位指數(shù)的符號位指數(shù)的符號位

5、16171819字符串字符串結(jié)束標(biāo)記結(jié)束標(biāo)記202122 指數(shù)只能是整數(shù),而尾數(shù)則可以是整數(shù)也可以是指數(shù)只能是整數(shù),而尾數(shù)則可以是整數(shù)也可以是小數(shù)小數(shù) ,無論指數(shù)或尾數(shù)均不能省略,無論指數(shù)或尾數(shù)均不能省略例如:例如: 非法非法 實型常量的類型:默認(rèn)為實型常量的類型:默認(rèn)為型,后面加型,后面加(或或 ),),則強(qiáng)調(diào)表示該數(shù)是則強(qiáng)調(diào)表示該數(shù)是float類型類型例如:例如:3.5 、1e2 尾數(shù)尾數(shù)指數(shù)指數(shù)232425程序中需要使用多個變量,為了加以區(qū)分,需要程序中需要使用多個變量,為了加以區(qū)分,需要給變量命名。為變量命名的字符序列成為標(biāo)識符,給變量命名。為變量命名的字符序列成為標(biāo)識符,標(biāo)識符可以用

6、于程序中的常量、函數(shù)、數(shù)組、自標(biāo)識符可以用于程序中的常量、函數(shù)、數(shù)組、自定義類型等命名。定義類型等命名。C語言規(guī)定:標(biāo)識符只能由字母、數(shù)字和下劃線組語言規(guī)定:標(biāo)識符只能由字母、數(shù)字和下劃線組成,且第一個字符必須是字母或下劃線。成,且第一個字符必須是字母或下劃線。C語言的標(biāo)識符可以分為語言的標(biāo)識符可以分為3類:關(guān)鍵字、預(yù)定義標(biāo)類:關(guān)鍵字、預(yù)定義標(biāo)識符、用戶定義標(biāo)識符。識符、用戶定義標(biāo)識符。關(guān)鍵字關(guān)鍵字在在C程序中有特殊含義的英文單詞,主要進(jìn)行程序中有特殊含義的英文單詞,主要進(jìn)行數(shù)據(jù)類型的定義,用于構(gòu)成語句。數(shù)據(jù)類型的定義,用于構(gòu)成語句。C語言中標(biāo)識符的關(guān)鍵語言中標(biāo)識符的關(guān)鍵字一共字一共32個,都

7、是小寫。參見個,都是小寫。參見P267附錄附錄B預(yù)定義標(biāo)識符預(yù)定義標(biāo)識符系統(tǒng)的標(biāo)準(zhǔn)函數(shù)還使用了大量的符號,系統(tǒng)的標(biāo)準(zhǔn)函數(shù)還使用了大量的符號,如如printf、stdio等。等。用戶定義標(biāo)識符用戶定義標(biāo)識符用戶自己定義的標(biāo)識符,如在程序中用戶自己定義的標(biāo)識符,如在程序中定義的變量、函數(shù)名等。定義的變量、函數(shù)名等。定義標(biāo)識符要注意:定義標(biāo)識符要注意:1)C語言區(qū)分大小寫。如語言區(qū)分大小寫。如a和和A是不同的標(biāo)識符。習(xí)慣是不同的標(biāo)識符。習(xí)慣上,變量名和函數(shù)名用小寫表示,符號常量用大寫表上,變量名和函數(shù)名用小寫表示,符號常量用大寫表示。示。2)標(biāo)識符要做到)標(biāo)識符要做到“見名知意見名知意”。3)在關(guān)鍵

8、字和標(biāo)識符之間必須要有一個以上的空格符)在關(guān)鍵字和標(biāo)識符之間必須要有一個以上的空格符間隔,否則會出現(xiàn)語法錯誤。如間隔,否則會出現(xiàn)語法錯誤。如int a和和inta.2728例如:例如:int a=5, b=10+2; double x=23.568, y ;表示定義變量并對變量存儲單元賦值。表示定義變量并對變量存儲單元賦值。變量也可以在聲明后再單獨(dú)賦值:變量也可以在聲明后再單獨(dú)賦值:如如int a; a=5;int a; a=5;注意注意:1 1)當(dāng)定義一個沒有賦初值的變量時,它的值是一個不)當(dāng)定義一個沒有賦初值的變量時,它的值是一個不確定的隨機(jī)數(shù),直接使用會產(chǎn)生錯誤的結(jié)果。如確定的隨機(jī)數(shù),直

9、接使用會產(chǎn)生錯誤的結(jié)果。如int a;int a; 2) 2)賦值時不能含有未定義的變量或已定義過但未初始賦值時不能含有未定義的變量或已定義過但未初始化的變量。也不能連續(xù)進(jìn)行初始化?;淖兞?。也不能連續(xù)進(jìn)行初始化。錯誤錯誤的初始化:的初始化: int a=3+b, b=5; int a=1,b=2,c; a=c; float m=23.16,n=23.16; 3) 3)變量的值是可以改變的,變量總是保存最后變量的值是可以改變的,變量總是保存最后一個的賦值。如一個的賦值。如int a,b,c;int a,b,c;a=2;a=2;b=5;b=5;c=a;c=a;a=b;a=b;b=c;b=c;經(jīng)過

10、幾次賦值后,經(jīng)過幾次賦值后,a,b,ca,b,c的值是多少?的值是多少?思考:思考:如果如果a=8,b=9,c=10a=8,b=9,c=10,如何實現(xiàn)將,如何實現(xiàn)將a a的值賦的值賦給給b b,將,將b b的值賦給的值賦給c,c,將將c c的值賦給的值賦給a?a?(在實現(xiàn)數(shù)(在實現(xiàn)數(shù)的交換的時候,要學(xué)會引用中間變量)的交換的時候,要學(xué)會引用中間變量)30313233343536373839404142( ) + - + - * / % + - 同級 同級 同級 4445464748495051525354一般形式:一般形式:變量變量=表達(dá)式表達(dá)式555657m=10 & b-20 a

11、b x=3+a5 100 200 判斷表達(dá)式判斷表達(dá)式1,如果為,如果為真,則結(jié)果為表達(dá)式真,則結(jié)果為表達(dá)式2,否則為表達(dá)式否則為表達(dá)式3。23?0:-158 m=10 & b-20 a b x=3+a5 ? 100 : 200等價于:等價于:(m=10 & b-20) a b等價于:等價于:x= ( 3+a5 ) 100 200 )5960 a=5, a+, a* 3 t=1, t+5, t+ x=(a=3*5, a*4 ) 61例如有定義:例如有定義:int a; char ch;表達(dá)式:表達(dá)式:a-ch*2+35La-ch*2+ 35橫向箭頭表示必定轉(zhuǎn)換;橫向箭頭表示必定

12、轉(zhuǎn)換;6263需要將頭文件需要將頭文件math.h調(diào)到程序調(diào)到程序中進(jìn)行編譯。中進(jìn)行編譯。例計算例計算PI的的sin值。值。1int abs(int n); 求整數(shù)的絕對值。求整數(shù)的絕對值。2double fabs(double x); 求實數(shù)的絕對值。求實數(shù)的絕對值。3double floor(double x); 求不大于求不大于x的最大整數(shù),也的最大整數(shù),也就是向下取整。就是向下取整。4double ceil(double x); 求不小于求不小于x的最小整數(shù),也的最小整數(shù),也就是向上取整。就是向上取整。5double sqrt(double x); 求求x的平方根。的平方根。6double log10(double x); 求求x的常用對數(shù)。的常用對數(shù)。7double log(double x); 求求x的自然對數(shù)。的自然對數(shù)。8double exp(double x); 求歐拉常數(shù)求歐拉常數(shù)e的的x次方。次方。9double pow10(int p); 求求10的的p次方。次方。10double pow(double x, double y); 求求x的的y次方。次方。11double sin(doub

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論