第2章基本料處理_第1頁(yè)
第2章基本料處理_第2頁(yè)
第2章基本料處理_第3頁(yè)
第2章基本料處理_第4頁(yè)
第2章基本料處理_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第第2章基本資料處理章基本資料處理 2-1變數(shù)與常數(shù)2-2基本資料型態(tài)2-3運(yùn)算式簡(jiǎn)介2-4資料型態(tài)轉(zhuǎn)換2-5本章綜合練習(xí)22-1 變數(shù)與常數(shù)l變數(shù)(variable)與常數(shù)(constant)都是程式設(shè)計(jì)師用來(lái)存取記憶體資料內(nèi)容的一個(gè)識(shí)別代碼。l兩者最大的差異在於變數(shù)的內(nèi)容會(huì)隨著程式執(zhí)行而改變,但常數(shù)則固定不變。 3變數(shù)簡(jiǎn)介l變數(shù)是具備名稱的一塊記憶體空間,用來(lái)儲(chǔ)存可變動(dòng)的資料內(nèi)容。l透過(guò)變數(shù)名稱將資料由記憶體中取出或?qū)懭?。例如:int num1=30;int num2=77;4變數(shù)命名原則 l1.變數(shù)名稱開(kāi)頭可以是英文字母或底線,但不可以是數(shù)字,名稱中間也不可以有空白。l2.變數(shù)名稱中間

2、可以有下底線,例如int_age,但是不可以使用-,*$等符號(hào)。l3.變數(shù)名稱長(zhǎng)度不可超過(guò)127個(gè)字元,且變數(shù)名稱只有前面63個(gè)字元是被視為有效變數(shù)名稱。l4.變數(shù)名稱必須區(qū)分大小寫(xiě)字母。l5.不可使用保留字或與函數(shù)名稱相同的命名。5保留字autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifint longregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile6合法與不合法的變數(shù) l合

3、法變數(shù)名稱 abc_apple,applestructurel不合法變數(shù)名稱 abc,5abcdollar$,*salarystruct7變數(shù)宣告l變數(shù)宣告就是在記憶體上安排儲(chǔ)存位址,作為存放所要宣告變數(shù)地方,通常這個(gè)位址是由編譯器來(lái)安排。l由於c是屬於靜態(tài)儲(chǔ)存配置 (static storage allocation)的程式語(yǔ)言,因此c中的變數(shù)都必須事先宣告後才能使用。 l宣告整數(shù)型態(tài)的變數(shù) my_variable如下:int my_variable;8c的變數(shù)宣告方式 l方式1: 資料型態(tài) 變數(shù)名稱1, 變數(shù)名稱2, , 變數(shù)名稱n;l方式2: 資料型態(tài) 變數(shù)名稱=初始值;l如果要一次宣告

4、多個(gè)同資料型態(tài)的變數(shù),可以利用逗號(hào),隔開(kāi)變數(shù)名稱即可。 9變數(shù)宣告與初始化:ch02_1.c l程式範(fàn)例中變數(shù)a,並沒(méi)有事先設(shè)定初始值,可是當(dāng)輸出時(shí),卻列印出不知名的數(shù)字。這是因?yàn)橄到y(tǒng)並未清除原先在那塊位址上的內(nèi)容。 10常數(shù)簡(jiǎn)介 l常數(shù)宣告又區(qū)分為以修飾詞const宣告和利用前置處理器中的#define指令來(lái)宣告自訂常數(shù)。宣告語(yǔ)法如下:方式1: const 資料型態(tài) 常數(shù)名稱=常數(shù)值;方式2: #define 常數(shù)名稱 常數(shù)值112-2基本資料型態(tài)l由於c是屬於一種強(qiáng)制型態(tài)式(strongly typed)語(yǔ)言,當(dāng)變數(shù)宣告時(shí),必須要指定資料型態(tài)。l有關(guān)c的基本資料型態(tài),可以區(qū)分為三大類(lèi),分別

5、是整數(shù)、浮點(diǎn)數(shù)和字元資料型態(tài)。 12整數(shù)資料型態(tài) l 當(dāng)各位將變數(shù)指定為整數(shù)型態(tài)時(shí),記憶體中即會(huì)保留4個(gè)位元組(32位元)的空間。宣告語(yǔ)法:int 變數(shù)名稱;或int 變數(shù)名稱=初始值;l 可以直接以10進(jìn)位數(shù)來(lái)設(shè)定整數(shù)數(shù)值外,也能採(cǎi)用8進(jìn)位(直接在數(shù)字前加上數(shù)值0)或16進(jìn)位(直接在數(shù)字前加上數(shù)值0 x)來(lái)設(shè)定:int sum=027; /* 0278等於2310 */int sum1=0 x2b; /* 0 x2b16=4310 */13shortl當(dāng)一個(gè)整數(shù)宣告為short int時(shí),資料長(zhǎng)度是16位元(2 byte)。它的資料型態(tài)所佔(zhàn)的記憶體空間,是比int整數(shù)小的範(fàn)圍。不過(guò)當(dāng)所選用的

6、編譯器是16位元系統(tǒng)下,short int和int型態(tài)的資料長(zhǎng)度都是16位元,就沒(méi)什麼差別了。宣告語(yǔ)法如下:short int sum;14longl 當(dāng)一個(gè)整數(shù)宣告為long int時(shí),它的資料長(zhǎng)度為4 byte,在16位元編譯器上,它是大於int整數(shù)(2 byte)的儲(chǔ)存範(fàn)圍,不過(guò)如果所選的編譯器為32位元(如dev c+、visual c+等),int資料型態(tài)為32位元,和long int資料型態(tài)的大小就沒(méi)有差別。宣告語(yǔ)法如下:long int sum;15signedl是有號(hào)整數(shù),signed修飾詞是指定一個(gè)整數(shù)可以擁有正負(fù)數(shù)型態(tài),不過(guò)由於int資料型態(tài)在c中就預(yù)設(shè)有正負(fù)號(hào)型態(tài)。如果省

7、略signed修飾詞,編譯程式設(shè)還是會(huì)將該變數(shù)視為帶符號(hào)整數(shù)。宣告語(yǔ)法如下:signed int sum 16unsignedl是無(wú)號(hào)整數(shù),unsigned資料型態(tài)修飾詞是將有號(hào)數(shù)(正負(fù)號(hào))的資料型態(tài)轉(zhuǎn)變?yōu)闊o(wú)號(hào)數(shù)型態(tài),也就是只要在資料型態(tài)前加上unsigned修飾詞,那麼該變數(shù)就只能儲(chǔ)存正整數(shù)資料。宣告語(yǔ)法如下:unsigned int sum;17c的整數(shù)相關(guān)宣告資訊 資料型態(tài)宣告資料長(zhǎng)度(位元組)最小值最大值short int2-3276832767signed short int2-3276832767unsigned short int2065535int4-2147783648214

8、7483647signed int4-21477836482147483647unsigned int404294967265long int4-21477836482147483647signed long int4-21477836482147483647unsigned long int40429496726518整數(shù)修飾詞宣告與輸出:ch02_2.c l程式範(fàn)例分別列出了c的整數(shù)修飾詞宣告與列印結(jié)果,並利用sizeof()函數(shù)來(lái)顯示變數(shù)的長(zhǎng)度。 19浮點(diǎn)數(shù)資料型 l浮點(diǎn)數(shù)(floating point)就是帶有小數(shù)點(diǎn)的數(shù)字。l浮點(diǎn)數(shù)的表示方法有兩種,一種是小數(shù)點(diǎn)方式,另一種是科學(xué)記號(hào)方

9、式,例如3.14、-100.521、6e-2、3.2e-18等。其中 e或 e是代表c中10為底數(shù)的科學(xué)符號(hào)表示法。例如6e-2,其中6稱為假數(shù),-2稱為指數(shù)。 20float單精度浮點(diǎn)數(shù) l宣告為float單精度浮點(diǎn)數(shù)的資料長(zhǎng)度為4位元組,有效範(fàn)圍為1.2*10-383.4*10+38。宣告方式如下:float 變數(shù)名稱;l 如果各位想宣告float變數(shù)時(shí)直接設(shè)定浮點(diǎn)數(shù)值,那麼系統(tǒng)會(huì)預(yù)設(shè)為double型態(tài)的常數(shù)來(lái)儲(chǔ)存,而不是float型態(tài)。如果想設(shè)定為float型態(tài),必須在數(shù)值字尾加上f或f。 21double倍精確度浮點(diǎn)數(shù) ldouble倍精確度為8位元組,有效範(fàn)圍為2.2*10-3081

10、.8*10+308。宣告方式如下:double 變數(shù)名稱;l 其實(shí)不論是float單精度浮點(diǎn)數(shù)或double倍精確度浮點(diǎn)數(shù),當(dāng)以printf()函數(shù)輸出時(shí),所要採(cǎi)的取輸出格式化字元可都是%f格式化字元。不過(guò)如果以科學(xué)記號(hào)方式輸出,則格式化字元為%e。 22浮點(diǎn)數(shù)的宣告與輸出範(fàn)例:ch02_3.c l程式範(fàn)例中將宣告一個(gè)有很長(zhǎng)小數(shù)位數(shù)的實(shí)數(shù),並試著以float單精度浮點(diǎn)數(shù)、double倍精確度浮點(diǎn)數(shù)及科學(xué)符號(hào)表示法分別列印。 23字元資料型態(tài) l字元(character)包含了字母、數(shù)字、標(biāo)點(diǎn)符號(hào)及控制符號(hào)等。l字元資料在記憶體中是以整數(shù)數(shù)值來(lái)儲(chǔ)存,每一個(gè)字元佔(zhàn)用1位元組(8位元)的資料長(zhǎng)度,所

11、以字元的數(shù)值範(fàn)圍028-1之間。宣告方式如下:char 變數(shù)名稱=ascii碼; 或是char 變數(shù)名稱=字元;24另一種字元型態(tài)的表示方式l 也可以使用x開(kāi)頭的十六進(jìn)位ascii碼或開(kāi)頭的八進(jìn)位ascii碼來(lái)表示字元,例如:char my_char=x41; /*16進(jìn)位ascii碼表示 a字元 */char my_char=0 x41; /*16進(jìn)位數(shù)值表示 a字元 */char my_char=101; /* 8進(jìn)位ascii碼表示 a字元 */char my_char=0101; /* 8進(jìn)位數(shù)值表示 a字元 */25字元資料的輸出與加法運(yùn)算功能:ch02_4.c l程式範(fàn)例是分別以使

12、用%c與%d兩種格式化字元來(lái)列印,並且示範(fàn)了字元加法運(yùn)算後的結(jié)果。 26跳脫字元 跳脫字元說(shuō)明十進(jìn)位ascii碼八進(jìn)位ascii碼十六進(jìn)位ascii碼0字串結(jié)束字元。(null character)000 x00a警告字元,發(fā)出嗶的警告音。70070 x7b倒退字元(backspace),倒退一格80100 x8t水平跳格字元(horizontal tab)90110 x9n換行字元(new line)100120 xav垂直跳格字元(vertical tab)110130 xbf跳頁(yè)字元(form feed)120140 xcr返回字元(carriage return)130150 xd顯示

13、雙引號(hào)(double quote)340420 x22顯示單引號(hào)(single quote)390470 x27顯示反斜線(backslash)9201340 x5c27跳脫字元的說(shuō)明與應(yīng)用:ch02_5.c 28void 資料型態(tài) lvoid 資料型態(tài)是表示一種不存在的值,void 資料型態(tài)的宣告模式有兩種:方式1: void 函數(shù)名稱();方式2: 資料型態(tài) 函數(shù)名稱(void);l方式1是表示宣告一個(gè)void函數(shù),並代表此函數(shù)沒(méi)有回傳值,如果省略void,編譯器則會(huì)自動(dòng)將此函數(shù)預(yù)設(shè)為int型態(tài)。l方式2則表示如果在函數(shù)的參數(shù)列中宣告void,則代表此函數(shù)沒(méi)有參數(shù)的傳遞。 29運(yùn)算式 l

14、運(yùn)算式是由運(yùn)算子(operator)與運(yùn)算元(operand)所組成。例如:d=a*b-123.4;l 其中d、a、b、123.4等常數(shù)或變數(shù)稱為運(yùn)算元(operand),而=、*、-等運(yùn)算符號(hào)稱為運(yùn)算子(operator)。l 在c中,運(yùn)算元包括了常數(shù)、變數(shù)、函數(shù)呼叫或其他運(yùn)算式,而運(yùn)算子有指派運(yùn)算子、算術(shù)運(yùn)算子、比較運(yùn)算子、邏輯運(yùn)算子、遞增遞減運(yùn)算子,以及位元運(yùn)算子等六種。 30指定運(yùn)算子 l =指定運(yùn)算子,主要作用是將等號(hào)右方的值指派給等號(hào)左方的變數(shù)。=號(hào)的左邊必須為變數(shù),右邊則可以為變數(shù)、常數(shù)或運(yùn)算式等。例如:a= a + 5; /* 將a值加5後指派給變數(shù)a */c=a; /* 將字

15、元a指派給變數(shù)c */l =能指定同一個(gè)數(shù)值給多個(gè)變數(shù)。例如:int a,b,c;a=b=c=100; /* 同步指定值給不同變數(shù) */31算術(shù)運(yùn)算子的語(yǔ)法及範(fàn)例 運(yùn)算子說(shuō)明使用語(yǔ)法執(zhí)行結(jié)果(a=15,b=7)+加a + b15+7=22-減a - b15-7=8*乘a * b15*7=105/除a / b15/7=2%取餘數(shù)a % b15%2=1+正號(hào)+a+15-負(fù)號(hào)-b-732算術(shù)運(yùn)算子運(yùn)用範(fàn)例:ch02_6.c l範(fàn)例是列印出a、b兩數(shù)與算術(shù)運(yùn)算子間的運(yùn)算關(guān)係,如果各位想在螢?zāi)伙@示出%字元,必須要重覆兩次%字元。 33關(guān)係運(yùn)算子 關(guān)係運(yùn)算子功能說(shuō)明用法a=5,b=2 大於ab52,結(jié)果為

16、true(1)。小於ab5=大於等於a=b5=2,結(jié)果為true(1)。=小於等於a=b5=2,結(jié)果為false(0)。=等於a=b5=2,結(jié)果為false(0)。!=不等於a!=b5!=2,結(jié)果為true(1)。34比較運(yùn)算子運(yùn)用範(fàn)例:ch02_7.c l程式範(fàn)例是列印兩個(gè)運(yùn)算元間各種比較運(yùn)算子的真值表,以0表示結(jié)果為假,1表示結(jié)果為真。 35邏輯運(yùn)算子 l邏輯運(yùn)算子(logical operator)是用來(lái)判斷基本的邏輯運(yùn)算,並將判斷的結(jié)果,以0代表false,1代表true。&和|運(yùn)算子的運(yùn)算規(guī)則和比較運(yùn)算子相同,是由左至右,而!運(yùn)算子則是由右至左。 36& 運(yùn)算子 &a

17、mp;邏輯運(yùn)算子a10b110000l當(dāng)&運(yùn)算子(and)兩邊的運(yùn)算式皆為真(1)時(shí),其執(zhí)行結(jié)果才為真(1),任何一邊為假(0)時(shí),執(zhí)行結(jié)果都為假(0)。 37| 運(yùn)算子| 邏輯運(yùn)算子a10b111010l當(dāng)|運(yùn)算子(or)兩邊的運(yùn)算式,只要其中一邊為真(1)時(shí),執(zhí)行結(jié)果就為真(1)。 38!運(yùn)算子l !運(yùn)算子(not)是一元運(yùn)算子,它會(huì)將比較運(yùn)算式的結(jié)果做反相輸出,也就是傳回與運(yùn)算元相反的值。 a 10 !運(yùn)算子 0 139邏輯運(yùn)算子的應(yīng)用範(fàn)例:ch02_8.c l範(fàn)例是輸出兩數(shù)比較與邏輯運(yùn)算子相互關(guān)係的真值表 。40遞增與遞減運(yùn)算子 l它們是針對(duì)變數(shù)運(yùn)算元加減1的簡(jiǎn)化寫(xiě)法,屬於一元

18、運(yùn)算子的一種,可增加程式碼的簡(jiǎn)潔性。l如果依據(jù)運(yùn)算子在運(yùn)算元前後位置的不同,雖然都是對(duì)運(yùn)算元做加減1的動(dòng)作,遞增與邊減運(yùn)算子還是可以細(xì)分成前置型及後置型兩種。41前置型程式片段lint a,b;la=5;lb=+a;lprintf(a=%d, b=%dn,a,b);42後置型程式片段 lint a,b;la=5;lb=a+;lprintf(a=%d, b=%dn,a,b);43遞增與遞減運(yùn)算子的應(yīng)用:ch02_9.c l程式範(fàn)例將實(shí)際示範(fàn)前置型遞增運(yùn)算子、前置型遞減運(yùn)算子、後置型遞增運(yùn)算子、後置型遞增運(yùn)算子在運(yùn)算前後的執(zhí)行過(guò)程 。44位元運(yùn)算子 位元運(yùn)算子說(shuō)明使用語(yǔ)法&a與b進(jìn)行and

19、運(yùn)算a & b|a與b進(jìn)行or運(yùn)算 a | ba進(jìn)行not運(yùn)算aa與b進(jìn)行xor運(yùn)算aba進(jìn)行左移n個(gè)位元運(yùn)算aa進(jìn)行右移n個(gè)位元運(yùn)算an45&位元運(yùn)算子l執(zhí)行and運(yùn)算時(shí),當(dāng)a與b位元值逐一比較皆為1時(shí),新位元值才為1,其餘皆為為0。例如13&57=9。46|位元運(yùn)算子l執(zhí)行or運(yùn)算時(shí),當(dāng)a或b位元值其中一方為1時(shí),新位元值則為1,只有a與b的位元值均為0時(shí),新位元值為0,例如13|57=61。47位元運(yùn)算子 l執(zhí)行xor運(yùn)算時(shí),當(dāng)a或b位元值一為1,一為0時(shí),新位元值為1。另外a與b的位元值均為1或均為0時(shí),則新位元值為0。例如1357=52。 48位元運(yùn)算子 l對(duì)

20、a的位元取1補(bǔ)數(shù)法,即位元值為1時(shí),新位元值改為0,或位元值為0時(shí),新位元值改為1。例如13=-14。 49位元運(yùn)算子 l是將數(shù)值的位元向右移動(dòng)n個(gè)位元。向右移動(dòng)後,超出儲(chǔ)存範(fàn)圍的數(shù)字捨去,而左邊多出的位元就補(bǔ)上0。例如132=3 。50位元運(yùn)算子 l將數(shù)值的位元向左移動(dòng)n個(gè)位元。向左移動(dòng)後,超出儲(chǔ)存範(fàn)圍的數(shù)字捨去,右邊位元?jiǎng)t補(bǔ)上0。例如132=52 。51位元運(yùn)算子的說(shuō)明與應(yīng)用:ch02_10.c l範(fàn)例是利用兩個(gè)整數(shù)運(yùn)算元13與57來(lái)進(jìn)行六種位元運(yùn)算子的相關(guān)運(yùn)算。 52複合指定運(yùn)算子 l複合指定運(yùn)算子,是由指派運(yùn)算子與其它運(yùn)算子結(jié)合而成。先決條件是=號(hào)右方的來(lái)源運(yùn)算元必須有一個(gè)是和左方接收

21、指定數(shù)值的運(yùn)算元相同,如果一個(gè)運(yùn)算式含有多個(gè)混合指定運(yùn)算子,運(yùn)算過(guò)程必須是由右方開(kāi)始,逐步進(jìn)行到左方。 l例如以a += b;指令來(lái)說(shuō),它就是指令a=a+b;的精簡(jiǎn)寫(xiě)法 53複合指定運(yùn)算子種類(lèi)運(yùn)算子說(shuō)明使用語(yǔ)法+=加法指定運(yùn)算a += b-=減法指定運(yùn)算a -= b*=乘法指定運(yùn)算a *= b/=除法指定運(yùn)算a /= b%=餘數(shù)指定運(yùn)算a %= b&=and位元指定運(yùn)算a &= b|=or位元指定運(yùn)算a |= b=not位元指定運(yùn)算a = b=位元左移指定運(yùn)算a =位元右移指定運(yùn)算a = b54複合指定運(yùn)算子運(yùn)算過(guò)程l混合指定運(yùn)算子的多層運(yùn)算式:l a+=a+=b+=b%=4; 其實(shí)際運(yùn)算過(guò)程如下:b=b%4b=b+b;a=a+b;a=a+a;55複合指定運(yùn)算子的整合應(yīng)用:ch02_11.c l程式範(fàn)例在說(shuō)明複合指定運(yùn)算子的運(yùn)算模式 。56運(yùn)算式處理規(guī)則l1.當(dāng)遇到一個(gè)運(yùn)算式時(shí),先區(qū)分運(yùn)算子與運(yùn)算元。l2.依照運(yùn)算子的優(yōu)先順序作整理的動(dòng)作。l3.將各運(yùn)算子根據(jù)其結(jié)合順序進(jìn)行運(yùn)算。57運(yùn)算子優(yōu)先順序(一)運(yùn)算子優(yōu)先順序說(shuō)明()括號(hào)!-+-邏輯運(yùn)算

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論