C教案-Ch2.doc_第1頁(yè)
C教案-Ch2.doc_第2頁(yè)
C教案-Ch2.doc_第3頁(yè)
C教案-Ch2.doc_第4頁(yè)
C教案-Ch2.doc_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章 基本數(shù)據(jù)類型及數(shù)據(jù)運(yùn)算2.0 預(yù)備知識(shí)一、 計(jì)算機(jī)中數(shù)的表示及進(jìn)制轉(zhuǎn)換1、數(shù)制l 十進(jìn)制數(shù) 二進(jìn)制數(shù) 八進(jìn)制數(shù) 十六進(jìn)制數(shù)0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 11110 1 2 3 4 5 6 7 10 11 12 13 14 15 16 170 1 2 3 4 5 6 7 8 9 A B C D E F 2、各種進(jìn)制之間的轉(zhuǎn)換(整數(shù))l 二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制:按權(quán)相加l 十進(jìn)制轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十六進(jìn)制:連續(xù)除以基,從低到高記錄余數(shù),直至商為0l 二進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換u 二進(jìn)制轉(zhuǎn)換成八進(jìn)制:從右向左,每3位一組(不足3位左補(bǔ)0),轉(zhuǎn)換成八進(jìn)制例 (1101001)2=(001,101,001)2=(151)8 八進(jìn)制轉(zhuǎn)換成二進(jìn)制:用3位二進(jìn)制數(shù)代替每一位八進(jìn)制數(shù)例 (246)8=(010,100,110)2=(10100110)2l 二進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換二進(jìn)制轉(zhuǎn)換成十六進(jìn)制:從右向左,每4位一組(不足4位左補(bǔ)0),轉(zhuǎn)換成十六進(jìn)制例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16十六進(jìn)制轉(zhuǎn)換成二進(jìn)制:用4位二進(jìn)制數(shù)代替每一位十六進(jìn)制數(shù) 例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2二、 字節(jié)和位1. 內(nèi)存以字節(jié)為單元組成2. 每個(gè)字節(jié)有一個(gè)地址3. 一個(gè)字節(jié)一般由8個(gè)二進(jìn)制位組成4. 每個(gè)二進(jìn)位的值是0或1三、 數(shù)值的表示方法原碼、反碼和補(bǔ)碼1. 原碼:最高位為符號(hào)位,其余各位為數(shù)值本身的絕對(duì)值2. 反碼:l 正數(shù):反碼與原碼相同l 負(fù)數(shù):符號(hào)位為1,其余位對(duì)原碼取反3. 補(bǔ)碼:l 正數(shù):原碼、反碼、補(bǔ)碼相同l 負(fù)數(shù):最高位為1,其余位為原碼取反,再對(duì)整個(gè)數(shù)加1 使用補(bǔ)碼方式表示數(shù)據(jù)的原因:符號(hào)位也進(jìn)入了運(yùn)算,不用再單獨(dú)處理符號(hào)位;補(bǔ)碼對(duì)于0的描述唯一。2.1基本數(shù)據(jù)類型 數(shù)據(jù)類型總表:(請(qǐng)參考教材:P37)數(shù)據(jù)類型決定:. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù). 數(shù)據(jù)取值范圍. 其上可進(jìn)行的操作2.2 常量與變量一、標(biāo)識(shí)符1、 定義:用來標(biāo)識(shí)變量、常量、函數(shù)等的字符序列2、 組成:l 只能由字母、數(shù)字、下劃線組成,且第一個(gè)字母必須是字母或下劃線l 大小寫敏感l(wèi) 不能使用關(guān)鍵字3、 長(zhǎng)度:最長(zhǎng)32個(gè)字符4、 命名原則:見名知意; 不宜混淆 如數(shù)字1與字母I、o與0等例:判斷下列標(biāo)識(shí)符號(hào)合法性:sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123二.常量1.定義:程序運(yùn)行時(shí)其值不能改變的量(即常數(shù))2.常量分類: 符號(hào)常量: 用標(biāo)識(shí)符代表常量l 定義格式: #define 符號(hào)常量 常量如: #define PI 3.14l 優(yōu)點(diǎn): 含義清楚,一改全改l 注意問題:一般用大寫字母; 是宏定義預(yù)處理命令,不是C語(yǔ)句例2-1 符號(hào)常量舉例(ch2_1.c) #define PRICE 30main() int num,total; num=10; total=num*PRICE; printf(total=%d,total); 整型常量(整常數(shù))l 三種形式: 十進(jìn)制整數(shù):由數(shù)字09和正負(fù)號(hào)表示。 如: 123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字07表示,可以有正負(fù)號(hào)。如: 0123,-011十六進(jìn)制整數(shù):由0x(或0X)開頭,后跟09,af(或 AF)表示,可以有正負(fù)號(hào)。如: 0x123,0Xff,-0x12 實(shí)型常量(實(shí)數(shù)或浮點(diǎn)數(shù)) l 二種形式:十進(jìn)制小數(shù)形式:(必須有小數(shù)點(diǎn))。 如: 0.123, .123, 123.0, 0.0, 123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))。如: 12.3e3, 123E2, 1.23e4, e-5, 1.2E-3.5 字符常量l 定義:用單引號(hào)括起來的單個(gè)普通字符或轉(zhuǎn)義字符. 如: a,A, ?, n, 101l 字符常量的值:該字符的ASCII碼值如 A65, a97, 048 , n10l 轉(zhuǎn)義字符: 反斜線后面跟一個(gè)字符或一個(gè)代碼值表示nrdddtf“xhh換行回車單引號(hào)3位8進(jìn)制數(shù)代表的字符水平制表b退格換頁(yè)反斜線雙引號(hào)2位16進(jìn)制數(shù)代表的字符轉(zhuǎn)義字符含義轉(zhuǎn)義字符含義例: 101 -A 012 -n 376- x61 -a 060 -0 A-101-x41-65運(yùn)行結(jié)果:(屏幕顯示)A B CI say:”How are you?”C ProgramTurbo C例2-2 轉(zhuǎn)義字符舉例(ch2_2.c) main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);三.變量1.概念:其值可以改變的量2.變量的類型:類型符號(hào)關(guān)鍵字所占位數(shù)數(shù)的范圍整形有(signed) int 16-3276832767有(signed) short16-3276832767有(signed) long32-21474836482147483647無unsigned int16065535無unsigned short16065535無unsigned long3204294967295實(shí)型有float323.4e-383.4e38有double641.7e-3081.7e308字符型有(signed) char8-128127無unsigned char80255l 實(shí)型數(shù)據(jù)是按照指數(shù)形式存儲(chǔ)的。24位表示小數(shù)部分(包括符號(hào)),8位表示指數(shù)部分(包括符號(hào))。小數(shù)部分占的位數(shù)越多,數(shù)的有效數(shù)字越多,精度越高;指數(shù)部分占得位數(shù)越多,則能表示的數(shù)值范圍越大。l 字符型數(shù)據(jù)包含的是一個(gè)字符集。一般用的是ASCII碼字符集見附錄A(p249) 。l 字符集中的每一個(gè)字符都有一個(gè)序號(hào),稱為ASCII碼。 ASCII碼大的字符比ASCII碼小的字符值大。l 字符類型的標(biāo)識(shí)符是char。3.變量定義的一般格式:數(shù)據(jù)類型 變量1,變量2, ,變量n;4.變量的初始化: 定義時(shí)賦初值 例:int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1;5。注意問題: 變量的使用:先定義,后使用 變量定義位置:一般放在函數(shù)開頭main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);6變量分類 整型變量 整型變量分類:(請(qǐng)參考教材P43:表3。1) 整型變量定義: 如: int a, b ;unsigned short c,d ;long e,f ;例2-3 (ch2_3.c) #include main() int a,b,c,d; unsigned u;運(yùn)行結(jié)果:a+u=22, b+u=-14 a=12; b=-24; u=10; c=a+u; d=b+u; printf(“a+u=%d, b+u=%dn”,c,u); 2、實(shí)型變量 實(shí)型數(shù)據(jù)在內(nèi)存中的存放:l 實(shí)型變量分類(請(qǐng)參考教材P46:表3。2)實(shí)型變量定義: 如: float x, y ;double z ;long double t ;l注意問題:由于實(shí)型變量的有效數(shù)字的影響,在進(jìn)行實(shí)數(shù)運(yùn)算時(shí),應(yīng)當(dāng)避免將一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加或相減。3、字符型變量 字符型數(shù)據(jù)在內(nèi)存中的存放:字符數(shù)據(jù)以ASCLL碼存儲(chǔ),字符變量占用一個(gè)字節(jié)(8 bit)l 字符變量的定義:char c1,c2; 注意問題:由于字符變量存放字符ASCII碼值,因此字符型數(shù)據(jù)與整型數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算。 如:char a, x, s;a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */由于字符型變量在內(nèi)存中是以字符的ASCII碼一個(gè)無符號(hào)整數(shù)的形式來存放的,所以在一定范圍內(nèi),字符型數(shù)據(jù)和整型數(shù)據(jù)是可以互相通用的,二者的區(qū)別僅在于:字符型常量占一個(gè)字節(jié),而整型常量占兩個(gè)字節(jié)。 字符串常量: 定義:用雙引號(hào)(“”)括起來的字符序列存儲(chǔ):每個(gè)字符串尾自動(dòng)加一個(gè) 0 作為字符串結(jié)束標(biāo)志如:字符串“hello”在內(nèi)存中: h l o 0 l e 0 空串 “” 在內(nèi)存中: 注意問題: 字符常量與字符串常量不同. 如:a與 “a” 注意:C語(yǔ)言中沒有字符串變量,用字符數(shù)組存放字符串。例2-4 (ch2_4.c) #define PRICE 12.5 main() int num=3;運(yùn)行結(jié)果:total=37.500000, ch1=d float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f, ch1=%cn”,total,ch1); 2.3不同類型數(shù)據(jù)間的轉(zhuǎn)換一運(yùn)算轉(zhuǎn)換:不同類型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)轉(zhuǎn)換成同一類型。l 轉(zhuǎn)換規(guī)則(請(qǐng)參考教材P54:圖3.10) 運(yùn)算對(duì)象類型不同時(shí)進(jìn)行的類型轉(zhuǎn)換規(guī)則:int - unsigned - long - double 運(yùn)算過程中必定進(jìn)行的類型轉(zhuǎn)換:char,short - int; float -double注意:不要理解為int型先轉(zhuǎn)換成unsinged int型再轉(zhuǎn)換成double型。二、強(qiáng)制轉(zhuǎn)換1.一般形式:(類型名)(表達(dá)式)如: (int)(x+y) (int)x+y (double)(3/2) (int)3.6 2.說明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變 例 2-5 (ch2_5.c) main() float x;運(yùn)行結(jié)果:x=3.600000, i=3 int i; x=3.6; i=(int)x; printf(“x=%f, i=%d”,x,i); 3.轉(zhuǎn)換規(guī)則 將實(shí)型變量轉(zhuǎn)換成整型變量時(shí),舍棄實(shí)數(shù)的小數(shù)部分; 將一個(gè)double類型的數(shù)據(jù)轉(zhuǎn)換成float類型時(shí),截取前面的7位有效數(shù)字; 將字符型變量轉(zhuǎn)換成整形變量時(shí),字符的8位放到整形變量的低8位,高8位補(bǔ)零; 將一個(gè)intshortlong型數(shù)據(jù)賦給一個(gè)char型變量時(shí),只將其低8位原封不動(dòng)的送到char型變量。 2.4 運(yùn)算符和表達(dá)式l 學(xué)習(xí)運(yùn)算符應(yīng)掌握以下內(nèi)容: 運(yùn)算符功能 與運(yùn)算對(duì)象的關(guān)系:要求運(yùn)算對(duì)象的個(gè)數(shù);要求運(yùn)算對(duì)象的類型 運(yùn)算符優(yōu)先級(jí)別 結(jié)合方向 結(jié)果的類型一、 算術(shù)運(yùn)算符和表達(dá)式1、基本算術(shù)運(yùn)算符: + - * / % 結(jié)合方向:從左向右 優(yōu)先級(jí): - -* / % - + - (2) (3) (4) 說明:l “-”為單目運(yùn)算符時(shí),右結(jié)合性l 兩整數(shù)相除,結(jié)果為整數(shù)l %要求兩側(cè)均為整型數(shù)據(jù)如: 5/2 = 2 -5/2.0 = -2.52、自增、自減運(yùn)算符:+ - - 作用:使變量值加1或減1 種類: 前置 +i, -i (先執(zhí)行i+1或i-1,再使用i值) 后置 i+,i- (先使用i值,再執(zhí)行i+1或i-1)如: j=3; k=+j; /k=4,j=4 j=3; k=j+; /k=3,j=4 j=3; printf(“%d”,+j); /4 j=3; printf(“%d”,j+); /3 a=3;b=5;c=(+a)*b; /c=20,a=4 a=3;b=5;c=(a+)*b; /c=15,a=4 說明:+ - 只能用于變量,不能用于常量和表達(dá)式,如5+,(a+b)+ -結(jié)合方向: 自右向左優(yōu)先級(jí):- + - -* / % -+ - (2) (3) (4)5、算術(shù)表達(dá)式及其書寫特點(diǎn)l 算術(shù)表達(dá)式是用算術(shù)運(yùn)算符、圓括號(hào)將運(yùn)算對(duì)象連接起來的符合C語(yǔ)言的語(yǔ)法規(guī)則的式子。其中,運(yùn)算對(duì)象可以是常量、變量、表達(dá)式、函數(shù)等等。l 書寫時(shí)注意以下幾點(diǎn): C表達(dá)式中的乘號(hào)不能省略。 例如:數(shù)學(xué)式b2-4ac相應(yīng)的C表達(dá)式應(yīng)寫成:b*b-4*a*c C表達(dá)式中只能使用系統(tǒng)允許的標(biāo)識(shí)符。 例如:數(shù)學(xué)式r2相應(yīng)的C表達(dá)式應(yīng)寫成:3.14159*r*r C表達(dá)式中的內(nèi)容必須書寫在同一行,不允許有分子分母形式,必要時(shí)要利用圓括號(hào)保證運(yùn)算的順序。 例如:兩個(gè)分式進(jìn)行除法運(yùn)算相應(yīng)的C表達(dá)式:(a+b)/(c+d) C表達(dá)式不允許使用方括號(hào)和花括號(hào),只能使用圓括號(hào)來幫助限定運(yùn)算順序??梢允褂枚鄬訄A括號(hào),但左右括號(hào)必須配對(duì),運(yùn)算時(shí)從內(nèi)層圓括號(hào)開始,由內(nèi)向外依次計(jì)算表達(dá)式的值。二、賦值運(yùn)算符和表達(dá)式1、 簡(jiǎn)單賦值運(yùn)算符l 符號(hào): =l 格式:變量標(biāo)識(shí)符=表達(dá)式l 作用:將一個(gè)數(shù)據(jù)(常量或表達(dá)式)賦給一個(gè)變量2、 復(fù)合賦值運(yùn)算符l 種類:+= -= *= /= %= = = &= = |=可表示為: op=l 含義:exp1 op= exp2 exp1=exp1 op exp2 如:a+=3 a=a+3; x%=3 x=x%3; x*=y+8 x=x*(y+8)l 說明: 結(jié)合方向:自右向左 優(yōu)先級(jí): 14 左側(cè)必須是變量,不能是常量或表達(dá)式如: 3=x-2*y; a+b=3; 都是錯(cuò)的 賦值轉(zhuǎn)換規(guī)則:使賦值號(hào)右邊表達(dá)式值自動(dòng)轉(zhuǎn)換成其左邊變量的類型 賦值表達(dá)式的值與變量的值相等,且可嵌套例: float f;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論