第三章-數(shù)據(jù)類型與表達式_第1頁
第三章-數(shù)據(jù)類型與表達式_第2頁
第三章-數(shù)據(jù)類型與表達式_第3頁
第三章-數(shù)據(jù)類型與表達式_第4頁
第三章-數(shù)據(jù)類型與表達式_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、順序程序設計例題1、將華氏法表示的溫度轉換為攝氏法表示的溫度#include int main() float f,c; c=(5.0/9)*(f-32); printf(“f=%fnc=%fn”,f,c); return 0;3295fc2、計算存款利息#include int main() float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3; p1=p0*(1+r1); p2=p0*(1+r2); p3=p1*(1+r3/2)*(1+r3/2); printf(“p1=%fnp2=%fnp3=%fn”,p1,p2,p3); return

2、 0;常量與變量常量與變量標識符與關鍵字標識符與關鍵字C的數(shù)據(jù)類型的數(shù)據(jù)類型整型數(shù)據(jù)整型數(shù)據(jù)字符型數(shù)據(jù)字符型數(shù)據(jù)實型數(shù)據(jù)實型數(shù)據(jù)算術運算符和算術表達式算術運算符和算術表達式各類數(shù)值型數(shù)據(jù)間的混合運算各類數(shù)值型數(shù)據(jù)間的混合運算賦值運算符和賦值表達式賦值運算符和賦值表達式變量賦初值變量賦初值逗號運算符和逗號表達式逗號運算符和逗號表達式對于基本數(shù)據(jù)類型量,按其取值是否可改變又分為對于基本數(shù)據(jù)類型量,按其取值是否可改變又分為常量和變量兩種。常量和變量兩種。在程序執(zhí)行過程中,在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量其值不發(fā)生改變的量稱為常量,其值可變的量稱為變量其值可變的量稱為變量。它們可與數(shù)據(jù)類型

3、結合。它們可與數(shù)據(jù)類型結合起來分類。例如,可分為整型常量、整型變量、起來分類。例如,可分為整型常量、整型變量、浮點常量、浮點變量、字符常量、字符變量、枚浮點常量、浮點變量、字符常量、字符變量、枚舉常量、枚舉變量。在程序中,常量是可以不經(jīng)舉常量、枚舉變量。在程序中,常量是可以不經(jīng)說明而直接引用的,而變量則必須說明而直接引用的,而變量則必須先定義后使用先定義后使用。 整型量包括整型常量、整型變量。整型量包括整型常量、整型變量。 在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量。在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量。 q 直接常量直接常量(字面常量字面常量):v 整型常量:整型常量:12、0、-

4、3;v 實型常量:實型常量:4.6、-1.23;v 字符常量:字符常量:a、b。q 符號常量:用標示符代表一個常量。在語言中,可以用符號常量:用標示符代表一個常量。在語言中,可以用一個標識符來表示一個常量,稱之為符號常量。一個標識符來表示一個常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為:符號常量在使用之前必須先定義,其一般形式為:#define 標識符標識符 常量常量如 n ,012代表換行字符形式字符形式功能功能n換行到下一行開頭 10t橫向跳格,下一個TAB(占8格)v豎向跳格b退格r回車,本行頭(不清空)13反斜杠字符”單引號字符ddd1到3位8進制數(shù)所代表的字符xh

5、h1到2位16進制數(shù)所代表的字符其中其中#define也是一條預處理命令(預處理命令都以也是一條預處理命令(預處理命令都以“#”開開頭),稱為宏定義命令(在后面預處理程序中將進一步介頭),稱為宏定義命令(在后面預處理程序中將進一步介紹),其功能是把該標識符定義為其后的常量值。一經(jīng)定義,紹),其功能是把該標識符定義為其后的常量值。一經(jīng)定義,以后在程序中所有出現(xiàn)該標識符的地方均代之以該常量值。以后在程序中所有出現(xiàn)該標識符的地方均代之以該常量值。習慣上符號常量的標識符用大寫字母,變量標識符用小寫字習慣上符號常量的標識符用大寫字母,變量標識符用小寫字母,以示區(qū)別。母,以示區(qū)別?!纠?.1】符號常量的使

6、用。#define PRICE 30main() int num,total;num=10;total=num* PRICE;printf(“total=%d”,total);用標識符代表一個常量,稱為符號常量。用標識符代表一個常量,稱為符號常量。符號常量與變量不同,它的值在其作用域符號常量與變量不同,它的值在其作用域內不能改變,也不能再被賦值。內不能改變,也不能再被賦值。使用符號常量的好處是:使用符號常量的好處是: 含義清楚;含義清楚; 能做到能做到“一改全改一改全改”。 其值可以改變的量稱為變量。一個變量應該有一個名字,在其值可以改變的量稱為變量。一個變量應該有一個名字,在內存中占據(jù)一定的

7、存儲單元。變量定義必須放在變量使用之內存中占據(jù)一定的存儲單元。變量定義必須放在變量使用之前。一般放在函數(shù)體的開頭部分。要區(qū)分變量名和變量值是前。一般放在函數(shù)體的開頭部分。要區(qū)分變量名和變量值是兩個不同的概念。兩個不同的概念。變量的命名變量的命名:標識符原則避免與關鍵字同名,大小寫有區(qū)分常變量,變量存在期間其值不能改變常變量,變量存在期間其值不能改變const int i=5;常變量與符號常量的區(qū)別?常變量與符號常量的區(qū)別?#define Pi 3.14159const float Pi=3.14159;自然語言:文字、數(shù)字、標點符號等。自然語言:文字、數(shù)字、標點符號等。C語言的字符語言的字符(

8、 (字符集字符集) )包括:包括: 26個小寫字母個小寫字母az 26個大寫字母個大寫字母AZ 10個數(shù)字個數(shù)字09 其它可以顯示的字符其它可以顯示的字符 + - * / = , . _ : ; ? ” | ! # % & ( ) 空白字符空白字符空格、制表、換行、回車等等空格、制表、換行、回車等等:用來標識變量名、符號常量名、函數(shù)名、數(shù)組用來標識變量名、符號常量名、函數(shù)名、數(shù)組名、類型名、文件名的有效字符序列。名、類型名、文件名的有效字符序列。 命名標識符所遵循的規(guī)則:命名標識符所遵循的規(guī)則:o 必須以字母或者下劃線開始;必須以字母或者下劃線開始;o 名稱的其余部分必須由字母、數(shù)字和

9、下劃線組成;名稱的其余部分必須由字母、數(shù)字和下劃線組成;o 不能是不能是C語言的關鍵字;語言的關鍵字;o C語言區(qū)分大小寫;語言區(qū)分大小寫;o 不要太長,一般不超過不要太長,一般不超過31個字符;個字符;o 不要與不要與C語言中的庫函數(shù)名和常量名相同。語言中的庫函數(shù)名和常量名相同。舉例:舉例:way_cool, RightOn, Bits32, _iPtr, myCar /合法合法case, 52Select, A Lot, -VV/非法非法sin, Case, string/不合適不合適 :具有特定意義的單詞具有特定意義的單詞 。當聲明一個對象(變量或常量)時,必須說明是什么數(shù)據(jù)當聲明一個對

10、象(變量或常量)時,必須說明是什么數(shù)據(jù)類型(簡稱類型(簡稱“類型類型“););對象類型的描述確定了其內存所占空間大小,也確定了其對象類型的描述確定了其內存所占空間大小,也確定了其表示范圍;表示范圍;對象類型的描述確定了其所能進行的操作;對象類型的描述確定了其所能進行的操作;在不同的計算機上,每個對象類型所占用的內存空間的長在不同的計算機上,每個對象類型所占用的內存空間的長度不一定相同。度不一定相同。:基本數(shù)據(jù)類型最主要的特點是,其值不可以再分解為其它類型。也就是說,基本數(shù)據(jù)類型是自我說明的。 :結構數(shù)據(jù)類型是根據(jù)已定義的一個或多個數(shù)據(jù)類型用構造的方法來定義的。也就是說,一個結構類型的值可以分解

11、成若干個“成員”或“元素”。每個“成員”都是一個基本數(shù)據(jù)類型或又是一個結構類型。在C語言中,結構類型有以下幾種: 數(shù)組類型 結構體類型 共用體(聯(lián)合)類型:指針是一種特殊的,同時又是具有重要作用的數(shù)據(jù)類型。其值用來表示某個變量在內存儲器中的地址。雖然指針變量的取值類似于整型量,但這是兩個類型完全不同的量,因此不能混為一談。 voidvoid(1)整型常量整型常量(2)整型變量)整型變量 十進制:123, 1024, -12, 0, -1,1 八進制: 067, 0123, 01234, 01, -0456 十六進制: 0 x123, 0 x1024, 0 xff, 0 x8aq 整型數(shù)據(jù)在內存

12、中的存放形式整型數(shù)據(jù)在內存中的存放形式q 整型變量的分類整型變量的分類 q 整型變量的定義整型變量的定義q 整型變量的溢出整型變量的溢出補碼形式v 正數(shù)的補碼和原碼相同 v 負數(shù)的補碼:將該數(shù)的絕對值的二進制形式按位取反再加110的補碼與原碼:0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0-10的補碼: 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0基本型:int 4短整型:short 2長整型:long 4無符號型:unsigned1234L =賦值給 長整型 :例如: int a,b,c;

13、 (a,b,c為整型變量) long x,y; (x,y為長整型變量)unsigned p,q; (p,q為無符號整型變量)unsigned long i, j;在書寫變量定義時,應注意以下幾點:允許在一個類型說明符后,定義多個相同類型的變量。各變量名之間用逗號間隔。類型說明符與變量名之間至少用一個空格間隔。最后一個變量名之后必須以“;”號結尾。變量定義必須放在變量使用之前。一般放在函數(shù)體的開頭部分。unsigned:超過最大、最小范圍。整型數(shù)據(jù)的溢出。main() short a,b; a=32767; b=a+1; printf(%d,%dn,a,b); main() short a; u

14、nsigned short b; a=32767; b=a+1; printf(%d,%dn,a,b); 32767,-3276832767,32768/先按ab為shortint截取16位或32位值,然后將這16位或32位擴成32位的值,按有無符號%d%u32位打印出#include main() short a,b; unsigned short c; int x,y; unsigned z; a=32767; b=a+1; c=a+1; printf(%d,%d,%u,%u,%dn,a,b,b,c,c); a=62767; b=a+1; c=a+1; printf(%d,%d,%u,%u

15、,%dn,a,b,b,c,c);a=65536; b=a+1; c=a+1; printf(%d,%d,%u,%u,%dn,a,b,b,c,c); a=-65536; b=a+1; c=a+1; printf(%d,%d,%u,%u,%dn,a,b,b,c,c);a=4294967295; b=a+1; c=a+1; printf(%d,%d,%u,%u,%dn,a,b,b,c,c); a=4294967296; b=a+1; c=a+1; printf(%d,%d,%u,%u,%dn,a,b,b,c,c); a=4294967297; b=a+1; c=a+1; printf(%d,%d,%

16、u,%u,%dn,a,b,b,c,c); a=132767; b=a+1; c=a+1; printf(%d,%d,%u,%u,%dn,a,b,b,c,c); x=2147483647; y=x+1; z=x+1; printf(%d,%d,%u,%u,%dn,x,y,y,z,z); x=2147483648; y=x+1; z=x+1; printf(%d,%d,%u,%u,%dn,x,y,y,z,z); x=4294967296; y=x+1; z=x+1; printf(%d,%d,%u,%u,%dn,x,y,y,z,z); printf(%d ,-5/3); printf(%d,siz

17、eof(long int); (1)字符型常量(2)字符型變量(3)存儲形式(4)字符串常量a, x, A, X,?, %, char 占1字節(jié)unsigned char 占1字節(jié)ASCII碼存放char c1= a;char c2=A;9765-32C語言的字符型數(shù)據(jù)和整數(shù)數(shù)據(jù)之間是可以通用;語言的字符型數(shù)據(jù)和整數(shù)數(shù)據(jù)之間是可以通用;一個字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出;一個字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出;可以對字符數(shù)據(jù)進行算術運算(對他們的可以對字符數(shù)據(jù)進行算術運算(對他們的ASCII碼算術運算)。碼算術運算)。main() char a,b; a=9

18、7; b=98; printf(%c,%cn,a,b); printf(%d,%dn,a,b); a,b97,98main() char a,b,c; unsigned char d; a=a; b=b; a=a-32; b=b-32; c=254; d=254; printf(%c,%cn%d,%dn,a,b,a,b); printf(“%dn,c); printf(“%dn,d); A,B65,66 -2254二版P51 改錯是由一對雙引號括起的字符序列。例如: “CHINA” , “C program” , “$12.5” 等都是合法的字符串常量。字符串常量和字符常量是不同的量。它們之間

19、主要有以下區(qū)別:q 字符常量由單引號括起來,字符串常量由雙引號括起來。q 字符常量只能是單個字符,字符串常量則可以含一個或多個字符。q 可以把一個字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符變量。在語言中沒有相應的字符串變量。這是與BASIC 語言不同的。但是可以用一個字符數(shù)組來存放一個字符串。在數(shù)組一章內予以介紹。q 字符常量占一個字節(jié)的內存空間。字符串常量占的內存字節(jié)數(shù)等于字符串中字節(jié)數(shù)加1。增加的一個字節(jié)中存放字符0 (ASCII碼為0)。這是字符串結束的標志。例如:例如:字符串字符串 C program 在內存中所占的字節(jié)為:在內存中所占的字節(jié)為:字符常量字符常量a和字

20、符串常量和字符串常量a雖然都只有一個字符,但在內存中雖然都只有一個字符,但在內存中的情況是不同的。的情況是不同的。a在內存中占一個字節(jié),可表示為:在內存中占一個字節(jié),可表示為:a在內存中占二個字節(jié),可表示為:在內存中占二個字節(jié),可表示為:Cp r o g r a m 0aa0char c=a;char c=“a”;char c=“china”;如何表達字符串?字符數(shù)組今后介紹char str=“china”;(1)實型常量(2)實型變量十進制: 0.123, 12.88, 3.1415926指數(shù)形式: 1.0e15, 1.23E12, 單精度: float 4雙精度: double 8實型數(shù)據(jù)

21、在內存中的存放形式:小數(shù)部分與指數(shù)部分單獨存放實型數(shù)據(jù)在內存中的存放形式:小數(shù)部分與指數(shù)部分單獨存放如:如:3.14159+.3141591數(shù)符小數(shù)部分指數(shù)部分單精度:數(shù)符+小數(shù)部分24位,指數(shù)部分8位,含符號雙精度: 8個字節(jié)規(guī)范化的指數(shù)形式實型數(shù)據(jù)的舍入誤差。main() float a,b; double c; a=123456.789e5; b=a+20; c=a+20; printf(%fn,a); printf(%fn,b); printf(%fn,c);12345678848.00000012345678848.00000012345678868.000000 常量類型的確定字符

22、型:單引號括起來的字符或轉義字符整數(shù)型:不帶小數(shù)點的數(shù) VC下個字節(jié)浮點型:小數(shù)按雙精度處理,或加標志如3.14f: : +、-、*、/、%自增、自減運算符 +、- 關系運算符: 、=、= 和 != 邏輯運算符: &、|、! 位操作運算符: &、|、 賦值運算符 簡單賦值 = 復合算術賦值 +=、-=、*=、/=、%= 復合位運算賦值 &=、|=、=、=、 b) & (c 0) a = b = c = 5 右結合 a = (b = (c = 5) c = (a = 5)+(b=8)語句:任何表達式在其末尾加上分號就構成為語句。a+b;賦值語句:a=b+c;s =

23、 a*b/2.0; (1)賦值運算符與賦值表達式(2)賦值語句(3)類型轉換(4)復合的賦值運算符如果賦值運算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動進行類型轉換,即把賦值號右邊的類型換成左邊的類型。具體規(guī)定如下: 實型賦予整型,舍去小數(shù)部分。 整型賦予實型,數(shù)值不變,但將以浮點形式存放,即增加小數(shù)部分(小數(shù)部分的值為0)。 字符型賦予整型,由于字符型為一個字節(jié),而整型為四個字節(jié),故將字符的ASCII碼值放到整型量的低八位中,高位根據(jù)情況補0或1。 整型賦予字符型,只把低八位賦予字符量(即截斷)。i = 12.56;a = 12;j = a;c = 0 xff66;(1)賦值運算符與賦值表達式(2)

24、賦值語句(3)類型轉換(4)復合的賦值運算符如果賦值運算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動進行類型轉換,即把賦值號右邊的類型換成左邊的類型。具體規(guī)定如下:將非unsigned型數(shù)據(jù)賦給長度相同的unsigned型變量,原樣照賦(連符號位一起傳送)main()unsigned short a;short b=-1;a=b;printf(“%u”,a);i = 12.56;a = 12;j = a;c = 0 xff66;11111111111111111111111111111111ba65535如果賦值運算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動進行類型轉換,即把賦值號右邊的類型換成左邊的類型。具體

25、規(guī)定如下: 實型賦予整型,舍去小數(shù)部分。 整型賦予實型,數(shù)值不變,但將以浮點形式存放,即增加小數(shù)部分(小數(shù)部分的值為0)。 字符型賦予整型,由于字符型為一個字節(jié),而整型為四個字節(jié),故將字符的ASCII碼值放到整型量的低八位中,高位依情況為0或1。 整型賦予字符型,只把低八位賦予字符量(即截斷)。Page 42(1)賦值運算符與賦值表達式(2)賦值語句(3)類型轉換(4)復合的賦值運算符在賦值符“=”之前加上其它二目運算符可構成復合賦值符。如 += -= *= /= %= = &= = |= 構成復合賦值表達式的一般形式為: 變量 雙目運算符=表達式它等效于 變量=變量 運算符 表達式a

26、 += 5; a = a+5;x *= y+7; x = x*(y+7);r %= d; r = r%d;在程序中常常需要對變量賦初值,以便使用變量。語言程序中在程序中常常需要對變量賦初值,以便使用變量。語言程序中可有多種方法為變量提供初值。本小節(jié)先介紹在作變量定義的可有多種方法為變量提供初值。本小節(jié)先介紹在作變量定義的同時給變量賦以初值的方法。這種方法稱為初始化。在變量定同時給變量賦以初值的方法。這種方法稱為初始化。在變量定義中賦初值的一般形式為:義中賦初值的一般形式為: 類型說明符類型說明符 變量變量1= 值值1,變量,變量2= 值值2,;例如:int a=3;int b,c=5;float x=3.2,y=3f,z=0.75f;char ch1=K,ch2=P;應注意,在定義中不允許連續(xù)賦值,如int a=b=c=5是不合法的。int a,b,c;a=b=c=3;main() int a=3,b,c=5; b=a+c; printf(a=%d,b=%d,c=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論