C課件第3章數(shù)據(jù)類型和表達(dá)式.ppt
《C課件第3章數(shù)據(jù)類型和表達(dá)式.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《C課件第3章數(shù)據(jù)類型和表達(dá)式.ppt(85頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
第三章數(shù)據(jù)類型和表達(dá)式,本章主要內(nèi)容,數(shù)據(jù)類型常量變量運(yùn)算符和表達(dá)式函數(shù),3.1數(shù)據(jù)類型,數(shù)據(jù):是程序命令操作的對象數(shù)據(jù)類型:是指將數(shù)據(jù)根據(jù)表達(dá)形式的不同而劃分的類別。,3,C+的數(shù)據(jù)類型一般分為如下幾種:,基本數(shù)據(jù)類型,非基本數(shù)據(jù)類型(用戶定義數(shù)據(jù)類型),整型字符型實(shí)型(浮點(diǎn)型)邏輯型(布爾型)數(shù)組指針空類型結(jié)構(gòu)聯(lián)合枚舉類,數(shù)據(jù)類型,數(shù)據(jù)類型修飾符,4,short,long,unsigned,例:,無符號整型unsignedint,無符號長整型unsignedlong,無符號短整型unsignedshort,signed,整型數(shù)據(jù)分類,整型數(shù)據(jù)值域,數(shù)據(jù)類型常量與變量,7,#includevoidmain(void)constintPRICE=30;intnum,total;floatv,r,h;num=10;total=num*PRICE;couttotalendl;r=2.5;h=3.2;v=3.14159*r*r*h;coutv=Ac=Z)c=c+a-A;將字符變量c從大寫字母轉(zhuǎn)為小寫字母。例2:0-0=01-0=12-0=2,14,轉(zhuǎn)義字符,非圖形字符(如回車、制表符等)及“等字符,因它們有特殊作用,所以表示這些字符本身時(shí)。P55。如:n表換行無論是不可顯示字符還是一般字符,都可用8進(jìn)制數(shù)、16進(jìn)制數(shù)表示ddd:一至三位8進(jìn)制數(shù)。xhh:一至二位16進(jìn)制數(shù)。例如:001表示碼值為(01)8的ASCII字符。A也可用101表示0為空白符,即NULL,碼值為0,在C語言中是字符串的結(jié)束標(biāo)志。(與0和空格符不同)例如:cout“x07operatingtsystemn”;輸出:operatingsystem,15,字符型與整型的關(guān)系,表達(dá)式求值過程中,所有字符被無條件地轉(zhuǎn)換為與其代碼等值的整數(shù);如:A+2的值為67;可以用類型轉(zhuǎn)換符int將一字符強(qiáng)制轉(zhuǎn)換成整數(shù);如:coutint(A);將顯示65可以用類型轉(zhuǎn)換符char將一整數(shù)強(qiáng)制轉(zhuǎn)換成字符;如:coutchar(67);將顯示C,字符型與整型的關(guān)系,17,例:inta=b;charc=97;coutaendl;coutcendl;輸出:98a,字符數(shù)據(jù)的使用方法字符數(shù)據(jù)和整型數(shù)據(jù)之間可以運(yùn)算。字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。,字符串常量,字符串型常量是用雙引號括起來的一個(gè)或多個(gè)字符。C+規(guī)定以字符0作為字符串結(jié)束標(biāo)志。如,一個(gè)字符串“HELLO”,在內(nèi)存中以“0”為結(jié)尾?!?”在輸出時(shí)不作顯示,只用來表示字符串的結(jié)束。,18,字符串型常量,“HELLO”,HELLO0,注意“P”與P不同。前者為字符串,在機(jī)內(nèi)存儲(chǔ)形式為P0,而P就是一常數(shù)P。,字符串常量,漢字字符及其它全角字符的代碼一般用兩個(gè)字節(jié)表示,因此即使是一個(gè)漢字也只能表示為字符串,如“漢”(而不能是漢)。注意區(qū)分A和A。.,符號常量,20,definePI3.14159main()intr;floatL,S;r=10;L=2*PI*r;S=PI*r*r;printf(“周長=%fn”,L);printf(“面積=%fn”,S);,這是一個(gè)知道圓半徑r,求圓周長L、圓面積S的簡單C程序。其中的PI就是符號常量,它的值在一開始就被預(yù)處理命令“#define”定義為實(shí)數(shù)3.14159了,故程序在運(yùn)行和編譯時(shí)會(huì)自動(dòng)用“3.14159”來替代PI。,符號常量比起一般常量來,不但使用方便,實(shí)際值容易修改,而且更形象化,便于記憶。,符號常量,*C+中:constfloatpi=3.14159;*常量定義中初始化的值可以是一個(gè)常量表達(dá)式:constintsize=100*sizeof(int);constintnumber=max(15,23);(錯(cuò))注意:#define與const的區(qū)別,21,邏輯常量,布爾型變量的說明:例:boolflag;布爾型數(shù)據(jù)的取值:只有false(0)和true(1)兩個(gè)值由于邏輯值是整數(shù)0和1,所以可以像整數(shù)一樣出現(xiàn)在表達(dá)式里,參與各種整數(shù)運(yùn)算。,22,枚舉型數(shù)據(jù)基本情況,C+并沒有提供枚舉類型,而只提供了定義枚據(jù)類型的手段;任何枚舉類型都需要自己定義。格式:enum如:enumcolorred,yellow,blue;enumDAYSun,Mon,Tue,Wed,Thu,Fri,Sat;,一個(gè)枚舉類型被定以后,可以像整型等預(yù)定義類型一樣使用在允許出現(xiàn)數(shù)據(jù)類型的任何地方。enumcolorc1,c2,c3;enumdaytoday,workday;c1=red;workday=wed,枚舉型數(shù)據(jù)與整型的關(guān)系,枚舉中的一個(gè)符號通常對應(yīng)一個(gè)有符號整數(shù),因此其存儲(chǔ)空間也等同于一個(gè)有符號整數(shù)(通常4字節(jié))。一個(gè)枚舉類型的值域就是枚舉符號(如Sun,Mon等)所代表的一個(gè)整數(shù)的子集;,0123456,枚舉型數(shù)據(jù)與整型的關(guān)系,一般來說,枚舉中的每個(gè)符號依次與0、1、2、3對應(yīng),如:enumDAYSun,Mon,Tue,Wed,Thu,Fri,Sat;,12567,枚舉型數(shù)據(jù)與整型的關(guān)系,也可以任意規(guī)定其對應(yīng)關(guān)系,如:enumSomeDigitsONE=1,TWO,FIVE=5,SIX,SEVEN;,枚舉型數(shù)據(jù)的功用,定義一個(gè)枚舉類型就是定義了一組相互關(guān)聯(lián)的符號常量,在程序中可用來區(qū)分不同的事物或不同的狀態(tài);枚舉符號的使用可提高程序的可讀性、一致性和可維護(hù)性。.,枚舉型數(shù)據(jù)與整型的關(guān)系,表達(dá)式求值過程中,枚舉型數(shù)據(jù)將被無條件轉(zhuǎn)換成相應(yīng)的整型數(shù)據(jù),例如:SEVEN+2的值為9。,實(shí)型常量,實(shí)型常量,定點(diǎn)表示法和浮點(diǎn)表示法325.483.2548e2(3.2548102)不同規(guī)格的實(shí)型常量.325.48(double)325.48f3.2548e2F(float)325.48L3.2548e2L(longdouble),實(shí)型常量,32,(2)一個(gè)實(shí)型常數(shù)缺省說明為double,如表示float型,則在實(shí)數(shù)后加f或F。例34.5f34.5,注:(1)指數(shù)形式的書寫。E或e的前面必須要有數(shù)字,且E后面的指數(shù)必須為整數(shù)。例:e32.1e3.5.e3e,3.3變量,33,變量是什么,變量其值允許改變的量,在C+程序中用一個(gè)標(biāo)識符表示,允許通過賦值操作來改變它的值。,變量:變量值23,變量名length,變量類型int,3.3變量,C+規(guī)定必須以字母或下劃線打頭,后面跟字母、數(shù)字或下劃線(如:a3,Z_5e,_D7d等),并且不能與保留字、函數(shù)名、類名等C+專用名相同(如char,for,int等)。注意:(a)長度:早期的C編譯程序只認(rèn)前8個(gè)字符。VC允許256個(gè)字符。但一般不要超過31個(gè)字符為宜,1、命名,3.3變量,35,(b)約定:變量名、函數(shù)名、和數(shù)據(jù)類型名等用小寫字母自定義的類型名(如類)、符號常量名及宏用大寫字母;下劃線開頭的名字常為系統(tǒng)程序(庫函數(shù)用),用戶一般不用。(c)要有意義:如用Sum表示“求和變量”,不要用aaa,A1,B12之類名字。,3.3變量,36,程序中的num1,num2和sum都是變量。它們的值在程序的運(yùn)行過程中都發(fā)生了變化。變量定義后,各變量的初值都是不確定的。num1的第一個(gè)確切值是10,當(dāng)再次給num1賦值時(shí),num1的值又變成-5。其他兩個(gè)變量的變化情況類似。,#includevoidmain()intnum1,num2,sum;num1=10;num2=15;sum=2*num1+num2;cout“sum=“sumendl;num1=-5;num2=num1+3;sum=num1+num2;cout“sum=“sumendl;,3.3變量,2、變量的定義,37,變量:需要定義,說明其存儲(chǔ)屬性和數(shù)據(jù)類型。,例:staticintnward=0,nkayword;,同一語句中,不能混合定義不同類型的變量。,變量的存儲(chǔ)類型,auto存儲(chǔ)類(缺省時(shí)用)屬于一時(shí)性存儲(chǔ),其存儲(chǔ)空間可以被若干變量多次覆蓋使用。register存儲(chǔ)類存放在通用寄存器中。提高執(zhí)行的速度。過多使用影響速率。extern存儲(chǔ)類在所有函數(shù)和程序段中都可引用。static存儲(chǔ)類在內(nèi)存中是以固定地址存放的,在整個(gè)程序運(yùn)行期間都有效。,38,變量賦值與初始化,(1)doublearea,radius=23;(2)doublearea,radius;radius=23;,39,3.4運(yùn)算符和表達(dá)式,表達(dá)式:一個(gè)常量或標(biāo)識對象的標(biāo)識符是一個(gè)最簡單的表達(dá)式,其值是常量或?qū)ο蟮闹狄粋€(gè)表達(dá)式的值可以用來參與其它操作,即用作其它運(yùn)算符的操作數(shù),這就形成了更復(fù)雜的表達(dá)式包含在括號中的表達(dá)式仍是一個(gè)表達(dá)式,其類型和值與未加括號時(shí)的表達(dá)式相同算術(shù)表達(dá)式:由算術(shù)運(yùn)算符、操作數(shù)和括號構(gòu)成的表達(dá)式稱為算術(shù)表達(dá)式a+b+(c-b)/2+5,40,、雙目算術(shù)運(yùn)算符,加(+)、減(-)、乘(*)、除(/)和取余(%)優(yōu)先級與結(jié)合性:先乘除,后加減,同級自左至右,41,、雙目算術(shù)運(yùn)算符,(1)/除法5/2=25.0/2.0=2.5若/的兩操作數(shù)都為整數(shù),則為整除:例inti=15;floatf;f=i/10;結(jié)果為:f=1如果將第三條語句改為f=(float)i/10;或f=i/10.0;則結(jié)果為:f=1.5,42,、雙目算術(shù)運(yùn)算符,(2.)%取余(余的符號與被除數(shù)相同,不允許對浮點(diǎn)數(shù)操作)3%4=34%4=0例#includevoidmain()intn;n=40%5;cout40%5:nendl;/(0)n=40%7;cout40%7:nendl;/(5)n=40%-7;cout40%-7:nendl;/(5)n=-40%7;cout-40%7:nendl;/(-5)n=-40%-7;cout-40%-7:nendl;/(-5),43,注意:當(dāng)參加運(yùn)算的兩個(gè)操作數(shù)都是整數(shù)時(shí),運(yùn)算結(jié)果也為整數(shù)。當(dāng)參加運(yùn)算的兩個(gè)操作數(shù)中至少有一個(gè)是單精度型,并且另外一個(gè)不是雙精度型時(shí),運(yùn)算結(jié)果為單精度型。當(dāng)參加運(yùn)算的兩個(gè)操作數(shù)中至少有一個(gè)是雙精度型,則運(yùn)算結(jié)果為雙精度型。,2.賦值運(yùn)算符,賦值運(yùn)算符用于將一個(gè)數(shù)據(jù)傳給一個(gè)變量。例如:intx;x=5;注意:(1)雙目運(yùn)算符,從右到左d=a=b(2)賦值操作是一個(gè)表達(dá)式,每個(gè)表達(dá)式在求值后都有一個(gè)確定的值,其值為賦值號左邊表達(dá)式的值例:cout(x=5)=,intb=+a;couta“bendl;intc=a+;couta“cendl;,454,例題:x=6;x+=x-=x*x;若x為整型變量,則上述語句執(zhí)行后x的值是()X+與X+1是否相等?+X與X+=1是否相等?,4.測類型長度運(yùn)算符-sizeof操作符,語法形式:sizeof(類型名)或sizeof(表達(dá)式)結(jié)果值:“類型名”所指定的類型或“表達(dá)式”的結(jié)果類型所占的字節(jié)數(shù)。例:sizeof(int)=4sizeof(double)=8sizeof(100)=4sizeof(a)=1sizeof(structABC)coutsizeof(double)2)|(按位或,如:k1|k2)y+103(4)表達(dá)式1、2的類型可以不同,條件表達(dá)式的最終類型為1和2中較高的類型。,73,9.逗號運(yùn)算符,格式:表達(dá)式1,表達(dá)式2求解順序及結(jié)果:先求解1,再求解2,最終結(jié)果為表達(dá)式2的值例a=3*5,a*4最終結(jié)果為60例2inta,b,c;d=(a=1,b=a+2,c=b+3);coutdendl;,74,10.圓括號運(yùn)算符,圓括號運(yùn)算符()括號內(nèi)運(yùn)算優(yōu)先進(jìn)行,即先算括號內(nèi),后算括號外。如x/(y+2),75,優(yōu)先級,76,混合運(yùn)算時(shí)數(shù)據(jù)類型的轉(zhuǎn)換隱含轉(zhuǎn)換,一些二元運(yùn)算符(算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符和賦值運(yùn)算符)要求兩個(gè)操作數(shù)的類型一致。在算術(shù)運(yùn)算和關(guān)系運(yùn)算中如果參與運(yùn)算的操作數(shù)類型不一致,編譯系統(tǒng)會(huì)自動(dòng)對數(shù)據(jù)進(jìn)行轉(zhuǎn)換(即隱含轉(zhuǎn)換),基本原則是將低類型數(shù)據(jù)轉(zhuǎn)換為高類型數(shù)據(jù)。charshortintunsignedlongfloatdouble低高,77,混合運(yùn)算時(shí)數(shù)據(jù)類型的轉(zhuǎn)換隱含轉(zhuǎn)換,邏輯運(yùn)算要求參與運(yùn)算的操作數(shù)必須是bool型,如果操作數(shù)是其它類型,編譯系統(tǒng)會(huì)自動(dòng)將非0數(shù)據(jù)轉(zhuǎn)換為true,0轉(zhuǎn)換為false。位運(yùn)算的操作數(shù)必須是整數(shù),當(dāng)二元位運(yùn)算的操作數(shù)是不同類型的整數(shù)時(shí),也會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換,賦值運(yùn)算要求左值與右值的類型相同,若類型不同,編譯系統(tǒng)會(huì)自動(dòng)律將右值轉(zhuǎn)換為左值的類型。,混合運(yùn)算時(shí)數(shù)據(jù)類型的轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換,語法形式:類型說明符(表達(dá)式)或(類型說明符)表達(dá)式強(qiáng)制類型轉(zhuǎn)換的作用是將表達(dá)式的結(jié)果類型轉(zhuǎn)換為類型說明符所指定的類型。注:inta=16,b=5;floatx=10;x=(float)a+a/b;,3.5函數(shù),函數(shù)分為系統(tǒng)函數(shù)和用戶函數(shù)兩類,這里主要介紹一些常用的系統(tǒng)函數(shù)。數(shù)學(xué)函數(shù)(math.h)絕對值abs(x)或fabs(x)、正弦sin(x)、余弦con(x)、正切tan(x)、平方根sqrt(x)、自然指數(shù)exp(x)exe=2.718282、冪pow(x,y)xy、自然對數(shù)log(x)lnx、向下取整floor(x)等。如abs(-12)=12、fabs(-3.26)=3.26、sqrt(36)=6、pow(2,5)=32等。,80,3.5函數(shù),隨機(jī)函數(shù)(stdlib.h)rand()返回0-32767之間的一個(gè)整數(shù);srand(s)讓系統(tǒng)建立對應(yīng)的隨機(jī)數(shù)序列,當(dāng)自變量s的值不同時(shí),將使系統(tǒng)產(chǎn)生不同的隨機(jī)數(shù)序列。如rand()%100得到0-99之間一個(gè)隨機(jī)數(shù)for(inti=1;i10;i+)coutrand()%100;終止運(yùn)行函數(shù)(stdlib.h)exit(1)執(zhí)行時(shí)結(jié)束程序執(zhí)行,返回C+主操作界面窗口,81,3.5函數(shù),函數(shù)調(diào)用或稱函數(shù)調(diào)用表達(dá)式格式:(),實(shí)參表應(yīng)與函數(shù)定義或函數(shù)原型中的參數(shù)表相對應(yīng)。例:求指數(shù)函數(shù)原型doublepow(doublex,doubley);調(diào)用格式:pow(實(shí)參1,實(shí)參2)pow(3,2),pow(3*2,3),pow(x,y+1)doublea=3,b=4,c;c=pow(a,b)-15;,82,利用ceil函數(shù)或者floor函數(shù)按要求求取一個(gè)數(shù)的若干位小數(shù)。假定x=3.74265floor(x*100)/100=3.74/保留x的兩位小數(shù),x值不變floor(x*10000)/10000=3.7426/保留x的四位小數(shù),x值不變floor(x*1000+0.5)/1000=3.743/保留三位小數(shù),第四位四舍五入floor(x+0.5)=4/對x取整,小數(shù)點(diǎn)后1位四舍五入floor(x*10+0.5)/10=3.7/保留x的一位小數(shù),小數(shù)點(diǎn)后第2位四舍五入,利用隨機(jī)函數(shù)能夠產(chǎn)生出任何指定區(qū)間內(nèi)的隨機(jī)數(shù)rand()%100/返回099區(qū)間內(nèi)的一個(gè)隨機(jī)整數(shù)10+rand()%90/返回10,99區(qū)間內(nèi)的一個(gè)隨機(jī)整數(shù)a+rand()%b/返回a,a+b-1區(qū)間內(nèi)的一個(gè)隨機(jī)整數(shù)rand()%100/100.0/返回0.00,0.99區(qū)間內(nèi)的一個(gè)隨機(jī)整數(shù)rand()%90/10.0+1/返回1.0,9.9區(qū)間內(nèi)的一個(gè)隨機(jī)整數(shù),注意,在數(shù)學(xué)算術(shù)中省略乘號的地方,在對應(yīng)的算術(shù)表達(dá)式中要加上乘號*。在數(shù)學(xué)算術(shù)的分子中若出現(xiàn)加、減運(yùn)算,或者在分母中若出現(xiàn)加、減、乘和除運(yùn)算,則表示成算術(shù)表達(dá)式時(shí)應(yīng)把分子和分母分別加圓括號括起來。對于在三角函數(shù)中使用的角度,應(yīng)轉(zhuǎn)換成弧度,對于使用的常量符號應(yīng)寫成常數(shù)3.14159。當(dāng)算式中帶有兩個(gè)整數(shù)相除時(shí),則轉(zhuǎn)換后要使其一寫成實(shí)數(shù)形式,否則將丟失商的小數(shù)部分。,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 課件 數(shù)據(jù)類型 表達(dá)式
![提示](http://appdesigncorp.com/images/bang_tan.gif)
![](/images/jdt.gif)
鏈接地址:http://appdesigncorp.com/p-11494969.html