




已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
.,第二章數據類型運算符和表達式,.,第二章數據類型、運算符和表達式,內容提要數據類型常量與變量運算符與表達式,.,2.1數據類型,數據類型總表,數據類型決定:1.數據占內存字節(jié)數2.數據取值范圍3.其上可進行的操作,.,說明:數據類型所占字節(jié)數隨機器硬件不同而不同,上表以IBMPC機為例。,基本數據類型,2.1數據類型,.,2.2常量與變量,數據是程序的處理對象C語言將數據分為常量與變量,.,2.2.1常量1.常量的定義及分類定義:程序運行的過程中,其值不能改變的量。分類:整型常量實型常量字符常量字符串常量符號常量,2.2常量與變量,.,2.整型常量(既整常數)三種形式:十進制整數:由數字09和正負號表示.如123,-456,0八進制整數:由數字0開頭,后跟數字07表示.如0123,011十六進制整數:由0 x開頭,后跟09,af,AF表示.如0 x123,0Xff,轉換成十進制數的方法:0123=1x82+2x81+3x80=(83)100 x123=1x162+2x161+3x160=(291)100Xff=15x161+15x160=(255)10,2.2常量與變量,.,整型常量的說明(1)空白字符不可以出現在整數數字之間(2)根據其值所在范圍確定其數據類型(3)在整常量后加字母l或L,認為它是longint型常量,例如30000為int型65536為longint型79L、012L為longint型,2.2常量與變量,.,3.實型常量實常數或浮點數,是一個十進制表示的符號實數表示形式:十進制小數形式digits.digits如0.123,.123,123.0,0.0,123.指數形式(包括整數部分、尾數部分和指數部分)digits.digitsE|e+|-digits小數點之前是整數部分,小數點之后是尾數部分,小數點在沒有尾數時可省略。如12.3e3,123E2,2.2常量與變量,.,實型常量的說明(1)實型常量采用十進制小數形式表示時,必須有小數點。例如:123.是實型常量,而123是整型常量(2)采用指數形式表示時,在E或e之前必須要有數字,且之后的指數必須為整數。例如:E6、.e6、e等都是不合法的(3)實型常量的整數部分為0時可以省略,如下形式是允許的:.57,.0075e2,-.125,-.175E-2(4)所有的實型常量均被看作是雙精度類型(double),2.2常量與變量,.,4.字符常量定義:用單引號括起來的單個普通字符或轉義字符。分為一般字符常量和特殊字符常量一般字符常量:如a、9、!等。單引號只起定界作用并不表示字符本身,中間的字符可以是除單引號()和反斜杠()以外的數字、字母等C語言字符集中包含的所有可顯示字符。特殊字符常量(也叫轉義字符)是C語言中表示字符的一種特殊形式,其含義為將反斜杠()后面的字符轉換成另外的意義。,2.2常量與變量,.,字符常量的值:該字符的ASCII碼值,如A65,a97,048,n10,2.2常量與變量,.,13,如101-A012-n376-x61-a060-0,例轉義字符舉例intmain()printf(101x42Cn);printf(Isay:Howareyou?n);printf(CProgramn);printf(TurboC);,運行結果:(屏幕顯示)ABCIsay:”Howareyou?”CProgramTurboC,2.2常量與變量,.,字符常量與字符串常量不同,5.字符串常量定義:用雙引號(“”)括起來的字符序列存儲:每個字符串尾自動加一個0作為字符串結束標志,例:charch;ch=“A”;,例:charch;ch=A;,2.2常量與變量,.,6.符號常量(1)標識符定義:用來標識變量、常量、函數等的字符序列組成:只能由字母、數字、下劃線組成,且第一個字母必須是字母或下劃線大小寫敏感不能使用關鍵字長度:最長32個字符命名原則:見名知義不宜混淆如1與l,o與0,2.2常量與變量,.,在C語言中,允許將程序中的常量定義為一個標識符,稱為符號常量。在使用符號常量前必須先加以定義,一般情況下,符號常量使用大寫英文字母表示。,其定義的一般形式為:#define例如:#definePRICE35,2.2常量與變量,.,2.2.2變量概念:其值可以改變的量變量名與變量值變量定義的一般格式:數據類型變量1,變量2,變量n;變量初始化:定義時賦初值變量的使用:先定義,后使用,決定分配字節(jié)數和數的表示范圍,合法標識符,例: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常量與變量,.,變量定義位置:一般放在函數開頭,2.2常量與變量,.,與常量類似,變量也有不同的類型,一般可以分為以下三種類型:整型變量實型變量字符變量,2.2常量與變量,.,1.整型變量(1)整型變量的分類基本型短整型長整型無符號整型,基本型:類型說明符為int,在內存中占2個字節(jié)。,短整型:類型說明符為shortint或short,所占字節(jié)和取值范圍均與基本型相同。,長整型:類型說明符為longint或long,在內存中占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;輸出結果:x+y=30,(2)整型變量的定義與使用,2.2常量與變量,.,intx;x=10;則變量x的值10在內存中的存放形式:intx;x=-10;則變量x的值10在內存中的存放形式:,(3)整型數據在內存中的存放形式,2.2常量與變量,.,例2-2整型數據的溢出問題#includeintmain()intx,y;x=32767;y=x+1;printf(%d,%dn,x,y);return0;運行結果:-32768原因:一個int型變量只能容納-32768到32767范圍內的數,無法表示超過這個范圍的數。,(4)整型數據的溢出,2.2常量與變量,.,2.實型變量(1)實型變量的分類單精度實型:類型說明符為float,在內存中占4個字節(jié),提供7位有效數字。雙精度實型:類型說明符為double,在內存中占8個字節(jié),提供1516位有效數字。,例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;運行結果: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數據間可進行算術運算,沒有字符串變量,用字符數組存放,(3)字符變量,2.2常量與變量,.,#includeintmain()charc1,c2;/*定義c1,c2為字符型變量*/c1=97;c2=98;/*將整數97和98分別賦給c1和c2*/printf(”%c,%cn”,c1,c2);/*以字符形式輸出c1和c2*/printf(”%d,%d”,c1,c2);/*輸出c1和c2的ASCII碼值*/printf(”%d”,c1+c2);return0;運行結果如下: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);,運行結果:total=37.500000,ch1=d,(4)變量的初始化,2.2常量與變量,.,運算符的分類,2.3運算符與表達式,.,定義:由常量、變量、函數、運算符和括號組合起來的、符合C語法規(guī)則的式子稱為表達式。一個表達式有一個值以及其對應的類型表達式求值首先進行優(yōu)先級高的運算再進行優(yōu)先級低的運算,然后對于優(yōu)先級相同的運算按結合方向進行運算。結合方向:左結合、右結合例如:,2.3運算符與表達式,.,2.3.1算術運算符及算術表達式1.基本算術運算符:+-*/%結合方向:從左向右優(yōu)先級:(高)-*/%-+-說明:“-”可為單目運算符時,右結合性兩整數相除,結果為整數,如果兩整數中有一個是負數,舍入規(guī)則為“向零取整”如果運算的兩個數中有一個是實型,則結果為double型%要求兩側均為整型數據,例5/2=2-5/2.0=-2.55%2=1-5%2=-11%10=15%1=05.5%2(),2.3運算符與表達式,.,#includeintmain()printf(”10-9/6*5=%d”,109/6*5);return0;運行結果如下:10-9/6*5=5,#includemain()intx=5,y;y=+x;printf(%dn,y);輸出結果:6,例2-5計算表達式10-9/6*5,2.3運算符與表達式,.,例2-6計算表達式10-3.0/2的值#includeintmain()printf(”10-3.0/2=%f”,10-3.0/2);運行結果如下:10-3.0/2=8.500000,2.3運算符與表達式,.,2.算術表達式定義:用算術運算符和括號將運算對象連接起來的、符合C語法規(guī)則的式子稱為算術表達式。其中的運算對象包括常量、變量、函數等。例如:x+y、(x*2)/y、sin(x)sin(y)等都是算術表達式。,2.3運算符與表達式,.,(1)(x+y)h2(2)s(s-a)(s-b)(s-c)(3)(x+1)2+(y-1)2在C語言中,其合法的算術表達式如下:(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寫出下列數學表達式對應的合法的C算術表達式,2.3運算符與表達式,.,種類:=!=結合方向:自左向右優(yōu)先級別:關系運算符優(yōu)先級低于算術運算符,2.3.2關系運算符及關系表達式1.關系運算符,例:ca+b等價于c(a+b)ab!=c(ab)!=ca=bca=(bc),2.3運算符與表達式,.,關系運算結果:1(真)和0(假)例2-8計算下列關系表達式的值(1)1010(2)10=10(3)1010!=10(4)3*8-9!=5+7%3,2.3運算符與表達式,.,2.關系表達式關系表達式的值:是邏輯值“真(True)”或“假(False)”,用1或0表示關系表達式例子inta=3,b=2,c=1,d,f;ab(ab)=cb+cbf=abc,/表達式值1,/表達式值1,/表達式值0,/d=1,/f=0,2.3運算符與表達式,.,種類:!inti;i=10;f=i;則f=10.0,錯誤:3=x-2*y;a+b=3;,2.賦值表達式,2.3運算符與表達式,.,賦值表達式的值與變量值相等,且可嵌套。,例:a=12;a+=a-=a*a,/a=-264等價于a=a+(a=a-(a*a),2.3運算符與表達式,.,復合的賦值運算符在“=”前面加上其他運算符種類+=-=*=/=%=x=10;y=+x;此時,變量y的值為11。如果程序改為:x=10;y=x+;則變量y的值為10。,2.3.5增量運算符,2.3運算符與表達式,.,一般形式:expr1?expr2:expr3由常量、變量、函數、運算符和括號組合起來的、符合C語法規(guī)則的式子稱為表達式。執(zhí)行過程,2.3.6條件運算符及條件表達式,2.3運算符與表達式,.,結合方向:自右向左例2-13假設變量x=10,y=20,z=30,計算下列條件表達式的值。(1)x10?100:200(2)x10?x+z:y20?y+z:z,2.3運算符與表達式,.,一般形式:表達式1,表達式2,表達式n結合性:從左向右優(yōu)先級:15逗號表達式的值:等于表達式n的值例如:1.x=(y=1,y+1);2.y=20;x=(y=y-10,10/y);,2.3.7逗號運算符及逗號表達式,2.3運算符與表達式,.,例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計算下列逗號表達式的值。(1)x=10,x+10(2)(x=1+2,x+3),x+4,2.3運算符與表達式,.,求字節(jié)數運算符“sizeof”是C語言提供的一種特殊的運算符,是單目運算符。求字節(jié)數運算符與操作數結合在一起構成的式子稱為求字節(jié)數表達式。一般形式sizeof(表達式)或sizeof(數據類型名),例sizeof(int)sizeof(/a)sizeofx,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國輕質隔墻板行業(yè)市場深度評估及投資方向研究報告
- 2025-2030年中國ZBJ-40型斬拌機項目投資可行性研究分析報告
- 2025年中國手提桶裝泵行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年中國高精度音頻信號發(fā)生器行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃報告
- 2025-2030年中國泛娛樂直播行業(yè)市場運營態(tài)勢及未來趨勢研判報告
- 2025年中國一次成型光學玻璃行業(yè)市場發(fā)展現狀及投資方向研究報告
- 中國筷子消毒機行業(yè)市場調查研究及投資戰(zhàn)略研究報告
- 2025年突發(fā)環(huán)境事件應對工作總結評估的報告
- 2024年中國頁巖氣行業(yè)發(fā)展調查報告
- 2025年中國草種市場運行態(tài)勢及行業(yè)發(fā)展前景預測報告
- 2025年中小學心理健康教育教師考試試題及答案
- 中職學生心理健康教育課件
- 軟件測試行業(yè)項目驗收規(guī)范
- 2024年西藏公安機關招聘警務輔助人員考試真題
- 2025至2030中國棕剛玉F砂行業(yè)市場現狀分析及競爭格局與投資發(fā)展報告
- 2025年福建省中考英語試卷真題(含標準答案)
- 2025至2030中國修船行業(yè)項目調研及市場前景預測評估報告
- 變電運維考試
- 2025年全國統(tǒng)一高考英語試卷(全國二卷)含答案
- 高壓氧艙測試題庫及答案
- T/SHPTA 032.2-2022500 kV及以下海上風電交流海纜用可交聯聚乙烯電纜料第2部分:半導電屏蔽料
評論
0/150
提交評論