![[理學]第2章C的基礎知識cppt課件_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/7e376b10-d229-4b48-9008-042914703cca/7e376b10-d229-4b48-9008-042914703cca1.gif)
![[理學]第2章C的基礎知識cppt課件_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/7e376b10-d229-4b48-9008-042914703cca/7e376b10-d229-4b48-9008-042914703cca2.gif)
![[理學]第2章C的基礎知識cppt課件_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/7e376b10-d229-4b48-9008-042914703cca/7e376b10-d229-4b48-9008-042914703cca3.gif)
![[理學]第2章C的基礎知識cppt課件_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/7e376b10-d229-4b48-9008-042914703cca/7e376b10-d229-4b48-9008-042914703cca4.gif)
![[理學]第2章C的基礎知識cppt課件_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/7e376b10-d229-4b48-9008-042914703cca/7e376b10-d229-4b48-9008-042914703cca5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第2章 C語言根底華北電力大學 控制與計算機C語言根底語言根底2本章主要內(nèi)容本章介紹C語言的根底,包括:數(shù)據(jù)類型運算符和表達式均是程序設計的根本知識為什么討論這些知識?3例如:【例2.1】計算圓的面積,半徑為 5 cm。 程序如下:#include void main float=* *printf “面積面積=%f平方厘米平方厘米n , ;平方厘米平方厘米4分析:計算機操作處理時,要完成以下工作:數(shù)據(jù)r和area是變量,在內(nèi)存中需要給半徑 r 和運算結(jié)果 area 開拓存儲空間,存放它們的值。應該留多大的地方來存放它們的值?數(shù)據(jù) 5 和 3.14 是常量與 r 、area 不同,它們在編寫程
2、序時就是確定的值,在運算過程中不會改變。這樣的數(shù)計算機怎么處理?對整數(shù) 5 和小數(shù)3.14 ,計算機存放時是否有區(qū)別?5C語言的數(shù)據(jù)類型 C數(shù)據(jù)類型數(shù)組類型數(shù)組類型結(jié)構體類型結(jié)構體類型共用體類型共用體類型枚舉類型枚舉類型指針類型指針類型構造類型構造類型62.1.1 整型數(shù)據(jù) 1整型數(shù)據(jù)的類型根本整型數(shù)據(jù)類型 int ,分配 4 Byte短整型數(shù)據(jù)類型short int,分配 2 Byte長整型數(shù)據(jù)類型long int,分配 4 Byte整型數(shù)據(jù)均以二進制補碼形式存儲7計算機中正、負數(shù)的表示 例如:109 11011012要區(qū)別:109 和 109 方法是:將符號也數(shù)碼化即:正的符號 用 0 表
3、示 負的符號 用 1 表示 8問題:計算機計算復雜化例如計算: -19+221001 0011 + 0001 01109原碼、反碼和補碼正數(shù):原碼、反碼、補碼一樣符號位為0,數(shù)值為對應的二進制數(shù)。 109 01101101原原 = 01101101反反 = 01101101補補l負數(shù)負數(shù): 原碼原碼符號位為符號位為1 1,數(shù)值為絕對值的二進制數(shù),數(shù)值為絕對值的二進制數(shù) 109 11101101原原 反碼反碼符號位為符號位為1 1,數(shù)值為絕對值的二進制數(shù),數(shù)值為絕對值的二進制數(shù)各位變反各位變反 109 10010010反反 補碼補碼符號位為符號位為1 1,數(shù)值為絕對值的二進制數(shù),數(shù)值為絕對值的二
4、進制數(shù)各位變反加各位變反加1 1 109 10010011補補10用補碼計算例如計算: -19+22 1110 1101 + 0001 0110= 0000 00110000 00112= 3112. 有符號和無符號整型數(shù)據(jù)類型有符號的整型數(shù)據(jù)類型 int無符號的整型數(shù)據(jù)類型 unsigned int區(qū)別是將最高位看作符號位還是數(shù)據(jù)位 111 1111 1010 1000 作為作為使用時,使用時,最高為符號位最高為符號位為負數(shù),值是:為負數(shù),值是:再求一次補再求一次補 作為作為使用時,使用時,最高為數(shù)據(jù)位最高為數(shù)據(jù)位為無符號的數(shù),值是:為無符號的數(shù),值是:12例如:#include void
5、main short int m; m= 65448;/ 111 1111 1010 1000 printfnm=%hdn,m; printfm=%hun,m;按有符號數(shù)輸出按有符號數(shù)輸出按無符號數(shù)輸出按無符號數(shù)輸出13整型數(shù)據(jù)的類型及規(guī)定方括號表示可選項int 分配4 Byte,long分配4 Byte類型名稱類型名稱類型符類型符bit取值范圍取值范圍整型整型短整型短整型signed int signed short int 3216-231231- 1-3276832767 無符號整型無符號整型短整型短整型unsigned intunsigned short int3216 0 232-1
6、 0-65535長整型長整型signed long int32-231231- 1無符號長整型無符號長整型 unsigned long int320 232-1 整型數(shù)據(jù)是準確存儲整型數(shù)據(jù)是準確存儲142.1.2 實型數(shù)據(jù) 1實型數(shù)據(jù)的類型 單精度實型數(shù)據(jù)類型 float,分配4 Byte雙精度實型數(shù)據(jù)類型 double,分配 8 Byte2實型數(shù)據(jù)的存儲 小數(shù)的符號位小數(shù)的符號位指數(shù)的符號位指數(shù)的符號位 實型數(shù)據(jù)是近似存儲實型數(shù)據(jù)是近似存儲15實型數(shù)據(jù)的類型及規(guī)定 C標準并未詳細規(guī)定各種實型數(shù)據(jù)所占字節(jié)數(shù),也不規(guī)定詳細小數(shù)和指數(shù)部分的位數(shù)。一般而言,小數(shù)部分位數(shù)多,數(shù)據(jù)表示的有效數(shù)字多,精度
7、就高;而指數(shù)部分位數(shù)多,那么表示的數(shù)據(jù)范圍更大。類型類型類型符類型符Byte絕對值的范圍絕對值的范圍有效數(shù)字有效數(shù)字單精度型單精度型float410-37 103878 位位雙精度型雙精度型 double810-307 103081516位位float float a=123.456789;a=123.456789;double b=123.456789123456789;162.1.3 字符型數(shù)據(jù) 字符型數(shù)據(jù)類型為char,分配 1 Byte 字符型數(shù)據(jù)是指字母、數(shù)字、各種符號等用ASCII值表示的字符例如 a 是一個char類型數(shù)據(jù),稱作字符常量,存儲:172.2 常量、變量與標準函數(shù) 主
8、要內(nèi)容:常量變量標準庫函數(shù)182.2.1 常量 在程序運行的過程中值保持不變的量1整型常量 十進制:09八進制:07,以 0開頭十六進制:09,AF/af,以 0 x或 0X 開頭191. 整型常量整型常量的類型:根據(jù)值大小默認類型整型常量后面加l或L,那么認為是long int型 例如:123 123L、032、432l、0 x100注意:注意:l十六進制常量中可以使用大寫字母十六進制常量中可以使用大寫字母AF,也可以使用小寫字母也可以使用小寫字母af。 l八進制常量中不能出現(xiàn)數(shù)字八進制常量中不能出現(xiàn)數(shù)字 8 或或 9例如:例如:018、0921非法非法202. 實型常量 十進制形式 1.0
9、 1. +12.0 -12.0 0.0指數(shù)形式 1e3 1.8e-3 -123E-6 -.1E-3 指數(shù)只能是整數(shù),而尾數(shù)那么可以是整數(shù)也可以指數(shù)只能是整數(shù),而尾數(shù)那么可以是整數(shù)也可以是小數(shù)是小數(shù) ,無論指數(shù)或尾數(shù)均不能省略,無論指數(shù)或尾數(shù)均不能省略例如:例如: 非法非法 實型常量的類型:默認為實型常量的類型:默認為型,后面加型,后面加或或 ,那么強調(diào)表示該數(shù)是那么強調(diào)表示該數(shù)是float類型類型例如:例如:3.5 、1.4e2 213. 字符型常量 字符常量 一對單引號括起來的單個字符例如:a、A 、+ 、3、 等 轉(zhuǎn)義字符常量一對單引號括起來的 與規(guī)定字符組合,例如:00字符串完畢標志字符
10、串完畢標志n換行換行t跳到下一個輸出位置跳到下一個輸出位置“,雙引號字符雙引號字符,單引號字符單引號字符dddddd為為1到到3位八進制數(shù)所代表的字符位八進制數(shù)所代表的字符xhhx是小寫是小寫, hh為為1到到2位十六進制數(shù)所代表的字符位十六進制數(shù)所代表的字符如如102表示表示B如如x47表示表示G22int x=0 x10;int y=0X10; char a=xa2; char b=Xa2; 234. 字符串常量 用一對雙引號括起來的0個或多個字符序列例如:ABC、12、a、 nt nGood morning 、 字符串常量的長度 :所包含的字符個數(shù) 字符串常量的存儲方式: n G o o
11、 dm o rni n g 0a0所占存儲單元數(shù):所占存儲單元數(shù):串長度串長度1例如:例如:字符串字符串完畢標記完畢標記244. 字符串常量續(xù)假如反斜杠和雙引號作為字符串中的有效字符,那么必須使用轉(zhuǎn)義字符。例: C:msdosv6.22 C: msdos v6.22 I say:Goodbye! I say:Goodbye! 假如要表示單引號字符常量,必須用轉(zhuǎn)義字符。假如要表示單引號字符串常量不需要用轉(zhuǎn)義字符。例: “25字符常量 與字符串常量的區(qū)別:1定界符不同: 字符常量使用單引號A , 而字符串常量使用雙引號 A ;2長度不同:字符常量的長度固定為1,而字符串常量的長度,可以是0,也可以
12、是某個整數(shù);3存儲要求不同: 字符常量存儲的是字符的ASCII碼值, 字符串常量,除了要存儲有效的字符ASCII碼值外,還要存儲一個完畢標志 0 。26判斷正確與錯誤char a=; char a=“; char a=a;char a=“a;是非法的是非法的是正確的是正確的是非法的是非法的是非法的是非法的275. 符號常量 以標識符來代表的常量事先由編譯預處理命令define定義編譯時先由系統(tǒng)交換為它所代表的常量,再進展編譯例如: 285. 符號常量void main float a,b; a= 2*3.14 *2.5; b=3.14*2.5*2.5; printfa=%f, b=%fn,a,
13、b;292.2.2 變量 1. 變量的有關概念在程序運行過程中,其值可以改變的數(shù)據(jù),稱為變量,變量用標識符表示,稱為變量名變量必須“先定義, 后使用系統(tǒng)根據(jù)變量的類型分配存儲單元,存儲變量的值編寫程序時可以通過變量名來存、取變量值0 x1002302. 變量定義變量定義的一般格式: 數(shù)據(jù)類型說明符 變量列表;例如:int i; long k, m; float x,y; char ch1,ch2;313. 變量的初始化:在說明變量的同時對變量賦初值。例如:int a=5, b=a+2; long c=123L; double x=23.568; float y =1.23f; char ch1
14、=a,ch2=66,ch3=142; 錯誤的初始化: int a=3+b, b=5; float m=n=23.16; 32系統(tǒng)為變量分配存儲空間示意圖內(nèi)存:內(nèi)存是由一系列字節(jié)組成的,每個字節(jié)都有一個唯一的地址編碼。例如:short int x;系統(tǒng)為變量x在內(nèi)存中分配的存儲空間是連續(xù)的兩個字節(jié)。10011002x其中:其中:1001和和1002是字節(jié)的編碼,第是字節(jié)的編碼,第1個字個字節(jié)的編碼節(jié)的編碼1001稱為變量稱為變量x的地址,在程序中的地址,在程序中表示為表示為&x。即即&x的值為的值為1001。33系統(tǒng)為變量分配存儲空間示意圖例如:float y;系統(tǒng)為變量y在內(nèi)存
15、中分配的存儲空間是連續(xù)的4個字節(jié)。例如:其中:其中:2001到到2004是字節(jié)的編碼,第是字節(jié)的編碼,第1個個字節(jié)的編碼字節(jié)的編碼2001稱為變量稱為變量y的地址,在程的地址,在程序中表示為序中表示為&y。即即&y的值為的值為2001。20012002y2003200434問題 int a=3; double b=123.45;系統(tǒng)是如何找到變量a和變量b的?系統(tǒng)在編譯時自動建立一個變量查找表,即變量名變量名變量類型變量類型空間大小空間大小變量地址變量地址aint4個字節(jié)個字節(jié)ox1000bdouble8個字節(jié)個字節(jié)ox3002ox1000352.2.3 標準庫函數(shù)由C編譯系統(tǒng)
16、定義的一種函數(shù),存放在系統(tǒng)函數(shù)庫中,用戶可以根據(jù)需要隨時調(diào)用常用函數(shù)如:printf、scanf、fabs、sqrt、sin、常用數(shù)學函數(shù)參見教材 附錄 函數(shù)調(diào)用形式:函數(shù)名參數(shù)表例如:putchara /有參函數(shù) sqrtx /有參函數(shù) getchar /無參函數(shù)36總結(jié):假如程序中需要將數(shù)據(jù)存起來,那么必須根據(jù)存放數(shù)據(jù)的類型定義變量變量要先定義,后使用。假如程序中使用的數(shù)據(jù)是常量,那么需根據(jù)常量的類型,選用正確的格式。 如:123 12.3 稱字面常量 #define PI 3.14159 稱為符號常量假如程序中用到系統(tǒng)提供的函數(shù),必須在程序的開頭書寫: #include 預編譯命令的順序
17、 #define #include 372.3 運算符和表達式主要內(nèi)容:算術運算符和算術表達式賦值運算符和賦值表達式關系運算符和關系表達式邏輯運算符和邏輯表達式位運算符和位運算表達式條件運算符和條件表達式逗號運算符和逗號表達式其他運算符及其運算38要求掌握:每種表達式的運算符運算符的優(yōu)先級和結(jié)合性每種表達式值的特點和值的數(shù)據(jù)類型表達式的命名規(guī)那么39學習運算符要注意:1 運算符功能2 與運算量的關系1要求運算量的個數(shù)2要求運算量的類型3 運算符的優(yōu)先級別4 運算符的結(jié)合方向5 運算結(jié)果的類型40運算符的有關概念作用:對運算對象完成規(guī)定的操作運算類型:按運算對象分:單目要求1個運算對象,如-2雙
18、目要求2個運算對象,如3-2 三目要求3個運算對象,如xy ? x : y按功能分:算術、賦值、關系、邏輯條件、逗號、位、其他41運算符的優(yōu)先級和結(jié)合性優(yōu)先級指各種運算符的運算優(yōu)先順序當一個表達式中出現(xiàn)多個運算符時,表達式的求值運算按運算符的優(yōu)先級別從高到低的順序執(zhí)行例如:算術運算優(yōu)先于關系運算,如:a+bc 算術運算中先 * / 后 + -,如:a+b*c42運算符的優(yōu)先級和結(jié)合性43本章涉及的運算符+ - * / % + - + -= += -= *= /= %=&= |= = = = = = != & | !& | ?:,& sizeof數(shù)據(jù)類型標識符類型
19、類型種類種類算術運算符算術運算符賦值運算符賦值運算符關系運算符關系運算符邏輯運算符邏輯運算符位運算符位運算符條件運算符條件運算符逗號運算符逗號運算符其他運算符其他運算符44表達式的有關概念什么是表達式由運算符將運算對象連接成的式子,它描繪了一個詳細的求值運算過程。計算表達式的值按照運算符的運算規(guī)那么求值求值時注意運算符的優(yōu)先級和結(jié)合性表達式值的類型自動轉(zhuǎn)換由系統(tǒng)完成強迫轉(zhuǎn)換由用戶編程實現(xiàn) 45例如: 表達式:150+b*2-12.456 算術表達式b=+a-2賦值表達式a /= a *= a = 2 賦值表達式f=abc 賦值表達式-a |+b&c+ 邏輯表達式ab ? a : b 條
20、件表達式a=3,a+=3,a*a 逗號表達式 a+b4 關系表達式表達式的命名:按運算符級別最低的來命名表達式的命名:按運算符級別最低的來命名46算術運算算術運算符的優(yōu)先級 ( ) + - - + - + - * / % + - - 同級同級 同級同級 同級同級 47dcba算術表達式中的乘號不能省略,適當添加圓括號。如:數(shù)學表達式:1/2a+b對應的C表達式為:1.0/2*a+b如:數(shù)學表達式:對應的C表達式為: a+b/c-d48自增自減運算+ -是單目運算符有前綴和后綴兩種形式 前綴形式: 先自增自減再引用;后綴形式: 先引用再自增自減;功能: 前綴形式 + a 等價于 a = a +
21、1 - a 等價于 a = a 1 后綴形式 a + 等價于 a = a + 1 a - 等價于 a = a 149例如:當 a5 時 +a 表達式的值為 6,且 a6 a+ 表達式的值為5 ,且 a6 b=+a 等價于 a=a+1; b=a 表達式的值為6,且 a=6, b=6 b=a+ 等價于 b=a; a=a+1 表達式的值為5,且 a=6, b=5 50說明:+ 和 - 的運算對象只能是變量或運算結(jié)果是變量的表達式, 不能是常量或運算結(jié)果是數(shù)值的表達式。 例如: 5+、a+2+ 不合法。 具有右結(jié)合性,結(jié)合方向為從右到左。例如: a+ 等價于 -a+ 假如有多個運算符連續(xù)出現(xiàn)時,C系統(tǒng)
22、盡可能多的從左到右將字符組合成一個運算符例如: i + j 等價于 i+j -i+-j 等價于 -i+-j 51賦值運算賦值運算符右結(jié)合 = += -= *= /= %= &= |= = = = 賦值表達式將表達式的值存入變量對應的內(nèi)存單元中m=12b=+a-2 m%=3+n 等價于 m=m%3+n x *= x = 5 等價于 x=x*x=5 52說明:賦值號左邊必須是變量,右邊可以是C語言任意合法的表達式例如:n= t +210 等價于:a= b= b*c10 賦值號與數(shù)學中的等號含義不同例如:數(shù)學中 a=b 等價于 b=a C語言中 a=b 不等價于 b=a53關系運算關系運算符
23、 左結(jié)合 = = = != 較高 較低關系表達式用關系運算符將運算對象連接成的式子 例如:12=c 等價于 a = b=c 與 a=b=c 不等價關系運算符優(yōu)先于賦值,低于算術54說明:關系運算的結(jié)果是1或者0。C語言用數(shù)值 1 表示邏輯真, 0 表示邏輯假例如: 75 的值是 1,57 的值是 0 ab的值是 0, ab 的值是1即關系表達式的值:0 或1 實型數(shù)可進展大于或小于比較,但通常不進展 = 或 != 的關系運算為什么如何表示實型值為如何表示實型值為0:fabsx= z 邏輯運算符的優(yōu)先級 和結(jié)合性:!是單目運算符,右結(jié)合,高于算術& 和 | 是雙目運算符,左結(jié)合,高于賦值
24、運算符,低于關系運算符57邏輯運算規(guī)那么從左到右依次進展邏輯計算運算對象為非0表示邏輯真運算對象為 0 表示邏輯假邏輯運算的結(jié)果為 0 或 1例如設:a=15,b=0,c=-2 a & b & c 結(jié)果為0 a | b | c 結(jié)果為1 a+c | b & c 結(jié)果為158邏輯運算規(guī)那么續(xù)運算按照從左至右的順序進展,一旦可以確定邏輯表達式的值,就立即完畢運算邏輯運算的短路性質(zhì)例如設:a=1,b=0,c=-2a & b & c59關系與邏輯運算符的應用表示數(shù)學公式abc 判斷a, b, c三條線段能否組成一個三角形 a, b不同時為負 60位運算符 &am
25、p; | 低于單目、算術運算符,低于單目、算術運算符,高于其他運算符高于其他運算符低于單目、算術和關系運低于單目、算術和關系運算符,高于其他運算符算符,高于其他運算符61位邏輯運算符的運算規(guī)那么 假設ai和bi均是一個二進制位bit 運算對象運算對象邏輯運算結(jié)果邏輯運算結(jié)果aibiai&biai|biai biai00000101011110011011110062程序如下:#include void main short int a=10, b=010; printf%d %dn, a&b, a|b; printf%d %dn, ab, a;輸出結(jié)果:輸出結(jié)果:6364移位運
26、算:左移右端補0 65移位運算:右移左端補066移位運算#include void main short int a=10, b=2; printf%d %dn, , ;輸出結(jié)果:輸出結(jié)果:67條件表達式運算條件運算符:?:條件表達式的一般形式 表達式1 ? 表達式2 : 表達式3例如:m=10 & b-20 ? a : b x=3+a5 ? 100 : 200 68條件運算符優(yōu)先級條件運算符優(yōu)先級高于賦值和逗號運算符,低于其他運算符 例如: m=10 & b-20 ? a : b x=3+a5 ? 100 : 200等價于:等價于:m=10 & b-20 a b等價于:等價于:x= 3+a5 100 200 69條件運算符的結(jié)合性條件運算符具有右結(jié)合性當一個表達式中出現(xiàn)多個條件運算符時,應該將位于最右邊的問號與離它最近的冒號配對,并按這一原那么正確區(qū)分各條件運算符的運算對象。 70逗號表達式運算逗號表達式的一般形式 表達式1,表達式2,表達式n 逗號表達式的值從左向右,依次對表達式求值,最后得到表達式n 的值就是逗號表達式的值71逗號表達式運算 a=5, a+, a* 3 t=1, t+5, t+ x=a=3*5, a*4 72取地址運算符 &為單目運算
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 下設子公司合同范本
- 2025-2030年中國無功功率表項目投資可行性研究分析報告
- 出售大型廢船合同范例
- 2025年度建筑工地鋼筋智能化倉儲與物流配送合同
- 伴聚合作合同范本
- 公交輪胎采購合同范例
- 停產(chǎn)勞動合同范本
- 人工草坪合同范本
- 2025年印刷裝飾紙項目可行性研究報告
- 供應商技術合同范本
- 2024新滬教版英語(五四學制)七年級上單詞默寫單
- 電力兩票培訓
- TCCEAS001-2022建設項目工程總承包計價規(guī)范
- 2024.8.1十七個崗位安全操作規(guī)程手冊(值得借鑒)
- 小王子-英文原版
- 二次供水衛(wèi)生管理制度及辦法(4篇)
- 電影《白日夢想家》課件
- 婦產(chǎn)科產(chǎn)后虛脫患者的應急預案及程序
- DB11∕T 446-2015 建筑施工測量技術規(guī)程
- 運輸車輛掛靠協(xié)議書(15篇)
- 完整版:美制螺紋尺寸對照表(牙數(shù)、牙高、螺距、小徑、中徑外徑、鉆孔)
評論
0/150
提交評論