數(shù)據(jù)類型運(yùn)算符與表達(dá)式.ppt_第1頁
數(shù)據(jù)類型運(yùn)算符與表達(dá)式.ppt_第2頁
數(shù)據(jù)類型運(yùn)算符與表達(dá)式.ppt_第3頁
數(shù)據(jù)類型運(yùn)算符與表達(dá)式.ppt_第4頁
數(shù)據(jù)類型運(yùn)算符與表達(dá)式.ppt_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第3章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式,數(shù)據(jù)類型 常量與變量 整型數(shù)據(jù) 實(shí)型數(shù)據(jù) 字符型數(shù)據(jù),變量賦初值 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 賦值運(yùn)算符和賦值表達(dá)式 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式,回顧,程序是為執(zhí)行一項(xiàng)任務(wù)而編寫的有序指令集 算法是解決問題的具體方法和步驟 流程圖是算法的圖形化表現(xiàn)形式 C語言的特點(diǎn) C程序的編譯和運(yùn)行過程 編譯器將源程序轉(zhuǎn)換成機(jī)器能理解的程序 連接器用于連接相關(guān)的目標(biāo)文件以生成可執(zhí)行程序,目標(biāo),理解變量和常量的含義 熟悉基本數(shù)據(jù)類型 - int、char、float 和 double 使用算術(shù)運(yùn)算符 理解類型轉(zhuǎn)換 熟練掌握自增和自減運(yùn)算 熟練掌握復(fù)合賦值表達(dá)式,3.1 C的數(shù)據(jù)類型,指針類型,空類型void,定義類型typedef,數(shù)據(jù)類型決定: 1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù) 2. 數(shù)據(jù)取值范圍 3. 其上可進(jìn)行的操作,返回,基本數(shù)據(jù)類型,整型,字符型,實(shí)型,有,無,說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機(jī)器硬件不同而不同,上表以IBM PC機(jī)為例,3.2 常量與變量,標(biāo)識(shí)符 定義:用來標(biāo)識(shí)變量、常量、函數(shù)等的字符序列 組成: 只能由字母、數(shù)字、下劃線組成,且第一個(gè)字母必須是字母或下劃線 大小寫敏感 不能使用關(guān)鍵字,討論:判斷下列標(biāo)識(shí)符號(hào)合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab above $123 _toDay,M.D.John,3days,#33,char,$123,ab,返回,長度:Turbo C中最長32個(gè)字符 命名原則: 見名知意,采用簡潔有含義的英文單詞(或縮寫) 不宜混淆 如l與I, o與0,標(biāo)識(shí)符命名實(shí)例 stu_name, sum, total, day, count, sort,常量 在程序運(yùn)行過程中,其值不能改變的量稱為常量 常量可為任意數(shù)據(jù)類型 字面常量(直接常量) 整型: 12、0、-3 實(shí)型: 4.6、-1.23 字符型:a、d 字符串常量:”Hello”、”Good Morning!”,符號(hào)常量:標(biāo)識(shí)符代表常量 定義格式: #define ,符號(hào)常量定義舉例 #define PI 3.1415926 #define STAR *,說明:符號(hào)常量一般使用大寫英文字母表示,以區(qū)別一般用于小寫字母表示的變量。,符號(hào)常量使用,#define PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(“total=%d“,total); ,運(yùn)行結(jié)果:total=300,符號(hào)常量的使用能給程序員帶來哪些好處?,變量 其值可以改變的量稱為變量 變量也可以為任意數(shù)據(jù)類型 變量定義的一般格式 數(shù)據(jù)類型 變量1,變量2,變量n;,決定分配字節(jié)數(shù) 和數(shù)的表示范圍,變量定義舉例: int a,b,c; float data;,變量的使用:作強(qiáng)制定義,也就是“先定義,后使用”,例1 int student; stadent=19; /Undefined symbol stadent in function main,例2 float a,b,c; c=a%b; /Illegal use of floating point in function main,變量,程序,編寫程序時(shí),常常需要將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,方便后面使用這個(gè)數(shù)據(jù)或者修改這個(gè)數(shù)據(jù)的值。,通常使用變量來存儲(chǔ)數(shù)據(jù)。使用變量可以引用存儲(chǔ)在內(nèi)存中的數(shù)據(jù),并隨時(shí)根據(jù)需要顯示數(shù)據(jù)或執(zhí)行數(shù)據(jù)操縱。,存儲(chǔ) Rate,Rate * 5%,將值存儲(chǔ)為DiscAmt,Rate-DiscAmt,10,0.5,將值存儲(chǔ)為Result,9.5,聲明和使用變量,聲明變量: Datatype variablename; 定義時(shí)初始化變量: Datatype variablename = value; 定義后初始化變量: variablename = value;,給變量賦值,除了給一個(gè)直接的值以外,還可以通過計(jì)算獲得。,變量命名,在 C 語言中,變量命名需要遵循一定的規(guī)則,有效名稱,principal,cost_price,marks_3,lastname,city,無效名稱,123rate,currency$,discount%,zip code,變量的命名規(guī)則: 變量名可以由字母、數(shù)字和 _(下劃線)組合而成 變量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗號(hào)、空格等 變量名必須以字母或 _(下劃線)開頭 變量名不能包含空白字符(換行符、空格和制表符稱為空白字符) C 語言中的某些詞(例如 int 和 float 等)稱為保留字,具有特殊意義,不能用作變量名 C 語言區(qū)分大小寫,因此變量 price 與變量 PRICE 是兩個(gè)不同的變量,整型數(shù)據(jù) 整型常量,問題: 0123 = ( )10 0x123 = ( )10 0Xff = ( )10,3.3 整型數(shù)據(jù),返回,整型常量的類型 根據(jù)其值所在范圍確定其數(shù)據(jù)類型 在整常量后加字母l或L,認(rèn)為它是long int 型常量,例 12 與 12L,例 30000 為int型 65536 為long int型,整型變量 整型變量在內(nèi)存中以二進(jìn)制的形式存放 根據(jù)占用的字節(jié)數(shù)不同,分為不同類別,整型變量的定義,整型變量定義舉例: int a,b; unsigned short c,d; long e, f;,例: main() int a,b,c,d; unsigned u; a=12; b=-24; u=10; c=a+u; d=b+u; printf(“a+u = %d, b+u = %dn”,c, d); ,運(yùn)行結(jié)果:a+u = 22, b+u = -14,實(shí)型數(shù)據(jù) 實(shí)型常量 表示形式: 十進(jìn)制數(shù)形式:(必須有小數(shù)點(diǎn)) 指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù)) 實(shí)型常量的整數(shù)部分為時(shí)可以省略,且E或e后面指數(shù)必須為整數(shù)。,十進(jìn)制數(shù)形式實(shí)型常量 0.123, .123, 123.0, 0.0, 123.,指數(shù)形式實(shí)型常量 12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 , .e3,3.4 實(shí)型數(shù)據(jù),返回,實(shí)型數(shù)據(jù) 實(shí)型常量 規(guī)范化的指數(shù)形式: 即在字母e(或)之前的數(shù)據(jù)部分中,小數(shù)點(diǎn)左邊有 且僅有一位非零的數(shù)字。,指數(shù)形式實(shí)型常量 12.3e3 ,123E2, 1.23e4 , 0.123e-3,實(shí)型常量的類型 實(shí)型常量部分float和double型,一個(gè)實(shí)型常量可以賦給一個(gè)float型或double型變量。根據(jù)變量的類型截取實(shí)型常量中相應(yīng)的有效數(shù)字。,實(shí)型變量 float: 占4字節(jié),提供7位有效數(shù)字 double:占8字節(jié),提供1516位有效數(shù)字,基本數(shù)據(jù)類型,數(shù)據(jù)屬于不同類別,Africa,The quick brown fox,TRUE,數(shù)據(jù),非數(shù)值,數(shù)值,整型,非整型,9002.12,999,9/12/2003,2.175,123,Jackie Chan,char,數(shù)據(jù)類型,非數(shù)值,數(shù)值,整型,int,short int,long int,double,float,非整型,3.5 字符型數(shù)據(jù),字符常量 字符變量 字符串常量,返回,字符常量 定義:用單引號(hào)括起來的單個(gè)普通字符或轉(zhuǎn)義字符。 字符常量的值:該字符的ASCII碼值 轉(zhuǎn)義字符:反斜線后面跟一個(gè)字符或一個(gè)代碼值表示,如 a A ? n 101,如 A65, a97, 048 , n10,如 101 -A 012 -n 376 - x61 -a 60 -0 483 -(),例: A-101-x41-65,例 轉(zhuǎn)義字符舉例(ch2_001.c,ch2_004.c) main() printf(“101 x42 Cn“); printf(“I say:“How are you?“n“); printf(“C Programn“); printf(“Turbo C“); ,運(yùn)行結(jié)果:(屏幕顯示) A B C Isay:”How are you?” C Program Turbo C,例 main() printf(“Yb=n”); ,運(yùn)行結(jié)果: 屏幕顯示:= 打印機(jī)輸出:,America Standard Code for Information Interchange,注意事項(xiàng): 單撇號(hào)中的字符不能是或者 一個(gè)字符占一個(gè)字節(jié),存其對應(yīng)的ASCII碼 思考:9和9的區(qū)別 字符型數(shù)據(jù)可像證書一樣在程序中參與相關(guān)的運(yùn)算,a 32 結(jié)果為65,字符變量 字符變量存放字符ASCII碼 char與int數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算,例1 a=D; /* a=68; */ x=A+5; /* x=65+5;*/ s=!+G /* s=33+71;*/,例2 main() char c1, c2; c1=97; c2=98; printf(“%c %d”, c1, c2); ,/*ch2_003.c*/ #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); ,運(yùn)行結(jié)果: total=37.500000, ch1=d,例子,字符串常量 定義:用雙引號(hào)(“”)括起來的字符序列 存儲(chǔ):每個(gè)字符串尾自動(dòng)加一個(gè) 0 作為字符串結(jié)束標(biāo)志 字符常量與字符串常量不同,例: char ch; ch=“A”;,沒有字符串變量,用字符數(shù)組存放,如果定義了變量,但是沒有對它賦初值,則它的值是一個(gè)不確定的數(shù)值,3.6 變量賦初值,返回,例 main() int x,y; printf(“%d,%d”,x,y); ,運(yùn)行結(jié)果:64,3129,3.7 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,隱式轉(zhuǎn)換 什么情況下發(fā)生 運(yùn)算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運(yùn)算時(shí) 賦值轉(zhuǎn)換-把一個(gè)值賦給與其類型不同的變量時(shí) 輸出轉(zhuǎn)換-輸出時(shí)轉(zhuǎn)換成指定的輸出格式 函數(shù)調(diào)用轉(zhuǎn)換-實(shí)參與形參類型不一致時(shí)轉(zhuǎn)換,a 32,int age; age = 11.1,char name=a; printf(“%dn”,name);,返回,運(yùn)算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)轉(zhuǎn)換成同一類型。,char ch; int i; float f; double d;,ch/i + f*d - (f+i),例,顯示轉(zhuǎn)換 可以利用強(qiáng)制類型轉(zhuǎn)換將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型 一般形式:(類型名)(表達(dá)式) 例: (int)(x+y) (int)x+y (double)(3/2) (int)3.6 說明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變,例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); ,精度損失問題,結(jié)果:x=3.600000,i=3,3.8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式,C運(yùn)算符簡介,學(xué)習(xí)運(yùn)算符應(yīng)注意 運(yùn)算符功能 與運(yùn)算量關(guān)系 要求運(yùn)算量個(gè)數(shù) 要求運(yùn)算量類型 運(yùn)算符優(yōu)先級(jí)別 結(jié)合方向 結(jié)果的類型,返回,基本的算術(shù)運(yùn)算符 + 加法運(yùn)算或正值運(yùn)算符 - 減法運(yùn)算或負(fù)值運(yùn)算符 * 乘法運(yùn)算符 / 除法運(yùn)算符,求商,兩個(gè)整數(shù)相除結(jié)果為整數(shù) % 模運(yùn)算符,求余,要求兩則均為整型數(shù)據(jù),3+5、+3,5-2、-3,3*5,5/3,7%4,例 5/2 = -5/2.0 =,例 5%2 = -5%2 = 5%-2 = 1%10 = 5%1 = 5.5%2,2,-2.5,1,-1,1,0,(),1,取模的余數(shù)符號(hào)由分子(被除數(shù)決定),算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對象連接起來的、符合C語法規(guī)則的式子。 求表達(dá)式的值: 先按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)行; 再一個(gè)運(yùn)算對象兩則的運(yùn)算賦的優(yōu)先級(jí)別相同,則按規(guī)定的“結(jié)合方向”處理。,a*b/c-1.5+a,a b * c / d,自增+、自減運(yùn)算符 作用:使變量值加1或減1 種類: 前置 +i, -i (先執(zhí)行i+1或i-1,再使用i值 后置 i+,i- (先使用i值,再執(zhí)行i+1或i-1),例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,注意說明: 只能用于變量,不能用于常量或表達(dá)式; 結(jié)合方向“自右向左”; 優(yōu)先級(jí)別: - - + - - * / % - + - 自增(減)運(yùn)算常用于循環(huán)語句中循環(huán)變量自動(dòng)加(減)1或指針變量,使指針指向下一個(gè)地址,5+ () (a+b)+ () i+ (),例1: -i+ i=3; printf(“%d”,-i+);,例1解答: -i+ -(i+) i=3; printf(“%d”,-i+); /-3,有關(guān)表達(dá)式使用中的問題說明 表達(dá)式中包含多個(gè)自加、自減運(yùn)算時(shí),很容易出錯(cuò),i+j,應(yīng)如何結(jié)合? 調(diào)用函數(shù)時(shí),實(shí)參數(shù)地求值順序,c并無統(tǒng)一規(guī)定,3.9 賦值運(yùn)算符和賦值表達(dá)式,簡單賦值運(yùn)算符“” 作用:將一個(gè)數(shù)據(jù)賦給一個(gè)變量,常量或表達(dá)式,只能是變量,不能是常量或表達(dá)式,例 3=x-2*y; a+b=3;,例 a3; a(a+b)*c,返回,賦值轉(zhuǎn)換規(guī)則:使賦值號(hào)右邊表達(dá)式值自動(dòng)轉(zhuǎn)換成其左邊變量的類型,例1 float f; int i; i=10; f=i; 則 f=10.0,例2 int i; i=2.56; /結(jié)果i=2;,結(jié)合方向:自右向左 優(yōu)先級(jí): 14,例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2),/表達(dá)式值為5,a,b,c值為5,/ b=5;a=5,/表達(dá)式值11,c=6,a=11,/表達(dá)式值10,a=10,b=4,c=6,/表達(dá)式值5,a=5,b=10,c=2,復(fù)合的賦值運(yùn)算符 += -= *= /= %= = &= = |=,賦值表達(dá)式 定義:由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子,叫賦值表達(dá)式。 一般形式: 賦值表達(dá)式的值與變量值相等,且可嵌套,例: a=12; a+=a-=a*a,/a=-264 等價(jià)于a=a+(a=a-(a*a),例: int a=2; a%=4-1; a+=a*=a-=a*=3;,/a=0 等價(jià)于a=a+(a=a*(a=a-(a

溫馨提示

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

評論

0/150

提交評論