




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第3章 基本數(shù)據(jù)類型和表達式張書源本章將詳細介紹C語言程序中使用的基本語法基本語法單位單位、數(shù)據(jù)類型數(shù)據(jù)類型、運算符運算符和表達式表達式。附 數(shù)的表示方法十進制數(shù):由09的數(shù)字組成,逢十進一。如:45、-6、0.019、-14.336二進制數(shù):由0和1組成,逢二進一。如:1011、11、1101 0001 0100十進制0123456789二進制01101110010111011110001001二進制轉(zhuǎn)十進制:(110)2=1*22+1*21+0*20=(6)10(1011)2=1*23+0*22+1*21+1*20=(11)10八進制數(shù):由07組成,逢八進一。如:65、725、-34十進制
2、0123456789八進制012345671011八進制轉(zhuǎn)十進制:(65)8=6*81+5*80=(53)10(725)8=7*82+2*81+5*80=(469)10十六進制數(shù):由09、AF組成,逢十六進一。如:3A、4d6f、-D340十進制0123456789十六進制0123456789十進制10111213141516十六進制ABCDEF10十六進制轉(zhuǎn)十進制:(3A)16=3*161+10*160=(58)10(4d6f)16=4*163+13*162+6*161+15*160=(19823)10C語言中的數(shù)支持十進制、八進制和十六進制。書寫時:八進制數(shù)以0開頭,十六進制數(shù)以0 x開頭
3、。如:34(十進制)034(八進制)0 x34(十六進制)在計算機內(nèi)部,所有數(shù)都是以二進制方式存在的。八進制和十六進制都與二進制有簡單對應(yīng)關(guān)系:每位八進制數(shù)對應(yīng)三位二進制數(shù),每位十六進制數(shù)對應(yīng)四位二進制數(shù)。如:(34)8=(011 100)2(34)16=(0011 0100)2(10 1111 0111)2=(1367)8=(2f7)16通常,八進制數(shù)和十六進制數(shù)都可看做是二進制數(shù)的簡化寫法。3.1 基本語法單位基本符號:C語言程序中只能使用以下符號:1、數(shù)字:092、字母:大小寫英文字母3、符號:+ - * / % & = _ ( ) , . ? ! # 等注:注釋文字和字符串中的
4、文字不受此限制。關(guān)鍵字(保留字):C語言中已經(jīng)有了固定語法含義的名字稱為關(guān)鍵字。關(guān)鍵字不能再作為其它用途使用。語句名都是關(guān)鍵字。如if、else、while、for、return等。類型名都是關(guān)鍵字。如int、double、void等。注:由于C語言區(qū)分大小寫,所以for是關(guān)鍵字,而For、FOR則不是。標(biāo)識符:標(biāo)識符用于給變量、常量、函數(shù)、文件等命名。標(biāo)識符的命名規(guī)則:1、由字母、數(shù)組、下劃線組成,且只能以字母或下劃線開頭。2、標(biāo)識符中的字母區(qū)分大小寫。3、不能與關(guān)鍵字同名。特定字:特定字是標(biāo)識符不是關(guān)鍵字,但它們在C語言中已經(jīng)有了較固定的用法,應(yīng)避免當(dāng)做一般標(biāo)識符使用。如:include、
5、define等用于編譯預(yù)處理。練習(xí):以下哪些符號是合法的標(biāo)識符?a3 3a x$ _b5 if IF main 3.2 數(shù)據(jù)類型C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef字符類型char枚舉類型enum整 型實型單精度型float雙精度型double數(shù)組結(jié)構(gòu)體struct共用體union短整型short長整型long整型int3.3 基本數(shù)據(jù)類型基本數(shù)據(jù)類型包括整型、實型和字符型。3.3.1 整型int:整型。short:短整型。long:長整型。unsigned int:無符號整型。unsigned short:無符號短整型。unsigned long:無符號長整
6、型。各種整型的區(qū)別在于數(shù)的取值范圍不同。整型常量:寫法含義實例普通寫法int型125、-125加后綴l或Llong型125L、-125L加后綴u或U無符號型125U 是 unsigned int型125UL 是 unsigned long型加前綴0八進制數(shù)0125的值相當(dāng)于十進制數(shù)85加前綴0 x十六進制數(shù) 0 x125的值相當(dāng)于十進制數(shù)293整型變量:類型名 變量1,變量2,;int x,y,max;unsigned int i,j;long k;unsigned long m,n;以上變量都是整型變量,但它們允許存放的數(shù)值范圍不同。3.3.2 實型float:單精度實型。double:雙精
7、度實型。float型提供7位有效數(shù)字,double型提供1516位有效數(shù)字。實型常量:1、普通寫法:默認(rèn)為double型。如7.5、-1.228。2、加后綴f或F:單精度型。如7.5f類型是float。3、科學(xué)計數(shù)法:尾數(shù) e或E 指數(shù)如:1.5e-3 表示 1.510-30.02E6 表示 0.02106注:指數(shù)必須為整數(shù)。實型不支持無符號型,也不支持八進制和十六進制寫法。實型變量:類型名 變量1,變量2,;double x,y;float z;x=-11.26;y=7e3;z=5E-4;3.3.3 字符型char:字符型。unsigned char:無符號字符型。在計算機中,所有文字和符號
8、也都是由數(shù)字表示的。我們把表示文字的數(shù)值稱為編碼。C語言中,字符型的長度為8位二進制數(shù),最多只能表示256個字符。其中值為0127的數(shù)值表示的是ASCII碼表中的字符。字符常量:1、可打印字符:如 a、7、;。說明:字符常量只能是單個字符,值為ASCII碼值,不能是漢字。2、轉(zhuǎn)義字符:包括不可打印字符和一些有特定功能的字符。t 制表符,相當(dāng)于Tab鍵形成的跳格。n 換行符,相當(dāng)于回車鍵。 單引號。 雙引號。 反斜杠。 0 空字符,它的值為0。說明:一個轉(zhuǎn)義字符只相當(dāng)于一個字符。字符型變量:類型名 變量1,變量2,;char c1,c2;unsigned char x;c1=#;c2=7;x=n
9、;3.3.4 字符串字符串是由文字組成的文本串。C語言沒有提供字符串類型,但支持在程序中使用字符串。字符串中可包含英文、中文、日文等任意文字,它們的值取決于系統(tǒng)使用的編碼。通常英文字母和符號使用長度為8位的ASCII碼,漢字使用長度為16位的GBK或GB2312碼。字符串中可包含轉(zhuǎn)義字符。字符串常量:用雙引號引起的文本串。Hello World!你好,北京!蘋果t桔子t香蕉nC:Windows說明:t、n、都是轉(zhuǎn)義字符,它們只相當(dāng)于一個字符。字符串變量:C語言用0結(jié)尾的字符數(shù)組作為字符串變量。char s15=a,b,c,d,0; /s的值為abcdchar s2=abcd;說明:C語言在處理
10、字符串常量時會自動在末尾加上0字符。練習(xí):1 和 1.0 有什么區(qū)別?1是int型,1.0是double型。1 和 1 有什么區(qū)別?1是int型,它的值是1。1是char型,它的值是49。1 和 1 有什么區(qū)別?1是char型,它是單個字符。1是字符串,它由1和0兩個字符組成。3.3.5 變量定義及初始化C語言規(guī)定:1、所有變量必須先定義再使用。2、變量在沒有設(shè)置值前,它的值是不確定的。3、變量的類型在程序執(zhí)行過程中不能發(fā)生改變。4、當(dāng)賦給變量的值超出了它的取值范圍,其值會被截斷。變量定義:變量通常在函數(shù)開始處定義,定義時可以設(shè)置初值(初始化),也可以不設(shè)置初值。int a,b=10,c=1;
11、char c1=K;double x=7.5,y;變量名必須是標(biāo)識符,同一個函數(shù)中變量不能重名。3.4 表達式和運算符C語言提供了豐富的運算符,可構(gòu)建多種形式的表達式。表達式由操作數(shù)和運算符組成,每個表達式可產(chǎn)生一個確定的值。3.4.1 算數(shù)運算1、算數(shù)運算符:*乘整數(shù)或?qū)崝?shù)2*3 1.5*3.8/除整數(shù)或?qū)崝?shù)2/3 1.5/3.8%模整數(shù)6%2 6%4+加整數(shù)或?qū)崝?shù)75+88 13.6+5-減整數(shù)或?qū)崝?shù)13-6 7.1-2.3-取負(fù) 整數(shù)或?qū)崝?shù)-5 -8.3+增1整型變量x+ +x-減1整型變量x- -x說明:1、整數(shù)的運算結(jié)果還是整數(shù),實數(shù)的運算結(jié)果是實數(shù),整數(shù)和實數(shù)的運算結(jié)果是實數(shù)。運算
12、結(jié)果2*5102*2.55.0 (不是5)5/22 (不是2.5)5/2.02.5注意:模運算只能用于整數(shù),不能用于實數(shù)。2、優(yōu)先級:*、/、%的優(yōu)先級高于+、-。運算結(jié)果1+2*511(1+2)*5155%2*223、在表達式中,只能用圓括號改變運算的優(yōu)先順序。如:算式:)()(2)3(510bayxbax寫成C表達式:(10*x+5*(3*a+b)/(2*(x+y)*(a-b)注:C語言中運算符不能省略,如10 x必須寫成10*x。4、自加運算和自減運算:+:增1,對變量的值加1。-:減1,對變量的值減1。如:x+ 等價于 x=x+1x- 等價于 x=x-1說明:(1) 自加和自減只能作用
13、于單個整型變量。如:(x+y)+ 是沒有意義的。(2) 自加和自減有前綴用法和后綴用法。int x=2;x+; /相當(dāng)于x = x+1int x=2;+x; /相當(dāng)于x = x+1單獨使用時,前綴用法和后綴用法效果是相同的。(3) 前綴方式是“先增值后引用”,后綴方式是“先引用后增值”。int x=2, y;y = +x;x先增1,再賦值給y。所以x為3,y為3。int x=2, y;y = x+;先把x賦值給y,再對x增1。所以x為3,y為2。建議:盡量不要使用容易誤解的用法。int x=2, y;y = +x;int x=2, y;+x;y = x;int x=2, y;y = x+;in
14、t x=2, y;y = x;x+;推薦推薦int i=2, n;n = +i*2;int i=2, n;n = i+*2;+i是先增值,后引用。所以,運算后:i值為3,n值為6。i+是先引用,后增值。所以,運算后:i值為3,n值為4。(4) “+”和“-”運算的優(yōu)先級高于乘法和除法。2、常用數(shù)學(xué)函數(shù):C語言的數(shù)學(xué)函數(shù)在頭文件math.h中聲明。絕對值函數(shù):int abs(int i) 求整數(shù)的絕對值double fabs(double x) 求實數(shù)的絕對值abs(-3)3fabs(-3)3.0fabs(-0.5*3)1.5平方根函數(shù):double sqrt(double x) 求平方根,x不
15、能為負(fù)sqrt(2)sqrt(a+b)2ba指數(shù)函數(shù)和對數(shù)函數(shù):double pow(double x, double y) 求x的y次方double exp(double x) 求e的x次方double log(double x) 求x的自然對數(shù)double log10(double x) 求x的以10為底的對數(shù)pow(3, 4)exp(3.5)log(10)log10(10)4310loge10ln10log1010lg5 . 3e三角函數(shù):double sin(double x) 求x正弦值double cos(double x) 求x的余弦值double tan(double x) 求
16、x的正切值以上函數(shù)中的x均為弧度。sin(30*3.14/180)cos(60*3.14/180)30sin()60cos(練習(xí)把下面的算式寫成C表達式。(abs(a)+1)*(abs(b)+1) 11baaacbb242(-b+sqrt(b*b-4*a*c)/(2*a)例題寫一個C程序,輸入圓的半徑,計算并輸出圓的周長和面積。算法:輸入半徑r計算圓的周長c=2r計算圓的面積s=r2輸出c和s。#include #define PI 3.1415926int main() double r,c,s; scanf(%f,&r); c=2*PI*r; s=PI*r*r; printf(周長
17、為%fn,c); printf(面積為%fn,s); return 0;3.4.2 賦值運算1、賦值運算符:在C語言中,賦值是一種運算,用于改變變量的值?!?”稱為賦值運算符,它組成的表達式稱為賦值表達式。賦值表達式格式:變量名 = 表達式這個運算的值是賦值后變量的值。實例1:int n; /*聲明了一個整型變量n*/n = 1; /*n賦值為1*/n = 1; 是一個表達式語句。實例2:int n = 1;n = 2.5;n是整型變量,賦值時會把小數(shù)截去,n的值為2。實例3:double x;x = 2.5;x的值是2.5。實例4:int a = 1, b = 2;a = a+b;a的值是3
18、。實例5:int a, b, c;a = b = c = 10;賦值是一種運算,具有“自右向左”的結(jié)合性。先計算表達式 c = 10,c賦值為10,表達式值為10。再計算表達式 b = 表達式值,b賦值為10,表達式值為10。再計算表達式 a = 表達式值,a賦值為10,表達式值為10。執(zhí)行結(jié)果為a、b、c的值都是10。練習(xí):int a, b, c=1;a = 5;b = 2+(c=a);結(jié)果:a 的值是5;b 的值是7;c 的值是5。2、自反賦值運算符:自反賦值是某些賦值的簡化形式。*=乘賦值 x *= yx = x*y/=除賦值 x /= yx = x/y%=模賦值 x %= yx = x
19、%y+=加賦值 x += yx = x+y-=減賦值 x -= yx = x-y說明:賦值運算符(含自反賦值運算符)的優(yōu)先級低于算術(shù)運算符,所以應(yīng)先計算y+2,再進行自反賦值運算。int a=1, b=2;a += b; /* 相當(dāng)于a=a+b,執(zhí)行后a為3 */int x=2, y=3;x *= y+2; /* 相當(dāng)于x=x*(y+2),執(zhí)行后x為10 */說明:賦值和自反賦值運算符都是右結(jié)合的。計算過程為:a-=2*2; /a=a-2*2,值為-3,此時a值也變?yōu)?3a+=-3; /a=a+(-3),值為-6int a=1;a += a -= 2*2;3.4.3 關(guān)系運算1、關(guān)系運算符:大
20、于()大于等于()=小于()小于等于()3 的值為15=3 的值為02=b+c2、a%b=c3、acb4、a=a1000說明:由于實數(shù)在運算時存在有效數(shù)字的問題,應(yīng)盡量避免對實數(shù)表達式做“相等”或“不等”的判斷。如:1.0/3*3=1.0在數(shù)學(xué)上兩邊是相等的,但在計算機中計算后兩邊的值不相等。3.4.4 邏輯運算1、邏輯運算符:邏輯與&邏輯或|邏輯非!當(dāng)一個判斷存在多個條件時,需要用邏輯運算對條件進行組合。邏輯與:當(dāng)條件均為真時,結(jié)果為真,有任一個條件為假,結(jié)果就是假。如:53 & 7=3 & 73 | 78 的值為158 的值為0F | F0(F)F | T1(T)T
21、 | F1(T)T | T1(T)F為假,T為真。邏輯非:真的非是假,假的非是真。如:!(53) 的值為0!(7=8) 的值為1!F1(T)!T0(F)F為假,T為真。命題1:x是1到100間的整數(shù)。x=1 & x=1 & x=100)x100或者命題3:x是小寫英文字母。x=a & x=a & x=A & x、=、=關(guān)系雙目=、!=關(guān)系雙目&邏輯雙目|邏輯雙目=、+=、-=、*=、/=、%=賦值2、在進行&運算時,當(dāng)左端的運算結(jié)果為“假”時,結(jié)果就是0,不再計算另一端。在進行|運算時,當(dāng)左端的運算結(jié)果為“真”時,結(jié)果就是1,不再計算另一
22、端。如:int a=2, x;計算表達式:a0 & (x=3)表達式值為1,x=3執(zhí)行,x值為3。練習(xí):命題1:a小于b或a小于c。ab | ac & bc命題3:a和b其中之一小于c。ac | b0)命題5:a是奇數(shù)。a%2=1命題6:a不能被b整除。a%b!=03.4.5 逗號運算符逗號表達式:表達式1,表達式2,表達式3這種用逗號連接起來的表達式稱為逗號表達式。從語法上,它相當(dāng)于一個表達式,它的值是最后一個表達式的值。如:1+2, 5*3 的值為15說明:逗號運算符的優(yōu)先級是最低的。如:x=1+2, 5*3 的效果是x值為3,逗號表達式的值為15x=(1+2,5*3) 的效果是x值為153.4.6 條件運算符條件表達式:表達式1?表達式2:表達式3?:是條件運算符,它是C語言中
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度汽車美容保養(yǎng)訂車協(xié)議及購車合同范本
- 2025年度能源開發(fā)合作合同終止與解除條款
- 二零二五年度白酒銷售合同書版:白酒銷售渠道拓展與品牌合作推廣協(xié)議
- 垃圾清運與環(huán)保教育合同
- 2025年度稅務(wù)籌劃與稅務(wù)籌劃改進合同
- 2025年度鋼結(jié)構(gòu)工程信息化管理與應(yīng)用合同匯編
- 第1課 物聯(lián)網(wǎng)發(fā)展簡述 教學(xué)設(shè)計 2024-2025學(xué)年 贛科版初中信息技術(shù)八年級上冊
- 2024年全國1卷立體幾何大題的教學(xué)設(shè)計
- 咖啡藝術(shù)館裝飾合同樣本
- 2025年度水果蔬菜貨物委托運輸協(xié)議
- 金礦探礦權(quán)合作協(xié)議書范文范本
- 期末試卷(試題)-2024-2025學(xué)年四年級上冊數(shù)學(xué)滬教版
- 小學(xué)五年級美術(shù)《青花瓷》
- 浙江水利專業(yè)高級工程師任職資格考試題及答案
- 醇基燃料突發(fā)事故應(yīng)急預(yù)案
- 《第一單元口語交際:即興發(fā)言》教案-2023-2024學(xué)年六年級下冊語文統(tǒng)編版
- 情侶自愿轉(zhuǎn)賬贈與協(xié)議書范本
- 綜合實踐項目 制作水族箱飼養(yǎng)淡水魚 教學(xué)設(shè)計-2024-2025學(xué)年魯科版生物六年級上冊
- 公轉(zhuǎn)私付款合同模板
- 青島西海岸新區(qū)2025中考自主招生英語試卷試題(含答案詳解)
- 《氣象學(xué)與氣候?qū)W》全書電子教案B
評論
0/150
提交評論