第3章數(shù)據(jù)類型(新)_第1頁
第3章數(shù)據(jù)類型(新)_第2頁
第3章數(shù)據(jù)類型(新)_第3頁
第3章數(shù)據(jù)類型(新)_第4頁
第3章數(shù)據(jù)類型(新)_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第三章l 本章要點本章要點l 主要內(nèi)容主要內(nèi)容3.1 C3.1 C的數(shù)據(jù)類型的數(shù)據(jù)類型3.2 3.2 常量與變量常量與變量3.3 3.3 整型數(shù)據(jù)整型數(shù)據(jù)3.4 3.4 浮點型數(shù)據(jù)浮點型數(shù)據(jù)3.5 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 3. 3.變量賦初值變量賦初值 3.7 3.7 各類數(shù)值型數(shù)據(jù)間的混合運算各類數(shù)值型數(shù)據(jù)間的混合運算 3.8 3.8 算術運算符和算術表達式算術運算符和算術表達式 3.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式 3.10 3.10 逗號運算符和逗號表達式逗號運算符和逗號表達式 3.1 C的數(shù)據(jù)類型的數(shù)據(jù)類型數(shù)據(jù)?數(shù)據(jù)?數(shù)據(jù)類型?數(shù)據(jù)類型?常量與變量?常量與

2、變量?字符型字符型-char實實 型型單精度型單精度型-float雙精度型雙精度型-double整型整型-int數(shù)數(shù)據(jù)據(jù)類類型型數(shù)數(shù)據(jù)據(jù)常量常量 : Constants 變量變量: Variable 3.2 常量與變量常量與變量3.2.1 常量和符號常量常量和符號常量在程序運行過程中在程序運行過程中, ,其值不能被改變的量稱為常量其值不能被改變的量稱為常量整型整型 100100,125125,-100-100,0 0實型實型 3.14 3.14 , 0.1250.125,-3.789-3.789字符型字符型 a, ba, b,22字符串字符串 a, aba, ab,12321232常量常量例3

3、.1 符號常量的使用#include #include #define PRICE 30#define PRICE 30void main ( )void main ( ) int num, total;int num, total; num = 10;num = 10; total = num total = num * * PRICE; PRICE; printf(total=%dn,totalprintf(total=%dn,total);); 用一個標識符代表一個常量。符號常量的值在其作用域內(nèi)不能改變,也不能再被賦值。 運行結果:運行結果: total=300total=300 程序中

4、用#define命令行定義PRICE代表常量30,此后凡在本文件中出現(xiàn)的PRICE都代表30,可以和常量一樣進行運算如再用賦值語句給PRICE賦值是錯的 PRICE=40;/* 錯誤,不能給符號常量賦值都是常量都是常量 3.2 常量與變量常量與變量3.2.2變量變量運行中,其值允許改變。運行中,其值允許改變。用類型用類型標識符標識符定義的。定義的。是臨時存放數(shù)據(jù)的是臨時存放數(shù)據(jù)的空間空間。分類:分類:整型、實型、字符型整型、實型、字符型定義變量的方法:定義變量的方法:數(shù)據(jù)類型數(shù)據(jù)類型 變量名列表變量名列表; ;intint age; age;floatfloat radius, area; r

5、adius, area; double double distance, speed distance, speed,score;score; 數(shù)據(jù)類型關鍵字數(shù)據(jù)類型關鍵字變量名,用戶自定義標識符變量名,用戶自定義標識符組成:組成: 下劃線下劃線 字母字母 數(shù)字數(shù)字 _ a-z,A-Z 0-9 標識符:標識符:描寫變量描寫變量/常量名字符序列,即名字常量名字符序列,即名字變量命名注意事項:變量命名注意事項: 不能用關鍵字;不能用關鍵字;intint forfor C C中大小寫敏感;中大小寫敏感; 盡可能做到見文知義盡可能做到見文知義; ;age, scoreage, scoreSum/sum

6、/SUM-3Sum/sum/SUM-3個不同個不同 數(shù)字不能作首字符;數(shù)字不能作首字符; 2a2a非法非法main( ) int a, b; a=5; b=6; int sum; sum=a+b; printf(“%dn” , sum); 下面程序是否正確?下面程序是否正確?變量必須先定義后使用變量名要簡單明了、見名知意變量名要簡單明了、見名知意 定義變量定義變量 int a; 制造容器制造容器 a 不定值不定值a=5; 5a=6; 6printf(“a=%d”,a); 輸出輸出 a=6注意:注意:a代表存儲單元代表存儲單元6是存儲單元中的內(nèi)容是存儲單元中的內(nèi)容 3.3 整型數(shù)據(jù)整型數(shù)據(jù)3.3

7、.1整型常量的表示方法整型常量的表示方法 整型常量即整常數(shù)。在語言中,整常數(shù)可用以下三種整型常量即整常數(shù)。在語言中,整常數(shù)可用以下三種形式表示:形式表示:(1)(1)十進制整數(shù)。十進制整數(shù)。 如:如:123, -456.4123, -456.4。(2)(2)八進制整數(shù)。八進制整數(shù)。以以0 0頭的數(shù)是八進制數(shù)。頭的數(shù)是八進制數(shù)。 如:如:01230123表示八進制數(shù)表示八進制數(shù)123123,等于十進制數(shù),等于十進制數(shù)83,-01183,-011表表示八進制數(shù)示八進制數(shù)-11,-11,即十進制數(shù)即十進制數(shù)-9-9。(3)(3)十六進制整數(shù)。十六進制整數(shù)。以以0 x0 x開頭的數(shù)是開頭的數(shù)是1616

8、進制數(shù)。進制數(shù)。 如:如:0 x1230 x123,代表,代表1616進制數(shù)進制數(shù)123,123,等于十進制數(shù)等于十進制數(shù) 291291。 - -0 x120 x12等于十進制數(shù)等于十進制數(shù)1010。 整數(shù)類型的有關數(shù)據(jù):3.3.2 整型變量整型變量-只能存放只能存放整型數(shù)據(jù)整型數(shù)據(jù)以上為在以上為在Visual C+ 編譯環(huán)境中數(shù)據(jù)編譯環(huán)境中數(shù)據(jù)所占的空間大小所占的空間大小超出取值范圍會怎樣? 如果在Visual環(huán)境中,定義了一個int型數(shù)據(jù),但把一個大于2147483647的值賦給它,會如何呢?溢出(Overflow)造成的危害 3.4 浮點型數(shù)據(jù)浮點型數(shù)據(jù)3.4.13.4.1浮點型常量的表

9、示方法浮點型常量的表示方法兩種表兩種表示形式示形式小數(shù)小數(shù)指數(shù)指數(shù)0.1230.1233e-33e-3注意注意: :字母字母e(e(或或E)E)之前必須有數(shù)字,且之前必須有數(shù)字,且e e后面的指數(shù)必須為整數(shù)后面的指數(shù)必須為整數(shù) 3.4 浮點型數(shù)據(jù)浮點型數(shù)據(jù)3.4.2 浮點型變量浮點型變量 浮點型變量分為單精度(浮點型變量分為單精度(floatfloat型)、雙精度型)、雙精度(doubledouble型)和長雙精度型(型)和長雙精度型(long doublelong double)三類)三類形式。形式。#include main()float f; /double f;f = 123.456;

10、if (f = 123.456)printf(f is equal to 123.456 indeed.);elseprintf(In fact, f is equal to %fn, f);以下程序段的運行結果如何?以下程序段的運行結果如何? 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 3.5.1 字符常量字符常量(1)用單引號包含的一個字符是字符型常量(2)只能包含一個字符a,Aa,A, 1, 1abcabc、“a”a” 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 有些以有些以“”開頭的特殊字符稱為轉義字符開頭的特殊字符稱為轉義字符字符形式字符形式含義含義ASCII碼n換行換行10t水平制表(跳到下一個tab位-8位

11、)9b退一格退一格8r光標移到本行首光標移到本行首13反斜杠字符反斜杠字符92 單撇號單撇號在單引號中再次出現(xiàn)時39 雙撇號雙撇號-在雙引號中再次出現(xiàn)時34例3.5 轉義字符的使用#include stdio.h#include void void ()() printfprintf (C:windowssystem (C:windowssysteminfninfn););printfprintf (hello wordn); (hello wordn);printfprintf (char a = An); (char a = An);顯示屏上的運行結果:顯示屏上的運行結果: C:windo

12、wssysteminf hello word char a = A 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 3.5.2 字符變量字符變量 字符型變量用來存放字符常量,且只能字符型變量用來存放字符常量,且只能放一個字符放一個字符。 字符變量的定義形式如下:字符變量的定義形式如下:char c1,c2;char c1,c2; 在本函數(shù)中可以用下面語句對在本函數(shù)中可以用下面語句對c1,c2c1,c2賦值:賦值: c1c1aa;c2c2 b b ; 一個字符變量在內(nèi)存中占一個字節(jié)。一個字符變量在內(nèi)存中占一個字節(jié)。 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 3.5.3 字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法字符數(shù)據(jù)在內(nèi)存中的

13、存儲形式及其使用方法 一個字符常量存放到一個字符變量中,實際上并不是把該字符的字型放到內(nèi)存中去,而是將該字符的相應的ASCII代碼放到存儲單元中。這樣使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。注意: 一個字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出。例3.6 向字符變量賦以整數(shù)。 #include #include void main()void main() char c1,c2; char c1,c2; c1=97; c1=97; c2=98; c2=98; printf(“%c %cn”,c1,c2); printf(“%c %cn”,c1,c2); printf(“%d printf(

14、“%d %dn”,c1,c2); %dn”,c1,c2); 在第和第在第和第4 4行中,將整數(shù)行中,將整數(shù)9797和和9898分別賦給分別賦給c1c1和和c2c2,它的作用相當于以下兩個賦值語句:它的作用相當于以下兩個賦值語句:c1c1;c2;c2; 因為因為aa和和bb的的ASCIIASCII碼為碼為9797和和9898運行結果:運行結果: 97 9897 98例3.7 大小寫字母的轉換 #include stdio.h#include void main()void main() char c1,c2 char c1,c2; c1=a;c1=a; c2=b; c2=b; c1=c1-32;

15、 c1=c1-32; c2=c2-32; c2=c2-32; printf printf(“(“c c cc,c1,c2c1,c2);); 程序的作用是將兩個小寫字母程序的作用是將兩個小寫字母a a和和b b轉換成大轉換成大寫字母寫字母A A和和B B。從代碼表中可以看到每一。從代碼表中可以看到每一個小寫字母比它相應的大寫字母的個小寫字母比它相應的大寫字母的ASCIIASCII碼大碼大3232。語言允許字符數(shù)據(jù)與整數(shù)直接進行算術運算。語言允許字符數(shù)據(jù)與整數(shù)直接進行算術運算。 運行結果:運行結果: 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù)3.5.4字符串常量字符串常量 字符串常量是一對字符串常量是一對雙撇號

16、雙撇號括起來的字符序列括起來的字符序列. . 合法的字符串常量合法的字符串常量: :“How do you do.”, “CHINA”How do you do.”, “CHINA”, “ “a” a” , “$123.45”$123.45” 可以輸出一個字符串,如可以輸出一個字符串,如printf(“Howprintf(“How do you do.”) do you do.”); 3.5 字符型數(shù)據(jù)字符型數(shù)據(jù) 是字符常量,是字符常量,”是字符串常量,二者不是字符串常量,二者不同。同。 如:如:假設被指定為字符變量假設被指定為字符變量 :char cchar cc=a; ”a”;c”CHIN

17、A”; 結論:結論:不能把一個字符串常量賦給一個字符變量。不能把一個字符串常量賦給一個字符變量。 規(guī)定:在每一個字符串常量的結尾加一個規(guī)定:在每一個字符串常量的結尾加一個 “ “字符串結束字符串結束標標志志”,以便系統(tǒng)據(jù)此判斷字符串是否結束。規(guī)定以字符,以便系統(tǒng)據(jù)此判斷字符串是否結束。規(guī)定以字符作為字符串結束標志。作為字符串結束標志。 如:如:如果有一個字符串常量如果有一個字符串常量” ” ,實際上在內(nèi)存中是:,實際上在內(nèi)存中是:CHINA0 它占內(nèi)存單元不是個字節(jié),而是個字節(jié),最后一個它占內(nèi)存單元不是個字節(jié),而是個字節(jié),最后一個字符為字符為。但在輸出時不輸出。但在輸出時不輸出。 3.5 字符

18、型數(shù)據(jù)字符型數(shù)據(jù) 3.6 變量賦初值變量賦初值 (1)(1)語言允許在定義變量的同時使變量初始化語言允許在定義變量的同時使變量初始化如如: : intint a=3; / a=3; / 指定為整型變量,初值為指定為整型變量,初值為 float f=3.56; / float f=3.56; / 指定為浮點型變量,初值為指定為浮點型變量,初值為.56 .56 char c=a; / char c=a; / 指定為字符變量,初值為指定為字符變量,初值為aa(2)(2)可以使被定義的變量的一部分賦初值??梢允贡欢x的變量的一部分賦初值。如如: : int a,b,cint a,b,c=5=5; 表示

19、指定、為整型變量,但表示指定、為整型變量,但只對初始化,只對初始化,c c的初值為的初值為 3.6 變量賦初值變量賦初值 (3)(3)如果對幾個變量賦以同一個初值,如果對幾個變量賦以同一個初值, 應寫成:應寫成:intint a=3,b=3,c=3; a=3,b=3,c=3; 表示、表示、的初值都是。的初值都是。 不能寫成不能寫成 int int a=b=c=3; a=b=c=3;char *stu_name = “Mike”; int stu_age = 19; /學生年齡int stu_score = 78; /成績?nèi)≈?100工程中習慣的寫法:工程中習慣的寫法: int a = 3; i

20、nt b = 3; int c = 3; 3.7 各類數(shù)值型數(shù)據(jù)間的混合運算各類數(shù)值型數(shù)據(jù)間的混合運算 floatlongchar轉轉換換方方向向charfloatintdouble 3.8 算術運算符和算術表達式算術運算符和算術表達式注意:注意:%的分子分母必須都為整型數(shù)據(jù)的分子分母必須都為整型數(shù)據(jù)數(shù)學中的數(shù)學中的“ ”、“ ”用多層用多層“( )” 代代替替一般形式一般形式: :(類型名)(表達式)(類型名)(表達式)例如:例如:(double)(double) 將轉換成將轉換成doubledouble類型類型(int)(x+y(int)(x+y) ) 將將x+yx+y的值轉換成整型的值轉

21、換成整型(float)(float)(5%35%3) 將將5%35%3的值轉換成的值轉換成floatfloat型型(3)(3)強制類型轉換運算符強制類型轉換運算符類型強轉類型強轉指針指針 作用是使變量的值增或減作用是使變量的值增或減如如: (在使用之前,先使的值加(在使用之前,先使的值加 (減)(減)在使用之后,先使的值加在使用之后,先使的值加 (減)(減)(4) (4) 自增、自減運算符自增、自減運算符例如:例如:i的原值等于的原值等于3 ; i的值先變成的值先變成4, 再賦給再賦給,j的值均為的值均為 ; 先將先將 i的值的值3賦給賦給,的值為,然后變?yōu)榈闹禐?,然后變?yōu)?自增(減)運算符常

22、用于自增(減)運算符常用于循環(huán)語句循環(huán)語句中使循環(huán)變量中使循環(huán)變量自動加,也用于自動加,也用于指針變量指針變量,使指針指向下一個地,使指針指向下一個地址。址。void main() int i =2; int j=1; +j; j = i + j; i +; printf (i=%d, j=%dn,i, j); void main() int i =2; int j=1; j = i+(+j); printf (i=%d,j=%dn,i,j); 輸出結果:輸出結果:i=3, j=4這樣的寫這樣的寫法你自己法你自己還懂嗎?還懂嗎? 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式 = +=

23、-= *= /= %= 簡單賦值運算符簡單賦值運算符 復合賦值運算符復合賦值運算符 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式 賦值表達式中的賦值表達式中的“表達式表達式”,又可以是一個賦值表,又可以是一個賦值表達式。達式。例如例如: : 1. 1. a=(b=5)a=(b=5) 2.2.(a=3(a=3* *5)=45)=4* *3 3 3.3. a+=a-=a a+=a-=a* *a a正確,但非標準的寫法!正確,但非標準的寫法!1. 1. b=5b=5 a=ba=b2. 2. a=3 a=3* *5 5 a=4 a=4* *3 33. 3. a=a-a a=a-a* *a a a=a+a a=a+a 此為標準寫法!此為標準寫法!盡量不要多個賦值符號盡量不要多個賦值符號連用!連用!請判斷以下程序段的輸出結果請判斷以下程序段的輸出結果#include void main()int x = 3; / 0011int y = 15; / 1111if (x & y = 3)printf (okn);elseprintf (failedn);1.以下選項中不合法的標識符是()。以下選項中不合法的標識符是()。 A)print B)For C)&a D)-00 2.以下選項中不屬于字符常量的是()。以下選項中不屬于字符常量的是()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論