




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第二章 數(shù)據(jù)類型運算符 和 表達(dá)式,1,優(yōu)質(zhì)內(nèi)容,第二章 數(shù)據(jù)類型、運算符和表達(dá)式,內(nèi)容提要 數(shù)據(jù)類型 常量與變量 運算符與表達(dá)式,2,優(yōu)質(zhì)內(nèi)容,2.1 數(shù)據(jù)類型,數(shù)據(jù)類型總表,數(shù)據(jù)類型決定: 1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù) 2. 數(shù)據(jù)取值范圍 3. 其上可進(jìn)行的操作,3,優(yōu)質(zhì)內(nèi)容,說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機器硬件不同而不同, 上表以IBM PC機為例。,基本數(shù)據(jù)類型,2.1 數(shù)據(jù)類型,4,優(yōu)質(zhì)內(nèi)容,2.2 常量與變量,數(shù)據(jù)是程序的處理對象 C語言將數(shù)據(jù)分為常量與變量,5,優(yōu)質(zhì)內(nèi)容,2.2.1 常量 1.常量的定義及分類 定義:程序運行的過程中,其值不能改變 的量。 分類: 整型常量 實型常量 字符
2、常量 字符串常量 符號常量,2.2 常量與變量,6,優(yōu)質(zhì)內(nèi)容,2.整型常量(既整常數(shù)) 三種形式: 十進(jìn)制整數(shù):由數(shù)字09和正負(fù)號表示.如 123,-456,0 八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字07表示.如0123,011 十六進(jìn)制整數(shù):由0 x開頭,后跟09,af,AF表示.如0 x123,0Xff,轉(zhuǎn)換成十進(jìn)制數(shù)的方法: 0123 = 1x82 +2x81+3x80 =( 83 )10 0 x123 = 1x162 +2x161+3x160= ( 291 )10 0Xff = 15x161+15x160=( 255 )10,2.2 常量與變量,7,優(yōu)質(zhì)內(nèi)容,整型常量的說明 (1)空白字符
3、不可以出現(xiàn)在整數(shù)數(shù)字之間 (2)根據(jù)其值所在范圍確定其數(shù)據(jù)類型 (3)在整常量后加字母l或L,認(rèn)為它是 long int 型常量,例如 30000 為int型 65536 為long int 型 79L、012L 為long int 型,2.2 常量與變量,8,優(yōu)質(zhì)內(nèi)容,3.實型常量 實常數(shù)或浮點數(shù),是一個十進(jìn)制表示的符號實數(shù) 表示形式: 十進(jìn)制小數(shù)形式 digits.digits 如0.123, .123, 123.0, 0.0, 123. 指數(shù)形式(包括整數(shù)部分、尾數(shù)部分和指數(shù)部分 ) digits .digits E|e + | - digits 小數(shù)點之前是整數(shù)部分,小數(shù)點之后是尾數(shù)部
4、分,小數(shù)點在沒有尾數(shù)時可省略。 如12.3e3 ,123E2,2.2 常量與變量,9,優(yōu)質(zhì)內(nèi)容,實型常量的說明 (1)實型常量采用十進(jìn)制小數(shù)形式表示時,必須有 小數(shù)點。例如:123. 是實型常量,而123是整型 常量 (2)采用指數(shù)形式表示時,在E或e之前必須要有數(shù) 字,且之后的指數(shù)必須為整數(shù)。例如:E6、.e6、 e 等都是不合法的 (3)實型常量的整數(shù)部分為0時可以省略,如下形式 是允許的:.57, .0075e2, -.125, -.175E-2 (4)所有的實型常量均被看作是雙精度類型(double),2.2 常量與變量,10,優(yōu)質(zhì)內(nèi)容,4.字符常量 定義:用單引號括起來的單個普通字符
5、或轉(zhuǎn)義字符。 分為一般字符常量和特殊字符常量 一般字符常量: 如a、9、!等。單引號只起定界作用并不表示字符本身,中間的字符可以是除單引號()和反斜杠( )以外的數(shù)字、字母等C語言字符集中包含的所有可顯示字符。 特殊字符常量(也叫轉(zhuǎn)義字符) 是C語言中表示字符的一種特殊形式,其含義為將反斜杠()后面的字符轉(zhuǎn)換成另外的意義。,2.2 常量與變量,11,優(yōu)質(zhì)內(nèi)容,字符常量的值:該字符的ASCII碼值,如 A65, a97, 048 , n10,2.2 常量與變量,12,優(yōu)質(zhì)內(nèi)容,如 101 -A 012 -n 376 - x61 -a 060 -0,例 轉(zhuǎn)義字符舉例 int main() prin
6、tf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C); ,運行結(jié)果:(屏幕顯示) A B C Isay:”How are you?” C Program Turbo C,2.2 常量與變量,13,優(yōu)質(zhì)內(nèi)容,字符常量與字符串常量不同,5.字符串常量 定義:用雙引號(“”)括起來的字符序列 存儲:每個字符串尾自動加一個 0 作為字符串結(jié)束標(biāo)志,例: char ch; ch=“A”;,例: char ch; ch=A;,2.2 常量與變量,14,優(yōu)質(zhì)內(nèi)容,6.符號常量 (1)標(biāo)識符 定義:用來
7、標(biāo)識變量、常量、函數(shù)等的字符序列 組成: 只能由字母、數(shù)字、下劃線組成,且第一個字母必須是字母或下劃線 大小寫敏感 不能使用關(guān)鍵字 長度:最長32個字符 命名原則: 見名知義 不宜混淆 如1與l, o與0,2.2 常量與變量,15,優(yōu)質(zhì)內(nèi)容,在C語言中,允許將程序中的常量定義為一個標(biāo)識符,稱為符號常量。在使用符號常量前必須先加以定義,一般情況下,符號常量使用大寫英文字母表示。,其定義的一般形式為: #define 例如: #define PRICE 35,2.2 常量與變量,16,優(yōu)質(zhì)內(nèi)容,2.2.2 變量 概念:其值可以改變的量 變量名與變量值 變量定義的一般格式: 數(shù)據(jù)類型 變量1,變量2
8、,變量n; 變量初始化:定義時賦初值 變量的使用:先定義,后使用,決定分配字節(jié)數(shù) 和數(shù)的表示范圍,合法標(biāo)識符,例: int a,b,c; float data;,例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1; ,2.2 常量與變量,17,優(yōu)質(zhì)內(nèi)容,變量定義位置:一般放在函數(shù)開頭,2.2 常量與變量,18,優(yōu)質(zhì)內(nèi)容,與常量類似,變量也有不同的類型,一般可以分為以下三種類型: 整型變量 實型變量 字符變量,2.2 常量與變量,19,優(yōu)質(zhì)內(nèi)容,1.整型變量 (1)整型變量的分類 基本型 短整型 長
9、整型 無符號整型,基本型:類型說明符為int,在內(nèi)存中占2個字節(jié)。,短整型:類型說明符為short int或short,所占字節(jié)和取值范圍均與基本型相同。,長整型:類型說明符為long int或long,在內(nèi)存中占4個字節(jié)。,無符號整型:類型說明符為unsigned。 . 無符號基本型:類型說明符為 unsigned int或 unsigned。 . 無符號短整型:類型說明符為unsigned short。 . 無符號長整型:類型說明符為unsigned long。,2.2 常量與變量,20,優(yōu)質(zhì)內(nèi)容,例2-1 整型變量的使用 #include int main() int x,y,z; x=
10、10;y=20; z=x+y; printf(“x+y=%dn”,z); return 0; 輸出結(jié)果:x+y=30,(2)整型變量的定義與使用,2.2 常量與變量,21,優(yōu)質(zhì)內(nèi)容,int x; x=10; 則變量x的值10在內(nèi)存中的存放形式: int x; x=-10; 則變量x的值10在內(nèi)存中的存放形式:,(3)整型數(shù)據(jù)在內(nèi)存中的存放形式,2.2 常量與變量,22,優(yōu)質(zhì)內(nèi)容,例2-2 整型數(shù)據(jù)的溢出問題 #include int main() int x, y; x=32767; y=x+1; printf(%d,%dn,x,y); return 0; 運行結(jié)果:-32768 原因:一個i
11、nt型變量只能容納-32768到32767范 圍內(nèi)的數(shù),無法表示超過這個范圍的數(shù)。,(4)整型數(shù)據(jù)的溢出,2.2 常量與變量,23,優(yōu)質(zhì)內(nèi)容,2.實型變量 (1)實型變量的分類 單精度實型:類型說明符為float,在內(nèi)存中占4個字節(jié),提供7位有效數(shù)字。 雙精度實型:類型說明符為double,在內(nèi)存中占8個字節(jié),提供1 5 1 6位有效數(shù)字。,例 float a; a=111111.111; /* a=111111.1*/ double b; b=111111.111; /* b=111111.111*/,2.2 常量與變量,24,優(yōu)質(zhì)內(nèi)容,例2-3實型變量的使用 #include int ma
12、in() float x,y,z; x=10; y=20; z=x+y ; printf(“x+y=%fn”,z); return 0; 運行結(jié)果:x+y=30.000000,(2)實型變量的定義與使用,2.2 常量與變量,25,優(yōu)質(zhì)內(nèi)容,例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */,字符變量存放字符ASCII碼 char與int數(shù)據(jù)間可進(jìn)行算術(shù)運算,沒有字符串變量,用字符數(shù)組存放,(3)字符變量,2.2 常量與變量,26,優(yōu)質(zhì)內(nèi)容,#include int main( ) char c1, c2; /* 定義c1,c
13、2為字符型變量 */ c1 = 97; c2 = 98; /* 將整數(shù)97和98分別賦給c1和c2 */ printf(”%c,%cn”, c1, c2); /* 以字符形式輸出c1和c2 */ printf(”%d,%d”, c1, c2); /* 輸出c1和c2的ASCII碼值 */ printf(”%d”, c1 + c2); return 0; 運行結(jié)果如下: a,b 97,98,2.2 常量與變量,27,優(yōu)質(zhì)內(nèi)容,例 #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; c
14、h1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); ,運行結(jié)果: total=37.500000, ch1=d,(4)變量的初始化,2.2 常量與變量,28,優(yōu)質(zhì)內(nèi)容,運算符的分類,2.3 運算符與表達(dá)式,29,優(yōu)質(zhì)內(nèi)容,定義:由常量、變量、函數(shù)、運算符和括號組合起來的、符合C語法規(guī)則的式子稱為表達(dá)式。 一個表達(dá)式有一個值以及其對應(yīng)的類型 表達(dá)式求值首先進(jìn)行優(yōu)先級高的運算再進(jìn)行優(yōu)先級低的運算,然后對于優(yōu)先級相同的運算按結(jié)合方向進(jìn)行運算。 結(jié)合方向:左結(jié)合、右結(jié)合 例如:,2.3 運算符與表達(dá)式,30,優(yōu)質(zhì)內(nèi)容,2.3.1算術(shù)運算符及算術(shù)表達(dá)式 1
15、.基本算術(shù)運算符: + - * / % 結(jié)合方向:從左向右 優(yōu)先級:(高)- -* / % - + - 說明: “-”可為單目運算符時,右結(jié)合性 兩整數(shù)相除,結(jié)果為整數(shù),如果兩整數(shù)中有一個是負(fù)數(shù),舍入規(guī)則為“向零取整” 如果運算的兩個數(shù)中有一個是實型,則結(jié)果為double型 %要求兩側(cè)均為整型數(shù)據(jù),例 5/2 = 2 -5/2.0 = -2.5 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 (),2.3 運算符與表達(dá)式,31,優(yōu)質(zhì)內(nèi)容,#include int main( ) printf(”10-9/6*5 = %d”, 10 9 / 6 * 5); re
16、turn 0; 運行結(jié)果如下: 10-9/6*5 = 5,#include main() int x=5,y; y=+x; printf(%dn,y); 輸出結(jié)果: 6,例2-5 計算表達(dá)式10-9/6*5,2.3 運算符與表達(dá)式,32,優(yōu)質(zhì)內(nèi)容,例2-6 計算表達(dá)式10-3.0/2的值 #include int main( ) printf(”10-3.0/2=%f”, 10 - 3.0 / 2); 運行結(jié)果如下: 10-3.0/2=8.500000,2.3 運算符與表達(dá)式,33,優(yōu)質(zhì)內(nèi)容,2.算術(shù)表達(dá)式 定義:用算術(shù)運算符和括號將運算對象連接起來的、符合C語法規(guī)則的式子稱為算術(shù)表達(dá)式。其中
17、的運算對象包括常量、變量、函數(shù)等。 例如:x+y、(x*2)/y、sin(x)sin(y)等都是算術(shù)表達(dá)式。,2.3 運算符與表達(dá)式,34,優(yōu)質(zhì)內(nèi)容,(1) (x+y)h2 (2) s(s-a)(s-b)(s-c) (3) (x+1)2+(y-1)2 在C語言中,其合法的算術(shù)表達(dá)式如下: (1) (x+y)*h/2.0 (2) s*(s-a)*(s-b)*(s-c) (3) (x+1)*(x+1)+(y-1)*(y-1),例2-7 寫出下列數(shù)學(xué)表達(dá)式對應(yīng)的合法的C算術(shù) 表達(dá)式,2.3 運算符與表達(dá)式,35,優(yōu)質(zhì)內(nèi)容,種類: = = != 結(jié)合方向:自左向右 優(yōu)先級別: 關(guān)系運算符優(yōu)先級低于算術(shù)
18、運算符,2.3.2 關(guān)系運算符及關(guān)系表達(dá)式 1.關(guān)系運算符,例:ca+b 等價于 c(a+b) ab!=c (ab)!=c a=bc a=(bc),2.3 運算符與表達(dá)式,36,優(yōu)質(zhì)內(nèi)容,關(guān)系運算結(jié)果:1(真)和 0(假) 例2-8 計算下列關(guān)系表達(dá)式的值 (1) 1010 (2) 10=10 (3) 1010!=10 (4) 3*8-9!=5+7%3,2.3 運算符與表達(dá)式,37,優(yōu)質(zhì)內(nèi)容,2.關(guān)系表達(dá)式 關(guān)系表達(dá)式的值:是邏輯值“真(True)”或“假(False)”,用1或0表示 關(guān)系表達(dá)式例子 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc,/表達(dá)式
19、值1,/表達(dá)式值1,/表達(dá)式值0,/d=1,/f=0,2.3 運算符與表達(dá)式,38,優(yōu)質(zhì)內(nèi)容,種類: ! int i; i=10; f=i; 則 f=10.0,錯誤: 3=x-2*y; a+b=3;,2.賦值表達(dá)式,2.3 運算符與表達(dá)式,50,優(yōu)質(zhì)內(nèi)容,賦值表達(dá)式的值與變量值相等,且可嵌套。,例: a=12; a+=a-=a*a,/a=-264 等價于a=a+(a=a-(a*a),2.3 運算符與表達(dá)式,51,優(yōu)質(zhì)內(nèi)容,復(fù)合的賦值運算符 在“=”前面加上其他運算符 種類 += -= *= /= %= = x = 10; y = +x; 此時,變量y的值為11。 如果程序改為: x = 10;
20、 y = x+; 則變量y的值為10。,2.3.5 增量運算符,2.3 運算符與表達(dá)式,53,優(yōu)質(zhì)內(nèi)容,一般形式: expr1 ? expr2 : expr3 由常量、變量、函數(shù)、運算符和括號組合起來的、符合C語法規(guī)則的式子稱為表達(dá)式。 執(zhí)行過程,2.3.6 條件運算符及條件表達(dá)式,2.3 運算符與表達(dá)式,54,優(yōu)質(zhì)內(nèi)容,結(jié)合方向:自右向左 例2-13 假設(shè)變量 x = 10,y = 20, z = 30,計算下列條件表達(dá)式的值。 (1) x 10 ? 100 : 200 (2) x 10 ? x+z : y 20 ? y + z : z,2.3 運算符與表達(dá)式,55,優(yōu)質(zhì)內(nèi)容,一般形式: 表達(dá)式1,表達(dá)式2,表達(dá)式n 結(jié)合性:從左向右 優(yōu)先級: 15 逗號表達(dá)式的值:等于表達(dá)式n的值 例如:1. x=(y=1,y+1); 2. y=20; x=(y=y-10,10/y);,2.3.7 逗號運算符及逗號表達(dá)式,2.3 運算符與表達(dá)式,56,優(yōu)質(zhì)內(nèi)容,例1a=3*5,a*4
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 灑水車租車合同協(xié)議書
- 電梯監(jiān)理協(xié)議書
- 退還公款協(xié)議書
- 職員崗位協(xié)議書
- 烤煙專業(yè)化烘烤協(xié)議書
- 萊茵合作協(xié)議書
- 藍(lán)城小鎮(zhèn)協(xié)議書
- 稅款劃扣協(xié)議書
- 拱形棚造價合同協(xié)議書
- 租地改建協(xié)議書
- 2025-2031年中國醫(yī)學(xué)檢驗市場深度分析及行業(yè)前景展望報告
- 醫(yī)院培訓(xùn)課件:《中華人民共和國母嬰保健法》
- 佛山市普通高中2025年高三第二次診斷性檢測生物試卷含解析
- 道路竣工測量重點基礎(chǔ)知識點
- 《相控陣?yán)走_(dá)技術(shù)與應(yīng)用》課件
- 人教版(2024)七年級下冊生物期末復(fù)習(xí)知識點背誦提綱
- 嚴(yán)重過敏反應(yīng)診斷和臨床管理專家共識(2025)解讀
- 物業(yè)標(biāo)準(zhǔn)化管理手冊大全
- 遙感地質(zhì)勘查服務(wù)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 快手開店合同協(xié)議
- 2025至2030年中國儲能變流器(PCS)產(chǎn)業(yè)投資規(guī)劃及前景預(yù)測報告
評論
0/150
提交評論