C語言程序設計課件第02章簡單程序設計課件_第1頁
C語言程序設計課件第02章簡單程序設計課件_第2頁
C語言程序設計課件第02章簡單程序設計課件_第3頁
C語言程序設計課件第02章簡單程序設計課件_第4頁
C語言程序設計課件第02章簡單程序設計課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言程序設計課件第02章簡單程序設計1第二章第二章 C+ C+簡單程序設計簡單程序設計C+語言程序設計C語言程序設計課件第02章簡單程序設計2本章主要內(nèi)容本章主要內(nèi)容lC+語言概述語言概述l基本數(shù)據(jù)類型和表達式基本數(shù)據(jù)類型和表達式l數(shù)據(jù)的輸入與輸出數(shù)據(jù)的輸入與輸出l算法的基本控制結(jié)構(gòu)算法的基本控制結(jié)構(gòu)l自定義數(shù)據(jù)類型自定義數(shù)據(jù)類型C語言程序設計課件第02章簡單程序設計3C+語言的產(chǎn)生語言的產(chǎn)生lC+C+是從是從C C語言發(fā)展演變而來的,首先是一個語言發(fā)展演變而來的,首先是一個更好的更好的C Cl引入了類的機制,最初的引入了類的機制,最初的C+C+被稱為被稱為“帶類的帶類的C”C”l19831

2、983年正式取名為年正式取名為C+C+l從從19891989年開始年開始C+C+語言的標準化工作語言的標準化工作l于于19941994年制定了年制定了ANSI C+ANSI C+標準草案標準草案l于于19981998年年1111月被國際標準化組織(月被國際標準化組織(ISOISO)批準)批準為國際標準,成為目前的為國際標準,成為目前的C+C+C+語言概述C語言程序設計課件第02章簡單程序設計4C+的特點的特點l全面兼容全面兼容C C它保持了它保持了C C的簡潔、高效和接近匯編語的簡潔、高效和接近匯編語言等特點言等特點對對C C的類型系統(tǒng)進行了改革和擴充的類型系統(tǒng)進行了改革和擴充C+C+也支持面

3、向過程的程序設計,不是也支持面向過程的程序設計,不是一個純正的面向?qū)ο蟮恼Z言一個純正的面向?qū)ο蟮恼Z言l支持面向?qū)ο蟮姆椒ㄖС置嫦驅(qū)ο蟮姆椒–+語言概述C語言程序設計課件第02章簡單程序設計5C+程序?qū)嵗绦驅(qū)嵗?-1/2_1.cpp/2_1.cpp#include #include using namespace std;using namespace std;void main()void main() coutHello!n; coutHello!n; coutWelcome to c+!n; coutWelcome to c+!n; 運行結(jié)果:運行結(jié)果:Hello!Hello!Wel

4、come to c+Welcome to c+!C+語言概述C語言程序設計課件第02章簡單程序設計6C+字符集字符集l大小寫的英文字母:大小寫的英文字母:A AZ Z,a az zl數(shù)字字符:數(shù)字字符:0 09 9l特殊字符:特殊字符:空格空格! !# #% % & &* *_ _( (下劃線下劃線) )+ += =- - / / ; ;. ., ,()()C+語言概述C語言程序設計課件第02章簡單程序設計7詞法記號詞法記號l關(guān)鍵字關(guān)鍵字 C+C+預定義的單詞預定義的單詞l標識符標識符 程序員聲明的單詞,用來命名程序正文程序員聲明的單詞,用來命名程序正文中的一些實體中的一些實體l文字文字 在程

5、序中直接使用符號表示的數(shù)據(jù)在程序中直接使用符號表示的數(shù)據(jù)l操作符操作符 用于實現(xiàn)各種運算的符號用于實現(xiàn)各種運算的符號l分隔符分隔符 () , : ;() , : ; 用于分隔各個詞法記號或程序正文用于分隔各個詞法記號或程序正文l空白符空白符 空格、制表符(空格、制表符(TABTAB鍵產(chǎn)生的字符)、換鍵產(chǎn)生的字符)、換行符(行符(EnterEnter鍵所產(chǎn)生的字符)和注釋的總稱鍵所產(chǎn)生的字符)和注釋的總稱C+語言概述C語言程序設計課件第02章簡單程序設計8標識符的構(gòu)成規(guī)則標識符的構(gòu)成規(guī)則l以大寫字母、小寫字母或下劃線以大寫字母、小寫字母或下劃線(_)開始。開始。l可以由以大寫字母、小寫字母、下劃

6、線可以由以大寫字母、小寫字母、下劃線(_)或或數(shù)字數(shù)字09組成。組成。l大寫字母和小寫字母代表不同的標識符。大寫字母和小寫字母代表不同的標識符。C+語言概述C語言程序設計課件第02章簡單程序設計9基本數(shù)據(jù)類型和表達式整型:short/int/long (八、十、十六進制)實型:float/double(默認常數(shù)為doubleo類型 故float f=123.45有警告)字符型:char布爾型:bool (true、false)字符串常量:this符號常量:const 數(shù)據(jù)類型 常量名=常量值P24 表2-1C語言程序設計課件第02章簡單程序設計10例:例: int a=3;int a=3; d

7、ouble f=3.56; double f=3.56; char c= char c=a a; ; int c(5); int c(5);Page 10基本數(shù)據(jù)類型和表達式C語言程序設計課件第02章簡單程序設計11Page 11基本數(shù)據(jù)類型和表達式算術(shù)運算符:+ - * ? % + -賦值運算符:= 及復合的賦值運算符逗號運算符:,關(guān)系運算符: = = !=邏輯運算符:! & |條件運算符:? :sizeof運算符:計算某種類型的對象在內(nèi)存中所占的字節(jié)數(shù)。位運算符:& | (操作數(shù)必為整型)C語言程序設計課件第02章簡單程序設計12運算符優(yōu)先級運算符優(yōu)先級括號括號+,-,sizeofsize

8、of* *, /, %, /, %+, -+, -=, !=, !=位運算位運算&|?:?:賦值運算賦值運算逗號運算逗號運算低高基本數(shù)據(jù)類型和表達式C語言程序設計課件第02章簡單程序設計13混合運算時數(shù)據(jù)類型的轉(zhuǎn)換混合運算時數(shù)據(jù)類型的轉(zhuǎn)換l一些二元運算符(算術(shù)運算符、關(guān)系運算符、邏一些二元運算符(算術(shù)運算符、關(guān)系運算符、邏輯運算符、位運算符和賦值運算符)要求兩個操輯運算符、位運算符和賦值運算符)要求兩個操作數(shù)的類型一致。作數(shù)的類型一致。l在算術(shù)運算和關(guān)系運算中如果參與運算的操作數(shù)在算術(shù)運算和關(guān)系運算中如果參與運算的操作數(shù)類型不一致,編譯系統(tǒng)會自動對數(shù)據(jù)進行轉(zhuǎn)換類型不一致,編譯系統(tǒng)會自動對數(shù)據(jù)進

9、行轉(zhuǎn)換(即隱含轉(zhuǎn)換),基本原則是將低類型數(shù)據(jù)轉(zhuǎn)換(即隱含轉(zhuǎn)換),基本原則是將低類型數(shù)據(jù)轉(zhuǎn)換為高類型數(shù)據(jù)。為高類型數(shù)據(jù)。char,short,int,unsigned,long,unsigned long,float,double低 高基本數(shù)據(jù)類型和表達式C語言程序設計課件第02章簡單程序設計14l當參與運算的操作數(shù)必須是當參與運算的操作數(shù)必須是bool型時,如果操作數(shù)型時,如果操作數(shù)是其它類型,編譯系統(tǒng)會自動將非是其它類型,編譯系統(tǒng)會自動將非0數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)轉(zhuǎn)換為true,0轉(zhuǎn)換為轉(zhuǎn)換為false。l位運算的操作數(shù)必須是整數(shù),當二元位運算的操位運算的操作數(shù)必須是整數(shù),當二元位運算的操作數(shù)是不同

10、類型的整數(shù)時,也會自動進行類型轉(zhuǎn)作數(shù)是不同類型的整數(shù)時,也會自動進行類型轉(zhuǎn)換,換,l賦值運算要求左值與右值的類型相同,若類型不賦值運算要求左值與右值的類型相同,若類型不同,編譯系統(tǒng)會自動將右值轉(zhuǎn)換為左值的類型。同,編譯系統(tǒng)會自動將右值轉(zhuǎn)換為左值的類型。l可以采用強制類型轉(zhuǎn)換。可以采用強制類型轉(zhuǎn)換。基本數(shù)據(jù)類型和表達式混合運算時數(shù)據(jù)類型的轉(zhuǎn)換混合運算時數(shù)據(jù)類型的轉(zhuǎn)換C語言程序設計課件第02章簡單程序設計15語句語句l聲明語句聲明語句l表達式語句表達式語句l選擇語句選擇語句l循環(huán)語句循環(huán)語句l跳轉(zhuǎn)語句跳轉(zhuǎn)語句l復合語句復合語句l標號語句標號語句 基本數(shù)據(jù)類型和表達式C語言程序設計課件第02章簡單程

11、序設計16簡單的輸入、輸出簡單的輸入、輸出數(shù)據(jù)的輸入與輸出 在在C+C+中,將數(shù)據(jù)從一個對象到另一個對象的流動中,將數(shù)據(jù)從一個對象到另一個對象的流動抽象為抽象為“流流”。流在使用前被建立,使用后被刪除。流在使用前被建立,使用后被刪除。從流中獲取數(shù)據(jù)的操作符稱為提取操作,向流中添加從流中獲取數(shù)據(jù)的操作符稱為提取操作,向流中添加數(shù)據(jù)的操作稱為插入操作。數(shù)據(jù)的輸入與輸出是通過數(shù)據(jù)的操作稱為插入操作。數(shù)據(jù)的輸入與輸出是通過I/OI/O流來實現(xiàn)的,流來實現(xiàn)的,cincin和和coutcout是預定義的流類對象。是預定義的流類對象。一、輸出一、輸出 coutcout表達式表達式表達式表達式其中,其中,變量

12、變量變量變量其中,其中, 是提取符是提取符輸入的值用空格分隔,也可以分行輸入,不能用逗號輸入的值用空格分隔,也可以分行輸入,不能用逗號分隔。分隔。C語言程序設計課件第02章簡單程序設計18簡單的輸入、輸出簡單的輸入、輸出數(shù)據(jù)的輸入與輸出三、簡單的三、簡單的I/OI/O格式控制格式控制 ( (iomanipiomanip) ) 操縱符名操縱符名含義含義dec數(shù)值數(shù)據(jù)采用十進制表示數(shù)值數(shù)據(jù)采用十進制表示hex數(shù)值數(shù)據(jù)采用十六進制表示數(shù)值數(shù)據(jù)采用十六進制表示oct數(shù)值數(shù)據(jù)采用八進制表示數(shù)值數(shù)據(jù)采用八進制表示ws提取空白符提取空白符endl插入換行符插入換行符ends插入空字符插入空字符setw(in

13、t)設置域?qū)捲O置域?qū)扖語言程序設計課件第02章簡單程序設計19簡單的輸入、輸出簡單的輸入、輸出數(shù)據(jù)的輸入與輸出三、簡單的三、簡單的I/OI/O格式控制格式控制 ( (iomanipiomanip) ) 操縱符名操縱符名含義含義fixed定點數(shù)格式輸出,小數(shù)定點數(shù)格式輸出,小數(shù)6位位scientific科學記數(shù)法格式輸出,小數(shù)科學記數(shù)法格式輸出,小數(shù)6位位setprecision(int)設置有效位數(shù)(普通顯示方式)或設置有效位數(shù)(普通顯示方式)或精度(定點或科學記數(shù)法方式)精度(定點或科學記數(shù)法方式)boolalpha使使bool類型的數(shù)據(jù)輸出結(jié)果為類型的數(shù)據(jù)輸出結(jié)果為true或或falseC

14、語言程序設計課件第02章簡單程序設計20簡單的輸入、輸出簡單的輸入、輸出數(shù)據(jù)的輸入與輸出三、簡單的三、簡單的I/OI/O格式控制格式控制 ( (iomanipiomanip) ) #include #include using namespace std;void main()float f=12.456789f; coutsetprecision(3)fendl;運行結(jié)果:運行結(jié)果:12.512.5coutfixedsetprecision(3)fendl;運行結(jié)果:運行結(jié)果:12.45712.457C語言程序設計課件第02章簡單程序設計21簡單的輸入、輸出簡單的輸入、輸出數(shù)據(jù)的輸入與輸出三

15、、簡單的三、簡單的I/OI/O格式控制格式控制 ( (iomanipiomanip) ) 注:注:使用使用setprecision(n)setprecision(n)可控制輸出流顯示浮點數(shù)的數(shù)字可控制輸出流顯示浮點數(shù)的數(shù)字個數(shù)。個數(shù)。C+C+默認的流輸出數(shù)值有效位是默認的流輸出數(shù)值有效位是6 6。如果如果setprecision(n)setprecision(n)與與setiosflags(ios:fixed)setiosflags(ios:fixed)合合用,可以控制小數(shù)點右邊的數(shù)字個數(shù)。用,可以控制小數(shù)點右邊的數(shù)字個數(shù)。如果與如果與setiosflags(ios:scientific)se

16、tiosflags(ios:scientific)合用,可以控合用,可以控制指數(shù)表示法的小數(shù)位數(shù)。制指數(shù)表示法的小數(shù)位數(shù)。如果與如果與setiosflags(ios:left)setiosflags(ios:left)合用,可以使輸出的合用,可以使輸出的數(shù)據(jù)在域內(nèi)左對齊。數(shù)據(jù)在域內(nèi)左對齊。C語言程序設計課件第02章簡單程序設計22順序結(jié)構(gòu)順序結(jié)構(gòu)分支結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)算法的基本控制結(jié)構(gòu)算法的基本控制結(jié)構(gòu)算法的基本控制結(jié)構(gòu)C語言程序設計課件第02章簡單程序設計23P39 例例2-2P40 例例2-3P42 例例2-4P43 例例2-5P44 例例2-6P46 例例2-7P47 例例2-

17、8P49 例例2-9P50 例例2-10算法的基本控制結(jié)構(gòu)C語言程序設計課件第02章簡單程序設計24typedef語句語句l為一個已有的數(shù)據(jù)類型另外命名為一個已有的數(shù)據(jù)類型另外命名l語法形式語法形式typedef typedef 已有類型名已有類型名 新類型名表新類型名表; ;l例如例如typedef double typedef double area,volumearea,volume; ;typedef int typedef int naturalnatural; ;naturalnatural i1,i2; i1,i2;areaarea a; a;volumevolume v; v;

18、自定義數(shù)據(jù)類型C語言程序設計課件第02章簡單程序設計25枚舉類型枚舉類型enuml只要將需要的值一一列舉出來,便構(gòu)只要將需要的值一一列舉出來,便構(gòu)成了一個枚舉類型。成了一個枚舉類型。l枚舉類型的聲明形式如下:枚舉類型的聲明形式如下:enum enum 枚舉類型名枚舉類型名 值列表值列表;l例如:例如:enum weekdayenum weekdaysun,mon,tue,wed,thu,fri,sat;sun,mon,tue,wed,thu,fri,sat;自定義數(shù)據(jù)類型C語言程序設計課件第02章簡單程序設計26枚舉類型枚舉類型enuml枚舉類型應用說明:枚舉類型應用說明:對枚舉元素按常量處理

19、,不能對它們賦值。例對枚舉元素按常量處理,不能對它們賦值。例如,不能寫:如,不能寫:sun=0;sun=0;枚舉元素具有默認值,它們依次為:枚舉元素具有默認值,它們依次為: 0,1,2,.0,1,2,.。也可以在聲明時另行指定枚舉元素的值,如:也可以在聲明時另行指定枚舉元素的值,如:enum enum weekdaysun=7,mon=1,tue,wed,thu,fri,sat;weekdaysun=7,mon=1,tue,wed,thu,fri,sat;枚舉值可以進行關(guān)系運算。枚舉值可以進行關(guān)系運算。整數(shù)值不能直接賦給枚舉變量,如需要將整數(shù)整數(shù)值不能直接賦給枚舉變量,如需要將整數(shù)賦值給枚舉變

20、量,應進行強制類型轉(zhuǎn)換。賦值給枚舉變量,應進行強制類型轉(zhuǎn)換。自定義數(shù)據(jù)類型C語言程序設計課件第02章簡單程序設計27例例2-11 l設某次體育比賽的結(jié)果有四種可能:設某次體育比賽的結(jié)果有四種可能:勝(勝(winwin)、負()、負(loselose)、平局)、平局(tietie)、比賽取消()、比賽取消(cancelcancel),編),編寫程序順序輸出這四種情況。寫程序順序輸出這四種情況。l分析:由于比賽結(jié)果只有四種可能,分析:由于比賽結(jié)果只有四種可能,所以可以聲明一個枚舉類型,聲明一所以可以聲明一個枚舉類型,聲明一個枚舉類型的變量來存放比賽結(jié)果。個枚舉類型的變量來存放比賽結(jié)果。自定義數(shù)據(jù)類

21、型C語言程序設計課件第02章簡單程序設計28#include #include using namespace std;using namespace std;enum game_result WIN, LOSE, TIE, CANCEL;enum game_result WIN, LOSE, TIE, CANCEL;void main()void main() game_result result; game_result result; enum game_result omit = CANCEL; enum game_result omit = CANCEL; int count; in

22、t count; for (count = WIN ; count = CANCEL ; count+) for (count = WIN ; count = CANCEL ; count+) result = (game_result)count; result = (game_result)count; if (result = omit) if (result = omit) cout The game was cancelledn; cout The game was cancelledn; else else cout The game was played ; cout The g

23、ame was played ; if (result = WIN) cout and we won!; if (result = WIN) cout and we won!; if (result = LOSE) cout and we lost.; if (result = LOSE) cout and we lost.; cout n; cout n; return 0; return 0; 28C語言程序設計課件第02章簡單程序設計29運行結(jié)果運行結(jié)果 The game was played and we won!The game was played and we won! The

24、game was played and we lost. The game was played and we lost. The game was played The game was played The game was cancelled The game was cancelled29C語言程序設計課件第02章簡單程序設計30結(jié)構(gòu)體結(jié)構(gòu)體結(jié)構(gòu)的聲明結(jié)構(gòu)的聲明l結(jié)構(gòu)的概念結(jié)構(gòu)的概念結(jié)構(gòu)體是由不同數(shù)據(jù)類型的數(shù)據(jù)組成的集合體。結(jié)構(gòu)體是由不同數(shù)據(jù)類型的數(shù)據(jù)組成的集合體。l聲明結(jié)構(gòu)類型聲明結(jié)構(gòu)類型 struct struct 結(jié)構(gòu)名結(jié)構(gòu)名 數(shù)據(jù)類型數(shù)據(jù)類型 成員名成員名 1 1; 數(shù)據(jù)類型數(shù)

25、據(jù)類型 成員名成員名 2 2; : 數(shù)據(jù)類型數(shù)據(jù)類型 成員名成員名 n n; ;自定義數(shù)據(jù)類型C語言程序設計課件第02章簡單程序設計31結(jié)構(gòu)體結(jié)構(gòu)體結(jié)構(gòu)的聲明結(jié)構(gòu)的聲明l舉例:舉例:struct student /struct student /學生信息結(jié)構(gòu)體學生信息結(jié)構(gòu)體 int num; / int num; /學號學號 char name20; /char name20; /姓名姓名 char gender; /char gender; /性別性別 int age; /int age; /年齡年齡 float score; /float score; /成績成績 char addr30;

26、 /char addr30; /住址住址 自定義數(shù)據(jù)類型C語言程序設計課件第02章簡單程序設計32結(jié)構(gòu)體結(jié)構(gòu)體結(jié)構(gòu)變量說明結(jié)構(gòu)變量說明l變量說明形式變量說明形式 結(jié)構(gòu)名結(jié)構(gòu)名 結(jié)構(gòu)變量名;結(jié)構(gòu)變量名;l注意:注意:結(jié)構(gòu)變量的存儲類型概念、它的壽命、可見性結(jié)構(gòu)變量的存儲類型概念、它的壽命、可見性及使用范圍與普通變量完全一致。及使用范圍與普通變量完全一致。結(jié)構(gòu)變量說明在結(jié)構(gòu)類型聲明之后,二者也可結(jié)構(gòu)變量說明在結(jié)構(gòu)類型聲明之后,二者也可同時進行。同時進行。結(jié)構(gòu)變量占內(nèi)存大小可用結(jié)構(gòu)變量占內(nèi)存大小可用 sizeof sizeof 運算求出:運算求出: sizeof(sizeof(運算量運算量) )自定

27、義數(shù)據(jù)類型C語言程序設計課件第02章簡單程序設計33結(jié)構(gòu)體結(jié)構(gòu)體結(jié)構(gòu)變量的初始化和使用結(jié)構(gòu)變量的初始化和使用l初始化初始化說明結(jié)構(gòu)變量的同時可以直接設置初值。說明結(jié)構(gòu)變量的同時可以直接設置初值。l使用使用結(jié)構(gòu)體成員的引用形式:結(jié)構(gòu)體成員的引用形式:結(jié)構(gòu)變量名結(jié)構(gòu)變量名. .成員名成員名自定義數(shù)據(jù)類型C語言程序設計課件第02章簡單程序設計34例例2-12結(jié)構(gòu)體變量的初始化和使用結(jié)構(gòu)體變量的初始化和使用#include #include #include #include using namespace std;using namespace std;struct student /struct student /學生信息結(jié)構(gòu)體學生信息結(jié)構(gòu)體 int num;/ int num;/學號學號 char name20;/char name20;/姓名姓名 char gender;/char gender;/性別性別 int age;/int age;/年齡年齡stu=97001,Lin Lin,F,19;stu=97001,Lin Lin,F,19;int main()int main() coutsetw(7)stu.numsetw(20

溫馨提示

  • 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

提交評論