




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1第2章 數(shù)據(jù)類型與表達(dá)式2第2章 數(shù)據(jù)類型與表達(dá)式2.1 數(shù)據(jù)類型2.2 常量2.3 變量2.4 運(yùn)算符與表達(dá)式2.5 類型轉(zhuǎn)換32.1 數(shù)據(jù)類型C+語言內(nèi)置數(shù)據(jù)類型42.1 數(shù)據(jù)類型表2-1 基本類型數(shù)據(jù)的內(nèi)存長度和數(shù)值范圍52.1.1 整型C+語言整型分為長整型(long int)、基本整型(int)和短整型(short int)long int可以簡寫為long、short int可以簡寫為short。short int long62.1.1 整型圖2.2 short型的溢出不同的數(shù)據(jù)類型規(guī)定了不同的機(jī)器數(shù)長度,決定了對(duì)應(yīng)數(shù)據(jù)的數(shù)值范圍,當(dāng)一個(gè)整數(shù)超出此范圍時(shí)計(jì)算機(jī)會(huì)將其轉(zhuǎn)換為在數(shù)值范
2、圍內(nèi)所允許的一個(gè)數(shù),稱為整型數(shù)據(jù)的溢出處理。一般地,超過最大值的有符號(hào)整型數(shù)值會(huì)向上溢出變成負(fù)數(shù),超過最小值的數(shù)據(jù)會(huì)向下溢出變成正數(shù)。 72.1.2 浮點(diǎn)型C+語言浮點(diǎn)型又稱實(shí)型,分為單精度(float)、雙精度(double)和長雙精度(long double)3種。在VC中規(guī)定float型在內(nèi)存中占用4個(gè)字節(jié),提供7位有效數(shù)字;double型和long double型在內(nèi)存中占用8個(gè)字節(jié),提供16位有效數(shù)字。82.1.2 浮點(diǎn)型例2.1 1 #include 2 #include 3 using namespace std; 4 int main() 5 6 float a=0.00000
3、678f, b=0.00000123f; 7 double c=0.00000678 , d=0.00000123; double e=100000000000000000000.0; 8 a = a + 111111.111f; 9 b = b + 111111.111f; 10 c = c + 111111.111; 11 d = d + 111111.111; 12 e = e + 111111.111f; 13 coutsetiosflags(ios:fixed)setprecision(16); 14 cout“a=”a“,b=”bendl; 15 cout“c=”c“,d=”den
4、dl; 16 cout“e=”eendl; 17 return 0; 18 a=111111.1093750000000000 , b=111111.1093750000000000c=111111.1110067800000000 , d=111111.1110012300100000e=100000000000000110000.000000 92.1.2 浮點(diǎn)型因?yàn)楦↑c(diǎn)型數(shù)據(jù)長度和精度是有限的,所以浮點(diǎn)數(shù)存在計(jì)算誤差。雖然浮點(diǎn)數(shù)精度越高計(jì)算結(jié)果越精確,但其處理時(shí)間也長。 一個(gè)較大的浮點(diǎn)數(shù)與一個(gè)很小的浮點(diǎn)數(shù)做加法時(shí),由于精度限制使得很小的浮點(diǎn)數(shù)被忽略了,從而使得這樣的加法無意義。102.1
5、.3 字符型C+語言字符型分為有符號(hào)(signed char)和無符號(hào)(unsigned char)兩種,其中signed書寫時(shí)可以省略。字符型數(shù)據(jù)在內(nèi)存中占用1個(gè)字節(jié),采用二進(jìn)制形式存儲(chǔ)。 112.1.3 字符型字符型數(shù)據(jù)可以存儲(chǔ)單字節(jié)字符,如ASCII碼,此時(shí)在內(nèi)存中的數(shù)據(jù)是字符的ASCII碼值。例如字符A在內(nèi)存中的存儲(chǔ)形式為 在C+語言中字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。一個(gè)字符數(shù)據(jù)可以賦給整型變量,一個(gè)整型數(shù)據(jù)也可以賦給字符型變量,還可以對(duì)字符型數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算。一般地,單字節(jié)字符和小范圍的整型,如月份、日期、邏輯值、性別等使用字符型。122.1.3 字符型例2.2 1 #includ
6、e 2 using namespace std; 3 int main() 4 5 int i, j; 6 char c1,c2; 7 c1=a; /字符數(shù)據(jù)賦值給字符型字符數(shù)據(jù)賦值給字符型 8 c2=98; /整數(shù)數(shù)據(jù)賦值給字符型整數(shù)數(shù)據(jù)賦值給字符型 9 i=A; /字符數(shù)據(jù)賦值給整型字符數(shù)據(jù)賦值給整型 10 j=66; /整數(shù)數(shù)據(jù)賦值給整型整數(shù)數(shù)據(jù)賦值給整型 11 cout“i=”i“,j=”j“,c1=”c1“,c2=”c2endl; 12 cout“c1-32=”c1-32endl; /字符型可以進(jìn)行減法運(yùn)算字符型可以進(jìn)行減法運(yùn)算 13 return 0; 14 i=65 , j=66
7、 , c1=a , c2=bc1-32=65 132.2 常量常量(constant)是指程序中其值不能被修改的數(shù)據(jù),分為字面常量字面常量和符號(hào)常量符號(hào)常量。從字面形式即可識(shí)別的常量稱為字面常量(literal constant),例如64、3.1415926和A等。每個(gè)字面常量都具有數(shù)據(jù)類型,由它的書寫形式和值來決定。142.2.1 整型常量一個(gè)整型常量可以用3種不同的方式表示:(1)十進(jìn)制整數(shù)。 以非零十進(jìn)制數(shù)19組成的整數(shù),例如13579,-24680等。(2)八進(jìn)制整數(shù)。 以0開頭和八進(jìn)制數(shù)07組成的整數(shù),例如0,012,0177等。(3)十六進(jìn)制整數(shù)。 以0 x或0X開頭和十六進(jìn)制數(shù)
8、09、AF或af組成的整數(shù)(字母大小寫任意),例如0 x1234,0 xab,0 xCF等。152.2.2 浮點(diǎn)型常量一個(gè)浮點(diǎn)型常量可以用兩種不同的方式表示:(1)小數(shù)形式。由小數(shù)點(diǎn)、十進(jìn)制整數(shù)和小數(shù)組成的浮點(diǎn)數(shù)。整數(shù)和小數(shù)可以省略其中之一,但不能省略小數(shù)點(diǎn)。 如: .123、123. 、0.0等。(2)指數(shù)形式,又稱科學(xué)記數(shù)法表示。以f E n或 f e n格式組成的浮點(diǎn)數(shù),其中E或e表示以10為低的冪,n為指數(shù)且必須是整型,f可以是整數(shù)或小數(shù)。 如: 0.31415926e+1、314.15926E-2等。浮點(diǎn)型常量默認(rèn)為double型。若在浮點(diǎn)數(shù)后面加一個(gè)字母f或F,則它是float型。
9、162.2.3 字符常量1用字面常量表示字符常量以一對(duì)單引號(hào)( )括起來的一個(gè)字符表示字符常量,如:A、0、&、ab 錯(cuò)誤!字符常量表示的是一個(gè)字符,存儲(chǔ)的是該字符的ASCII碼值。例如A表示英文字符A,數(shù)據(jù)值是65;2表示數(shù)字字符2,數(shù)據(jù)值是50。注意區(qū)別字符2和整數(shù)2的寫法。 172.2.3 字符常量2用轉(zhuǎn)義字符表示字符常量以反斜線()開頭,后跟一個(gè)或幾個(gè)字符序列表示的字符稱為轉(zhuǎn)義字符,如n表示換行符。采用轉(zhuǎn)義字符可以表示ASCII字符集中不可打印或不方便輸入的控制字符和其他特定功能的字符。182.2.3 字符常量表2-2 轉(zhuǎn)義字符及其含義192.2.3 字符常量ooo和xhh稱為
10、通用轉(zhuǎn)義字符,其中ooo表示可以用1至3位八進(jìn)制數(shù)作為碼值表示一個(gè)ASCII字符,hh表示可以用1至2位十六進(jìn)制數(shù)作為碼值表示ASCII字符。如:1234 “123和4”, 128 “12和8”,19 “1和9”, 9 錯(cuò)誤! ,0 xFE 錯(cuò)誤!由于字符型數(shù)據(jù)在內(nèi)存中只占用1個(gè)字節(jié),即使按無符號(hào)處理其最大值也僅是255(八進(jìn)制為377),因此ooo的數(shù)值范圍為0377(八進(jìn)制),其他值使得字符型數(shù)據(jù)溢出。同理,hh的數(shù)值范圍為0FF。 202.2.3 字符常量例2.3 1 #include#include 2 using namespace std;using namespace std;
11、3 int main ( )int main ( ) 4 cout“ab ct derftg”endl; cout“ab ct derftg”endl; 5 cout“htibbj kn123”x41102CDE”endl; cout“htibbj kn123”x41102CDE”endl; 6 return 0; return 0; 7 fgdeh j k123ABCDE 212.2.4 字符串常量以一對(duì)雙引號(hào)(“ ”)括起來的零個(gè)或多個(gè)字符組成的字符序列稱為字符串常量,ASCII字符集或多字節(jié)字符集(如漢字、日韓文字等)都可以組成字符串。雙引號(hào)是字符串常量的邊界符,不是字符串的一部分,如果
12、在字符串中要出現(xiàn)雙引號(hào)應(yīng)使用轉(zhuǎn)義字符(“)。 / /空字符串(空字符串(0 0個(gè)字符)個(gè)字符) / /包含一個(gè)空格的字符串包含一個(gè)空格的字符串Hello,Worldn Hello,Worldn / /包含包含Hello,World Hello,World 和和 換行符的字符串換行符的字符串xyz101x42 xyz101x42 / /包含包含x y z ABx y z AB的字符串的字符串n n / /包含反斜線(包含反斜線( ) 單引號(hào)(單引號(hào)( )和雙引號(hào)()和雙引號(hào)( )的字符串)的字符串a(chǎn)/b isnt ab a/b isnt ab / /字符串字符串a(chǎn)/b isnt aba/b is
13、nt ab222.2.5 符號(hào)常量符號(hào)常量定義形式為:其中#define是宏定義命令,作用是將標(biāo)識(shí)符定義為常量值,在程序中所有出現(xiàn)該標(biāo)識(shí)符的地方均用常量替換。 #define 標(biāo)識(shí)符標(biāo)識(shí)符 常量常量232.2.5 符號(hào)常量例2.4 1 #include 2 using namespace std; 3 #define PI 3.1415926 /3.1415926即為圓周率即為圓周率 4 int main() 5 6 double r=5.0; 7 cout“L=”2*PI*r“,S=”PI*r*rendl; /PI替換為替換為3.1415926 8 return 0; 9 242.3 變量在
14、程序運(yùn)行期間其值可以改變的量稱為變量(variable)。變量實(shí)際上就是計(jì)算機(jī)中的一個(gè)內(nèi)存單元變量實(shí)際上就是計(jì)算機(jī)中的一個(gè)內(nèi)存單元。252.3.1 變量的概念C+語言規(guī)定變量應(yīng)該有一個(gè)名字,用變量名代表內(nèi)存單元。C+語言通過定義變量時(shí)指定其數(shù)據(jù)類型來確定內(nèi)存單元的大小,不同的數(shù)據(jù)類型有不同的數(shù)據(jù)形式和存儲(chǔ)形式,需要一定數(shù)量(單位為字節(jié))的內(nèi)存單元。C+語言變量必須“先定義,后使用先定義,后使用”,定義變量的一般形式是變量類型變量類型 變量名列表變量名列表;double a , b , c , d; /定義實(shí)型變量定義實(shí)型變量int i , j , k; /一次定義多個(gè)一次定義多個(gè)int型變量型
15、變量int a, char c; /錯(cuò)誤錯(cuò)誤262.3.3 使用變量變量定義后,變量值是未確定的(除了第4章的靜態(tài)存儲(chǔ)情形),即變量值是隨機(jī)的。直接使用此時(shí)的變量參與運(yùn)算,運(yùn)算結(jié)果也是隨機(jī)的。 在變量定義的同時(shí)給變量一個(gè)初值,稱為變量初始化(initialized),一般形式為:變量類型變量類型 變量名變量名=初值初值;變量類型變量類型 變量名變量名1=初值初值1, 變量名變量名2=初值初值2, . ;272.3.3 使用變量double pi=3.1415926; /正確,初始化正確,初始化pi為為3.1415926int x , y , k=10; /正確,可以只對(duì)部分變量初始化正確,可以
16、只對(duì)部分變量初始化int a=1 , b=1 , c=1; /正確,可以同時(shí)初始化多個(gè)變量正確,可以同時(shí)初始化多個(gè)變量int d=a , e=a+b; /錯(cuò)誤錯(cuò)誤,初值不能是變量或表達(dá)式,初值不能是變量或表達(dá)式int m=n=z=5; /錯(cuò)誤錯(cuò)誤,不能對(duì)變量連續(xù)初始化,不能對(duì)變量連續(xù)初始化282.3.3 使用變量定義變量后,可以通過賦值語句為變量賦予新的數(shù)據(jù),一般形式為: 賦值后,無論變量原來的值是多少,都將被新值替代。變量名變量名=表達(dá)式表達(dá)式;int k;k=5; /給給k賦值賦值5. /k保持不變保持不變k=10; /重新給重新給k賦值賦值10,k已改變不再是已改變不再是5292.3.5
17、 類型限定1const限定在變量定義前加上const修飾,這樣的變量稱為只讀變量只讀變量(read-only variable)或常變量常變量(constant variable)它在程序運(yùn)行期間的值不能被修改。其定義的一般形式為const 變量類型變量類型 變量名列表變量名列表;int x;const int i=6 , j=10;x=i+1; /正確,可以使用正確,可以使用const變量變量i=10; /錯(cuò)誤錯(cuò)誤,不可以給,不可以給const變量賦值變量賦值j+; /錯(cuò)誤錯(cuò)誤,不可以修改,不可以修改const變量變量302.3.5 類型限定const限定過的變量在編譯過程中若發(fā)現(xiàn)有修改的操
18、作時(shí)會(huì)報(bào)編譯錯(cuò)誤,從而“阻止”對(duì)變量的修改。 使用const限定強(qiáng)制實(shí)現(xiàn)對(duì)象最低訪問權(quán)限,是現(xiàn)代軟件開發(fā)的設(shè)計(jì)原則之一。 const int i=6; /正確正確const int m; /錯(cuò)誤錯(cuò)誤31 1 #include /標(biāo)準(zhǔn)輸入輸出函數(shù)庫標(biāo)準(zhǔn)輸入輸出函數(shù)庫 2 #include /數(shù)學(xué)函數(shù)庫數(shù)學(xué)函數(shù)庫 3 using namespace std; 4 double root(const double x, const double y) /root函數(shù)求函數(shù)求x-y的平方根的平方根 5 if (x=y) return sqrt(x-y); /只有在只有在x大于等于大于等于y時(shí)計(jì)算時(shí)計(jì)算
19、x-y的平方根的平方根 6 else return 0; /否則返回否則返回0 7 8 int main() /主函數(shù)主函數(shù) 9 double a, b; /定義兩個(gè)浮點(diǎn)型變量定義兩個(gè)浮點(diǎn)型變量 10 cinab; /輸入兩個(gè)數(shù)輸入兩個(gè)數(shù) 11 coutroot(a,b)4 /結(jié)果為假結(jié)果為假a=c /k為為1若若a=5 , b=0 , c=-5abc /表達(dá)式為真表達(dá)式為真若若a=5 , b=0 , c=2abc /表達(dá)式為假表達(dá)式為假392.4.5 邏輯運(yùn)算符表2-6 邏輯運(yùn)算符表2-7 真值表40運(yùn)算符優(yōu)先次序:運(yùn)算符優(yōu)先次序:?。ǚ牵。ǚ牵┧阈g(shù)運(yùn)算符算術(shù)運(yùn)算符關(guān)系運(yùn)算符關(guān)系運(yùn)算符&a
20、mp;和和|賦值運(yùn)算符賦值運(yùn)算符注意:注意: 在給出一個(gè)邏輯運(yùn)算或關(guān)系運(yùn)算結(jié)果時(shí),以在給出一個(gè)邏輯運(yùn)算或關(guān)系運(yùn)算結(jié)果時(shí),以“0”代表代表“假假”,以以“1”代表代表“真真”,在,在判斷一個(gè)量為真假判斷一個(gè)量為真假時(shí),以時(shí),以“0”代表代表“假假”,以,以“非非0”代表代表“真真”。例:例:求解表達(dá)式求解表達(dá)式 ! a & b | x+y c 設(shè)設(shè) a=0,b=0,c=5,x=3,y=1,! a & b | x+y c=1 =0 =4 =0 =02.4.5 邏輯運(yùn)算符412.4.5 邏輯運(yùn)算符 C+在邏輯表達(dá)式求解時(shí),并不一定是所有的運(yùn)算都被執(zhí)行,在邏輯表達(dá)式求解時(shí),并不一定是所
21、有的運(yùn)算都被執(zhí)行,當(dāng)剛開始求解或求解的中途就可以確定整個(gè)邏輯表達(dá)式的值時(shí),其余當(dāng)剛開始求解或求解的中途就可以確定整個(gè)邏輯表達(dá)式的值時(shí),其余的運(yùn)算將不再進(jìn)行。的運(yùn)算將不再進(jìn)行。 對(duì)對(duì)&運(yùn)算,左邊運(yùn)算量為運(yùn)算,左邊運(yùn)算量為0,則不判斷右邊,則不判斷右邊 對(duì)對(duì)|運(yùn)算,左邊運(yùn)算量為運(yùn)算,左邊運(yùn)算量為1,則不判斷右邊,則不判斷右邊例:例:a=1, b=2, c=3, d=4, m=n=1; (m=ab) & (n=cd) 運(yùn)算結(jié)果m的值為0,n的值為1。422.4.8 賦值運(yùn)算符表2-10 賦值運(yùn)算符432.4.8 賦值運(yùn)算符int a=6,c=10,m=21,n=32;a=a-1; /
22、正確,正確,a減減1后再賦值給后再賦值給aint a,b,c,m=25;c = (a=12) % (b=5); /正確,運(yùn)算結(jié)果正確,運(yùn)算結(jié)果a為為12,b為為5,c為為2,等價(jià)于,等價(jià)于a=12,b=5,c=a%bchar a;a = 4.2; /a為為4,精度丟失,發(fā)生在浮點(diǎn)型轉(zhuǎn)換成整型時(shí),精度丟失,發(fā)生在浮點(diǎn)型轉(zhuǎn)換成整型時(shí)a = 400; /a為為-112,數(shù)據(jù)錯(cuò)誤,發(fā)生在數(shù)據(jù)溢出時(shí),數(shù)據(jù)錯(cuò)誤,發(fā)生在數(shù)據(jù)溢出時(shí)int k=95,a=6,b=101;const int n=6; b-a=k; /錯(cuò)誤錯(cuò)誤5=b-a; /錯(cuò)誤錯(cuò)誤n=b-a*k; /錯(cuò)誤錯(cuò)誤442.4.8 賦值運(yùn)算符注意:“=”的作用 將“=”右端的值賦給左端的變量,不表示兩端量相等。如:x=x+1結(jié)果是將x的值加1后賦給x,不是x與x+1相等。賦值后,“=”左端變量原值不存在。 又如: 要實(shí)現(xiàn)a、b交換,不能直接賦值。應(yīng)該使用中間變量實(shí)現(xiàn): int a=5,b=10,t; t=a,a=b,b=t;5 1010atb55452.5 類型轉(zhuǎn)換不同類型的數(shù)據(jù)混合運(yùn)算時(shí)需要進(jìn)行類型轉(zhuǎn)換(conversion),即將不同類型的數(shù)據(jù)轉(zhuǎn)換成相同類型的數(shù)據(jù)后再進(jìn)行計(jì)算。類型轉(zhuǎn)換有兩種: 隱式類型轉(zhuǎn)換和顯式類型轉(zhuǎn)換。 462.5.1 隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換(implicit type co
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房產(chǎn)買賣合同指南
- 輕鋼別墅銷售合同范本
- 遼寧省葫蘆島市興城市2020-2021學(xué)年八年級(jí)上學(xué)期期末考試物理試題【含答案】
- 駕校教練車租賃合同
- 鋼筋工程分包合同協(xié)議書
- 中介銷售合作合同范本2025
- 初中英語教科版(五四學(xué)制)九年級(jí)上冊(cè)Unit 4 Growing Good Corn一等獎(jiǎng)教案
- 腸梗阻患者護(hù)理查房
- 11變廢為寶有妙招 公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì) (表格式)
- 2《共建美好集體》表格式公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 石化行業(yè)智能化升級(jí)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 磚砌圍墻工程施工方案
- 2024年風(fēng)景園林專業(yè)中級(jí)職稱《專業(yè)知識(shí)》考試題庫(含答案)
- 精神疾病的防治知識(shí)宣傳課件
- 大學(xué)生心理健康 第8章-教學(xué)教案-愛情心理
- 2025年前期物業(yè)管理中的法律法規(guī)解讀與應(yīng)用
- 2025年河南工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測(cè)試題庫1套
- 情緒管理技巧在校園生活中的應(yīng)用
- 國家保密知識(shí)培訓(xùn)課件
- 胸痛課件教學(xué)課件
- 風(fēng)管補(bǔ)漏施工方案
評(píng)論
0/150
提交評(píng)論