c語(yǔ)言數(shù)據(jù)類(lèi)型運(yùn)算符表達(dá)式.ppt
《c語(yǔ)言數(shù)據(jù)類(lèi)型運(yùn)算符表達(dá)式.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《c語(yǔ)言數(shù)據(jù)類(lèi)型運(yùn)算符表達(dá)式.ppt(41頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1,第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式,數(shù)據(jù)類(lèi)型概念…常量與變量…三種常用基本數(shù)據(jù)類(lèi)型…算術(shù)運(yùn)算與賦值運(yùn)算…逗號(hào)運(yùn)算…混合運(yùn)算與數(shù)據(jù)類(lèi)型轉(zhuǎn)換…,2,C語(yǔ)言的基本元素,1.符號(hào)集(字符集),大寫(xiě)字母、小寫(xiě)字母、阿位伯?dāng)?shù)字、下劃線、標(biāo)點(diǎn)符號(hào)和運(yùn)算符,2.標(biāo)識(shí)符(區(qū)分大小寫(xiě))P39,用來(lái)標(biāo)識(shí)常量、變量、函數(shù)及文件名字的字符系列,標(biāo)識(shí)符的構(gòu)成規(guī)則:(不能使用關(guān)鍵字),以字母(大小寫(xiě)均可)或以下劃線開(kāi)頭隨后可跟若干個(gè)(包括0個(gè))字母、數(shù)字、下劃數(shù)標(biāo)識(shí)符的長(zhǎng)度各個(gè)系統(tǒng)不同,最好不要超過(guò)8個(gè)字符,例:判斷下列標(biāo)識(shí)符號(hào)合法性sumSUMM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123,M.D.John,3days,#33,char,a>b,$123,區(qū)分大小寫(xiě),3,3.關(guān)鍵字(P365),也稱(chēng)保留字,它是C語(yǔ)言中具有特定含義,專(zhuān)門(mén)用做語(yǔ)言特定成分的標(biāo)識(shí)符。,main,int,char,float,struct,注意:,所有關(guān)鍵字都有固定的意義,不能用作其它所有關(guān)鍵字都必須小寫(xiě),如else和ELSE是代表不同的意義,4,數(shù)據(jù)類(lèi)型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進(jìn)行的操作,C的數(shù)據(jù)類(lèi)型,5,整型,字符型,實(shí)型,有,無(wú),6,一般用大寫(xiě)字母是宏定義預(yù)處理命令,不是C語(yǔ)句直接常量:整型常量實(shí)型常量字符常量字符串常量,如#definePRICE30,常量P37定義:程序運(yùn)行時(shí)其值不能改變的量(即常數(shù))分類(lèi):符號(hào)常量:用標(biāo)識(shí)符代表常量定義格式:#define符號(hào)常量常量,例符號(hào)常量舉例(ch2_1.c)#include#definePRICE30voidmain(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);},運(yùn)行結(jié)果:total=300,使用符號(hào)常量的好處:1)含義清楚2)一改全改,7,整型常量(整常數(shù))P40三種形式:十進(jìn)制整數(shù):由數(shù)字0-9和正負(fù)號(hào)表示.如123,-456,0八進(jìn)制整數(shù):由數(shù)字0開(kāi)頭,后跟數(shù)字0-7表示.如0123,011十六進(jìn)制整數(shù):由0 x開(kāi)頭,后跟0-9,a-f,A-F表示.如0 x123,0Xff,問(wèn)題:0123=()100 x123=()100Xff=()10,8,整型數(shù)據(jù)在內(nèi)存中的存放形式:P41數(shù)據(jù)在內(nèi)存中以二進(jìn)制的補(bǔ)碼表示。整型數(shù)據(jù)是占2個(gè)字節(jié),16位。,如:inti=10,j=-10;(10)10=(1010)2,一個(gè)正整數(shù)的補(bǔ)碼和原碼相同。,一個(gè)負(fù)整數(shù)的補(bǔ)碼是該數(shù)絕對(duì)值的二進(jìn)制按位取反再加1。,符號(hào)位,9,10,整型變量的定義,C程序中用到的所有變量都必須在程序中定義,即:強(qiáng)制類(lèi)型定義如:inta,b指定變量a,b為整型unsignedshortc,d指定變量c,d為無(wú)符號(hào)短整型longe,f指定變量e,f為長(zhǎng)整型,11,#includevoidmain(){inta,b,c,d;unsignedu;a=12;b=24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d\n”,c,d);},12,整型數(shù)據(jù)的溢出,#include,13,實(shí)型常量(實(shí)數(shù)或浮點(diǎn)數(shù))P45表示形式:十進(jìn)制數(shù)形式:(必須有小數(shù)點(diǎn))如0.123,.123,123.0,0.0,123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3,123E2,1.23e4,e-5,1.2E-3.5,e3,e0.3,實(shí)型常量的類(lèi)型默認(rèn)double型在實(shí)型常量后加字母f或F,認(rèn)為它是float型,e-5,1.2E-3.5,e3,e0.3,14,字符常量P48定義:用單引號(hào)括起來(lái)的單個(gè)普通字符或轉(zhuǎn)義字符.,字符常量的值:該字符的ASCII碼值,如‘\101’-----------‘A’‘\102’-----------’B’‘\376’-----------’?’‘\x61’-----------’a’‘\60’-----------’0’‘\483’----------(?),例:‘A’-------’\101’-------’\x41’--------65,如‘A’——65,‘a(chǎn)’——97,‘0’——48,‘\n’——10,如‘a(chǎn)’‘A’‘?’‘\n’‘\101’,轉(zhuǎn)義字符:反斜線后面跟一個(gè)字符或一個(gè)代碼值表示,例轉(zhuǎn)義字符舉例#includevoidmain(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\C\");},運(yùn)行結(jié)果:(屏幕顯示)ABCIsay:”Howareyou?”\CProgram\Turbo‘C’,例#includevoidmain(){printf(“Y\b=\n”);},運(yùn)行結(jié)果:屏幕顯示:=,15,字符常量與字符串常量不同,字符串常量P52定義:用雙引號(hào)(“”)括起來(lái)的字符序列存儲(chǔ):每個(gè)字符串尾自動(dòng)加一個(gè)‘\0’作為字符串結(jié)束標(biāo)志,例:charch;ch=“A”;,16,變量概念:其值可以改變的量變量名與變量值變量定義的一般格式:數(shù)據(jù)類(lèi)型變量1,變量2,…,變量n;,變量初始化:定義時(shí)賦初值,例:inta,b,c;floatdata;,決定分配字節(jié)數(shù)和數(shù)的表示范圍,合法標(biāo)識(shí)符,例:inta=2,b,c=4;floatdata=3.67;charch=‘A’;intx=1,y=1,z=1;intx=y=z=1;,變量的使用:先定義,后使用,變量定義位置:一般放在函數(shù)開(kāi)頭,17,例如:inta=3;,1、變量代表計(jì)算機(jī)內(nèi)存中的某一存儲(chǔ)空間,該存儲(chǔ)空間中存放的數(shù)據(jù)就是變量的值。,2、在同一程序塊中,每個(gè)變量都有唯一的名字,不能被重復(fù)定義。,3、使用變量時(shí)必須“先定義,后使用”。,18,整型變量P41占字節(jié)數(shù)隨機(jī)器不同而不同,short≤int≤long,實(shí)型變量float:占4字節(jié),提供7位有效數(shù)字double:占8字節(jié),提供15-16位有效數(shù)字,字符型變量字符變量存放字符ASCII碼一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)。char與int數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算,例floata;a=111111.111;/*a=111111.1*/doubleb;b=111111.111;/*b=111111.111*/,例a=‘D’;/*a=68;*/x=‘A’+5;/*x=65+5;*/s=‘!’+‘G’/*s=33+71;*/,沒(méi)有字符串變量,用字符數(shù)組存放,例3.2#includevoidmain(){inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d”,c,d);},例3.3#includevoidmain(){inta,b;a=32767;b=a+1;printf(“a=%d,b=%d”,a,b);},19,例3.63.7#includevoidmain(){inti;charc1,c2,c3,c4;c1=b;c3=97;i=a;c2=i-32;c4=c1-34;printf("%c,%c,%c,%c,%c\n",c1,c2,c3,c4,i);printf("%d,%d,%d,%d,%d\n",c1,c2,c3,c4,i);},字符形式輸出時(shí),首先將ASCⅡ碼轉(zhuǎn)換成相應(yīng)字符。整數(shù)形式輸出時(shí),直接將ASCⅡ碼作為整數(shù)輸出。,運(yùn)行結(jié)果:b,A,a,@,a98,65,97,64,97,4.字符數(shù)據(jù)可以以字符形式輸出,也可以用整數(shù)形式輸出。,1.將一個(gè)字符常量存放到一個(gè)字符變量中,是將該字符的相應(yīng)的ASCⅡ碼存放在存儲(chǔ)單元中。,2.字符數(shù)據(jù)與整型數(shù)據(jù)可以相互賦值。,3.允許對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,此時(shí)就是對(duì)它們的ASCⅡ碼值進(jìn)行算術(shù)運(yùn)算。,20,#include#definePRICE12.5voidmain(){intnum=3;floattotal;charch1,ch2=‘D’;total=num*PRICE;ch1=ch2-‘A’+‘a(chǎn)’;printf(“total=%f,ch1=%c\n”,total,ch1);},運(yùn)行結(jié)果:total=37.500000,ch1=d,21,,作業(yè):3.63.73.8,22,運(yùn)算符和表達(dá)式概述,23,學(xué)習(xí)運(yùn)算符應(yīng)注意:運(yùn)算符功能與運(yùn)算量關(guān)系要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量類(lèi)型運(yùn)算符優(yōu)先級(jí)別結(jié)合方向結(jié)果的類(lèi)型,24,算術(shù)運(yùn)算符和表達(dá)式基本算術(shù)運(yùn)算符:+-*/%(模運(yùn)算符)結(jié)合方向:從左向右優(yōu)先級(jí):----->*/%----->+-(2)(3)(4)說(shuō)明:“-”可為單目運(yùn)算符時(shí),右結(jié)合性?xún)烧麛?shù)相除,結(jié)果為整數(shù)%要求兩側(cè)均為整型數(shù)據(jù),例5/2=-5/2.0=,例5%2=-5%2=1%-10=5%1=5.5%2,2-2.5,1-110(?),符號(hào)由被除數(shù)決定,25,算術(shù)運(yùn)算符舉例例:設(shè):inta=5,b=2;floatc=5.0,d=2.0;求a/b、a%b、c/d、a+a%b/b、a%d,解:a/b=2、a%b=1、c/d=2.5、a+a%b/b=5、a%d非法,設(shè):inta=5,b=3,c=1,d=2,e=6,求a+b-c/d+e%d,解:a+b-c/d+e%d=5+3-0+0=8,26,自增、自減運(yùn)算符++--作用:使變量值加1或減1種類(lèi):前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1),例j=3;k=++j;j=3;k=j++;j=3;printf(“%d”,++j);j=3;printf(“%d”,j++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;,//k=4,j=4,//k=3,j=4,//4,//3,//c=20,a=4,//c=15,a=4,27,自增、自減運(yùn)算符++--作用:使變量值加1或減1種類(lèi):前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1),說(shuō)明:++--不能用于常量和表達(dá)式,如5++,(a+b)++++--結(jié)合方向:自右向左優(yōu)先級(jí):++--------->*/%----->+-(2)(3)(4),例-i++?-(i++)i=3;printf(“%d”,-i++);//-3,例-i++i=3;printf(“%d”,-i++);,28,例自增自減運(yùn)算#includevoidmain(){inti=8;printf("%d\n",++i);printf("%d\n",--i);printf("%d\n",i++);printf("%d\n",i--);printf("%d\n",-i++);printf("%d\n",-i--);printf("%d\n",i);},運(yùn)行結(jié)果:9889-8-98,29,賦值運(yùn)算符和表達(dá)式簡(jiǎn)單賦值運(yùn)算符符號(hào):=格式:變量標(biāo)識(shí)符=表達(dá)式作用:將一個(gè)數(shù)據(jù)(常量或表達(dá)式)賦給一個(gè)變量,,賦值表達(dá)式的值與變量值相等,且可嵌套,例floatf;inti;i=10;f=i;則f=10.0,例inti;i=2.56;//結(jié)果i=2;,例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2),//表達(dá)式值為5,a,b,c值為5,//b=5;a=5,//表達(dá)式值11,c=6,a=11,//表達(dá)式值10,a=10,b=4,c=6,//表達(dá)式值5,a=5,b=10,c=2,賦值轉(zhuǎn)換規(guī)則:使賦值號(hào)右邊表達(dá)式值自動(dòng)轉(zhuǎn)換成其左邊變量的類(lèi)型,30,說(shuō)明:結(jié)合方向:自右向左優(yōu)先級(jí):14左側(cè)必須是變量,不能是常量或表達(dá)式,復(fù)合賦值運(yùn)算符種類(lèi):+=-=*=/=%=《=》=P64a+=a-=a*a,例:inta=2;a%=4-1;a+=a*=a=a*=3;,例:3=x-2*y;a+b=3;,272,31,①將實(shí)型數(shù)據(jù)(包括單、雙精度)賦給整型變量時(shí),舍棄實(shí)型的小數(shù)部分。,②將整型數(shù)據(jù)賦給單、雙精度變量時(shí),數(shù)值不變,但以浮點(diǎn)數(shù)形式存儲(chǔ)到變量中。,#includevoidmain(){inti;floatf;i=6.32;f=45;printf("%d%f\n",i,f);},運(yùn)行結(jié)果:645.000000,賦值結(jié)果與類(lèi)型轉(zhuǎn)換P60,32,#includevoidmain(){unsigneda;intb=-1;a=b;printf("%d->%u\n",b,a);a=4294967294u;b=a;printf("%d->%u\n",b,a);},③長(zhǎng)度相同的有符號(hào)與無(wú)符號(hào)整型數(shù)間,原樣賦值(但數(shù)值有時(shí)會(huì)有變化)。,運(yùn)行結(jié)果:-1->4294967295,,0,,0,補(bǔ)碼?反碼?原碼,11……10?10……001?10……010,-2->4294967294,33,④char、int、long等類(lèi)型的轉(zhuǎn)換,★“短”數(shù)據(jù)賦給“長(zhǎng)”變量符號(hào)擴(kuò)展:若最高位為1(負(fù)數(shù)),則變量高字節(jié)為補(bǔ)1;分之,補(bǔ)0。,#includevoidmain(){charc;inti;c=43;i=c;printf("i=%d\n",i);c=\376;i=c;printf("i=%d\n",i);},43號(hào)字符‘+’‘\53’,00101011,,254號(hào)字符‘■’‘\376’,11111110,,運(yùn)行結(jié)果:i=43i=-2,34,④char、int、long等類(lèi)型的轉(zhuǎn)換,★“長(zhǎng)”數(shù)據(jù)賦給“短”變量只將數(shù)據(jù)的低字節(jié)位原封不動(dòng)送到變量中(數(shù)據(jù)有可能有差錯(cuò)),#includevoidmain(){shortinti;longL=6324232L;i=L;printf("i=%d,L=%d\n",i,L);},運(yùn)行結(jié)果:i=-32760,L=6324232,L=6324232,i=-32760,,35,逗號(hào)運(yùn)算符和表達(dá)式P65形式:表達(dá)式1,表達(dá)式2,……表達(dá)式n結(jié)合性:從左向右優(yōu)先級(jí):15逗號(hào)表達(dá)式的值:等于表達(dá)式n的值用途:常用于循環(huán)for語(yǔ)句中,例a=3*5,a*4a=3*5,a*4,a+5例x=(a=3,6*3)x=a=3,6*a例a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);,//a=15,表達(dá)式值60,//a=15,表達(dá)式值20,//賦值表達(dá)式,表達(dá)式值18,x=18,//逗號(hào)表達(dá)式,表達(dá)式值18,x=3,//1,2,3,//3,2,3,36,,例:#includevoidmain(){intx,y=7;intz=4;x=(y=y+6,y/z);printf("x=%d\n",x);},運(yùn)行結(jié)果:x=3,例:#includevoidmain(){inta=1;printf(“結(jié)果=%d\n”,(a=3*a,3*a));},運(yùn)行結(jié)果:結(jié)果=9,37,不同類(lèi)型數(shù)據(jù)間的轉(zhuǎn)換P54隱式轉(zhuǎn)換(自動(dòng)類(lèi)型轉(zhuǎn)換)什么情況下發(fā)生運(yùn)算轉(zhuǎn)換------不同類(lèi)型數(shù)據(jù)混合運(yùn)算時(shí)賦值轉(zhuǎn)換------把一個(gè)值賦給與其類(lèi)型不同的變量時(shí)輸出轉(zhuǎn)換------輸出時(shí)轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換------實(shí)參與形參類(lèi)型不一致時(shí)轉(zhuǎn)換運(yùn)算轉(zhuǎn)換規(guī)則:不同類(lèi)型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)轉(zhuǎn)換成同一類(lèi)型,38,1.float型數(shù)據(jù)在運(yùn)算時(shí)一律先轉(zhuǎn)換成double型;2.不同類(lèi)型進(jìn)行混合運(yùn)算時(shí),按照類(lèi)型級(jí)別由低到高的順序轉(zhuǎn)換.,39,顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)P56一般形式:(類(lèi)型名)(表達(dá)式)例(int)(x+y)(int)x+y(double)(3/2)(int)3.6說(shuō)明:強(qiáng)制轉(zhuǎn)換得到所需類(lèi)型的中間變量,原變量類(lèi)型不變,例3.8#includevoidmain(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}結(jié)果:x=3.600000,i=3,精度損失問(wèn)題,40,,作業(yè):3.93.103.12上機(jī)題:3.7,41,第三章結(jié)束,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 語(yǔ)言 數(shù)據(jù)類(lèi)型 運(yùn)算 表達(dá)式
鏈接地址:http://m.jqnhouse.com/p-11495357.html