版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1C語言程序設(shè)計(三)計算機學(xué)院計算機學(xué)院裴明濤裴明濤2第三章 數(shù)據(jù)類型與運算規(guī)則3.1 數(shù)據(jù)與數(shù)據(jù)類型3.2 C語言的基本數(shù)據(jù)類型及其表示3.3 算術(shù)運算與賦值運算3.4 位運算3.5 其他運算3.6 混合運算及數(shù)據(jù)類型轉(zhuǎn)換33.1 數(shù)據(jù)與數(shù)據(jù)類型(1)n如何描述上述表達式中的數(shù)據(jù)、運算符號和運算過程?43.1 數(shù)據(jù)與數(shù)據(jù)類型(2)n數(shù)據(jù):是程序加工、處理的對象,也是加工的結(jié)果;數(shù)據(jù):是程序加工、處理的對象,也是加工的結(jié)果;n數(shù)據(jù)類型:具有同樣性質(zhì)能夠作同樣的操作,采用數(shù)據(jù)類型:具有同樣性質(zhì)能夠作同樣的操作,采用同樣的編碼方式等的數(shù)據(jù)集合稱為數(shù)據(jù)類型;同樣的編碼方式等
2、的數(shù)據(jù)集合稱為數(shù)據(jù)類型;n每種數(shù)據(jù)類型都有固定的表示方式,也就確定了可能每種數(shù)據(jù)類型都有固定的表示方式,也就確定了可能表示的數(shù)據(jù)范圍和在內(nèi)存中的存放形式;表示的數(shù)據(jù)范圍和在內(nèi)存中的存放形式;nC語言為每個類型定義了一個標識符,稱為類型名,語言為每個類型定義了一個標識符,稱為類型名,如整數(shù)型用如整數(shù)型用int表示;表示;53.1 數(shù)據(jù)與數(shù)據(jù)類型(3)63.2 C語言的基本數(shù)據(jù)類型及其表示n常量與變量n整形類型及其表示n實型類型及其表示n字符型類型及其表示n變量的初始化7常量與變量(1)n常量常量:n在程序運行過程中,其值不能改變的量在程序運行過程中,其值不能改變的量;n數(shù)值常量:數(shù)值常量:n整型
3、常量:整型常量: 3,-1n實型常量:實型常量:4.3,1.68n字符常量字符常量n字符常量:字符常量:A,cn字符串常量:字符串常量:“AB”,”hello”常量與變量(2)n符號常量:符號常量:n用標識符來表示常量;用標識符來表示常量;n使用宏定義命令對符號常量進行定義;使用宏定義命令對符號常量進行定義;n定義:定義: #define 標識符標識符 常量常量n #define PI 3.1415926n #define W “windows 8”89常量與變量(3)n變量:變量:n在程序運行過程中,其值能改變的量;在程序運行過程中,其值能改變的量;n變量名按標識符規(guī)則組成變量名按標識符規(guī)則
4、組成:n字母或下劃線打頭的字母、數(shù)字或下劃線序列字母或下劃線打頭的字母、數(shù)字或下劃線序列;nab,b3,c_7, _max,Intn7t, 99r,int, 變量必須先定義后使用;10常量與變量(4)n對變量的定義:對變量的定義:n類型說明符類型說明符 變量名表;變量名表;n例如:例如: int a,b,c;n提倡用能說明變量用途的有意義的名字為變量提倡用能說明變量用途的有意義的名字為變量命名;命名;n對變量的基本操作:對變量的基本操作:n賦值:賦值:n取值:取值:11常量與變量(5)n變量的變量的3個屬性個屬性:n變量地址;變量地址;n變量內(nèi)容;變量內(nèi)容;n變量名;變量名;12關(guān)于常量和變量
5、的一些編程規(guī)范(1)n不使用常量的壞處:n程序的可讀性可理解性變差。程序員自己會忘記那些數(shù)字或字符串是什么意思,用戶則更加不知它們從何處來、表示什么。n在程序的很多地方輸入同樣的數(shù)字或字符串,難保不發(fā)生書寫錯誤。n如果要修改數(shù)字或字符串,則會在很多地方改動,既麻煩又容易出錯。 13關(guān)于常量和變量的一些編程規(guī)范(2)n使用常量的規(guī)范:n常量全用大寫的字母,用下劃線分割單詞。 n盡量使用含義直觀的常量來表示那些將在程序中多次出現(xiàn)的數(shù)字或字符串。n#define PI 3.1415926 n如果某一常量與其它常量密切相關(guān),應(yīng)在定義中包含這種關(guān)系,而不應(yīng)給出一些孤立的值。n#define RADIUS
6、 100n#define DIAMETER RADIUS * 2 14關(guān)于常量和變量的一些編程規(guī)范(3)n變量的命名規(guī)范:n變量名應(yīng)當直觀且可以拼讀,最好采用英文單詞或其組合,用詞應(yīng)當準確。例如不要把CurrentValue寫成NowValuen程序中不要出現(xiàn)僅靠大小寫區(qū)分的相似的變量名,例如x,X15關(guān)于常量和變量的一些編程規(guī)范(4)n變量的名字應(yīng)當使用“名詞或者“形容詞名詞”。n例如: float value,oldValue,newValue; n用正確的反義詞組命名具有互斥意義的變量 n例如: intminValue,maxValue; n盡量避免名字中出現(xiàn)數(shù)字編號,如value1,
7、value2等,除非邏輯上的確需要編號。 16整形類型及其表示(1)n整型常量:整型常量:n十進制整型常量:十進制整型常量:123,8,-10等;等;n八進制整型常量:八進制整型常量:n以數(shù)字以數(shù)字0 打頭的數(shù)字序列打頭的數(shù)字序列(0-7)n如如 056, 017, 078;n 十六進制整型常量:n 以數(shù)字0和字母x打頭的序列0 - 9,a - f)n 如 0 x123,0 x3A ,0 x9g;n 長整型常量在常量之后加上字母“l(fā)或“L”,如123L,n 40000L等;17整形類型及其表示(2)n整型變量:整型變量:稱號稱號 占內(nèi)存字節(jié)占內(nèi)存字節(jié) 表示范圍表示范圍 說明方法說明方法基本整型
8、基本整型 2 -215 215-1 int a,b; 2 -215 215-1 int a,b;短整型短整型 2 2 同上同上 short a,b; short a,b;無符號整型無符號整型 2 0 65535 unsigned a,b; 2 0 65535 unsigned a,b;長整型長整型 4 -231-231 1 long a,b; 4 -231-231 1 long a,b;無符號長整型無符號長整型 4 0 232 1 unsigned long 4 0 232 1 unsigned long a; a; 18整形類型及其表示(3)n整型變量:整型變量:n以關(guān)鍵字以關(guān)鍵字int為基
9、本類型說明符;為基本類型說明符;n配合四個類型修飾符,用來改變和擴充基本類配合四個類型修飾符,用來改變和擴充基本類型的含義;型的含義;n整型數(shù)據(jù)在使用中應(yīng)注意的問題:整型數(shù)據(jù)在使用中應(yīng)注意的問題:n變量要先定義后使用;變量要先定義后使用;n數(shù)據(jù)溢出;數(shù)據(jù)溢出;n 假設(shè)假設(shè) int a,b;unsigned c;long d ;n a=123; d= -105000;n b=40000; c= 105000;n常量與變量的類型要匹配;常量與變量的類型要匹配;19實型類型及其表示(1)n實型常量:實型常量:n小數(shù)形式:至少有一個小數(shù)點和一個數(shù)字,如小數(shù)形式:至少有一個小數(shù)點和一個數(shù)字,如12.3,
10、87.4,-0.25等;等;n指數(shù)形式:由十進制整數(shù)或小數(shù)加上指數(shù)部分指數(shù)形式:由十進制整數(shù)或小數(shù)加上指數(shù)部分組成,形式為:十進制小數(shù)組成,形式為:十進制小數(shù)e(E)指數(shù)指數(shù)n2.5e3 56E8 66e3ne2 1.2e 3e1.2(整數(shù))20實型類型及其表示(2)n實型變量:實型變量:稱號稱號 存儲字節(jié)存儲字節(jié) 表示范圍表示范圍 有效位有效位 說明方法說明方法單精度單精度 4 -1038 - 1038 7 float a; 4 -1038 - 1038 7 float a;雙精度雙精度 8 -10308 - 10308 16 double a; 8 -10308 - 10308 16 do
11、uble a;長雙精度長雙精度 16 -104932 104932 19 long 16 -104932 104932 19 long double a;double a;21字符型類型及其表示(1)n字符型常量:字符型常量:n普通字符:單引號括起來的單個字符,如普通字符:單引號括起來的單個字符,如a,B等;等;n轉(zhuǎn)義字符:以轉(zhuǎn)義標識符轉(zhuǎn)義字符:以轉(zhuǎn)義標識符“”開始的字符序列開始的字符序列,例如:,例如:nn(換行換行),t(跳格跳格),b(退格退格),().nddd(1到到3位位8進制數(shù)表示的字符進制數(shù)表示的字符)nxdd(1到到2位位16進制數(shù)表示的字符進制數(shù)表示的字符)22字符型類型及其
12、表示(2)n字符串常量:字符串常量:n雙引號括起的一串字符,例如雙引號括起的一串字符,例如“China”, “”;n系統(tǒng)對字符串尾自動加系統(tǒng)對字符串尾自動加0作為字符串終結(jié)符作為字符串終結(jié)符;na與與“a的區(qū)別:的區(qū)別:n字符常量字符常量 a, 占占1個字節(jié)個字節(jié).n字符串常量字符串常量 “a”, 占占2個字節(jié)個字節(jié).aa 023字符型類型及其表示(3)n字符型變量:字符型變量:n只存放一個字符的變量只存放一個字符的變量,用用char 闡明闡明;n一個字符型變量可存放一個字符,占用一個字一個字符型變量可存放一個字符,占用一個字節(jié)節(jié),存放字符的存放字符的ASCII碼;碼;n char a;int
13、 b;n a=A;b=a+32; printf(“%c,%d”,b,a);n 輸出輸出: a,65n字符型數(shù)據(jù)與整型數(shù)據(jù)可以通用字符型數(shù)據(jù)與整型數(shù)據(jù)可以通用?24變量的初始化n先說明,再賦值;先說明,再賦值;nint x,y;nx = 10, y = 30;n說明變量的同時對變量賦初值;說明變量的同時對變量賦初值;nint x = 10,y = 30;n不初始化會怎樣?不初始化會怎樣?253.3 算術(shù)運算與賦值運算nC語言中的運算規(guī)則n算術(shù)運算符與算術(shù)表達式n自增、自減運算n賦值運算符和賦值表達式n組合賦值運算符和組合賦值表達式26C語言中的運算規(guī)則(1)n運算符按照其在表達式中與運算對象的關(guān)
14、系可分為:n單目運算:連接一個運算對象;n雙目運算:連接兩個運算對象;n三目運算:連接三個運算對象;n運算符按照其在表達式中所起的作用可以分為:n算術(shù)運算符: +,-,*,n自增自減運算符:+,-n關(guān)系運算符:, b)?a:bn按照運算符在表達式中的作用,表達式可分為按照運算符在表達式中的作用,表達式可分為:n算術(shù)表達式算術(shù)表達式 如如 a+bn關(guān)系表達式關(guān)系表達式 如如 a!=b can賦值表達式賦值表達式 如如 a = 3 n28C語言中的運算規(guī)則(3)n優(yōu)先級:n同一個表達式中不同運算符進行計算時的先后次序;n當變量的兩邊均有運算符時,其優(yōu)先級高的先運算.na + b dn結(jié)合性:是指同
15、一個表達式中相同優(yōu)先級的多個運算應(yīng)遵循的運算順序;n左結(jié)合從左到右除“=”外的雙目運算符)n a + b c (a + b) c n右結(jié)合從右到左單目或三目運算符)n -k+ -(k+)29算術(shù)運算符與算術(shù)表達式(1)nC語言允許的算術(shù)運算符包括:n 加法運算或取正值運算,雙目、單目運算符,作為單目運算符時優(yōu)先級高于雙目運算符,如 a+b,+5n 減法運算或取負值運算,雙目、單目運算符,作為單目運算符時優(yōu)先級高于雙目運算符,如 a-b,-5n* 乘法運算,雙目運算符,如 a*bn/ 除法運算,雙目運算符,如a/b, 13/4=?n% 模運算求余運算),雙目運算符,要求兩個運算對象都為整形,例如
16、 5%7= ?, 7%5= ?, 8%3.2 =?52330算術(shù)運算符與算術(shù)表達式(2)n算術(shù)運算符的優(yōu)先級及結(jié)合性為:31算術(shù)運算符與算術(shù)表達式(3)n算術(shù)表達式:算術(shù)表達式:n由算術(shù)運算符,常數(shù),變量,函數(shù)和括號組成由算術(shù)運算符,常數(shù),變量,函數(shù)和括號組成,其基本形式與數(shù)學(xué)上的算術(shù)表達式類似;,其基本形式與數(shù)學(xué)上的算術(shù)表達式類似;n例如例如 12.45-43*5 x/(67-(12+y)*a)n雙目運算符兩側(cè)運算對象的類型如果不一致,雙目運算符兩側(cè)運算對象的類型如果不一致,系統(tǒng)將自動按轉(zhuǎn)換規(guī)律進行轉(zhuǎn)換;系統(tǒng)將自動按轉(zhuǎn)換規(guī)律進行轉(zhuǎn)換;n使用括號可以改變表達式的運算順序;使用括號可以改變表達式
17、的運算順序;32自增、自減運算(1)n自增自增“”、自減、自減“”運算:運算:n單目運算,其作用是使變量的值增單目運算,其作用是使變量的值增1或減或減1;n優(yōu)先級高于所有雙目運算;優(yōu)先級高于所有雙目運算;n應(yīng)用形式:應(yīng)用形式:n前綴形式:前綴形式:+i;-i; 表示變量在使用前自動加表示變量在使用前自動加1或減或減1;n后綴形式:后綴形式:i+;i-; 表示變量在使用后自動加表示變量在使用后自動加1或減或減1;n+、-運算只能作用于變量,不能用于表達式或常量;運算只能作用于變量,不能用于表達式或常量;n用于用于+、-運算的變量只能是整型運算的變量只能是整型,字符型和指針變量;字符型和指針變量;
18、n前綴形式與后綴形式的意義不同;前綴形式與后綴形式的意義不同;n+、-的結(jié)合性是自右向左的;的結(jié)合性是自右向左的;33自增、自減運算(2)nint m,n;nm = n+;n 等價于 m = n; n = n + 1;nm = +n;n 等價于 n = n + 1; m = n;nm = -n+;n 等價于 m = -(n+);n 等價于 m = -n; n = n+1;34自增、自減運算(3) 假設(shè)假設(shè) int a=5,b; int a=5,b; b=(a+)+(a+); b= a= b=(a+)+(a+); b= a= b=(+a)+(+a); b= a= b=(+a)+(+a); b=
19、a= b=(-a)+(a-); b= a= b=(-a)+(a-); b= a= 1071478335自增、自減運算(4)n關(guān)于,n在一行語句中最好只出現(xiàn)一次+,-,多了可讀性會很差;nC語言中允許編譯程序自由重排表達式的順序,以產(chǎn)生最優(yōu)代碼,因此語句過于復(fù)雜時,采用不同的編譯程序編譯時,可能會產(chǎn)生不同的運算結(jié)果。n+,-用于float會怎樣?36賦值運算符和賦值表達式(1)n賦值運算符:賦值運算符:n“”,其功能是計算賦值運算符,其功能是計算賦值運算符“”右右邊表達式的值,并將計算結(jié)果賦給邊表達式的值,并將計算結(jié)果賦給“”左邊的變量;左邊的變量;n右結(jié)合,優(yōu)先級倒數(shù)第二;右結(jié)合,優(yōu)先級倒數(shù)第
20、二;若若int k,i,j,aint k,i,j,a;a=5;a=5;k=3+(a=a+2)k=3+(a=a+2);j=i=aj=i=a* *0.7;0.7;那么那么 a= k= i= j= a= k= i= j= 7104437賦值運算符和賦值表達式(2)n賦值表達式:賦值表達式:n由賦值運算符將一個變量和一個表達式由賦值運算符將一個變量和一個表達式連接起來的式子;連接起來的式子;n方式:變量名方式:變量名 表達式表達式 n賦值表達式的值就是賦值運算符左邊變賦值表達式的值就是賦值運算符左邊變量的值;量的值;n類型轉(zhuǎn)換:類型轉(zhuǎn)換:n賦值運算符兩邊的數(shù)據(jù)類型不一致時需賦值運算符兩邊的數(shù)據(jù)類型不一
21、致時需要進類型轉(zhuǎn)換;要進類型轉(zhuǎn)換;n轉(zhuǎn)換原則是以轉(zhuǎn)換原則是以“=”左邊的變量的類型為準左邊的變量的類型為準;38組合賦值運算符和組合賦值表達式(1)n組合賦值運算符:組合賦值運算符:n方式方式: 運算符運算符 n運算符可以是運算符可以是 、*、/、%等;等;n組成的組合賦值運算符為、組成的組合賦值運算符為、*、/=、等;等;n組合賦值表達式:組合賦值表達式:n方式:方式: 變量名變量名 組合賦值運算符組合賦值運算符 表達式表達式n其功能等價于:其功能等價于:n 變量名變量名 變量名變量名 運算符運算符 表達式表達式39組合賦值運算符和組合賦值表達式(2)a+=b a+=b a=a+b a=a+
22、b a-=b a-=b a=a-b a=a-ba a* *=b =b a=a a=a* *b b a/=b a/=b a=a/b a=a/b.假設(shè)假設(shè) int a=1,b=2,c=3; int a=1,b=2,c=3; 那么那么a+=b-=c a+=b-=c a=a+(b-=c) a=a+(b-=c) a=a+(b=b-c) a=a+(b=b-c) a=a+(b=-1) a=a+(b=-1) a=1+(-1) a=1+(-1)所以所以 a=0 b=-1 a=0 b=-1int a=3,b=4;int a=3,b=4;a a* *=b=b5 5a=27 b=4a=27 b=4403.4 位運算n
23、位運算符n按位邏輯運算n移位運算n位運算賦值運算符41位運算符n位運算的對象是二進制位,有如下操作: (按位求反)按位求反) (右移右移) & (按位與)(按位與) (按位異或)(按位異或) | (按位或)(按位或)優(yōu)先級同優(yōu)先級同+,+,右結(jié)合右結(jié)合優(yōu)先級比關(guān)系運算符高優(yōu)先級比關(guān)系運算符高優(yōu)先級比關(guān)系優(yōu)先級比關(guān)系運算符低運算符低, ,比邏比邏輯運算符高輯運算符高42按位邏輯運算與移位運算(1)1=01=0,0=1 0=1 1. 按位求反按位求反 (0000100000001000)= 11110111 = 11110111 左移左移右補右補0000010002 = 001000000
24、00010002 = 00100000 82 = 8 82 = 00000010000010002 = 00000010 82 = 8 82 = 8* *2-2=22-2=2111110002 = 11111110111110002 = 11111110 -82 = -8 -82 = -8* *2-2=-2 2-2=-2 3. 按位右移按位右移右移右移 正數(shù)左補正數(shù)左補0, 負數(shù)左補負數(shù)左補11&1=1, 1&0=0&1=0&0=04. 按位與按位與01011001 & 00001111=0000100101011001 & 00001111=0
25、0001001 保留特定位保留特定位44按位邏輯運算與移位運算(3)11=00=0, 10=01=10|0=0, 1|0= 1|1=0|1=15. 按位異或按位異或6. 按位或按位或01011001 00001111=0101011001011001 00001111=01010110 特定位取反特定位取反01011001 | 00001111=0101111101011001 | 00001111=01011111 特定位置賦特定位置賦1 145位運算賦值運算符n位運算符與賦值運算符可以組成以下五種位運算賦值運算符:nx &= y; 相當于:x = x&y;nx |= y; 相當于:x = x|y;nx = y;
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人快遞包裹配送與包裝材料合同二4篇
- 四人合伙股份的協(xié)議書(二零二五年版)2篇
- 2025年金融產(chǎn)品銷售合同債務(wù)追討委托協(xié)議3篇
- 2025年度環(huán)保設(shè)備買賣雙方資金監(jiān)管與服務(wù)保障協(xié)議4篇
- 2025年高速公路施工升降機租賃及道路管制合同3篇
- 2025年度美甲店會員積分體系設(shè)計與運營合同4篇
- 2025年高校教材編輯與審核服務(wù)合同3篇
- 2025年度個人二手挖掘機買賣合同法律風險防范范本3篇
- 2025年心理咨詢服務(wù)協(xié)議書范本(心理咨詢服務(wù)與公益活動)3篇
- 2025年度人工智能技術(shù)應(yīng)用保密協(xié)議3篇
- 2024年國家工作人員學(xué)法用法考試題庫及參考答案
- 國家公務(wù)員考試(面試)試題及解答參考(2024年)
- 《阻燃材料與技術(shù)》課件 第6講 阻燃纖維及織物
- 人教版五年級上冊遞等式計算100道及答案
- 《電力信息系統(tǒng)信息安全檢查規(guī)范》
- 三創(chuàng)賽獲獎-非遺文化創(chuàng)新創(chuàng)業(yè)計劃書
- 公司總經(jīng)理年會致辭范例2篇
- 三位數(shù)乘以兩位數(shù)-計算題大全
- 宏觀社會工作1
- 醫(yī)療大數(shù)據(jù)分析與挖掘技術(shù)
- 道路通行能力手冊第4章-高速公路基本路段
評論
0/150
提交評論