歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

C語言第2章C語言的基本數(shù)據(jù)類型與表達式.ppt

  • 資源ID:11495450       資源大小:854KB        全文頁數(shù):55頁
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

C語言第2章C語言的基本數(shù)據(jù)類型與表達式.ppt

第2章C語言的基本數(shù)據(jù)類型與表達式,2.1C語言的基本數(shù)據(jù)類型2.2常量與變量2.3運算符與表達式2.4數(shù)據(jù)類型轉(zhuǎn)換,教學目的和基本要求:,要求學生清楚數(shù)據(jù)類型與變量、常量的關(guān)系,掌握各種常量的性質(zhì)和定義,掌握表達式中各種運算符的功能和特點,明白產(chǎn)生副作用的原因,了解數(shù)據(jù)類型的相互轉(zhuǎn)換規(guī)則。,教學重點:,數(shù)據(jù)類型、常量定義,運算符與表達式。,存取數(shù)據(jù)必須先確定數(shù)據(jù)的編碼方式、存儲格式和所占的存儲長度,C語言中把這三者結(jié)合起來,給出幾種固定的形式,這些形式就是最基本的數(shù)據(jù)類型。,2.1C語言的基本數(shù)據(jù)類型,為什么要設(shè)置數(shù)據(jù)類型?,在計算機中使用一定長度的存儲單元(通常是字節(jié)的倍數(shù))來存儲數(shù)據(jù)。,存儲的編碼方式有:原碼、反碼、補碼、ASCII碼存儲的存儲格式有:定點型、浮點型,其中,用于存儲數(shù)據(jù)的存儲單元的長度決定了數(shù)據(jù)取值范圍的大小。,例如:,【例2.1】計算圓的面積,半徑為5cm。程序如下:,main()floatr,area;r=5;area=3.14*r*r;printf("%fn",area);,運算結(jié)果是輸出圓的面積:78.500000,程序中用到的數(shù)據(jù):r、area、5、3.14對數(shù)據(jù)進行的運算:*、=,例jc2_1,分析:,計算機操作處理時,要完成以下工作:在內(nèi)存中給半徑r和運算結(jié)果area開辟存儲空間,存放它們的值。應(yīng)該留多大的地方來存放它們的值?數(shù)據(jù)5和3.14與r、area不同,它們是在編寫程序時就給出確定的值,在運算過程中不會改變。這樣的數(shù)計算機怎么處理?對整數(shù)5和小數(shù)3.14,計算機存放時是否有區(qū)別?,涉及數(shù)據(jù)類型的基本知識,字符型(char)整型(int,short,long,unsigned,longlong)單精度型(float)實型雙精度型(double)長雙精度(longlong_comple)枚舉類型(enum)數(shù)組類型()構(gòu)造類型結(jié)構(gòu)體類型(struct)共用體類型(union)指針類型(*)空類型(void),一、數(shù)據(jù)類型概述,本章討論基本類型數(shù)據(jù),變量:指以標識符為名字,其值可以改變的量。,在學習各種數(shù)據(jù)類型之前,我們先簡單了解一下常量和變量的概念。后面的章節(jié)中將會詳細介紹。,常量:指在程序運行中,其數(shù)值不能被改變的量。,變量代表計算機內(nèi)存中的某一存儲空間,變量的類型決定了該存儲空間的長度和其中存放數(shù)據(jù)的編碼方式及存儲格式。變量的類型也決定了該存儲空間中存放數(shù)據(jù)的數(shù)據(jù)形式和取值范圍。,*八進制的數(shù)碼范圍為07;018*十六進制的數(shù)碼除了數(shù)字09外,還使用英文字母af(或AF)表示1015。如:0 x1e*整型數(shù)據(jù)均以二進制補碼形式存儲,注意!,二、整型(采用定點整數(shù)的存儲格式,只能表示純整數(shù)),1、整型常量:,(1)十進制形式:與數(shù)學上的整數(shù)表示相同;例如:12,-100,0(2)八進制形式:在數(shù)碼前加數(shù)字0;例如:012=1*81+2*80=10(十進制)(3)十六進制形式:在數(shù)碼前加0X(數(shù)字0和字母X)。例如:0 x12=1*161+2*160=18(十進制),問題:為什么要采用補碼?如何表示?,計算機中正、負數(shù)的表示,例如:109(1101101)2要區(qū)別:109和109方法是:將符號也數(shù)碼化即:正的符號用0表示負的符號用1表示,計算機中的數(shù)表示方法是:符號位二進制數(shù)值(以8bit為例)109110110101101101109110110111101101,問題:計算機計算復(fù)雜化,例如計算:(-19)+(+22)10010011+00010110,解決的方法是:使用反碼或補碼的表示方法(按前述表示的編碼稱為原碼),即能將減法一律轉(zhuǎn)換為加法。,需要判斷符號是否相同:如果相同,結(jié)果符號不變,并進行絕對值相加如果不同,結(jié)果取絕對值大的數(shù)的符號,并進行絕對值相減,原碼、反碼和補碼,正數(shù):原碼、反碼、補碼相同符號位為0,數(shù)值為對應(yīng)的二進制數(shù)。109,01101101原=01101101反=01101101補負數(shù):原碼符號位為1,數(shù)值為絕對值的二進制數(shù)。10911101101原反碼符號位為1,數(shù)值為絕對值的二進制數(shù)各位變反。10910010010反補碼符號位為1,數(shù)值為絕對值的二進制數(shù)各位變反加1。10910010011補,2、整型變量的分類:,根據(jù)數(shù)據(jù)所占的存儲長度的不同分為:int、short、long、longlong;同樣存儲長度的數(shù)據(jù)又分unsigned、signed;故可組合出八種類型(參考課本P46)。,3、整型變量的值域:,由機器中數(shù)據(jù)的存儲長度決定,思考:inta=20000,b=20000,c;c=a+b;c的值為多少?如果c定義為long型是否能解決問題?,注意:C標準沒有具體規(guī)定各種數(shù)據(jù)類型占用存儲單元的長度,在不同的編譯系統(tǒng)中規(guī)定不盡相同,如在VC6.0中short為2B,int和long都為四個字節(jié),注意,三、實型,1、常量:(1)十進制小數(shù)形式:由數(shù)字和小數(shù)點組成;例如:3.4,4.,.3。(2)指數(shù)形式:“十進制小數(shù)”+“e(或E)”+“十進制數(shù)整數(shù)”。例如:12.5e-6表示12.510-6。,小數(shù)點不能單獨出現(xiàn);0.0.e或E的兩邊必須有數(shù),且其后面必須為整數(shù);如:6E0.2e5,實型數(shù)據(jù)的類型單精度實型數(shù)據(jù)float,分配4Byte雙精度實型數(shù)據(jù)double,分配8Byte實型數(shù)據(jù)的存儲,單精度實型,指數(shù)部分3130(8位)236362(11位)52,小數(shù)部分220510,小數(shù)的符號位,隱藏“1”,2、實型變量的分類及值域:,實型數(shù)據(jù)的類型及規(guī)定,C標準并未具體規(guī)定各種實型數(shù)據(jù)所占字節(jié)數(shù),也不規(guī)定具體小數(shù)和指數(shù)部分的位數(shù)。一般而言,小數(shù)部分位數(shù)多,數(shù)據(jù)表示的有效數(shù)字多,精度就高;而指數(shù)部分位數(shù)多,則表示的數(shù)據(jù)范圍更大。(參照課本P51說明),有效數(shù)字的意義?,字符形式功能n換行t橫向跳格b退格r回車反斜杠字符單引號字符ddd8進制數(shù)表示的ASCII碼對應(yīng)的字符xhh16進制數(shù)表示的ASCII碼對應(yīng)的字符,四、字符類型,1、常量:(1)用單引號括起來的一個字符;如:A、1、?等。(2)用單引號括起來的由反斜杠()引導(dǎo)的轉(zhuǎn)義字符。,4、字符串常量:是用一對雙引號括起來的字符序列。注意:每個字符串的后面都有一個0結(jié)束符。如:“SHANGHAI”,“AbcdeFGHijk”,“Howareyou”。,注意,a與“a”的區(qū)別。,例如:字符A的ASCII碼為:65D(十進制)=41H(十六進制)=101Q(八進制)字符A可以表示為A、x41、101。,2、字符型變量的分類:char和unsignedchar;,3、值域(字符型可參與數(shù)學運算,也可看成一種一字節(jié)的整型變量)每個字符型數(shù)據(jù)在內(nèi)存中占一個字節(jié);包括ASCII字符表中的所有字符(可顯示字符和非顯示字符)。,一、常量、符號常量及常變量常量是指在程序運行中,其數(shù)值不能被改變的量。常量又可分為直接常量和符號常量。,2.2常量與變量,120、-100、0;0120、072;0 xFFFF、0 x1e、0X28AF,0XED4;120L,200L;長整型常量3.14、-3.1、5.12E-6;a、#、n、101;099、12f、0 xg、48EA;019.5、1e-08;實型常量只能用十進制形式表示2.1E10.2、E-6、6.4E+4.8、E9;"changsha"、"+?ab";、p、ab;,1、直接常量:是在程序中直接引用的數(shù)據(jù)。,請判斷這些常量正確與否:,定義形式:#define標識符常量數(shù)據(jù)例如:#definePI3.14159在程序預(yù)處理時,凡是出現(xiàn)標識符PI的地方都將用數(shù)據(jù)3.14159來替換。如:2*2.3*PI就等價于2*2.3*3.14159。,變量是指以標識符為名字,其值可以改變的量。變量代表計算機內(nèi)存中的某一存儲空間,該存儲空間中存放的數(shù)據(jù)就是變量的值。在同一程序塊中,變量不能被重復(fù)定義。使用變量時必須“先定義,后使用”。,2、符號常量是用標識符來表示一個數(shù)據(jù);在程序不能給它賦值。,二、變量,3、常變量(C99中使用)constinta=3;,注意符號常量和常變量的區(qū)別(課本P42),注意,inta=5,b=3;inta=b=c=3;inta,b,c;a=b=c=3;,例如:inta,b,c;floatx,y;charc1,c2;或intc1,c2;定義變量就是在內(nèi)存中劃出一塊相應(yīng)類型的存儲空間存放該變量的值。,main()intx,y,z,w;/*定義x,y,z,w為整型變量*/unsignedintk;/*定義k為無符號整型變量*/x=10;y=-20;k=30;z=x+k;w=y+k;printf(“x+k=%d,y+k=%dn”,z,w);,例2-2:,程序運行結(jié)果為:x+k=40,y+k=10,變量根據(jù)作用域的不同可分為局部變量和全局變量,根據(jù)存儲方式的不同可分為靜態(tài)存儲變量和動態(tài)存儲變量,這些我們將在第六章中詳細介紹。,2.3運算符和表達式,主要內(nèi)容:算術(shù)運算符和算術(shù)表達式賦值運算符和賦值表達式關(guān)系運算符和關(guān)系表達式邏輯運算符和邏輯表達式位運算符和位運算表達式條件運算符和條件表達式逗號運算符和逗號表達式其他運算符及其運算,運算符的有關(guān)概念,作用:對運算對象完成規(guī)定的操作運算類型:按運算對象分:單目、雙目、三目按功能分:算術(shù)、賦值、關(guān)系、邏輯條件、逗號、位、其他,運算符的優(yōu)先級和結(jié)合性,優(yōu)先級指各種運算符號的運算優(yōu)先順序例如:算術(shù)運算優(yōu)先于關(guān)系運算算術(shù)運算中先*/后+-,結(jié)合性指運算符號和運算對象的結(jié)合方向分為:從左向右(左結(jié)合)和從右向左(右結(jié)合)例如:算術(shù)運算符為左結(jié)合a-b+4賦值運算符為右結(jié)合a=b=5(C語言規(guī)定見教材附錄C),本章涉及的運算符,+-*/%+-+-=+=-=*=/=%=intb=6,c=3;求解:a*b/c-1.5+a+fabs(-5)=?,floata=2.0;intb=6,c=3;a*b/c-1.5+a+fabs(-5),12.0/3,5,4.0-1.5,2.5+97(int),99.5+5,104.5(double),思考inta=1,b=2;表達式a/b+3的結(jié)果是多少?inta=10000,b=30000;表達式a+b的結(jié)果是多少?如何修改?,3、自增自減運算,+-是單目運算符有前綴和后綴兩種形式前綴形式:先自增(自減)再引用;后綴形式:先引用再自增(自減);功能:前綴形式+a等價于a=a+1-a等價于a=a1后綴形式a+等價于a=a+1a-等價于a=a1,表達式的值會不同,例如當a5時+a表達式的值為6,且a6a+表達式的值為5,且a6b=+a等價于a=a+1;b=a表達式的值為6,且a=6,b=6b=a+等價于b=a;a=a+1表達式的值為5,且a=6,b=5,說明:,+和-的運算對象只能是變量(或運算結(jié)果是變量的表達式),不能是常量(或運算結(jié)果是數(shù)值的表達式)。例如:5+、(a+2)+不合法。具有右結(jié)合性,結(jié)合方向為從右到左。例如:a+等價于-(a+)如果有多個運算符連續(xù)出現(xiàn)時,C系統(tǒng)盡可能多的從左到右將字符組合成一個運算符例如:i+j等價于(i+)+j-i+-j等價于-(i+)+(-j),main()inta=5;printf("%d%dn",a,a+);,說明(續(xù)):,對函數(shù)參數(shù)的求值順序:TurboC系統(tǒng)先計算最右邊的參數(shù)值,再依次計算左面的參數(shù)值。,【例2.3】有多個函數(shù)參數(shù)且為同一變量自增的運算處理。,輸出結(jié)果:65,運行例2.3,說明(續(xù)):,【例2.4】有多個函數(shù)參數(shù)且為同一變量多次自增的運算處理。,main()inta=5;printf("%d%dn",a,(a+)+(a+);,輸出結(jié)果:711,運行例2.4,特殊的:設(shè)i=3,j=4,k=i+j,k=i=j=,再看幾個例子:如:設(shè)i=3,k=(i+)+(i+)+(i+)k=i=,9,6,如:設(shè)a=3,b=(a+)+(a+)b=a=,6,5,設(shè)a=3,b=(+a)+(a+)b=a=,8,5,設(shè)a=3,b=(a+)+(+a)b=a=,7,5,設(shè)a=3,b=(+a)+(+a)b=a=,10,5,7,4,4,main()inta=5,b,c,k;k=a+(b=a+)+(c=a+);printf("%d%d%d%dn",a,b,c,k);,main()inta=5,b,c;printf("%d%d%d%dn",a,b,c,a+(b=a+)+(c=a+);,思考!,1、6種關(guān)系運算符:=>=!=2、關(guān)系表達式:用關(guān)系運算符將表達式連接起來的式子優(yōu)先級:(=>)>(=!=)結(jié)合性:自左至右;表達式的值:若為真,則結(jié)果為1;若為假,則結(jié)果為0。,3>5值為:32值為:設(shè)x=-2;-3<x<-1值為:設(shè)x=1;2<x<4值為:,例如,二、關(guān)系運算符和關(guān)系表達式,求如下關(guān)系表達式的值:,0,0,0,1,算術(shù)運算符優(yōu)先級高于關(guān)系運算符3+(4<3)*4值為:3+4floatb=3.5;!a()!(a0)()(a0)(),例如,0,1,1,0,0,0,1,1,0,0,0,1,例如表達式運算如下:,混合優(yōu)先級:!高算術(shù)運算符關(guān)系運算符b=1;c=a+執(zhí)行后:a為,b為,c為。,1,1,0,(2)a=1;b=1;c=0;d=-ab-(c=b+3);執(zhí)行后:a為,b為,c為,d為。,0,0,0,1,例如:(1)n是小于m的偶數(shù):(2)year是閏年:(能被4整除但不能被100整除,或能被400整除),邏輯表達式一般用于控制語句中的條件:,n算術(shù)>關(guān)系>max=a>b?a:b求max的值,max的值為5,例如:aby表達式y(tǒng)=a=4,b=5,a+b;y=(a=4,b=5,a+b);y=(a=4,b=5),a+b;y=a=(4,b=5),a+b;,4,5,4,9,4,5,9,9,4,5,9,5,5,5,5,10,形式有兩種:sizeof變量名sizeof(類型名)結(jié)果為整型數(shù)。,inta;floatx;printf(“%d,%d”,sizeofa,sizeofx);printf(“%d,%d”,sizeof(int),sizeof(float);以上兩個printf語句結(jié)果均為。,例如,3、求字節(jié)運算符:sizeof作用:求得變量或某種數(shù)據(jù)類型所需的字節(jié)數(shù)。,2,4,C語言允許整型、實型、字符型數(shù)據(jù)進行混合運算。有3種轉(zhuǎn)換方式:自動轉(zhuǎn)換、賦值轉(zhuǎn)換和強制轉(zhuǎn)換。一、類型自動轉(zhuǎn)換,2.4數(shù)據(jù)類型轉(zhuǎn)換,特點:由數(shù)值存儲位數(shù)少的向多的轉(zhuǎn)換;整型向?qū)嵭娃D(zhuǎn)換!操作數(shù)為相同類型的不轉(zhuǎn)換,仍取原類型,特別注意此時可能帶來的錯誤!,intx=2;floaty=1.6;charc=A;則:c+1/x*y=,例如,charc=68.5;printf(“%c”,c);,65(int)+0(int)*1.6(float),65(float),二、賦值轉(zhuǎn)換在賦值時將賦值符右邊值的類型轉(zhuǎn)換成與其左邊變量類型一致的類型。,有下列幾種情況:(1)實型整型(字符型):去掉小數(shù)部分;,(2)整型(字符型)實型:補足有效位;,floatf=23;23.00000f(7位)doublef=A;65.0000000000000f(15位),(3)對char、int、short、long、unsigned型數(shù)據(jù):賦值符右邊數(shù)據(jù)(a位)賦值符左邊的變量(b位)若a=ba>b,a<b,原樣照賦;,截斷高a-b位,送低b位;,有符號數(shù)據(jù)有符號變量:符號擴展;,其他情況:高b-a位全補0。,符號擴展:符號位為0,剩余的高位補0;符號位為1,剩余的高位補1。,例如:inta=2,b=5;floatx=4.4;則有:表達式結(jié)果b/a(float)b/a(float)(b/a)(int)x%a+x(int)x%(a+x),三、強制類型轉(zhuǎn)換形式:(類型名)表達式強制類型轉(zhuǎn)換時,得到所需類型的中間變量,原來變量的類型不會改變。,2,2.5,2.0,4.4,本章結(jié)束,再見!,同學們:,

注意事項

本文(C語言第2章C語言的基本數(shù)據(jù)類型與表達式.ppt)為本站會員(tia****nde)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!