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

下載本文檔

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

文檔簡介

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

2、型 bool基本數據類型非基本數據類型QuitMenu2.1 數據類型數據類型類型類型類型符類型符占字節(jié)數占字節(jié)數典型的取值范圍典型的取值范圍字符型字符型 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 實型常量實型常量u 字符型常量字符型常量u 字符串字符串型常量型常量QuitMenu整型常量整型常量 十進制:十進制: 無前綴無前綴,數碼為數碼為0至至9。 如:如:15,235,0 八進制:八進制: 前綴為前綴為0,數

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

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

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

7、C C中中,沒有字符串類型,沒有字符串類型,而是用字符數組來處理,而是用字符數組來處理字字符串符串。 QuitMenu符號符號常量常量 也可以用一個標識符代表一個也可以用一個標識符代表一個常量常量 在在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 數據類型數據類型 符號常量符號常量=值常量值常量;QuitMenu2.2.2 變量變量 變量變量就是在就是在程序運行過程中,其值可以改變的量程序運行過程中,其值可以改變的量 變量必須先定義,后變量必須先定義,后使用使用 格式:格式:數據類型數據類型 變量名變量名1,變量變量名名2,變量變量名名n;例:例:int i, j; /定義定義2個個整型變量整型變量i, j, 各占各占4Bfloat x, y; /定義定義2個個單精度實型變量單精度實型變量x, y,各占各占

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

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

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

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

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

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關系運算符關系運算符P30運算符運算符運算運算優(yōu)先級優(yōu)先級=小于小于小于等于小于等于大于大于大于等于大于等于6=!=等于等于不等于不等于725關系運算符關系運算符q關系關系運算即比較運算,將兩個值進行比較,運算即比較運算,將兩個值進行比較,判斷比較的結果是否符合給定的條件。判斷比較的結果是否符合給定的條件。關關系運算的結果為邏輯值系運算的結果為邏輯值:若滿足條件,關若滿足條件,關系表達式的值為真系表達式的值為真true(1);若;若不滿足條件,不滿足條件,關系表達式的值為假關系表達式的值為假false (0)。26運用舉例運用舉例

16、1. 若A=3, B=2, C=1, 求下列表達式的值。 AB (AB)=C B+C2, 值為1/即(32)=1,1=1為真,值為1/即33為假,值為0273 邏輯運算符P31C+提供了三種邏輯運算符提供了三種邏輯運算符!非(單目邏輯運算符)非(單目邏輯運算符)2& 與(雙目邏輯運算符)與(雙目邏輯運算符)11|或(雙目邏輯運算符)或(雙目邏輯運算符)12優(yōu)先級高低28邏輯運算真值表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原則上,邏輯運算符的操作數應為bool型數據,但同時允許是數值型數據,此時,0等價于false,非0等價于true。29運用舉例運用舉例1、若A=5,B=0,求下列各表達式的值。 !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)先級與與結合性結合性,其,其求值順序求值

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ōu)先級:優(yōu)先級:14 右右結合結合形式形式:變量名變量名表達式表達式作用:將右邊表達式的值賦給操作符作用:將右邊表達式的值賦給操作符左邊的變量左邊的變量。賦值賦值表達式的表達式的值為值為左邊左邊的的變量值。變量值。365 賦值運算符賦值運算符 例例 x = 5 y = x + 10 a=b=5 等價與等價與a=(b=5) /右結合右結合q注意

19、注意=與與=的區(qū)別的區(qū)別 例如:例如:x x=1 1為關系表達式,判斷為關系表達式,判斷x x是是否等于否等于1 1;x x=1 1為賦值表達式。為賦值表達式。375 賦值運算符賦值運算符 例例 x = 5 y = x + 10 a=b=5 等價與等價與a=(b=5) /右結合右結合q注意注意=與與=的區(qū)別的區(qū)別 例如:例如:x x=1 1為關系表達式,判斷為關系表達式,判斷x x是是否等于否等于1 1;x x=1 1為賦值表達式。為賦值表達式。38復合的賦值運算符復合的賦值運算符 +=, -=, *=, /=, %=優(yōu)先級優(yōu)先級 14 右右結合結合例:例: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í)行表達式達式y+=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復合賦值運算復合賦值運算符的結合性為符的結合性為從右至左從右至左406逗號運算符逗號運算符P32q格式格式 表

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

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

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

溫馨提示

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

評論

0/150

提交評論