《C語言程式設計-第三章.ppt》由會員分享,可線上閱讀,更多相關《C語言程式設計-第三章.ppt(23頁珍藏版)》請在裝配圖網上搜尋。
1、第三章,資料類型、運算符、表達式,3.1資料類型,3.2 常量與變量,常量其值不能被改變的量。如2,1.3,A等 符号常量:将程式中的常量定義為一個辨別符 一般使用大寫英文字母表示 使用前必須先定義, 定義的形式是: #define 符号常量名 常量 例如: #define PI 3.1415926,#define PRICE 30 #include void main() int num,total; num=10; total=num*PRICE; printf(“total=%dn,total); ,變量其值可以被改變的量。每個變量有一個名字。 變量名命名原則: 1) 隻能由字母、數字、。
2、下劃線組成,且第一個字元必須為字母或下劃線。 2) 前八個字元。 3) 區分大小寫,經常用小寫字母。 4) 用實際意義的單詞或漢語拼音表示 要求: 1) 對所有變量必須先定義後使用 2) 凡未被事先定義的,不作為變量名 每個變量被指定為一個确定的類型,3.3整型資料,3.3.1整型常量 三種數制的表示 1) 十進制:123,0,-12345 2) 八進制:以0開頭的數,如012,-0123,-019(錯) 3) 十六進制:以0X開頭的數,如0X12,0X1AB 3.3.2整型變量 一、整型變量的分類,整型變量的定義及使用,#include main() int a,b,c,d; unsigne。
3、d u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(a+u=%d,b+u=%dn,c,d); 輸出結果a+u=22,b+u=-14,整型資料的溢出 main() int a,b; a=32767; b=a+1; printf(%d,%dn,a,b); -32768032767,注意,1) 一個常量的後面加上U(u)為無符号常量,如-12345U對應于53191(65536-12345=53191) 2)一個常量的後面加上L(l)為長整型。加上H(h)為短整型。,3.4實型資料,3.4.1實型常量的表示 1) 小數形式:123.56,-785.65 2) 指數形式。
4、:1.23E3。要求E(e)的前後必須有數字,且E(e)的後面隻能是整數。 3.4.2實型變量 一、分類,二、舍入誤差,例3.4 main() float a,b; a=123456.789e5; b=a+20; printf(a=%f,b=%fn,a,b); ,理論上b=12345678920,但是實際上a=b=12345678848.000000。原因是一個單精度實型隻能保證7位有效數字。是以要避免一個很大的數和一個很小的數直接加減。如果把類型改為double,輸出格式用lf則,結果正确。,三、實型常量的類型,C編譯系統将實型常量當作雙精度數處理。,3.5字元型資料,3.5.1字元型常量 。
5、字元型常量一對單引号括起來的一個字元。如a,1 字元串常量一對雙引号括起來的多個字元。如”abc”,”a” 常用轉義字元及含義,字元變量,用來存放字元,隻能存放一個字元 字元變量的定義形式如下: char c1, c2; 它表示c1和c2為字元變量,各放一個字元。是以可以用下面語句對c1、c2指派: c1 = a;c2 = b;,#include void main() char c1,c2; c1=97;c2=98; printf(%d%d,c1,c2); printf(%c%c,c1,c2); 因為 a和b的ASCII碼為97和98。第4行将輸出兩個字元。%c是輸出字元的格式。程式輸出: 。
6、RUN 97 98 ab,main() char c1,c2; c1=a;c2=b; c1 = c1 - 32;c2 =c2 - 32; printf(%c %c,c1,c2); 運作結果為 A B,3.6變量賦初值,在定義變量的同時賦予初值。如 int a=3; float b=3.56; char c=a; int a,b,c=5; 給部分變量賦予初值。 int a=3,b=3,c=3;不能寫成int a=b=c=3; int a; a=3;,3.7資料混合運算,小類型轉換為大類型,結果為所涉及類型中的最大類型 char(short)intunsignedlong(float) doubl。
7、elong double,3.8算術運算符和算術表達式,3.8.1算術運算符 1、基本運算 + 加法運算、正值運算 - 減法運算、負值運算 * 乘法運算 / 除法運算(注意,如果除号左右兩邊都是整數,則為整除) % 求餘運算(必須是整數) 如:3/2=1,3%2=1,-3/2=-1,-3%2=-1,3/-2=-1,3%-2=1,-3/-2=1,-3%-2=-1,強制類型轉換,例3.8.1 main() float x; int i; x=3.6; i=(int)x; printf(x=%f,i=%dn,x,i); ,強制類型的一般格式:(類型名)(表達式) 注意,上例中X的值沒有變化,也就是強。
8、制類型轉換不改變本身表達式的值,隻是産生一個中間結果而已。,自增、自減運算,y=+k k=k+1; y=k; y=k+ y=k; k=k+1; 字首+,先加,字尾+,後加 字首-,先減,字尾-,後減,#include void main() int i,j,m,n; i=8;j=10; m=+i;n=j+; printf(%d,%d,%d,%dn,i,j,m,n); ,9,11,9,10,指派運算和指派表達式,1、類型轉換 1) 實型賦給整型,舍棄小數部分 2) 整型賦給實型,值不變,後面加0 3) 雙精度賦給單精度,截取前7位有效數字,但應該注意數值範圍,不要溢出。如: float f; d。
9、ouble d=123.456789e100;f=d;錯誤 float f; double d=123.456789e20;f=d;則f=123.457e20 4) 字元型和整型在ASCII碼内可以直接指派 2、指派表達式 擴充的指派表達式:,#include main() int a, b, c, x, y, z; a=1; b=2; c=3; x=a; y=b; z=c; printf(x=%d, y=%d, z=%dn, x,y,z); x=y=z=c; z+=3; printf(x=%d, y=%d, z=%dn, x,y,z); ,x=1,y=2,z=3 x=3,y=3,z=6,逗号運算,逗号表達式的求解:從左到右依次運算,結果為最後一個表達式n的值。 表達式1,表達式2,表達式n a=3*5,a*4。