[Return] 第2章 數據的存儲與運算 2.1 常量和變量 2.2 整型數據 2.3 實型數據 2.4 字符型數據 2.5 符號常量 2.6 算術運算符和算術表達式 2.7 C運算符和C表達式 [Return] 2.1 常量和變量 1 什么是常量? 在程序運行過過程中其值值不變變的量。 2 什么是變量? 在程序運行過過程中其值值可以改變變的量。 包括:變變量名、變變量值值、存儲單儲單 元、變變量地址 3 變量的取名規則 ①字母(下劃線)開頭,字母、數字組成; ②區分大、小寫; ③簡單易記,見名知義; ④長度不限; ⑤不能重名。 [Return] 4 變量必須“先定義,后使用” 定義變量的一般形式: 類型名 變量名; 定義變量的作用: ①根據定義的變量類型分配存儲單元; ②系統檢查到未定義的變量,會提示出錯; ③根據類型,檢查對變量進行的運算是否合法; [Return] 例題2.1 問題:雞兔同籠,總頭數為h,總腳數為f,求有 多少只雞?多少只兔? 1設計算法 設:雞的數量為—x,兔的數量為—y,則有: x+y=h 2x+4y=f 解方程得:y=(f-2h)/2 x=h-y 若h=16,f=40 [Return] 2 編程序: #include void main() { int h,f,x,y; h=16; f=40; y=(f-2*h)/2; x=h-y; printf(“%d%d“,x,y); } [Return] 2.2 整型數據 1整型常量的表示形式 常用十進制形式:如12、-56。 2 整型變量的種類 (1) int—— 整型。 取值 :-32768~+32767(2 byte) (2) long —長整型 。 取值 :-2147483648~+2147483647(4 byte) 3 整型變量的定義 例如:int a,b; long c; 4 整型變量的存儲 二進制形式直接存放到存儲單元中。 [Return] 2.3 實型數據 1 實型常量的表示形式 實數有兩種寫法: (1)小數形式。例如3.14、9.8、0.5、0.0 (2)指數形式:E(e) 如: 12×106 =〉 1.2e+7(規范化指數形式) 0.000012 =〉1.2E-5 2 實型變量 的種類 (1) float ——單精度實型 。 取值 :10-38~10+38(4B),有效位數:7位 (2) double ——雙精度實型 。 取值 :10-308~10+308(8B),有效位數:15~16位 [Return] 3 實型變量的定義 例如:float x,y; double z; 4 實型變量的存儲 按照標準化指數形式,以二進制存儲,數值 部分占3個字節,指數部分占1 個字節。 5 實型變量的舍入誤差 有效位數以外的數字將被舍去。 6 把實數按雙精度數處理 對實型變量最好都定義為double型。 [Return] 例題2.2 問題:已知三角形三邊a,b,c,求面積s? 1 設計算法 設p為三邊和的一半,根據海倫公式: p=(a+b+c)/2 s=sqrt(p*(p-a)*(p-b)*(p-c)) 若a=13.6,b=14.8,c=20.5 [Return] 2 編程序: #include #include void main() { double a,b,c,p,s; a=13.6;b=14.8;c=20.5; p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf(“%f “,s); } [Return] 2.4 字符型數據 1 字符常量的形式 用單撇號括起來的一個字符,如:’a’,’4’,’#’ 注意:鍵盤上的字符都可以作為字符常量,不包 括日常用到的一些特殊符號。 2轉義字符 反斜杠 \ 后跟一個字符,如:’\n’(換行符)。 轉義字符是一個字符常量。 3 字符變量 用來存放字符常量,只能存放一個字符。 如: char c1,c2 ; c1=‘a’; /*c1中存放’a’的ASCII碼碼97*/ c2=‘0’; /*c2中存放’0’的ASCII碼碼48*/ [Return] 4字符變量的存儲 占內存一個字節,存放字符的ASCII碼(見附 錄A,p300)。 5字符數據與整型數據 由于字符在內存中存放的是ASCII碼,實際是 一個整數,所以兩種數據之間可以通用。 如:char c1, c2,c3; c1=97; /*與c1=‘a’等價*/ c2=48; /*與c2=‘0’等價*/ c3=‘A’+32; /*字符數據可以當做整數 */ 區別:占字節數不同。 [Return] 6 字符串常量 一對雙撇號括起來的字符序列,如: “dalian”、“How are you .” 字符串的長度:串中包含的字符個數。 字符串的存儲:每個字符占一個字節,系統 自動在最后加上字符’\0’,作為結束標志。 如字符串“dalian”長度為6,占7個字節。 注意:區分 ’a’和 “a” ’a’ --字符常量,占1個字節 “a” –字符串常量,占2個字節 [Return] 例題2.3 問題:將小寫字母a、b轉換成大寫字母A、 B。 1 設計算法 將小寫字母的ASCII碼的值減去32即可。 2 編程序: #include void main() { char c1=‘a’,c2=‘b’; c1=c1-32; c2=c2-32; printf(“%c, %c\n“,c1,c2); printf(“%d, %d\n“,c1,c2); } [Return] 2.5 符號常量 1 符號常量的定義義 #define PI 3.1415926 處理方法:在編譯時 將程序中所有的PI替換 成 3.1415926。 #include與#define均為編譯預處為編譯預處 理命令。 注意:符號常量和變量的區別。 2 符號常量的作用 (1)含義清楚 (2)一改全改 [Return] 2.6 算術運算符和算術表達式 1算術術運算符 (1) 基本算術術運算符:*、/、%、 +、- 與數學中的含義義基本相同: 優優先級級由高到底(先*、/、%后+、- ); 1 同級時結級時結 合性為為自左至右(左結結合性); 2 雙目運算符。 3 注意:兩個整數相除的結結果為為整數,如5/3值值 為為1; 4 %兩側側均為為整數。 5(2) 自增、自減運算符:++、-- 6 前置:x=++i;(x=--i;) 先加后用(先減后 用) 7 后置:x=i++;(x=i--;) 先用后加(先用后 減) [Return] 2. 算術術表達式 用算術術運算符把常量、變變量、函數連連接起來的 、 符合C語語言語語法規則規則 的式子。 其中:常量、變變量或函數本身亦為簡單為簡單 表達式 。 (1) 各類類數值值型數據間間的混合運算 將兩個不同類類型的運算對對象先轉換轉換 成同一類類型 , 然后進進行運算。 原則則:字節節少的類類型轉換為轉換為 字節節多的類類型。 系 統統自動進動進 行。 ? 強制類類型轉換轉換 (類類型名)(表達式) [Return] 2.7 C運算符和C表達式 1 C運算符 C語語言中除了有算術術運算符以外,還還有12種運 算符,如關系運算符、邏輯邏輯 運算符、賦值賦值 運算符 、逗號運算符等(詳見詳見 p42)。 2 C表達式 C語語言中共有五類類表達式: 算術術表達式; 關系表達式; 邏輯邏輯 表達式; 賦值賦值 表達式; 逗號表達式; [Return] 練習題
展開閱讀全文