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

C語言第2章數(shù)據(jù)類型.ppt

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

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

C語言第2章數(shù)據(jù)類型.ppt

,第二章,數(shù)據(jù)類型、運算符與表達式,本章要點,數(shù)據(jù)的描述規(guī)則數(shù)據(jù)的操作規(guī)則,主要內(nèi)容,2.1C語言的數(shù)據(jù)類型2.2常量與變量2.3整型數(shù)據(jù)2.4浮點型數(shù)據(jù)2.5字符型數(shù)據(jù)2.6各類數(shù)值型數(shù)據(jù)間的混合運算2.7算術(shù)運算符和算術(shù)表達式2.8逗號運算符和逗號表達式,為什么要有不同的數(shù)據(jù)類型,例:學(xué)生信息管理姓名年齡成績張三2080.5李四2190.0趙五1976.6,為什么要指定數(shù)據(jù)類型?,1不同類型的數(shù)據(jù)在內(nèi)存中占據(jù)不同長度的存儲區(qū)。2不同類型的數(shù)據(jù)取值范圍不同。3不同類型的數(shù)據(jù)有不同的操作。,2.1C的數(shù)據(jù)類型,C語言提供了以下一些數(shù)據(jù)類型。,數(shù)據(jù)類型,構(gòu)造類型,指針類型,空類型(無值類型)void,2.2常量與變量,2.2.1常量在程序運行過程中,其值不能被改變的量稱為常量常量區(qū)分為不同的類型:,整型100,125,-100,0實型3.14,0.125,-3.789字符型a,b,2,說明:符號常量為了使用方便,可用一個符號名來代表一個常量。,例2.1在程序中使用符號常量#definePRICE30#includevoidmain()intnum,total;num=10;total=num*PRICE;printf(total=%dn,total);,符號常量:用一個標識符代表一個常量。符號常量的值在其作用域內(nèi)不能改變,也不能再被賦值。,運行結(jié)果:total=300,說明:程序中用#define命令行定義PRICE代表常量30,此后凡在本文件中出現(xiàn)的PRICE都代表30,可以和常量一樣進行運算,說明:如再用賦值語句給PRICE賦值是錯的PRICE=40;/*錯誤,不能給符號常量賦不能對符號常量指定類型intPRICE;/*錯誤,PRICE不是變量,不能指定類型*/,2.2常量與變量,2.2.2變量變量代表內(nèi)存中具有特定屬性的一個存儲單元,它用來存放數(shù)據(jù),也就是變量的值,在程序運行期間,這些值是可以改變的。變量名實際上是一個以一個名字對應(yīng)代表一個地址,在對程序編譯連接時由編譯系統(tǒng)給每一個變量名分配對應(yīng)的內(nèi)存地址。從變量中取值,實際上是通過變量名找到相應(yīng)的內(nèi)存地址,從該存儲單元中讀取數(shù)據(jù)。,2.2常量與變量,2.2.2變量用來標識對象名字(包括變量、函數(shù)、數(shù)組、類型等)的有效字符序列。C語言中,有3類標識符:關(guān)鍵字、系統(tǒng)預(yù)定義的標識符、用戶標識符。變量的名字必須符合C語言對標識符的規(guī)定。C語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。,2.2常量與變量,變量命名的規(guī)定:變量的名字必須符合C語言對標示符得規(guī)定例:sum,_total,month,Student_name,lotus_1_2_3,BASIC,li_lingM.D.John,¥123,3D64,a>b,2.2常量與變量,注意:編譯系統(tǒng)將大寫字母和小寫字母認為是兩個不同的字符。建議變量名的長度最好不要超過8個字符。在選擇變量名和其它標識符時,應(yīng)注意做到“見名知意”,即選有含意的英文單詞(或其縮寫)作標識符。要求對所有用到的變量作強制定義,也就是“先定義,后使用”。,2.3整型數(shù)據(jù),2.3.1整型常量的表示形式整型常量即整常數(shù)。在語言中,整常數(shù)可用以下三種形式表示:(1)十進制整數(shù)。如:123,-456,4。(2)八進制整數(shù)。以0頭的數(shù)是八進制數(shù)。如:0123表示八進制數(shù)123,等于十進制數(shù)83,-011表示八進制數(shù)-11,即十進制數(shù)-9。,2.3整型數(shù)據(jù),2.3.1整型常量的表示形式(3)十六進制整數(shù)。以0 x開頭的數(shù)是16進制數(shù)。如:0 x123,代表16進制數(shù)123,等于十進制數(shù)291。-0 x12等于十進制數(shù)10。,2.3.2整型變量整型變量用來存放整型常量。整型變量的基本類型符為int。C語言中有以下3類整型變量:基本整型,短整型,長整型。,2.3整型數(shù)據(jù)2.3.2整型變量,注意:ANSIC標準沒有具體規(guī)定以上各類數(shù)據(jù)所占內(nèi)存的字節(jié)數(shù)而是由各計算機系統(tǒng)自行決定。TurboC中,int型和short型數(shù)據(jù)都是2個字節(jié),即16個二進制位。long型數(shù)據(jù)是4個字節(jié),32位。而VC+則給short型數(shù)據(jù)分配2個字節(jié),16位,int和long型數(shù)據(jù)都是4個字節(jié),32位。,2.3整型數(shù)據(jù)2.3.2整型變量,一般情況下,存儲整數(shù)時存儲單元中的第一個二進位用來代表數(shù)值符號,而在實際應(yīng)用中,變量的值常常是正的,所以存儲單元全部用來存儲數(shù)值本身,此定義無符號整數(shù)。所以歸納起來,在C語言中,可以定義和使用6種整型變量。,共六種,有符號基本整型有符號短整型有符號長整型無符號基本整型無符號短整型無符號長整型,(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshort(int)unsignedlong(int),注意:括號表示其中的內(nèi)容是可選的.,2.3整型數(shù)據(jù)2.3.2整型變量,整數(shù)類型的有關(guān)數(shù)據(jù):,類型類型說明符長度數(shù)的范圍基本型int4字節(jié)-231231-1短整型short2字節(jié)-215215-1長整型long4字節(jié)-231231-1無符號整型unsignedint4字節(jié)0232-1無符號短整型unsignedshort2字節(jié)0216-1(65535)無符號長整型unsignedlong4字節(jié)0232-1,例2.2整型變量的定義與使用#includevoidmain()inta,b,c,d;/*指定a、b、c、d為整型變量*unsignedu;/*指定u為無符號整型變量*a=12;b=-24;u=10;c=a+u;d=b+u;printf("a+u=%d,b+u=%dn",c,d):,說明:可以看到不同種類的整型數(shù)據(jù)可以進行算術(shù)運算,運行結(jié)果:a+u=22,b+u=-14,2.3整型數(shù)據(jù)2.3.3整型數(shù)據(jù)在內(nèi)存中的存放形式,數(shù)據(jù)在內(nèi)存中以二進制形式存放。如:inti;/*定義為整型變量*/i=10;/*給i賦以整數(shù)10*/ii(a)(b),2.3整型數(shù)據(jù)2.3.3整型數(shù)據(jù)在內(nèi)存中的存放形式,實際上,數(shù)值是以補碼表示的。一個正整數(shù)的補碼和該數(shù)的原碼相同。負數(shù)的補碼是:將該數(shù)的絕對值的二進制形式,按位取反再加1。10的原碼(a)取反(b)得-10的補碼(c),例2.3整型數(shù)據(jù)的溢出(TC環(huán)境)#includevoidmain()inta,b;a=32767;b=a+1;printf("%d,%dn",a,b);,說明:數(shù)值是以補碼表示的。一個整型變量只能容納-3276832767范圍內(nèi)的數(shù),無法表示大于32767或小于-32768的數(shù)。遇此情況就發(fā)生“溢出”。,運行結(jié)果:32767,-32768,2.3整型數(shù)據(jù)2.3.4整型數(shù)據(jù)的溢出,如果系統(tǒng)給一個整型變量分配2個字節(jié),則變量的最大允許值為32767,若超出最大值就出現(xiàn)溢出現(xiàn)象。,例2.3整型數(shù)據(jù)的溢出(VC環(huán)境)#includevoidmain()Sum=2147483647;printf("%dn",Sum);Sum=Sum+1;printf("%dn",Sum);Sum=4294967295;printf("%dn",Sum);,運行結(jié)果:2147483647,-2147483648,-1,2.3整型數(shù)據(jù),2.3.5整型常量的類型整型變量的分類規(guī)則:(1)一個整數(shù),如果其值在-32768+32767范圍內(nèi),認為它是int型,它可以賦值給int型和longint型變量。(2)一個整數(shù),如果其值超過了上述范圍,而在-2147483637+2147483647范圍內(nèi),則認為它是為長整型??梢詫⑺x值給一個longint型變量。,2.3整型數(shù)據(jù),2.3.5整型常量的類型(3)在一個整常量后面加一個字母l或L,則認為是longint型常量,例如123l、432L、0L等,這往往用于函數(shù)調(diào)用中。如果函數(shù)的形參為longint型,則要求實參也為longint型。(4)一個整常量后面加一個字母u或U,認為是unsignedint型,如12345u在內(nèi)存中按unsignedint規(guī)定的方式存放(存儲單元中最高位不作為符號位,而用來存儲數(shù)據(jù))。,2.4浮點型數(shù)據(jù),2.4.1浮點型常量的表示形式,兩種表示形式,十進制小數(shù)指數(shù),0.1233e-3,注意:字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e,2.4浮點型數(shù)據(jù),2.4.1浮點型常量的表示形式規(guī)范化的指數(shù)形式:在字母e(或E)之前的小數(shù)部分中,小數(shù)點左邊應(yīng)有一位(且只能有一位)非零的數(shù)字.例如:123.456可以表示為:123.456e0,12.3456e1,1.23456e2,0.123456e3,0.0123456e4,0.00123456e其中的1.23456e3稱為“規(guī)范化的指數(shù)形式”。,2.4浮點型數(shù)據(jù),2.4.2浮點型變量1)浮點型變量分為單精度(float型)、雙精度(double型)和長雙精度型(longdouble)三類形式。,2.4浮點型數(shù)據(jù),2.4.2浮點型變量2)浮點型數(shù)據(jù)在內(nèi)存中的存放形式:一個浮點型數(shù)據(jù)一般在內(nèi)存中占4個字節(jié)(32位)。與整型數(shù)據(jù)的存儲方式不同,浮點型數(shù)據(jù)是按照指數(shù)形式存儲的。系統(tǒng)把一個浮點型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。,456576.37+.456576376,3)浮點型數(shù)據(jù)的舍入誤差:由于浮點型變量是由有限的存儲單元組成的,因此能提供的有效數(shù)字總是有限的。在有效位以外的數(shù)字將被舍去。由此可能會產(chǎn)生一些誤差例2.4浮點型數(shù)據(jù)的舍入誤差#includevoidmain()floata,b;a=123456.789e5;b=a+20;printf("%fn",b);(此例有問題,把e5改為e15,見下頁),說明:一個浮點型變量只能保證的有效數(shù)字是7位有效數(shù)字,后面的數(shù)字是無意義的,并不準確地表示該數(shù)。應(yīng)當避免將一個很大的數(shù)和一個很小的數(shù)直接相加或相減,否則就會“丟失”小的數(shù)。,運行結(jié)果:123456.789e5,2.4浮點型數(shù)據(jù)2.4.2浮點型變量,例2.4浮點型數(shù)據(jù)的舍入誤差,#includevoidmain()floata,b;a=123456.789e15;printf("%fn",a);b=a+20;printf("%fn",b);,2.4浮點型數(shù)據(jù),2.4.3浮點型常量的類型C編譯系統(tǒng)將浮點型常量作為雙精度來處理。例如:f=2.45678*4523.65系統(tǒng)先把2.45678和4523.65作為雙精度數(shù),然后進行相乘的運算,得到的乘也是一個雙精度數(shù)。如果把一個浮點型常量賦給一個單精度變量f系統(tǒng)給出警告,警告不影響連接和運行最后結(jié)果但只取其結(jié)果前7位賦給浮點型變量f。如是在數(shù)的后面加字母f或F(如1.65f,654.87F),編譯系統(tǒng)就會把它們按單精度處理。,2.5字符型數(shù)據(jù),2.5.1字符常量(1)用單引號包含的一個字符是字符型常量(2)只能包含一個字符,例,a,A,1abc、“a”,2.5.1字符常量,有些以“”開頭的特殊字符稱為轉(zhuǎn)義字符,例2.5轉(zhuǎn)義字符的使用#includevoidmain()printf("abctderftgn");printf("htibbjkn");,打印機上的顯示結(jié)果:fabcgdehjik,顯示屏上的運行結(jié)果:fgdehjk,2.5字符型數(shù)據(jù),2.5.2字符變量字符型變量用來存放字符常量,注意只能放一個字符。字符變量的定義形式如下:charc1,c2;在本函數(shù)中可以用下面語句對c1,c2賦值:c1a;c2b;一個字符變量在內(nèi)存中占一個字節(jié)。,2.5字符型數(shù)據(jù),2.5.3字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法一個字符常量存放到一個字符變量中,實際上并不是把該字符的字型放到內(nèi)存中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲單元中。這樣使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。,注意:一個字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出.以字符形式輸出時,系統(tǒng)先將存儲單元中的ASCII碼轉(zhuǎn)換成相應(yīng)字符,然后輸出。以整數(shù)形式輸出時,直接將ASCII碼作為整數(shù)輸出。也可以對字符數(shù)據(jù)進行算術(shù)運算,此時相當于對它們的ASCII碼進行算術(shù)運算。,例2.6向字符變量賦予整數(shù)。#includevoidmain()charc1,c2;c1=97;c2=98;printf("%c%cn",c1,c2);printf("%d%dn",c1,c2);,說明:在第4和第5行中,將整數(shù)97和98分別賦給c1和c2,它的作用相當于以下兩個賦值語句:c1a;c2b;因為a和b的ASCII碼為97和98,運行結(jié)果:ab9798,例2.7大小寫字母的轉(zhuǎn)換#includevoidmain()charc1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf("%c%c",c1,c2);,說明:程序的作用是將兩個小寫字母a和b轉(zhuǎn)換成大寫字母A和B。從ASCII代碼表中可以看到每一個小寫字母比它相應(yīng)的大寫字母的ASCII碼大32。C語言允許字符數(shù)據(jù)與整數(shù)直接進行算術(shù)運算。,運行結(jié)果:ab,2.5字符型數(shù)據(jù)2.5.3字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法,說明:有些系統(tǒng)(如TurboC,VC+)將字符變量定義為signedchar型。其存儲單元中的最高位作為符號位,它的取值范圍是-128127。如果在字符變量中存放一個ASCII碼為0127間的字符,由于字節(jié)中最高位為0,因此用%d輸出字符變量時,輸出的是一個正整數(shù)。如果在字符變量中存放一個ASCII碼為128255間的字符,由于在字節(jié)中最高位為1,用%d格式符輸出時,就會得到一個負整數(shù)。,#includevoidmain()charc1;/改為short類型,如何?c1=255;printf("%dn",c1);,#includevoidmain()shortc1;/改為int類型,如何?c1=32728;printf("%dn",c1);,#includevoidmain()intc1;/改為short類型,如何?c1=65536;printf("%dn",c1);,2.5字符型數(shù)據(jù),2.5.4字符串常量字符串常量是一對雙撇號括起來的字符序列.合法的字符串常量:“Howdoyoudo.”,“CHINA”,“a”,“$123.45”可以輸出一個字符串,如printf(“Howdoyoudo.”);,2.5字符型數(shù)據(jù)2.5.4字符串常量,a是字符常量,“a”是字符串常量,二者不同。如:假設(shè)被指定為字符變量:charc,c=a;“a”;c“CHINA”;,結(jié)論:不能把一個字符串常量賦給一個字符變量。,規(guī)定:在每一個字符串常量的結(jié)尾加一個“字符串結(jié)束標志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。規(guī)定以字符0作為字符串結(jié)束標志。,如:如果有一個字符串常量”hina”,實際上在內(nèi)存中是:,它占內(nèi)存單元不是5個字符,而是6個字符,最后一個字符為0。但在輸出時不輸出0。,2.5字符型數(shù)據(jù)2.5.4字符串常量,2.6各類數(shù)值型數(shù)據(jù)間的混合運算,混合運算:整型(包括int,short,long)、浮點型(包括float,double)可以混合運算。在進行運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進行運算.,說明:這種類型轉(zhuǎn)換是由系統(tǒng)自動進行的。,數(shù)據(jù)表示的差異性:,#includemain()floatTotal;Total=1/3;printf("Total=%fnn",Total);,#includemain()floatTotal;Total=1./3;printf("Total=%fnn",Total);,數(shù)據(jù)表示的差異性:,2.7算術(shù)運算符和算術(shù)表達式,2.7.1運算符和C算術(shù)表達式簡介1.語言的運算符有以下幾類:算術(shù)運算符(+-*/%)關(guān)系運算符(?。┻壿嬤\算符(!inti;x=3.6;i=x;y=(int)x;printf("x=%f,y=%f,i=%dn",x,y,i);,說明:有兩種類型轉(zhuǎn)換,一種是在運算時不必用戶指定,系統(tǒng)自動進行的類型轉(zhuǎn)換,如3+6.5。第二種是強制類型轉(zhuǎn)換。當自動類型轉(zhuǎn)換不能實現(xiàn)目的時,可以用強制類型轉(zhuǎn)換。,運行結(jié)果:x3.600000,i=3,2.7算術(shù)運算符和算術(shù)表達式2.7.2算術(shù)運算符和算術(shù)表達式,4.自增、自減運算符作用是使變量的值增1或減1如:+i,-i(在使用i之前,使i的值加(減)1)i+,i-(在使用i之后,使i的值加(減)1),2.7算術(shù)運算符和算術(shù)表達式2.7.2算術(shù)運算符和算術(shù)表達式,i+與+i的區(qū)別:+i是先執(zhí)行ii+1后,再使用i的值;i+是先使用i的值后,再執(zhí)行ii+1。例如:j+i;(i=i+1,j=i)i的值先變成4,再賦給j,j的值為4ji+;(j=i,i=i+1)先將i的值3賦給j,j的值為3,然后i變?yōu)?,2.7算術(shù)運算符和算術(shù)表達式2.7.2算術(shù)運算符和算術(shù)表達式,注意:(1)自增運算符(+),自減運算符(-),只能用于變量,而不能用于常量或表達式。(2)+和-的結(jié)合方向是“自右至左”。(3)自增(減)運算符常用于循環(huán)語句中使循環(huán)變量自動加1。也用于指針變量,使指針指向下一個地址。(4)使用+和-時,為避免二義性,最好采取大家都能理解的寫法,可以加一些“不必要”的括號,如(i+)+j。,2.8逗號運算符和逗號表達式,逗號運算符:將兩個表達式連接起來,又稱為“順序求值運算符”。如:3+5,6+8,一般形式:表達式1,表達式2,求解過程:先求解表達式1,再求解表達式2。整個逗號表達式的值是表達式2的值。,逗號表達式的值為14,2.8逗號運算符和逗號表達式,例:逗號表達式a3*5,a*4,分析:賦值運算符的優(yōu)先級別高于逗號運算符,因此應(yīng)先求解a3*5。,a的值為15,然后求解a*4,得60。整個逗號表達式的值為60。,一個逗號表達式又可以與另一個表達式組成一個新的逗號表達式。如:(a3*5,a*4),a+5先計算出a的值等于15,再進行a*4的運算得60(但a值未變,仍為15),再進行a+5得20,即整個表達式的值為20。,2.8逗號運算符和逗號表達式,逗號表達式的一般形式可以擴展為表達式1,表達式2,表達式3,表達式n它的值為表達式n的值。,逗號運算符是所有運算符中級別最低的例:x=(a=3,6*3)x=a=3,6*3,賦值表達式,將一個逗號表達式的值賦給x,x的值等于18,逗號表達式,包括一個賦值表達式和一個算術(shù)表達式,x的值為3,整個逗號表達式的值為18。,2.8逗號運算符和逗號表達式,注意:并不是任何地方出現(xiàn)的逗號都是作為逗號運算符。例如函數(shù)參數(shù)也是用逗號來間隔的。如:printf("%d,%d,%d",a,b,c);,“a,b,”并不是一個逗號表達式,它是printf函數(shù)的3個參數(shù),printf("%d,%d,%d",(a,b,c),b,c),“(a,b,)”是一個逗號表達式,它的值等于的值。,

注意事項

本文(C語言第2章數(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),我們立即給予刪除!