程序設(shè)計(jì)初步數(shù)據(jù)類型新學(xué)習(xí)教案_第1頁
程序設(shè)計(jì)初步數(shù)據(jù)類型新學(xué)習(xí)教案_第2頁
程序設(shè)計(jì)初步數(shù)據(jù)類型新學(xué)習(xí)教案_第3頁
程序設(shè)計(jì)初步數(shù)據(jù)類型新學(xué)習(xí)教案_第4頁
程序設(shè)計(jì)初步數(shù)據(jù)類型新學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、會(huì)計(jì)學(xué)1程序設(shè)計(jì)程序設(shè)計(jì)(chn x sh j)初步數(shù)據(jù)類型初步數(shù)據(jù)類型新新第一頁,共86頁。第1頁/共86頁第二頁,共86頁。2.7 2.7 各類數(shù)值型數(shù)據(jù)各類數(shù)值型數(shù)據(jù)(shj)(shj)間的混合運(yùn)算間的混合運(yùn)算 2.8 2.8 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式 第2頁/共86頁第三頁,共86頁。C+語言(yyn)提供了以下一些數(shù)據(jù)類型。 布爾型數(shù)據(jù)布爾型數(shù)據(jù)第3頁/共86頁第四頁,共86頁。 2.2.1 2.2.1 常量常量在程序運(yùn)行過程中在程序運(yùn)行過程中, ,其值不能被改變其值不能被改變(gibin)(gibin)的量稱為常量的量稱為常量常量區(qū)分為不同的類型:常量區(qū)分為不同的類型:整型 1

2、00,125,-100,0實(shí)型 3.14 , 0.125,-3.789字符(z f)型 a, b,2符號(hào)常量符號(hào)常量為了使用方便,可用一個(gè)符號(hào)名來代表一個(gè)常量。第4頁/共86頁第五頁,共86頁。例例2.1在程序在程序(chngx)中使用符號(hào)常量中使用符號(hào)常量 #define PRICE 30#include void main ( ) int num, total; num=10; total=num * PRICE; printf(total=%dn,total); 運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)果:結(jié)果: total=300total=300如再用賦值語句給如再用賦值語句給PRIC

3、E賦值是錯(cuò)的賦值是錯(cuò)的PRICE=40;/ /* * 錯(cuò)誤,不能給符號(hào)常量賦錯(cuò)誤,不能給符號(hào)常量賦不能對(duì)符號(hào)常量指定類型不能對(duì)符號(hào)常量指定類型int PRICE; / /* * 錯(cuò)誤,錯(cuò)誤,PRICEPRICE不是變量,不能指不是變量,不能指定類型定類型 * */ / 第5頁/共86頁第六頁,共86頁。 2.2.2 2.2.2變量變量(binling)(binling)在程序運(yùn)行過程中可以改變的量。在程序運(yùn)行過程中可以改變的量。變量變量(binling) -(binling) b 第8頁/共86頁第九頁,共86頁。第9頁/共86頁第十頁,共86頁。2.3.12.3.1整型常量的表示形式整型常量

4、的表示形式 整型常量即整常數(shù)整型常量即整常數(shù)(chngsh)(chngsh)。在。在+語言中語言中,整常數(shù),整常數(shù)(chngsh)(chngsh)可用以下三種形式表示:可用以下三種形式表示:(1)(1)十進(jìn)制整數(shù)。十進(jìn)制整數(shù)。 如:如:123, -456123, -456,4 4。(2)(2)八進(jìn)制整數(shù)。以八進(jìn)制整數(shù)。以0 0頭的數(shù)是八進(jìn)制數(shù)。頭的數(shù)是八進(jìn)制數(shù)。 如:如:01230123表示八進(jìn)制數(shù)表示八進(jìn)制數(shù)123123,等于十進(jìn)制數(shù),等于十進(jìn)制數(shù)83,-01183,-011表示八進(jìn)制數(shù)表示八進(jìn)制數(shù)-11,-11,即十進(jìn)制數(shù)即十進(jìn)制數(shù)-9-9。第10頁/共86頁第十一頁,共86頁。2.3.1

5、2.3.1整型常量的表示形式整型常量的表示形式(xngsh)(xngsh)(3)(3)十六進(jìn)制整數(shù)。以十六進(jìn)制整數(shù)。以0 x0 x開頭的數(shù)是開頭的數(shù)是1616進(jìn)制數(shù)。進(jìn)制數(shù)。 如:如:0 x1230 x123,代表,代表1616進(jìn)制數(shù)進(jìn)制數(shù)123,123,等于十進(jìn)制等于十進(jìn)制數(shù)數(shù) 291 291。 -0 x12 -0 x12等于十進(jìn)制數(shù)等于十進(jìn)制數(shù)1010。 2.3.2 2.3.2整型變量整型變量整型變量用來存放整型常量。整型變量的基本整型變量用來存放整型常量。整型變量的基本(jbn)(jbn)類型符為類型符為intint。C+C+語言中有以下語言中有以下3 3類整型變量類整型變量 :基本:基

6、本(jbn)(jbn)整型整型,短整型,長(zhǎng)整型。,短整型,長(zhǎng)整型。第11頁/共86頁第十二頁,共86頁。一般情況下,存儲(chǔ)整數(shù)時(shí)存儲(chǔ)單元中的第一個(gè)二進(jìn)位用來代表數(shù)值符號(hào),而在實(shí)際應(yīng)用中,變量(binling)的值常常是正的 ,所以存儲(chǔ)單元全部用來存儲(chǔ)數(shù)值本身,此定義無符號(hào)整數(shù)。所以歸納起來,在C+語言中,可以定義和使用6種整型變量(binling)共六種共六種有符號(hào)(fho)基本整型有符號(hào)(fho)短整型有符號(hào)(fho)長(zhǎng)整型無符號(hào)(fho)基本整型無符號(hào)(fho)短整型無符號(hào)(fho)長(zhǎng)整型(signed)int (signed)short (int )(signed) long (int)u

7、nsigned intunsigned short (int)unsigned long (int) 注意:注意:括號(hào)表示其中的內(nèi)容是可選的.第12頁/共86頁第十三頁,共86頁。 整數(shù)類型的有關(guān)(yugun)數(shù)據(jù):第13頁/共86頁第十四頁,共86頁。例例2.2 整型變量整型變量(binling)的定義與使用的定義與使用#include void main()() int a,b,c,d; /*指定、為整型變指定、為整型變量量(binling)* unsigned *指定為無符號(hào)整型變量指定為無符號(hào)整型變量(binling)* 12;-24;10; ; printf(,);,); 運(yùn)行運(yùn)行(

8、ynxng)(ynxng)結(jié)果:結(jié)果: , 第14頁/共86頁第十五頁,共86頁。0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 010第15頁/共86頁第十六頁,共86頁。n得-10的補(bǔ)碼(c)n0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 01 1 11 1 1 1 1 1 1 1 1 0 10 11 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0第16頁/共86頁第十七頁,共86頁。例例2.3 整型數(shù)據(jù)整型數(shù)據(jù)(shj)的溢出的溢出#include void main()int a,b; a=32767; b=a+1; printf(“%d,%dn”

9、,a,b);運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)果:結(jié)果: 32767,- 32767,-3276832768 如果系統(tǒng)給一個(gè)整型變量分配2個(gè)字節(jié),則變量的最大允許值為32767,若超出最大值則出現(xiàn)溢出現(xiàn)象。 第17頁/共86頁第十八頁,共86頁。 2.3.5 2.3.5 整型常量整型常量(chngling)(chngling)的類型的類型 整型變量的分類規(guī)則:整型變量的分類規(guī)則: (1) (1)一個(gè)整數(shù),如果其值在一個(gè)整數(shù),如果其值在-32768-32768+32767+32767范圍內(nèi)范圍內(nèi),認(rèn)為它是,認(rèn)為它是intint型,它可以賦值給型,它可以賦值給intint型和型和long lo

10、ng intint型變量。型變量。 (2) (2) 一個(gè)整數(shù),如果其值超過了上述范圍,而在一個(gè)整數(shù),如果其值超過了上述范圍,而在- -21474836372147483637+2147483647+2147483647范圍內(nèi),則認(rèn)為它是為范圍內(nèi),則認(rèn)為它是為長(zhǎng)整型??梢詫⑺x值給一個(gè)長(zhǎng)整型??梢詫⑺x值給一個(gè)long intlong int型變量。型變量。 第18頁/共86頁第十九頁,共86頁。 2.3.5 2.3.5 整型常量整型常量(chngling)(chngling)的類型的類型 (3) (3) 在一個(gè)整常量在一個(gè)整常量(chngling)(chngling)后面加一個(gè)字母后面加一個(gè)字

11、母l l或或L L,則認(rèn)為是,則認(rèn)為是long intlong int型常量型常量(chngling)(chngling),例如例如123l123l、432L432L、0L0L等,這往往用于函數(shù)調(diào)用中等,這往往用于函數(shù)調(diào)用中。如果函數(shù)的形參為。如果函數(shù)的形參為long intlong int型,則要求實(shí)參也型,則要求實(shí)參也為為long intlong int型。型。 (4) (4) 一個(gè)整常量一個(gè)整常量(chngling)(chngling)后面加一個(gè)字母后面加一個(gè)字母u u或或U U,認(rèn)為是,認(rèn)為是unsigned intunsigned int型,如型,如12345u12345u在內(nèi)存中在

12、內(nèi)存中按按unsigned intunsigned int規(guī)定的方式存放規(guī)定的方式存放( (存儲(chǔ)單元中最存儲(chǔ)單元中最高位不作為符號(hào)位,而用來存儲(chǔ)數(shù)據(jù)高位不作為符號(hào)位,而用來存儲(chǔ)數(shù)據(jù)) )。第19頁/共86頁第二十頁,共86頁。 2.4.1 2.4.1浮點(diǎn)型常量的表示浮點(diǎn)型常量的表示(biosh)(biosh)形式形式兩種表兩種表示形式示形式(xngsh)十進(jìn)制小數(shù)十進(jìn)制小數(shù)指數(shù)指數(shù)0.1230.1233 3e-3e-3注意注意: :字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù) 第20頁/共86頁第二十一頁,共86頁。 2.4.1 2.4.1浮點(diǎn)型常量的表示形式浮點(diǎn)型常量的表示形式 規(guī)

13、范化的指數(shù)形式:規(guī)范化的指數(shù)形式: 在字母在字母e e(或(或E E)之前的小數(shù)部分中,小數(shù)點(diǎn)左)之前的小數(shù)部分中,小數(shù)點(diǎn)左邊邊應(yīng)有一位(且只能有一位)非零的數(shù)字應(yīng)有一位(且只能有一位)非零的數(shù)字(shz).(shz). 例如例如: 123.456: 123.456可以表示為:可以表示為: 123.456e0, 12.3456e1, 1.23456e2, 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e0.123456e3, 0.0123456e4, 0.00123456e 其中的其中的1.23456e3

14、1.23456e3稱為稱為“規(guī)范化的指數(shù)形式規(guī)范化的指數(shù)形式”。第21頁/共86頁第二十二頁,共86頁。 2.4.2 2.4.2 浮點(diǎn)型變量浮點(diǎn)型變量(binling)(binling) 1 1)浮點(diǎn)型變量)浮點(diǎn)型變量(binling)(binling)分為單精度(分為單精度(floatfloat型)、雙精度(型)、雙精度(doubledouble型)和長(zhǎng)雙精型)和長(zhǎng)雙精度型(度型(long doublelong double)三類形式。)三類形式。第22頁/共86頁第二十三頁,共86頁。 2.4.2 浮點(diǎn)型變量浮點(diǎn)型變量 2)浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式:)浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式: 一

15、個(gè)浮點(diǎn)型數(shù)據(jù)一般在內(nèi)存中占一個(gè)浮點(diǎn)型數(shù)據(jù)一般在內(nèi)存中占4個(gè)字節(jié)個(gè)字節(jié)(32位位)。與整型數(shù)據(jù)的存儲(chǔ)方式不同,浮點(diǎn)。與整型數(shù)據(jù)的存儲(chǔ)方式不同,浮點(diǎn)型數(shù)據(jù)是按照指數(shù)形式存儲(chǔ)的。系統(tǒng)把一型數(shù)據(jù)是按照指數(shù)形式存儲(chǔ)的。系統(tǒng)把一個(gè)浮點(diǎn)型數(shù)據(jù)分成小數(shù)個(gè)浮點(diǎn)型數(shù)據(jù)分成小數(shù)(xiosh)部分和指部分和指數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化數(shù)部分,分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。的指數(shù)形式。第23頁/共86頁第二十四頁,共86頁。3)浮點(diǎn)型數(shù)據(jù)的舍入誤差)浮點(diǎn)型數(shù)據(jù)的舍入誤差:由于浮點(diǎn)型變量是由有限的存儲(chǔ)單元由于浮點(diǎn)型變量是由有限的存儲(chǔ)單元組成的,因此能提供的有效數(shù)字總是組成的,因此能提供的有效數(shù)字總是(

16、zn sh)有限的。在有限的。在有效位以外的數(shù)字將被舍去。由此可能會(huì)產(chǎn)生一些誤差有效位以外的數(shù)字將被舍去。由此可能會(huì)產(chǎn)生一些誤差例例2.4 浮點(diǎn)型數(shù)據(jù)的舍入誤差浮點(diǎn)型數(shù)據(jù)的舍入誤差#include void main()float a,b; a = 123456.789e5; b = a + 20 ; printf(“%fn”,b); 運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)果:結(jié)果: 123456.789e5123456.789e5 2.4.2 2.4.2 浮點(diǎn)型變量浮點(diǎn)型變量第24頁/共86頁第二十五頁,共86頁。.4.3 .4.3 浮點(diǎn)型常量的類型浮點(diǎn)型常量的類型 C+ C+編譯系統(tǒng)將浮點(diǎn)

17、型常量作為雙精度來處理。編譯系統(tǒng)將浮點(diǎn)型常量作為雙精度來處理。 例如:例如:f = 2.45678 f = 2.45678 * * 4523.65 4523.65 系統(tǒng)先把系統(tǒng)先把2.456782.45678和和4523.654523.65作為雙精度數(shù),然作為雙精度數(shù),然后進(jìn)行相乘的運(yùn)算,得到后進(jìn)行相乘的運(yùn)算,得到(d do)(d do)的乘也是一的乘也是一個(gè)雙精度數(shù)。個(gè)雙精度數(shù)。如果把一個(gè)浮點(diǎn)型常量賦給一個(gè)單精度變量如果把一個(gè)浮點(diǎn)型常量賦給一個(gè)單精度變量f f系系統(tǒng)給出警告,警告不影響連接和運(yùn)行最后結(jié)果統(tǒng)給出警告,警告不影響連接和運(yùn)行最后結(jié)果但只取其結(jié)果前但只取其結(jié)果前7 7位賦給浮點(diǎn)型變量

18、位賦給浮點(diǎn)型變量f f。如是在數(shù)的后面加字母如是在數(shù)的后面加字母f f或或F F(如(如1.65f, 1.65f, 654.87F654.87F),編譯系統(tǒng)就會(huì)把它們按單精度處理),編譯系統(tǒng)就會(huì)把它們按單精度處理。第25頁/共86頁第二十六頁,共86頁。.5.1 .5.1 字符常量字符常量(chngling)(chngling)(1)(1)用單引號(hào)包含的一個(gè)字符是字符型常量用單引號(hào)包含的一個(gè)字符是字符型常量(chngling)(chngling)(2)(2)只能包含一個(gè)字符只能包含一個(gè)字符a a, ,A A, , 1 1abcabc、“a a”第26頁/共86頁第二十七頁,共86頁。 有些以“

19、”開頭(ki tu)的特殊字符稱為轉(zhuǎn)義字符 含 義 ASCII代碼 換行,將當(dāng)前位置移到下一行開頭 10 水平制表(跳到下一個(gè)Tab位置) 9 退格,將當(dāng)前位置移到前一列 8 回車,將當(dāng)前位置移到本行開頭 13 換頁,將當(dāng)前位置移到下頁開頭 12 a 發(fā)出鈴聲 7 代表一個(gè)反斜杠字符“”92 代表一個(gè)單撇號(hào)字符 39 代表一個(gè)雙撇號(hào)字符34 到位八進(jìn)制數(shù)所代表的字符 到位十六進(jìn)制數(shù)所代表的字符 第27頁/共86頁第二十八頁,共86頁。例例2.5 轉(zhuǎn)義字符的使用轉(zhuǎn)義字符的使用(shyng)#include void ()() ( ab ct derftgn); printf(htibbj kn)

20、; 打印機(jī)上的顯示打印機(jī)上的顯示(xinsh)(xinsh)結(jié)果:結(jié)果: fab c gde fab c gde h jik h jik 顯示屏上的運(yùn)行顯示屏上的運(yùn)行(ynxng)(ynxng)結(jié)果:結(jié)果: f gde f gde j k j k第28頁/共86頁第二十九頁,共86頁。 2.5.2字符變量字符變量字符型變量用來存放字符常量,注意只能放一個(gè)字符型變量用來存放字符常量,注意只能放一個(gè)(y )字符。字符。字符變量的定義形式如下:字符變量的定義形式如下:char c1,c2;在本函數(shù)中可以用下面語句對(duì)在本函數(shù)中可以用下面語句對(duì)c1,c2賦值:賦值: c1a;c2 b ;一個(gè)一個(gè)(y )

21、字符變量在內(nèi)存中占一個(gè)字符變量在內(nèi)存中占一個(gè)(y )字節(jié)。字節(jié)。 第29頁/共86頁第三十頁,共86頁。2.5.3 2.5.3 字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)(cn ch)(cn ch)形式及其使用形式及其使用方法方法字符變量中存放的是字符的字符變量中存放的是字符的ASCIIASCII碼,這樣和部分碼,這樣和部分intint數(shù)據(jù)數(shù)據(jù)通用。通用。注意: 字符數(shù)據(jù)可以(1)%c形式輸出 (2) %d形式輸出 (3)可以與int數(shù)據(jù)進(jìn)行(jnxng)運(yùn)算第30頁/共86頁第三十一頁,共86頁。例例2.6 2.6 向字符變量賦予向字符變量賦予(fy)(fy)整數(shù)。整數(shù)。 #include

22、 #include void main()void main() char c1,c2; char c1,c2; c1=97; c1=97; c2=98; c2=98; printf(“%c %cn”,c1,c2); printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); printf(“%d %dn”,c1,c2); 運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)果:結(jié)果: 97 98 97 98第31頁/共86頁第三十二頁,共86頁。例例2.7 2.7 大小寫字母的轉(zhuǎn)換大小寫字母的轉(zhuǎn)換(zhunhun) (zhunhun) #include #include

23、 void main()void main() char c1,c2 char c1,c2; c1=a; c1=a; c2=b; c2=b; c1=c1-32; c1=c1-32; c2=c2-32; c2=c2-32; printf(“ printf(“c c cc,c1,c2c1,c2);); 運(yùn)行運(yùn)行(ynxng)(ynxng)結(jié)結(jié)果:果: 第32頁/共86頁第三十三頁,共86頁。第33頁/共86頁第三十四頁,共86頁。 2.5.4 2.5.4 字符串常量字符串常量(chngling)(chngling)字符串常量字符串常量(chngling)(chngling)是一對(duì)雙撇號(hào)括起來的是一

24、對(duì)雙撇號(hào)括起來的字符序列字符序列. .合法的字符串常量合法的字符串常量(chngling):(chngling):“How do you do.”, “CHINA”“How do you do.”, “CHINA”, “a” “a” , “$123.45” “$123.45”可以輸出一個(gè)字符串,如可以輸出一個(gè)字符串,如printf(“How do you do.”)printf(“How do you do.”);第34頁/共86頁第三十五頁,共86頁。 是字符常量(chngling), “a”是字符串常量(chngling),二者不同。 如:假設(shè)被指定為字符變量 :char c c= a;

25、“a” ;c “CHINA”; 結(jié)論:不能把一個(gè)字符(z f)串常量賦給一個(gè)字符(z f)變量。第35頁/共86頁第三十六頁,共86頁。 +規(guī)定:在每一個(gè)(y )字符串常量的結(jié)尾加一個(gè)(y ) “字符 串結(jié)束標(biāo)志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。 +規(guī)定以字符作為字符串結(jié)束標(biāo)志。 如:如果有一個(gè)(y )字符串常量” ,實(shí)際上在內(nèi)存中是:CHINA0 它占內(nèi)存單元不是個(gè)字符(z f),而是個(gè)字符(z f),最后一個(gè)字符(z f)為。但在輸出時(shí)不輸出。第36頁/共86頁第三十七頁,共86頁。q2.6布爾型數(shù)據(jù)布爾型數(shù)據(jù)qboolq值為值為true和和falseq可以當(dāng)作整數(shù)用(可以當(dāng)作整數(shù)用(

26、true一般為一般為1,false為為0)q把其它把其它(qt)類型的值轉(zhuǎn)換為布爾值時(shí),非零值轉(zhuǎn)換為類型的值轉(zhuǎn)換為布爾值時(shí),非零值轉(zhuǎn)換為true,零值轉(zhuǎn)換為,零值轉(zhuǎn)換為false第37頁/共86頁第三十八頁,共86頁?;旌线\(yùn)算:整型(包括(boku)int,short,long)、浮點(diǎn)型(包括(boku)float,double)可以混合運(yùn)算。在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算.說明(shumng): 這種類型轉(zhuǎn)換是由系統(tǒng)自動(dòng)進(jìn)行的。1.1.隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換第38頁/共86頁第三十九頁,共86頁。2. 2. 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 可以可以(ky

27、)(ky)利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式式轉(zhuǎn)換成所需類型。轉(zhuǎn)換成所需類型。 一般形式一般形式: :(類型名)(表達(dá)式)(類型名)(表達(dá)式)說明: 表達(dá)式應(yīng)該用括號(hào)括起來。 在強(qiáng)制類型轉(zhuǎn)換時(shí),得到一個(gè)所需類型的中間變量(binling),原來變量(binling)的類型未發(fā)生變化。第39頁/共86頁第四十頁,共86頁。例例2.8 強(qiáng)制強(qiáng)制(qingzh)類型轉(zhuǎn)換。類型轉(zhuǎn)換。 #include void main() float x; int i; x=3.6; i=(int)x; printf(x=%f, i=%dn,x,i); 運(yùn)行運(yùn)行(ynxng)(ynx

28、ng)結(jié)果:結(jié)果: x x3.6000003.600000, i=3 i=3第40頁/共86頁第四十一頁,共86頁。 2.8.1 +運(yùn)算符和運(yùn)算符和C+表達(dá)式簡(jiǎn)介表達(dá)式簡(jiǎn)介 1. +語言的運(yùn)算符有以下語言的運(yùn)算符有以下(yxi)幾類:幾類:算術(shù)運(yùn)算符算術(shù)運(yùn)算符 (+ - * / %)關(guān)系運(yùn)算符關(guān)系運(yùn)算符 (?。ǎ。┻壿嬤\(yùn)算符邏輯運(yùn)算符 (?。ǎ)位運(yùn)算符位運(yùn)算符 ( |)賦值運(yùn)算符賦值運(yùn)算符 (及其擴(kuò)展賦值運(yùn)算符)(及其擴(kuò)展賦值運(yùn)算符)條件運(yùn)算符條件運(yùn)算符 (?:)(?:)逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符 (,),)第41頁/共86頁第四十二頁,共86頁。(8)指針運(yùn)算符 (*和)(9)求字節(jié)數(shù)運(yùn)算符

29、()(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符( (類型) )(11)分量(fn ling)運(yùn)算符(-)(12)下標(biāo)運(yùn)算符()(13)其他 (如函數(shù)調(diào)用運(yùn)算符()第42頁/共86頁第四十三頁,共86頁。2. C+語言的表達(dá)式有以下幾類:語言的表達(dá)式有以下幾類:(1)算術(shù)表達(dá)式:如算術(shù)表達(dá)式:如2+6.7*3.5+sin(0.5)(2)關(guān)系表達(dá)式:如關(guān)系表達(dá)式:如x0,y0 & y0 (表示表示(biosh)x0與與y0同時(shí)成立同時(shí)成立,&是邏輯運(yùn)算符,代表是邏輯運(yùn)算符,代表“與與”)(4)賦值表達(dá)式:如賦值表達(dá)式:如a=5.6(5)逗號(hào)表達(dá)式:如逗號(hào)表達(dá)式:如a=3,y=4,z=8 第43頁/

30、共86頁第四十四頁,共86頁。 2.8.2 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式 1. 基本基本(jbn)的算術(shù)運(yùn)算符的算術(shù)運(yùn)算符:* (如(如:結(jié)果為;結(jié)果為;-11/3 結(jié)果為結(jié)果為-3) (如(如:的值為;的值為;11%-3結(jié)果為結(jié)果為2)。)。第44頁/共86頁第四十五頁,共86頁。2. 2. 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象( (也稱操作也稱操作數(shù))連接起來的、符合數(shù))連接起來的、符合+語法規(guī)則的式子,語法規(guī)則的式子,稱為稱為+算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、

31、變量、量、變量、函數(shù)等。函數(shù)等。 例如例如(lr): (lr): * *.5.5aa 是一個(gè)合法的表達(dá)式是一個(gè)合法的表達(dá)式第45頁/共86頁第四十六頁,共86頁。+語言規(guī)定了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。 在表達(dá)式求值時(shí),先按運(yùn)算符的優(yōu)先級(jí)別高低(god)次序執(zhí)行,例如先乘除后加減。 +規(guī)定了各種運(yùn)算符的結(jié)合方向(結(jié)合性) 算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣摇?,即先左后?。第46頁/共86頁第四十七頁,共86頁。 3. 3. 自增、自減運(yùn)算符自增、自減運(yùn)算符 作用作用(zuyng)(zuyng)是使變量的值增或減是使變量的值增或減如:如: ,(在使用之前,先使的值加,(在使用之前,先使的值加 (減)

32、(減),(在使用之后,使的值加(,(在使用之后,使的值加( 減)減) 第47頁/共86頁第四十八頁,共86頁。i+i+與與+i+i的區(qū)別的區(qū)別(qbi)(qbi): 是先執(zhí)行后,再使用的值是先執(zhí)行后,再使用的值; 是先使用的值后,再執(zhí)行是先使用的值后,再執(zhí)行。例如:例如: ; i i的值先變成的值先變成4, 4, 再賦給再賦給,j,j的值為的值為 ; 先將先將 i i的值的值3 3賦給賦給, ,的值為,然后變的值為,然后變?yōu)闉榈?8頁/共86頁第四十九頁,共86頁。注意:注意: (1)自增運(yùn)算符(),自減運(yùn)算符(),只能用于變量,而不能用于常量或表達(dá)式,自增運(yùn)算符(),自減運(yùn)算符(),只能用于

33、變量,而不能用于常量或表達(dá)式, (2)和的結(jié)合方向是和的結(jié)合方向是“自右至左自右至左”。 (3)自增(減)運(yùn)算符常用于循環(huán)語句中使循環(huán)變自增(減)運(yùn)算符常用于循環(huán)語句中使循環(huán)變 量自動(dòng)加。也用于指針變量,使指針指向下一個(gè)地址。量自動(dòng)加。也用于指針變量,使指針指向下一個(gè)地址。 (4)使用和時(shí)使用和時(shí) ,為避免二義性,最好采取,為避免二義性,最好采取(ciq)大家都能理解的寫法,可以加一些大家都能理解的寫法,可以加一些“不必要不必要”的括號(hào),如的括號(hào),如(i+)+j。第49頁/共86頁第五十頁,共86頁。1.1.關(guān)系運(yùn)算符及其優(yōu)先關(guān)系運(yùn)算符及其優(yōu)先(yuxin)(yuxin)次序次序 ( (小于小

34、于) )= ( ( (大于大于) )= (= (大于或等于大于或等于) )= (= (等于等于) )!= (!= (不等于不等于) )優(yōu)先級(jí)相同(高)優(yōu)先級(jí)相同(高)優(yōu)先級(jí)相同(低)優(yōu)先級(jí)相同(低)說明:說明:關(guān)系關(guān)系(gun x)運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符關(guān)系關(guān)系(gun x)運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符第50頁/共86頁第五十一頁,共86頁。2.2.關(guān)系表達(dá)式關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(可以是算術(shù)用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(可以是算術(shù)(sunsh)(sunsh)表達(dá)式或表達(dá)式或 關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式)

35、關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式) 接起來的式子,稱關(guān)系表達(dá)式接起來的式子,稱關(guān)系表達(dá)式例:例:ab,a+bb+c,(a=3)(b=5),ab)(bb,a+bb+c,(a=3)(b=5),ab)(bb”ab”的值為的值為“真真”,表達(dá)式的值為,表達(dá)式的值為1 1。第51頁/共86頁第五十二頁,共86頁。1.1.邏輯運(yùn)算符及其優(yōu)先邏輯運(yùn)算符及其優(yōu)先(yuxin)(yuxin)次序次序& (& (邏輯與邏輯與) ) 相當(dāng)于其他語言中的相當(dāng)于其他語言中的ANDAND| (| (邏輯或邏輯或) ) 相當(dāng)于其他語言中的相當(dāng)于其他語言中的OROR! (! (邏輯非邏輯非) )

36、 相當(dāng)于其他語言中的相當(dāng)于其他語言中的NOTNOT例:例:a&b a&b 若若a,ba,b為真,則為真,則a&ba&b為真。為真。 a|b a|b 若若a,ba,b之一為真,則之一為真,則a|ba|b為真。為真。 !a a 若若a a為真,則為真,則!a!a為假。為假。優(yōu)先次序:優(yōu)先次序:!(非非)-&()-|()邏輯邏輯(lu j)運(yùn)算符中的運(yùn)算符中的“&”和和“|”低于關(guān)系運(yùn)算符,低于關(guān)系運(yùn)算符,“!”高于算高于算 術(shù)運(yùn)算符術(shù)運(yùn)算符第52頁/共86頁第五十三頁,共86頁。2.2.邏輯表達(dá)式邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來的式

37、子就用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來的式子就 是邏輯表達(dá)式是邏輯表達(dá)式邏輯表達(dá)式的值應(yīng)該邏輯表達(dá)式的值應(yīng)該(ynggi)(ynggi)是一個(gè)邏輯量是一個(gè)邏輯量“真真”或或“假假”。例:例:設(shè)設(shè)a=4a=4,b=5b=5:!a!a的值為的值為0 a&b0 a&b的值為的值為1 1a|ba|b的值為的值為1 !a|b1 !a|b的值為的值為1 14&0|24&0|2的值為的值為1 1任何非零的數(shù)值任何非零的數(shù)值(shz)被認(rèn)作被認(rèn)作“真真”第53頁/共86頁第五十四頁,共86頁。例:53&84-!0 自左向右運(yùn)算(yn sun) 1&0邏輯值

38、為083邏輯值為1表達(dá)式值為0第54頁/共86頁第五十五頁,共86頁。在邏輯在邏輯(lu j)(lu j)表達(dá)式的求解中,并不是所有的邏輯表達(dá)式的求解中,并不是所有的邏輯(lu j)(lu j)運(yùn)算符都要被執(zhí)行。運(yùn)算符都要被執(zhí)行。(1)a&b&c (1)a&b&c 只有只有a a為真時(shí),才需要判斷為真時(shí),才需要判斷b b的值,只有的值,只有a a和和b b都為真時(shí),都為真時(shí), 才需要判斷才需要判斷c c的值。的值。(2)a|b|c (2)a|b|c 只要只要a a為真,就不必判斷為真,就不必判斷b b和和c c的值,只有的值,只有a a為假,才為假,才 判斷判斷

39、b b。a a和和b b都為假才判斷都為假才判斷c c 設(shè)設(shè)a=1,b=2,c=3,d=4, m=1,n=1; 例例:(m=ab)&(n=cd)第55頁/共86頁第五十六頁,共86頁。 用邏輯表達(dá)式來表示閏年的條件能被4整除,但不能被100整除。能被4整除,又能被400整除答答 (year%4=0&year%100!=0)|year%400=0案案 值為真值為真(1)是閏年是閏年(rnnin),否則為非閏年,否則為非閏年(rnnin)。第56頁/共86頁第五十七頁,共86頁。 所謂位運(yùn)算,是指對(duì)一個(gè)數(shù)據(jù)的某些二進(jìn)制位進(jìn)行(jnxng)的運(yùn)算。 規(guī)定最左邊一位為最高位: 位邏輯運(yùn)

40、算符:按位非 按位與 & 按位或 | 按位異或 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0第57頁/共86頁第五十八頁,共86頁。例 int x=31; 求x 0000000000011111 1111111111100000即:x= - 32例:int x=31;y=-5; 求x&y 0000000000011111& 1111111111111011 0000000000011011即:x&y=27l按位非 0=1 1=0l 舉例(j l):按位與 0&0=0 0&1=0 1&0=0 1&1=1

41、 舉例(j l):第58頁/共86頁第五十九頁,共86頁。“按位與按位與”運(yùn)算有如下一些用途運(yùn)算有如下一些用途(yngt):(1)將數(shù)據(jù)中的某些位清零)將數(shù)據(jù)中的某些位清零(2)測(cè)試指定位是)測(cè)試指定位是0還是還是1(3)獲得)獲得x指定位的值指定位的值例如:設(shè)X為一個(gè)字符型變量(8位二進(jìn)制位),判斷其最低位為0還是1只需:X & 0 x01 即可!X= x x x x x x x x & 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 x例如:設(shè)X是unsigned類型的整數(shù)(16位二進(jìn)制數(shù)),要求獲取X的低8位只需:X & 0 x00ff 即可!X= x

42、 x x x x x x x x x x x x x x x & 0 0 0 0 0 0 0 011 1 1 1 1 1 1 0 0 0 0 0 0 0 0 x x x x x x x x第59頁/共86頁第六十頁,共86頁。例:int x=31;y=-5; 求x | y 0000000000011111 | 1111111111111011 1111111111111111即:x | y=-1按位或 0|0=0 0|1=1 1|0=1 1|1=1 舉例(j l):“按位或”運(yùn)算常用(chn yn)于對(duì)一個(gè)數(shù)據(jù)中的某些位置1。例如:將一個(gè)無符號(hào)整數(shù)X的第4位置1。只需: X | 0 x

43、10 即可!X= x x x x x x x x x x x x x x x x | 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 x x x x x x x x x x x 1 x x x x第60頁/共86頁第六十一頁,共86頁。按位異或 00=0 01=1 10=1 11=0 舉例(j l):例:int x=31;y=-5; 求x y 0000000000011111 1111111111111011 1111111111100100即:x | y=-28“按位異或”運(yùn)算(yn sun)有如下一些用途:(1)使數(shù)據(jù)中的某些位求反 該位與1異或即可(2)對(duì)變量清零 XX位

44、位位位&| 01011100000101110110位邏輯(lu j)運(yùn)算符總結(jié):第61頁/共86頁第六十二頁,共86頁。移位運(yùn)算符移位運(yùn)算符 左移運(yùn)算符左移運(yùn)算符 使用使用(shyng)方式:運(yùn)算對(duì)象方式:運(yùn)算對(duì)象左移位數(shù)左移位數(shù) 功能:將運(yùn)算對(duì)象的每個(gè)二進(jìn)制位同時(shí)向左移動(dòng)制定的位數(shù),從左邊移出的功能:將運(yùn)算對(duì)象的每個(gè)二進(jìn)制位同時(shí)向左移動(dòng)制定的位數(shù),從左邊移出的高位部分被丟棄,低位部分用高位部分被丟棄,低位部分用0補(bǔ)齊補(bǔ)齊 左移左移1位相當(dāng)于該數(shù)乘以位相當(dāng)于該數(shù)乘以2?。▋H對(duì)移出的高位不含!(僅對(duì)移出的高位不含1的成立)的成立) eg. 642 0100 0000 左移左移2位得位得

45、 0000 0000 左移比乘法元算快的多,有些左移比乘法元算快的多,有些C+編譯程序自動(dòng)將乘編譯程序自動(dòng)將乘2的運(yùn)算用左移的運(yùn)算用左移1位來實(shí)位來實(shí)現(xiàn),將乘現(xiàn),將乘2n的冪運(yùn)算處理為左移的冪運(yùn)算處理為左移n位。位。例:設(shè) a=15; 求 a 使用方式:運(yùn)算對(duì)象左移位數(shù) 功能:將運(yùn)算對(duì)象的每個(gè)二進(jìn)制位同時(shí)向右移動(dòng)制定(zhdng)的位數(shù),從右邊移出的低位部分被丟棄。 對(duì)于無符號(hào)數(shù),左邊高位用0補(bǔ)齊; 對(duì)于有符號(hào)數(shù),正數(shù)左邊高位也是補(bǔ)0; 負(fù)數(shù)高位補(bǔ)0還是補(bǔ)1和具體的系統(tǒng)有關(guān)。 補(bǔ)0 稱為:邏輯右移,補(bǔ)1稱為:算數(shù)右移 例:設(shè) a=15; 求 a20000 0000 0000 1111 左移2位

46、得:0000 0000 0000 0011 即十進(jìn)制的3例:設(shè)a=-50; 求 a2 a : 1111 1111 1100 1110a1: 0111 1111 1110 0111 (邏輯右移(yu y))a1: 1111 1111 1110 0111 (算數(shù)右移(yu y))右移右移(yu y)1位相當(dāng)于位相當(dāng)于除以除以2,右移,右移(yu y)n位位相當(dāng)于除以相當(dāng)于除以2n第63頁/共86頁第六十四頁,共86頁。逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符: :將兩個(gè)表達(dá)式連接起來將兩個(gè)表達(dá)式連接起來, ,又稱為又稱為(chn (chn wi)“wi)“順序求順序求值運(yùn)算符值運(yùn)算符”。 如:如:5 5, 一般一般(

47、ybn)形式形式: 表達(dá)式,表達(dá)式表達(dá)式,表達(dá)式求解過程:求解過程: 先求解表達(dá)式,再求解表達(dá)式。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式的值。 逗號(hào)表達(dá)式 的值為14第64頁/共86頁第六十五頁,共86頁。例:逗號(hào)例:逗號(hào)(duho)(duho)表達(dá)式表達(dá)式* *5 5,* * 一個(gè)逗號(hào)(duho)表達(dá)式又可以與另一個(gè)表達(dá)式組成一個(gè)新的逗號(hào)(duho)表達(dá)式。 如:(*,*),a+5 第65頁/共86頁第六十六頁,共86頁。 逗號(hào)表達(dá)式的一般形式(xngsh)可以擴(kuò)展為 表達(dá)式,表達(dá)式,表達(dá)式,表達(dá)式 它的值為表達(dá)式的值。 逗號(hào)(duho)運(yùn)算符是所有運(yùn)算符中級(jí)別最低的例: (,*) ,*3賦值表達(dá)式,將

48、一個(gè)(y )逗號(hào)表達(dá)式的值賦給,的值等于 逗號(hào)表達(dá)式,包括一個(gè)賦值表達(dá)式和一個(gè)算術(shù)表達(dá)式,的值為,整個(gè)逗號(hào)表達(dá)式的值為18。 第66頁/共86頁第六十七頁,共86頁。注意注意: :并不是并不是(b shi)(b shi)任何地方出現(xiàn)的逗號(hào)都任何地方出現(xiàn)的逗號(hào)都是作為逗號(hào)運(yùn)算符。例如函數(shù)參數(shù)也是是作為逗號(hào)運(yùn)算符。例如函數(shù)參數(shù)也是用逗號(hào)來間隔的。用逗號(hào)來間隔的。 如如: printf(“%d,%d,%d”,a,b,c);: printf(“%d,%d,%d”,a,b,c);“,”并不是一個(gè)(y )逗號(hào)表達(dá)式,它是printf函數(shù)的3個(gè)參數(shù)printf(“%d,%d,%d”,(a,b,c),b,c)

49、 “(,)”是一個(gè)逗號(hào)(duho)表達(dá)式,它的值等于的值。 第67頁/共86頁第六十八頁,共86頁。1.1.賦值運(yùn)算符賦值運(yùn)算符 = = 作用作用(zuyng)(zuyng):給變量賦值:給變量賦值 eg. int a; eg. int a; a=100 a=100 第68頁/共86頁第六十九頁,共86頁。. .復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符 在賦值符在賦值符“”之前加上其他之前加上其他(qt)(qt)運(yùn)算符,可以構(gòu)成運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符。復(fù)合的運(yùn)算符。 例:例:第69頁/共86頁第七十頁,共86頁。第70頁/共86頁第七十一頁,共86頁。第71頁/共86頁第七十二頁,共86頁。第72頁/共86頁第七十三頁,共86頁。第73頁/共86頁第七十四頁,共86頁。 分析分析(fnx)賦值表達(dá)式賦值表達(dá)式: (a=3*5)=4*3第74頁/共86頁第七十五頁,共86頁。 賦值表達(dá)式作為表達(dá)式的一種,不僅可以出現(xiàn)在賦值語句(yj)中,而且可以以表達(dá)式形式出現(xiàn)在其他語句(yj)(如輸出語句(yj)、循環(huán)語句(yj)等)中 。 例:printf(%d,a=b

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論