




已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
.,第二章數(shù)據(jù)類型運算符和表達(dá)式,.,第二章數(shù)據(jù)類型、運算符和表達(dá)式,內(nèi)容提要數(shù)據(jù)類型常量與變量運算符與表達(dá)式,.,2.1數(shù)據(jù)類型,數(shù)據(jù)類型總表,數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進(jìn)行的操作,.,說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機(jī)器硬件不同而不同,上表以IBMPC機(jī)為例。,基本數(shù)據(jù)類型,2.1數(shù)據(jù)類型,.,2.2常量與變量,數(shù)據(jù)是程序的處理對象C語言將數(shù)據(jù)分為常量與變量,.,2.2.1常量1.常量的定義及分類定義:程序運行的過程中,其值不能改變的量。分類:整型常量實型常量字符常量字符串常量符號常量,2.2常量與變量,.,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)100 x123=1x162+2x161+3x160=(291)100Xff=15x161+15x160=(255)10,2.2常量與變量,.,整型常量的說明(1)空白字符不可以出現(xiàn)在整數(shù)數(shù)字之間(2)根據(jù)其值所在范圍確定其數(shù)據(jù)類型(3)在整常量后加字母l或L,認(rèn)為它是longint型常量,例如30000為int型65536為longint型79L、012L為longint型,2.2常量與變量,.,3.實型常量實常數(shù)或浮點數(shù),是一個十進(jìn)制表示的符號實數(shù)表示形式:十進(jìn)制小數(shù)形式digits.digits如0.123,.123,123.0,0.0,123.指數(shù)形式(包括整數(shù)部分、尾數(shù)部分和指數(shù)部分)digits.digitsE|e+|-digits小數(shù)點之前是整數(shù)部分,小數(shù)點之后是尾數(shù)部分,小數(shù)點在沒有尾數(shù)時可省略。如12.3e3,123E2,2.2常量與變量,.,實型常量的說明(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常量與變量,.,4.字符常量定義:用單引號括起來的單個普通字符或轉(zhuǎn)義字符。分為一般字符常量和特殊字符常量一般字符常量:如a、9、!等。單引號只起定界作用并不表示字符本身,中間的字符可以是除單引號()和反斜杠()以外的數(shù)字、字母等C語言字符集中包含的所有可顯示字符。特殊字符常量(也叫轉(zhuǎn)義字符)是C語言中表示字符的一種特殊形式,其含義為將反斜杠()后面的字符轉(zhuǎn)換成另外的意義。,2.2常量與變量,.,字符常量的值:該字符的ASCII碼值,如A65,a97,048,n10,2.2常量與變量,.,13,如101-A012-n376-x61-a060-0,例轉(zhuǎn)義字符舉例intmain()printf(101x42Cn);printf(Isay:Howareyou?n);printf(CProgramn);printf(TurboC);,運行結(jié)果:(屏幕顯示)ABCIsay:”Howareyou?”CProgramTurboC,2.2常量與變量,.,字符常量與字符串常量不同,5.字符串常量定義:用雙引號(“”)括起來的字符序列存儲:每個字符串尾自動加一個0作為字符串結(jié)束標(biāo)志,例:charch;ch=“A”;,例:charch;ch=A;,2.2常量與變量,.,6.符號常量(1)標(biāo)識符定義:用來標(biāo)識變量、常量、函數(shù)等的字符序列組成:只能由字母、數(shù)字、下劃線組成,且第一個字母必須是字母或下劃線大小寫敏感不能使用關(guān)鍵字長度:最長32個字符命名原則:見名知義不宜混淆如1與l,o與0,2.2常量與變量,.,在C語言中,允許將程序中的常量定義為一個標(biāo)識符,稱為符號常量。在使用符號常量前必須先加以定義,一般情況下,符號常量使用大寫英文字母表示。,其定義的一般形式為:#define例如:#definePRICE35,2.2常量與變量,.,2.2.2變量概念:其值可以改變的量變量名與變量值變量定義的一般格式:數(shù)據(jù)類型變量1,變量2,變量n;變量初始化:定義時賦初值變量的使用:先定義,后使用,決定分配字節(jié)數(shù)和數(shù)的表示范圍,合法標(biāo)識符,例:inta,b,c;floatdata;,例:inta=2,b,c=4;floatdata=3.67;charch=A;intx=1,y=1,z=1;intx=y=z=1;,2.2常量與變量,.,變量定義位置:一般放在函數(shù)開頭,2.2常量與變量,.,與常量類似,變量也有不同的類型,一般可以分為以下三種類型:整型變量實型變量字符變量,2.2常量與變量,.,1.整型變量(1)整型變量的分類基本型短整型長整型無符號整型,基本型:類型說明符為int,在內(nèi)存中占2個字節(jié)。,短整型:類型說明符為shortint或short,所占字節(jié)和取值范圍均與基本型相同。,長整型:類型說明符為longint或long,在內(nèi)存中占4個字節(jié)。,無符號整型:類型說明符為unsigned。.無符號基本型:類型說明符為unsignedint或unsigned。.無符號短整型:類型說明符為unsignedshort。.無符號長整型:類型說明符為unsignedlong。,2.2常量與變量,.,例2-1整型變量的使用#includeintmain()intx,y,z;x=10;y=20;z=x+y;printf(“x+y=%dn”,z);return0;輸出結(jié)果:x+y=30,(2)整型變量的定義與使用,2.2常量與變量,.,intx;x=10;則變量x的值10在內(nèi)存中的存放形式:intx;x=-10;則變量x的值10在內(nèi)存中的存放形式:,(3)整型數(shù)據(jù)在內(nèi)存中的存放形式,2.2常量與變量,.,例2-2整型數(shù)據(jù)的溢出問題#includeintmain()intx,y;x=32767;y=x+1;printf(%d,%dn,x,y);return0;運行結(jié)果:-32768原因:一個int型變量只能容納-32768到32767范圍內(nèi)的數(shù),無法表示超過這個范圍的數(shù)。,(4)整型數(shù)據(jù)的溢出,2.2常量與變量,.,2.實型變量(1)實型變量的分類單精度實型:類型說明符為float,在內(nèi)存中占4個字節(jié),提供7位有效數(shù)字。雙精度實型:類型說明符為double,在內(nèi)存中占8個字節(jié),提供1516位有效數(shù)字。,例floata;a=111111.111;/*a=111111.1*/doubleb;b=111111.111;/*b=111111.111*/,2.2常量與變量,.,例2-3實型變量的使用#includeintmain()floatx,y,z;x=10;y=20;z=x+y;printf(“x+y=%fn”,z);return0;運行結(jié)果:x+y=30.000000,(2)實型變量的定義與使用,2.2常量與變量,.,例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常量與變量,.,#includeintmain()charc1,c2;/*定義c1,c2為字符型變量*/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);return0;運行結(jié)果如下:a,b97,98,2.2常量與變量,.,例#definePRICE12.5main()intnum=3;floattotal;charch1,ch2=D;total=num*PRICE;ch1=ch2-A+a;printf(“total=%f,ch1=%cn”,total,ch1);,運行結(jié)果:total=37.500000,ch1=d,(4)變量的初始化,2.2常量與變量,.,運算符的分類,2.3運算符與表達(dá)式,.,定義:由常量、變量、函數(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á)式,.,2.3.1算術(shù)運算符及算術(shù)表達(dá)式1.基本算術(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.55%2=1-5%2=-11%10=15%1=05.5%2(),2.3運算符與表達(dá)式,.,#includeintmain()printf(”10-9/6*5=%d”,109/6*5);return0;運行結(jié)果如下:10-9/6*5=5,#includemain()intx=5,y;y=+x;printf(%dn,y);輸出結(jié)果:6,例2-5計算表達(dá)式10-9/6*5,2.3運算符與表達(dá)式,.,例2-6計算表達(dá)式10-3.0/2的值#includeintmain()printf(”10-3.0/2=%f”,10-3.0/2);運行結(jié)果如下:10-3.0/2=8.500000,2.3運算符與表達(dá)式,.,2.算術(shù)表達(dá)式定義:用算術(shù)運算符和括號將運算對象連接起來的、符合C語法規(guī)則的式子稱為算術(shù)表達(dá)式。其中的運算對象包括常量、變量、函數(shù)等。例如:x+y、(x*2)/y、sin(x)sin(y)等都是算術(shù)表達(dá)式。,2.3運算符與表達(dá)式,.,(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á)式,.,種類:=!=結(jié)合方向:自左向右優(yōu)先級別:關(guān)系運算符優(yōu)先級低于算術(shù)運算符,2.3.2關(guān)系運算符及關(guān)系表達(dá)式1.關(guān)系運算符,例:ca+b等價于c(a+b)ab!=c(ab)!=ca=bca=(bc),2.3運算符與表達(dá)式,.,關(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á)式,.,2.關(guān)系表達(dá)式關(guān)系表達(dá)式的值:是邏輯值“真(True)”或“假(False)”,用1或0表示關(guān)系表達(dá)式例子inta=3,b=2,c=1,d,f;ab(ab)=cb+cbf=abc,/表達(dá)式值1,/表達(dá)式值1,/表達(dá)式值0,/d=1,/f=0,2.3運算符與表達(dá)式,.,種類:!inti;i=10;f=i;則f=10.0,錯誤:3=x-2*y;a+b=3;,2.賦值表達(dá)式,2.3運算符與表達(dá)式,.,賦值表達(dá)式的值與變量值相等,且可嵌套。,例:a=12;a+=a-=a*a,/a=-264等價于a=a+(a=a-(a*a),2.3運算符與表達(dá)式,.,復(fù)合的賦值運算符在“=”前面加上其他運算符種類+=-=*=/=%=x=10;y=+x;此時,變量y的值為11。如果程序改為:x=10;y=x+;則變量y的值為10。,2.3.5增量運算符,2.3運算符與表達(dá)式,.,一般形式:expr1?expr2:expr3由常量、變量、函數(shù)、運算符和括號組合起來的、符合C語法規(guī)則的式子稱為表達(dá)式。執(zhí)行過程,2.3.6條件運算符及條件表達(dá)式,2.3運算符與表達(dá)式,.,結(jié)合方向:自右向左例2-13假設(shè)變量x=10,y=20,z=30,計算下列條件表達(dá)式的值。(1)x10?100:200(2)x10?x+z:y20?y+z:z,2.3運算符與表達(dá)式,.,一般形式:表達(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á)式,.,例1a=3*5,a*4a=3*5,a*4,a+5例2x=(a=3,6*3)x=a=3,6*a例3a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);,例2-14計算下列逗號表達(dá)式的值。(1)x=10,x+10(2)(x=1+2,x+3),x+4,2.3運算符與表達(dá)式,.,求字節(jié)數(shù)運算符“sizeof”是C語言提供的一種特殊的運算符,是單目運算符。求字節(jié)數(shù)運算符與操作數(shù)結(jié)合在一起構(gòu)成的式子稱為求字節(jié)數(shù)表達(dá)式。一般形式sizeof(表達(dá)式)或sizeof(數(shù)據(jù)類型名),例sizeof(int)sizeof(/a)sizeofx,
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政管理專業(yè)小自考題庫及答案2024
- 護(hù)理入編考試試題及答案
- 考資料員證試題及答案
- CPBA考試常見知識點及試題及答案
- 忻州特崗考試題及答案
- 2024年商業(yè)分析師考試突破技巧及試題及答案
- 2024年小自考視覺傳播設(shè)計從業(yè)者訪談錄與試題及答案
- 2024年小自考公共事業(yè)管理預(yù)測題及答案
- 視覺傳播設(shè)計重要考試等級與試題及答案
- 2025年云南省事業(yè)單位329聯(lián)考招聘筆試歷年典型考題及考點剖析附帶答案詳解
- 臺灣大學(xué)歐麗娟老師的中國文學(xué)史講義
- 存貨盤點安排通知盤點工作計劃書物資盤點計劃方案
- 客服電話服務(wù)標(biāo)準(zhǔn)
- 藥店保健食品管理制度
- R老年人老年人如何保持適宜體重
- 黑龍江省鐵礦分布情況
- 光伏組件技術(shù)規(guī)范書
- 2023年河南信息統(tǒng)計職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- YY/T 1173-2010聚合酶鏈反應(yīng)分析儀
- GB/T 5195.3-2017螢石105 ℃質(zhì)損量的測定重量法
評論
0/150
提交評論