C語言第2章—數(shù)據(jù)類型、運(yùn)算符及表達(dá)式_第1頁
C語言第2章—數(shù)據(jù)類型、運(yùn)算符及表達(dá)式_第2頁
C語言第2章—數(shù)據(jù)類型、運(yùn)算符及表達(dá)式_第3頁
C語言第2章—數(shù)據(jù)類型、運(yùn)算符及表達(dá)式_第4頁
C語言第2章—數(shù)據(jù)類型、運(yùn)算符及表達(dá)式_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、QuitMenu第第1章程序設(shè)計(jì)基礎(chǔ)章程序設(shè)計(jì)基礎(chǔ)第第2章章 基本基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式數(shù)據(jù)類型、運(yùn)算符和表達(dá)式2.1 數(shù)據(jù)類型數(shù)據(jù)類型2.2 常量與變量常量與變量2.3 運(yùn)算符運(yùn)算符和和表達(dá)式表達(dá)式2.4 應(yīng)用應(yīng)用舉例舉例QuitMenu2.1 數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組類型 array 指針類型 type* 空類型 void 枚舉類型 enum 結(jié)構(gòu)類型 struct 聯(lián)合類型 union 類類型 class數(shù)據(jù)類型整型 int short long 字符型 char(屬于1字節(jié)的整型) 單精度浮點(diǎn)型float實(shí)型 雙精度浮點(diǎn)型double 長雙精度浮點(diǎn)型 long double布爾邏輯

2、型 bool基本數(shù)據(jù)類型非基本數(shù)據(jù)類型QuitMenu2.1 數(shù)據(jù)類型數(shù)據(jù)類型類型類型類型符類型符占字節(jié)數(shù)占字節(jié)數(shù)典型的取值范圍典型的取值范圍字符型字符型 char1-128+127無符號字符型無符號字符型 unsigned char1025504294967295短整型短整型 short int2-32768+32767整型整型 無符號整型無符號整型 intunsigned int44-2147483648+2147483647單精度型單精度型float4絕對值:絕對值:3.4E-383.4E+38雙精度型雙精度型double8絕對值:絕對值:1.7E-3081.7E+308布爾型布爾型bo

3、ol1True(1)/false(0)QuitMenu2.2 常量常量與變量與變量2.2.1 常量常量p26常量常量是指在程序執(zhí)行中不變的量,它分為字是指在程序執(zhí)行中不變的量,它分為字面面常量常量和和符號符號常量常量兩種兩種表示方法。如表示方法。如25,-3.26,a,“blue”等都是字面常量,即字面本身就是它的值等都是字面常量,即字面本身就是它的值。u 整型常量整型常量u 實(shí)型常量實(shí)型常量u 字符型常量字符型常量u 字符串字符串型常量型常量QuitMenu整型常量整型常量 十進(jìn)制:十進(jìn)制: 無前綴無前綴,數(shù)碼為數(shù)碼為0至至9。 如:如:15,235,0 八進(jìn)制:八進(jìn)制: 前綴為前綴為0,數(shù)

4、碼為,數(shù)碼為0至至7。 如如:07,0327,-02 十六進(jìn)制:十六進(jìn)制:前綴為前綴為0X或或0 x,數(shù)碼為,數(shù)碼為0至至9,A至至F或或a至至f 。 如如 :-0 x7,0X5bfQuitMenu實(shí)型常量實(shí)型常量 小數(shù)形式小數(shù)形式由正負(fù)號、數(shù)字和小數(shù)點(diǎn)組成,必須有一個且僅有一個由正負(fù)號、數(shù)字和小數(shù)點(diǎn)組成,必須有一個且僅有一個小數(shù)點(diǎn)。小數(shù)點(diǎn)。 如如+ 0.123 .123 123.0 123. -0.123等。等。 指數(shù)形式指數(shù)形式尾數(shù)尾數(shù) e或或E 指數(shù)指數(shù) 如如0.1234e+3 1.25E-5QuitMenu字符字符常量常量 用一對半角單引號括起的單個字符。用一對半角單引號括起的單個字符

5、。 如如:A、a、$、! 、? 、5在內(nèi)存中是以在內(nèi)存中是以ASCII碼表示的。碼表示的。 C還還允許使用一種特殊形式的字符常量,即以允許使用一種特殊形式的字符常量,即以“”開頭的字符序列,稱為轉(zhuǎn)義字符,是將反開頭的字符序列,稱為轉(zhuǎn)義字符,是將反斜線后面的字符轉(zhuǎn)變成另外的斜線后面的字符轉(zhuǎn)變成另外的意義意義 例如例如,n代代表一個表一個“換行換行”符符 coutn; / 將輸出將輸出一個換行一個換行.P27QuitMenu字符串常量字符串常量 字符串常量是用雙引號(定界符)括起來的一串字符串常量是用雙引號(定界符)括起來的一串字符,字符,如如、A、12.42、Program。 C中中字符串常量在

6、內(nèi)存字符串常量在內(nèi)存中按順序存放串中字符的中按順序存放串中字符的ASCII碼碼,并在最后自動追加,并在最后自動追加一一個個0字符字符作為結(jié)作為結(jié)束字符。束字符。Program0 因此,長度為因此,長度為n個字符的字符串常量,在內(nèi)存?zhèn)€字符的字符串常量,在內(nèi)存中占用中占用n+1個字節(jié)。個字節(jié)。QuitMenu字符串常量字符串常量 字符與字符串不等價。字符與字符串不等價。例如例如:A與與A ,前者由,前者由兩個字節(jié)組成兩個字節(jié)組成(字符字符A與字符與字符0),而后者只有一,而后者只有一個字節(jié)。個字節(jié)。 最短的字符串最短的字符串是空字符串是空字符串(),它僅由一個結(jié)尾,它僅由一個結(jié)尾符符0組成組成。

7、C C中中,沒有字符串類型,沒有字符串類型,而是用字符數(shù)組來處理,而是用字符數(shù)組來處理字字符串符串。 QuitMenu符號符號常量常量 也可以用一個標(biāo)識符代表一個也可以用一個標(biāo)識符代表一個常量常量 在在C C中中可以用可以用#define#define或或constconst定義符號常量定義符號常量 #include #define PRICE 30 num=10;void main () total=num*PRICE; couttotal=total; int num,total; QuitMenu符號符號常量常量#include const int PRICE=30; num=10;vo

8、id Main () total=num*PRICE; couttotal=total; int num,total; const 數(shù)據(jù)類型數(shù)據(jù)類型 符號常量符號常量=值常量值常量;QuitMenu2.2.2 變量變量 變量變量就是在就是在程序運(yùn)行過程中,其值可以改變的量程序運(yùn)行過程中,其值可以改變的量 變量必須先定義,后變量必須先定義,后使用使用 格式:格式:數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名1,變量變量名名2,變量變量名名n;例:例:int i, j; /定義定義2個個整型變量整型變量i, j, 各占各占4Bfloat x, y; /定義定義2個個單精度實(shí)型變量單精度實(shí)型變量x, y,各占各占

9、4Bchar c1; /定義定義1個個字符型變量字符型變量c1,占占1BQuitMenu2.2.2 變量變量 在定義變量的同時指定變量的值稱為在定義變量的同時指定變量的值稱為變量初始化變量初始化 格式:格式:形式形式1:數(shù)據(jù)類型:數(shù)據(jù)類型 變量名變量名=表達(dá)式;表達(dá)式;形式形式2:數(shù)據(jù)類型數(shù)據(jù)類型 變量變量名名(表達(dá)式表達(dá)式);例:例:int k=35,n(0);int a, b=4, c=5; float x=3.0;QuitMenu2.2.2 變量變量 如果在定義變量時沒有對變量進(jìn)行未初始化,則如果在定義變量時沒有對變量進(jìn)行未初始化,則變量使用的第一步就是給變量賦一個確定的值變量使用的第一

10、步就是給變量賦一個確定的值。例:例:int a,b,c;a=1; b=3; c=4;QuitMenu2.3 運(yùn)算符運(yùn)算符與表達(dá)式與表達(dá)式 所謂所謂運(yùn)算符運(yùn)算符就是指運(yùn)算的符號,例如加運(yùn)算符(就是指運(yùn)算的符號,例如加運(yùn)算符(+)、乘運(yùn)算符()、乘運(yùn)算符(*)、取地址運(yùn)算符()、取地址運(yùn)算符(&)等。)等。 表達(dá)式表達(dá)式:用運(yùn)算符把運(yùn)算對象連接起來的式子:用運(yùn)算符把運(yùn)算對象連接起來的式子 運(yùn)算對象:常量、變量、函數(shù)、指針、數(shù)組元素運(yùn)算對象:常量、變量、函數(shù)、指針、數(shù)組元素等等QuitMenu2.3.1運(yùn)算符運(yùn)算符算術(shù)運(yùn)算符算術(shù)運(yùn)算符運(yùn)算運(yùn)算優(yōu)先級別優(yōu)先級別()()+ -改變正常優(yōu)先級改變正

11、常優(yōu)先級自增自增1、自減、自減112-負(fù)號負(fù)號(單目運(yùn)算符)單目運(yùn)算符)2*, /, %乘法、除法、求余乘法、除法、求余3+, -加、加、減法減法(雙目運(yùn)算符)雙目運(yùn)算符)41算術(shù)運(yùn)算算術(shù)運(yùn)算符符17q模運(yùn)算符:模運(yùn)算符:% 只能對整型數(shù)進(jìn)行操作只能對整型數(shù)進(jìn)行操作,其操作意義為,其操作意義為取余取余,不允許對浮點(diǎn)數(shù)操作不允許對浮點(diǎn)數(shù)操作。 例如例如: 5%3 = 2 1%5=1 25.7%3是非法的是非法的q/對于整型數(shù)對于整型數(shù)則為除法則為除法取整取整操作。操作。/對于浮對于浮點(diǎn)數(shù)點(diǎn)數(shù)則為則為通常意義的除法通常意義的除法。 例如例如: 5/2=2 5.0/2.0=2.5說明說明18運(yùn)用舉例

12、運(yùn)用舉例1、 int a=5,b=2; float c=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非法非法1 / ba+ 0519運(yùn)用舉例運(yùn)用舉例2、已知、已知int a=3467,寫出計(jì)算其個、十、寫出計(jì)算其個、十、百、千位的表達(dá)式。百、千位的表達(dá)式。解:解:a%10, a/10%10, a/100%10, a/1000%10或或a/10003、如下的表達(dá)式是否正確?、如下的表達(dá)式是否正確?(x+y)(x-y) 5x+120增量和減量運(yùn)算符增量和減量運(yùn)算符 P30q增量增量+、

13、減量運(yùn)算符、減量運(yùn)算符- (單目運(yùn)算符單目運(yùn)算符)作用:使變量的值增加作用:使變量的值增加1或減少或減少1表示:表示:前置運(yùn)算前置運(yùn)算 +i或或-i 先使先使i加加(減減)1,再使用變量,再使用變量i的的值。值。后置運(yùn)算后置運(yùn)算 i+或或i- 先使用變量先使用變量i的值,的值,再再使使i加加(減減)1。+、-只能用于變量,不能用于常量。只能用于變量,不能用于常量。21示例示例int i=5, j=5, m, n;m=i+; /后置;相當(dāng)于后置;相當(dāng)于m=i; i=i+1; /結(jié)果:結(jié)果:i的值為的值為6,m的值為的值為5;n=+j; /前置;相當(dāng)于前置;相當(dāng)于j=j+1;n=j; /結(jié)果:結(jié)果

14、:j的值為的值為6,n的值為的值為6;22示例示例已知:已知:int a=8,b=10;寫出順次執(zhí)行;寫出順次執(zhí)行 c=-a; d=b-; e=a-; f=-b;a至至f的值。的值。 解:解:a、b、c、d、e、f的值為的值為6、8、7、10、7、823#include void main( ) int a,b; int i,j; i=10; j=20; couti_old=i,j_old=jendl; a=2+(+i); /* 2+i 是錯誤的是錯誤的 */ b=2+j+; couta=a,b=bendl; couti_new=i,j_new=jendl; i_old=10, j_old=2

15、0a=13 b=22i_new =11 i_new =21242關(guān)系運(yùn)算符關(guān)系運(yùn)算符P30運(yùn)算符運(yùn)算符運(yùn)算運(yùn)算優(yōu)先級優(yōu)先級=小于小于小于等于小于等于大于大于大于等于大于等于6=!=等于等于不等于不等于725關(guān)系運(yùn)算符關(guān)系運(yùn)算符q關(guān)系關(guān)系運(yùn)算即比較運(yùn)算,將兩個值進(jìn)行比較,運(yùn)算即比較運(yùn)算,將兩個值進(jìn)行比較,判斷比較的結(jié)果是否符合給定的條件。判斷比較的結(jié)果是否符合給定的條件。關(guān)關(guān)系運(yùn)算的結(jié)果為邏輯值系運(yùn)算的結(jié)果為邏輯值:若滿足條件,關(guān)若滿足條件,關(guān)系表達(dá)式的值為真系表達(dá)式的值為真true(1);若;若不滿足條件,不滿足條件,關(guān)系表達(dá)式的值為假關(guān)系表達(dá)式的值為假false (0)。26運(yùn)用舉例運(yùn)用舉例

16、1. 若A=3, B=2, C=1, 求下列表達(dá)式的值。 AB (AB)=C B+C2, 值為1/即(32)=1,1=1為真,值為1/即33為假,值為0273 邏輯運(yùn)算符P31C+提供了三種邏輯運(yùn)算符提供了三種邏輯運(yùn)算符!非(單目邏輯運(yùn)算符)非(單目邏輯運(yùn)算符)2& 與(雙目邏輯運(yùn)算符)與(雙目邏輯運(yùn)算符)11|或(雙目邏輯運(yùn)算符)或(雙目邏輯運(yùn)算符)12優(yōu)先級高低28邏輯運(yùn)算真值表AB!AA&BA|Btrue(1)true(1)false(0)true(1)true(1)true(1)false(0)false(0)false(0)true(1)false(0)true(1)

17、true(1)false(0)true(1)false(0)false(0)true(1)false(0)false(0)q原則上,邏輯運(yùn)算符的操作數(shù)應(yīng)為bool型數(shù)據(jù),但同時允許是數(shù)值型數(shù)據(jù),此時,0等價于false,非0等價于true。29運(yùn)用舉例運(yùn)用舉例1、若A=5,B=0,求下列各表達(dá)式的值。 !A B&A !B2 | 5&5 1&4&71為為true 71&4&73+1的值。3已知已知: int a=10, b=20, c=30;float x=1.8, y=2.4; ay|ab-!c按按優(yōu)先級優(yōu)先級與與結(jié)合性結(jié)合性,其,其求值順序求值

18、順序等同于:等同于:(ay)|(a(b-(!c)t1=1 t2=0t4=0 -&t3=0t5=b=90|x=60&xy?x:y; 2、int x=5;int y=7; xy?x+:y+; 355 賦值運(yùn)算符賦值運(yùn)算符 賦值運(yùn)算符賦值運(yùn)算符 優(yōu)先級:優(yōu)先級:14 右右結(jié)合結(jié)合形式形式:變量名變量名表達(dá)式表達(dá)式作用:將右邊表達(dá)式的值賦給操作符作用:將右邊表達(dá)式的值賦給操作符左邊的變量左邊的變量。賦值賦值表達(dá)式的表達(dá)式的值為值為左邊左邊的的變量值。變量值。365 賦值運(yùn)算符賦值運(yùn)算符 例例 x = 5 y = x + 10 a=b=5 等價與等價與a=(b=5) /右結(jié)合右結(jié)合q注意

19、注意=與與=的區(qū)別的區(qū)別 例如:例如:x x=1 1為關(guān)系表達(dá)式,判斷為關(guān)系表達(dá)式,判斷x x是是否等于否等于1 1;x x=1 1為賦值表達(dá)式。為賦值表達(dá)式。375 賦值運(yùn)算符賦值運(yùn)算符 例例 x = 5 y = x + 10 a=b=5 等價與等價與a=(b=5) /右結(jié)合右結(jié)合q注意注意=與與=的區(qū)別的區(qū)別 例如:例如:x x=1 1為關(guān)系表達(dá)式,判斷為關(guān)系表達(dá)式,判斷x x是是否等于否等于1 1;x x=1 1為賦值表達(dá)式。為賦值表達(dá)式。38復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符 +=, -=, *=, /=, %=優(yōu)先級優(yōu)先級 14 右右結(jié)合結(jié)合例:例:a+=3 等價于等價于 a=a+3

20、x*=y+8 等價于等價于 x=x*(y+8)x=x+nx=x-nx=x*nx=x/nx=x%nx + = nx - = nx * = nx / = nx% = n39示例示例1、已知、已知int a=12;求執(zhí)行求執(zhí)行a+=a-=a*a 后后a的值。的值。2、若有定義:、若有定義:int m=5,y=2;則執(zhí)行表;則執(zhí)行表達(dá)式達(dá)式y(tǒng)+=y-=m*=y后,后,y的值。的值。a=a-a*a=-132a=a+a=-264 m=m*y=5*2=10y=y-m=2-10=-8y=y+y=-16復(fù)合賦值運(yùn)算復(fù)合賦值運(yùn)算符的結(jié)合性為符的結(jié)合性為從右至左從右至左406逗號運(yùn)算符逗號運(yùn)算符P32q格式格式 表

21、達(dá)式表達(dá)式1,表達(dá)式表達(dá)式2,表達(dá)式表達(dá)式3表達(dá)式表達(dá)式nq求解順序及結(jié)果求解順序及結(jié)果 先求表達(dá)式先求表達(dá)式1,再求表達(dá)式,再求表達(dá)式2,最后求解表最后求解表達(dá)式達(dá)式n,整個表達(dá)式的值為表達(dá)式整個表達(dá)式的值為表達(dá)式n的值。的值。 例如:例如: a=3*5,a*4; a的值為的值為15,整個表達(dá)式的值為,整個表達(dá)式的值為60 QuitMenu2.3.2 表達(dá)式表達(dá)式 表達(dá)式表達(dá)式:用運(yùn)算符把運(yùn)算對象連接起來的式子:用運(yùn)算符把運(yùn)算對象連接起來的式子 運(yùn)算對象:常量、變量、函數(shù)、指針、數(shù)組元素運(yùn)算對象:常量、變量、函數(shù)、指針、數(shù)組元素等等 一一個變量、一個常量、一次函數(shù)調(diào)用都是表達(dá)式個變量、一個常

22、量、一次函數(shù)調(diào)用都是表達(dá)式。QuitMenu2.3.2 表達(dá)式表達(dá)式 當(dāng)多種運(yùn)當(dāng)多種運(yùn)算符存在算符存在于同一表于同一表達(dá)式時,達(dá)式時,需考慮運(yùn)需考慮運(yùn)算符的結(jié)算符的結(jié)合性和合性和優(yōu)優(yōu)先級。先級。P29QuitMenu2.3.3 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算:將不同數(shù)各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算:將不同數(shù)據(jù)類型先轉(zhuǎn)換成同一類型據(jù)類型先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算然后進(jìn)行運(yùn)算自動進(jìn)行隱式轉(zhuǎn)換強(qiáng)制進(jìn)行顯式轉(zhuǎn)換方式QuitMenu2.3.3 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換 1.自動轉(zhuǎn)換(隱式轉(zhuǎn)換)自動轉(zhuǎn)換(隱式轉(zhuǎn)換)規(guī)則:規(guī)則:優(yōu)先級低的向優(yōu)先級高的轉(zhuǎn)換優(yōu)先級低的向優(yōu)先級高的轉(zhuǎn)換dou

23、blefloatlongunsignedintchar 精度高精度高精度低精度低2.1 + 1/2表達(dá)式的值?表達(dá)式的值?2.1QuitMenu2.3.3 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換 2.強(qiáng)制強(qiáng)制轉(zhuǎn)換(顯示轉(zhuǎn)換)轉(zhuǎn)換(顯示轉(zhuǎn)換)轉(zhuǎn)換形式:轉(zhuǎn)換形式:(數(shù)據(jù)類型數(shù)據(jù)類型)表達(dá)式表達(dá)式 或或 數(shù)據(jù)類型數(shù)據(jù)類型(表達(dá)式表達(dá)式)(int) 2.1 + 1/2int (2.1+1.1)23QuitMenu2.3.4 內(nèi)部函數(shù)內(nèi)部函數(shù)P35C中常用數(shù)學(xué)函數(shù)中常用數(shù)學(xué)函數(shù) double fabs(double x) 返回返回x的絕對值的絕對值 double exp(double x) 返回指數(shù)函數(shù)返回指數(shù)函數(shù)ex的值的值 double log(double x) 返回返回logex的值的值 double log10(double x) 返回返回log10 x的值的值 double pow(double x,double y) 返回返回xy的值的值 double sqrt(double x) 返回返回x的開方的開方 要使用數(shù)學(xué)函數(shù),應(yīng)該在程序中加入:要使用數(shù)學(xué)函數(shù),應(yīng)該在程序中加入: #include “m

溫馨提示

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

最新文檔

評論

0/150

提交評論