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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論