《數(shù)據(jù)類型、運(yùn)算符》PPT課件.ppt
《《數(shù)據(jù)類型、運(yùn)算符》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)類型、運(yùn)算符》PPT課件.ppt(66頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第三章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式,,,學(xué)習(xí)目標(biāo)了解c語言的數(shù)據(jù)類型理解常量與變量掌握幾種基本的數(shù)據(jù)類型:整型、浮點(diǎn)型、字符型掌握不同類型數(shù)據(jù)間的混合運(yùn)算掌握算術(shù)、賦值、逗號(hào)運(yùn)算符,,難點(diǎn)符號(hào)常量變量命名字符常量與字符串常量自增、自減運(yùn)算符逗號(hào)運(yùn)算符,3.1C語言的數(shù)據(jù)類型,算法處理的對(duì)象是數(shù)據(jù),而數(shù)據(jù)是以某種特定的形式存在的,不同的數(shù)據(jù)之間往往還存在某些聯(lián)系。數(shù)據(jù)結(jié)構(gòu)指數(shù)據(jù)的組織形式。不同的計(jì)算機(jī)語言所允許定義和使用的數(shù)據(jù)結(jié)構(gòu)是不同的。處理同一類問題,如果數(shù)據(jù)結(jié)構(gòu)不同,算法也會(huì)不同。在考慮算法時(shí),必須注意數(shù)據(jù)結(jié)構(gòu)。,,3.1C語言的數(shù)據(jù)類型,3.2常量與變量,3.2.1常量和符號(hào)常量常量:在程序運(yùn)行過程中,其值不能被改變的量。常量類型字面常量(直接常量):從字面形式即可判別-1,0,1,2整型常量1.1,-1.1,4.6實(shí)型常量‘a(chǎn)’,’d’字符型常量,3.2.1常量和符號(hào)常量,符號(hào)常量:用一個(gè)標(biāo)識(shí)符代表一個(gè)常量。格式:#define常量名字面常量#definePRICE30#definePI3.1415926,3.2.1常量和符號(hào)常量,例:從鍵盤輸入圓的半徑,計(jì)算并輸出圓面積與周長。,#include#definePI3.14voidmain(){floatr=0,s=0,c=0;scanf("%f",},3.2.1常量和符號(hào)常量,使用符號(hào)常量的好處:含義清楚一改全改注意:作為常量,符號(hào)常量的值在其作用域內(nèi)不能改變,也不能再被賦值。習(xí)慣上,符號(hào)常量名用大寫。,3.2.2變量,變量:程序運(yùn)行期間值可以改變的量。變量在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,在存儲(chǔ)單元中存放變量的值。一個(gè)變量有一個(gè)變量名。注意變量名和變量值的區(qū)別:變量名是一個(gè)符號(hào)地址,在程序編譯時(shí)由系統(tǒng)給每個(gè)變量名分配一個(gè)內(nèi)存地址。在程序中從變量中取值,實(shí)際上是通過變量名找到相應(yīng)的內(nèi)存地址,從其存儲(chǔ)單元中讀取數(shù)據(jù)。,3.2.2變量,標(biāo)識(shí)符:用來標(biāo)識(shí)變量、符號(hào)常量、函數(shù)、數(shù)組、類型等數(shù)據(jù)對(duì)象的有效字符序列。簡單的說,標(biāo)識(shí)符就是一個(gè)名字。C語言規(guī)定:標(biāo)識(shí)符只能由字母、數(shù)字或下劃線組成,且第一個(gè)字符必須為字母或下劃線。正確:zzia,zzia123,_zzia,zzia_123錯(cuò)誤:*zzia*,123zzia123,zzia-123,3.2.2變量,注意:C語言區(qū)分大小寫,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。Zzia與zzia是不同的標(biāo)示符變量名不能與關(guān)鍵字相同。一般變量名用小寫字母表示。不同系統(tǒng)對(duì)標(biāo)識(shí)符的長度規(guī)定不同。假如長度超出規(guī)定長度,超出部分將不被識(shí)別。student_name與student_number標(biāo)識(shí)符的命名應(yīng)做到見名知意。,3.2.2變量,變量必須先定義,后使用。目的:保證程序中變量名使用正確;為變量指定類型,在編譯時(shí)系統(tǒng)為其分配相應(yīng)的存儲(chǔ)單元;編譯時(shí),可以對(duì)變量將進(jìn)行的運(yùn)算進(jìn)行合法性檢查。,3.3整型數(shù)據(jù),3.3.1整型常量的表示方法整型常量即整常數(shù)。C語言中整常數(shù)可以用以下三種形式表示:十進(jìn)制整數(shù)八進(jìn)制整數(shù):以數(shù)字0開頭012,相當(dāng)于十進(jìn)制數(shù)10十六進(jìn)制整數(shù):以0 x開頭-0 x12,相當(dāng)于十進(jìn)制數(shù)-18,3.3.2整型變量,1.整型數(shù)據(jù)在內(nèi)存中的存放形式整型數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的。整型變量在內(nèi)存中占2個(gè)字節(jié)(基本整型)。inti;i=3;注意:不同的編譯系統(tǒng)為整型數(shù)據(jù)分配的字節(jié)數(shù)是不同的。VisualC++6.0分配4個(gè)字節(jié),3.3.2整型變量,數(shù)值是以補(bǔ)碼表示的。正數(shù)的補(bǔ)碼和其原碼形式相同。10的補(bǔ)碼0000000000001010求負(fù)數(shù)的補(bǔ)碼:將該數(shù)的絕對(duì)值的二進(jìn)制形式按位取反再加1。求-10的補(bǔ)碼:絕對(duì)值:10二進(jìn)制:0000000000001010取反:1111111111110101加1:1111111111110110,3.3.2整型變量,整數(shù)的存儲(chǔ)單元中,最左面一位表示符號(hào),如果為0,表示數(shù)值為正,如果位1,表示數(shù)值為負(fù)。整型變量的取值范圍?-32768~32767,即-215~(215-1),3.3.2整型變量,2.整型變量的分類基本類型符為int。根據(jù)數(shù)值的范圍可分為基本整型、短整型和長整型?;菊停琲nt短整型,shortint或short長整型,longint或long,3.3.2整型變量,2.整型變量的分類在實(shí)際應(yīng)用中,變量的值常常是正的。為了充分利用變量的表數(shù)范圍,可將變量定義為無符號(hào)類型。對(duì)以上三種類型都可以加上unsigned,指定為無符號(hào)數(shù)。這樣存儲(chǔ)單元中所有的二進(jìn)制位都用作存放數(shù)本身,不包括符號(hào)。inta;unsignedinb;a的數(shù)值范圍為-32768~32767,b的數(shù)值范圍為0~65535。,3.3.2整型變量,2.整型變量的分類C語言并沒有規(guī)定各類數(shù)據(jù)所占內(nèi)存的字節(jié)數(shù),只要求long型數(shù)據(jù)長度不短于int型,short型不長于int型。具體由編譯系統(tǒng)決定。,3.3.2整型變量,3.整型變量的定義對(duì)變量的定義,通常放在函數(shù)開頭部分的聲明部分。,例3.2#include"stdio.h"voidmain(){inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf("%d,%d\n",c,d);},3.3.2整型變量,4.整型數(shù)據(jù)的溢出,#includevoidmain(){inta,b;a=32767;b=a+1;printf(“%d,%d”,a,b);}輸出:32767,-32768,3.3.3整型常量的類型,1.值在-32768~32767之間的,認(rèn)為是int型,可以賦給int型和longint型變量。2.值超出上述范圍,認(rèn)為是長整型,可以賦給longint型變量。3.如果short和int在內(nèi)存中長度相同,int型常量也可以賦給shortint型變量。,3.3.3整型常量的類型,4.一個(gè)整型常量后面加一個(gè)字母u或U,認(rèn)為是unsignedint型。5.一個(gè)整型常量后面加一個(gè)字母l或L,認(rèn)為是longint型。,3.4浮點(diǎn)型數(shù)據(jù),3.4.1浮點(diǎn)型常量的表示方法浮點(diǎn)數(shù)即實(shí)數(shù),有兩種表示形式:十進(jìn)制小數(shù)形式指數(shù)形式,3.4.1浮點(diǎn)型常量的表示方法,2.指數(shù)形式如123.456可表示為1.23456e2(規(guī)范化的指數(shù)形式),12.3456E1,0.123456e3注意:e(E)之前必須有數(shù)字且e(E)后面必須為整數(shù)一個(gè)浮點(diǎn)數(shù)在用指數(shù)形式輸出時(shí),是按規(guī)范化的指數(shù)形式輸出的。,3.4.2浮點(diǎn)型變量,1.浮點(diǎn)型變量在內(nèi)存中的存放形式一個(gè)浮點(diǎn)型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié)(單精度浮點(diǎn)型),按指數(shù)形式存儲(chǔ)。系統(tǒng)把浮點(diǎn)型數(shù)據(jù)分成小數(shù)和整數(shù)兩部分,分別存放。,3.4.2浮點(diǎn)型變量,2.浮點(diǎn)型變量的分類單精度,float雙精度,double長雙精度,longdouble,3.4.2浮點(diǎn)型變量,3.浮點(diǎn)型數(shù)據(jù)的舍入誤差浮點(diǎn)型變量的有效數(shù)字位數(shù)有限。,#includevoidmain(){floata,b;a=123456.789e5;b=a+20;printf("%f\n",b);},3.4.3浮點(diǎn)型常量的類型,C編譯系統(tǒng)將浮點(diǎn)型常量作為雙精度來處理。計(jì)算:f=2.456789*4523.65系統(tǒng)將2.456789和4523.65按雙精度數(shù)據(jù)存儲(chǔ)并計(jì)算,得到雙精度結(jié)果,然后取前7位賦給f。如果在數(shù)字的后面加字母f或F,如1.65f,系統(tǒng)會(huì)按單精度處理。一個(gè)浮點(diǎn)型常量可以賦給一個(gè)float型、double型和longdouble變量,系統(tǒng)根據(jù)變量的類型截取相應(yīng)有效長度。,3.5字符型數(shù)據(jù),3.5.1字符常量用單撇號(hào)括起來的一個(gè)字符。如‘a(chǎn)’、‘b’、‘A’。注意:‘a(chǎn)’和‘A’是不同的字符常量。轉(zhuǎn)義字符:以\開頭的字符常量。注意表3-3:\n,\\,\’,\”,\ddd,\xhh‘\104’表示什么?‘\x44’表示什么?,3.5.2字符變量,字符變量:用于存放字符常量,只能存放一個(gè)字符,在內(nèi)存中占1個(gè)字節(jié)。字符變量的定義格式:char變量名charc1,c2;字符變量的賦值c1=‘a(chǎn)’;c2=‘\n’;,3.5.3字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及使用方法,將一個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上是把該字符的ASCⅡ代碼放到存儲(chǔ)單元中。由于字符數(shù)據(jù)的存儲(chǔ)形式與整數(shù)相同,所以字符數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。一個(gè)字符數(shù)據(jù)可以以字符形式輸出,也可以以整數(shù)形式輸出,也可以對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算。,#includevoidmain(){charc1,c2;c1=97;/*相當(dāng)于c1=‘a(chǎn)’;*/c2=98;/*相當(dāng)于c2=‘b’;*/printf("%c%d\n",c1,c1);printf("%c%d\n",c2,c2);},注意:字符數(shù)據(jù)只能存放0-255內(nèi)的整數(shù)。,#includevoidmain(){charc1,c2;c1=‘a(chǎn)’+3;c2=a+8-5;printf("%c%d\n",c1,c1);printf("%c%d\n",c2,c2);},c1的值是什么?,例3.7#includevoidmain(){charc1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf("%c%c\n",c1,c2);},ASCII碼表中,小寫字母比對(duì)應(yīng)的大寫字母的值大32。,3.5.4字符串常量,字符串常量:用一對(duì)雙撇號(hào)擴(kuò)起來的字符序列?!癶owareyou”,“fine,thankyou”可以輸出字符串。printf(“howareyou”);,3.5.4字符串常量,不要將字符常量與字符串常量混淆。字符串結(jié)尾有一個(gè)字符串結(jié)束標(biāo)志‘\0’,這是由系統(tǒng)自動(dòng)加上的?!癱hina”在內(nèi)存中占6個(gè)字節(jié)?!盿”占幾個(gè)字節(jié)?’a’占幾個(gè)字節(jié)?C語言中沒有字符串變量,如果想把字符串常量存放在變量中,需要使用字符數(shù)組。,3.6變量賦初值,程序中常需要對(duì)一些變量預(yù)先設(shè)置初值,稱作變量初始化。C語言允許在定義變量的同時(shí)對(duì)變量初始化。inta=3;floatf=3.56;charc=‘a(chǎn)’;inta,b,c=5;inta=3,b=3,c=3;初始化不是在編譯階段完成的,而是在程序運(yùn)行時(shí)執(zhí)行該函數(shù)時(shí)進(jìn)行的。inta=3;相當(dāng)于:inta;a=3;,3.7各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型、浮點(diǎn)型、字符型數(shù)據(jù)間可以進(jìn)行混合運(yùn)算。運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,這由系統(tǒng)自動(dòng)完成。轉(zhuǎn)換方向:圖3-10inti;floatf;doubled;longe;計(jì)算:10+’a’+i*f-d/e結(jié)果為double型。運(yùn)算中,如果有一個(gè)數(shù)為實(shí)數(shù),則結(jié)果為double型。(為什么?),3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式,3.8.1C運(yùn)算符簡介C語言的運(yùn)算符類型較多,3.8.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式,1.基本的算術(shù)運(yùn)算符+、-、*、/、%兩個(gè)整數(shù)相除的結(jié)果為整數(shù)。多數(shù)機(jī)器采取向零取整的方法。5/3=1,-5/3=-1%兩側(cè)均應(yīng)為整型數(shù)據(jù)。7%4=3,#includevoidmain(){inti;floats=0;for(i=1;i<100;i++)s=s+1/i;printf("%f\n",s);}運(yùn)算結(jié)果是什么?,3.8.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式,2.算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來的、符合C語法規(guī)則的式子。運(yùn)算對(duì)象包括常量、變量、函數(shù)等。C語言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。在表達(dá)式求值時(shí),先按運(yùn)算符的優(yōu)先級(jí)高低次序執(zhí)行,然后按規(guī)定的“結(jié)合方向”處理。運(yùn)算符的結(jié)合方向:左結(jié)合、右結(jié)合,3.8.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式,3.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符可以用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。一般形式為:(類型名)(表達(dá)式)(double)a(int)(x+y)(float)(5%3)注意:表達(dá)式應(yīng)該用括號(hào)括起來。(int)(x+y)與(int)x+y不同,3.8.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式,在強(qiáng)制類型轉(zhuǎn)換時(shí),得到一個(gè)所需類型的中間變量,原來變量的類型未發(fā)生變化。,#includevoidmain(){floatx;inti;x=3.6;i=(int)x;printf("x=%f,i=%d\n",x,i);},3.8.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式,數(shù)據(jù)類型轉(zhuǎn)換有兩種:系統(tǒng)自動(dòng)進(jìn)行的類型轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換。,3.8.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式,4.自增、自減運(yùn)算符作用:使變量的值加1或減1。++i,--i:在使用i之前,先使i的值加1或減1i++,i--:在使用i之后,使i的值加1或減/1,#includevoidmain(){inta=1,b=1,c,d;c=++a;d=b++;printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);},3.8.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式,注意:自增運(yùn)算符和自減運(yùn)算符只能用于變量,不能用于常量或表達(dá)式。自增運(yùn)算符和自減運(yùn)算符的結(jié)合方向是自右向左。自增運(yùn)算符和自減運(yùn)算符常用于循環(huán)語句。,3.8.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式,負(fù)號(hào)運(yùn)算符:優(yōu)先級(jí)略低于自增、自減運(yùn)算符,結(jié)合性自由向左-d++相當(dāng)于-(d++)intd=1;printf(“%d\n”,-d++);/*輸出:-1*/printf(“%d”,d);/*輸出:2*/,3.9賦值運(yùn)算符和賦值表達(dá)式,1.賦值運(yùn)算符(=):把一個(gè)數(shù)據(jù)賦給一個(gè)變量。2.類型轉(zhuǎn)換:如果運(yùn)算符兩側(cè)數(shù)據(jù)類型不一致,在賦值時(shí)自動(dòng)進(jìn)行類型轉(zhuǎn)換。,3.9賦值運(yùn)算符和賦值表達(dá)式,2.類型轉(zhuǎn)換:將浮點(diǎn)型數(shù)據(jù)賦給整型變量時(shí),將舍棄小數(shù)部分。,#includevoidmain(){inta=12.89;printf("%d\n",a);},3.9賦值運(yùn)算符和賦值表達(dá)式,2.類型轉(zhuǎn)換:將整型數(shù)據(jù)賦給浮點(diǎn)型變量時(shí),數(shù)值不變,但以浮點(diǎn)數(shù)形式存儲(chǔ)到變量中。,#includevoidmain(){floata=12;printf("%f\n",a);},3.9賦值運(yùn)算符和賦值表達(dá)式,2.類型轉(zhuǎn)換:將字符型數(shù)據(jù)賦給整型變量時(shí),將字符數(shù)據(jù)放到整型變量的低8位中。,3.9賦值運(yùn)算符和賦值表達(dá)式,2.類型轉(zhuǎn)換:將一個(gè)double型數(shù)據(jù)賦給float變量時(shí),截取其前面7位有效數(shù)字。,#includevoidmain(){floata=123456789.89;printf("%f\n",a);},3.9賦值運(yùn)算符和賦值表達(dá)式,2.類型轉(zhuǎn)換:將一個(gè)整型數(shù)據(jù)賦給一個(gè)char型變量,只將其低8位存放到char型變量中。,#includevoidmain(){chara=256;printf("%d\n",a);},3.9賦值運(yùn)算符和賦值表達(dá)式,3.復(fù)合的賦值運(yùn)算符在=前加上其它運(yùn)算符,構(gòu)成復(fù)合的運(yùn)算符。a+=b等價(jià)于a=a+bx*=y+8等價(jià)于x=x*(y+8)C語言采用復(fù)合運(yùn)算符的目的:簡化程序提高編譯效率,3.9賦值運(yùn)算符和賦值表達(dá)式,4.賦值表達(dá)式賦值表達(dá)式:由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子。一般形式:a=2*3賦值表達(dá)式的求解過程:先求賦值運(yùn)算符右側(cè)“表達(dá)式”的值,然后賦給左側(cè)的“變量”。,3.9賦值運(yùn)算符和賦值表達(dá)式,4.賦值表達(dá)式賦值表達(dá)式左側(cè)的標(biāo)識(shí)符稱為左值。賦值表達(dá)式右側(cè)的表達(dá)式稱為右值。凡是左值都可以作為右值inta=3,b,c;b=a;c=b;,3.9賦值運(yùn)算符和賦值表達(dá)式,4.賦值表達(dá)式賦值表達(dá)式中的“表達(dá)式”又可以是一個(gè)賦值表達(dá)式。a=(b=5)賦值運(yùn)算符的結(jié)合順序:自右向左。a=b=c=5a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2),3.9賦值運(yùn)算符和賦值表達(dá)式,4.賦值表達(dá)式賦值表達(dá)式可以包含復(fù)合的賦值運(yùn)算符。a=3;a+=a-=a*a;a為-12賦值表達(dá)式可以出現(xiàn)在賦值語句中,也可以出現(xiàn)在其它語句中,如輸出語句、循環(huán)語句等。printf(“%d”,a=b);,3.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式,逗號(hào)運(yùn)算符:用于將兩個(gè)表達(dá)式連接起來。一般形式:表達(dá)式1,表達(dá)式2求解過程:先求表達(dá)式1,后求表達(dá)式2,整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。在所有的運(yùn)算符中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低。,3.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式,a=3*5,a*4a=15,表達(dá)式的值為60(a=3*5,a*4),a+5a=15,表達(dá)式的值為20 x=(a=3,6*3)x值為18,表達(dá)式的值為18x=a=3,6*3x值為3,表達(dá)式的值為18,3.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式,使用逗號(hào)表達(dá)式的目的通常是為了得到各個(gè)表達(dá)式的值,而并非要得到整個(gè)逗號(hào)表達(dá)式的值。逗號(hào)表達(dá)式常用于循環(huán)語句。注意:并不是任何地方出現(xiàn)的逗號(hào)都是逗號(hào)運(yùn)算符。printf(“%d,%d,%d”,a,b,c);,作業(yè),書面作業(yè)(下一周第一次上課交)3.2,3.5,3.9,3.10,3.12自主上機(jī)(發(fā)到郵箱zzia2009@)3.7,3.8,3.10,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐ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ì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)據(jù)類型、運(yùn)算符 數(shù)據(jù)類型 運(yùn)算 PPT 課件
鏈接地址:http://www.3dchina-expo.com/p-11508617.html