C程序語言設(shè)計課件第二章.ppt

上傳人:za****8 文檔編號:14650024 上傳時間:2020-07-27 格式:PPT 頁數(shù):88 大?。?42KB
收藏 版權(quán)申訴 舉報 下載
C程序語言設(shè)計課件第二章.ppt_第1頁
第1頁 / 共88頁
C程序語言設(shè)計課件第二章.ppt_第2頁
第2頁 / 共88頁
C程序語言設(shè)計課件第二章.ppt_第3頁
第3頁 / 共88頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C程序語言設(shè)計課件第二章.ppt》由會員分享,可在線閱讀,更多相關(guān)《C程序語言設(shè)計課件第二章.ppt(88頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第二章 C++簡單程序設(shè)計,C++語言程序設(shè)計,2,本章主要內(nèi)容,C++語言概述 基本數(shù)據(jù)類型和表達式 數(shù)據(jù)的輸入與輸出 算法的基本控制結(jié)構(gòu) 自定義數(shù)據(jù)類型,3,C++語言的產(chǎn)生,C++是從C語言發(fā)展演變而來的,首先是一個更好的C 引入了類的機制,最初的C++被稱為“帶類的C” 1983年正式取名為C++ 從1989年開始C++語言的標(biāo)準(zhǔn)化工作 于1994年制定了ANSI C++標(biāo)準(zhǔn)草案 于1998年11月被國際標(biāo)準(zhǔn)化組織(ISO)批準(zhǔn)為國際標(biāo)準(zhǔn),成為目前的C++,C++語言概述,4,C++的特點,全面兼容C 它保持了C的簡潔、高效和接近匯編語言等特點 對C的類型系統(tǒng)進行了改革和擴充 C++也

2、支持面向過程的程序設(shè)計,不是一個純正的面向?qū)ο蟮恼Z言 支持面向?qū)ο蟮姆椒?C++語言概述,5,C++程序?qū)嵗?-1,//2_1.cpp #include using namespace std; void main(void) cout<

3、中直接使用符號表示的數(shù)據(jù) 操作符用于實現(xiàn)各種運算的符號 分隔符 () , : ; 用于分隔各個詞法記號或程序正文 空白符空格、制表符(TAB鍵產(chǎn)生的字符)、換行符(Enter鍵所產(chǎn)生的字符)和注釋的總稱,C++語言概述,8,標(biāo)識符的構(gòu)成規(guī)則,以大寫字母、小寫字母或下劃線(_)開始。 可以由以大寫字母、小寫字母、下劃線(_)或數(shù)字09組成。 大寫字母和小寫字母代表不同的標(biāo)識符。,C++語言概述,9,,,,,數(shù)據(jù)類型 常量與變量,#include using namespace std; void main(void) const int PRICE=30; int num,total;

4、 float v ,r,h; num=10; total=num*PRICE; cout<

5、v=3.14159*r*r*h; cout<

6、d long320(232-1),基本數(shù)據(jù)類型和表達式,12,#include using namespace std; void main(void) const int PRICE=30; int num,total; float v ,r,h; num=10; total=num*PRICE; cout<

7、le 8字節(jié) 1.710308 15位有效數(shù)字,實型變量,,,,缺省為double型 后綴 F(或 f)為 float型 后綴 L(或 l)為 long double型,基本數(shù)據(jù)類型和表達式,13,數(shù)據(jù)類型 字符型數(shù)據(jù)(一),字符常量 單引號括起來的一個字符,如:a, D, ?, $ 字符變量 用來存放字符常量例:char c1,c2; c1=a; c2=A; 字符數(shù)據(jù)在內(nèi)存中的存儲形式 以ASCII碼存儲,占1字節(jié),用7個二進制位,Page 13,基本數(shù)據(jù)類型和表達式,14,字符數(shù)據(jù)的使用方法 字符數(shù)據(jù)和整型數(shù)據(jù)之間可以運算。 字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。 字符串常量 例:CH

8、INA a a 所以:char c; c=a;,Page 14,數(shù)據(jù)類型 字符型數(shù)據(jù)(二),基本數(shù)據(jù)類型和表達式,15,數(shù)據(jù)類型 布爾型數(shù)據(jù),布爾型變量的說明:例:bool flag; 布爾型數(shù)據(jù)的取值:只有 false 和 true 兩個值,基本數(shù)據(jù)類型和表達式,16,數(shù)據(jù)類型 變量初始化,例: int a=3; double f=3.56; char c=a; int c(5);,Page 16,基本數(shù)據(jù)類型和表達式,17,,數(shù)據(jù)類型 混合運算時的類型轉(zhuǎn)換,不同類型數(shù)據(jù)進行混合運算時,C++編譯器會自動進行類型轉(zhuǎn)換。 為了避免不同的數(shù)據(jù)類型在運算中出現(xiàn)類型問題,應(yīng)盡量使用同

9、種類型數(shù)據(jù)。 可以采用強制類型轉(zhuǎn)換: 例如:float c;int a,b;c=float(a)/float(b); 或 c= (float)a/(float)b;,基本數(shù)據(jù)類型和表達式,18,變量的存儲類型,auto 屬于一時性存儲,其存儲空間可以被若干變量多次覆蓋使用。 register 存放在通用寄存器中。 extern 在所有函數(shù)和程序段中都可引用。 static 在內(nèi)存中是以固定地址存放的,在整個程序運行期間都有效。,基本數(shù)據(jù)類型和表達式,19,算術(shù)運算符與算術(shù)表達式,基本算術(shù)運算符 + - * / (若整數(shù)相除,結(jié)果取整) %(取余,操作數(shù)為整數(shù)) 優(yōu)先級與結(jié)合性 先乘除,后

10、加減,同級自左至右 ++, --(自增、自減) 例:i++; -- j;,Page 19,基本數(shù)據(jù)類型和表達式,20,賦值運算符和賦值表達式 簡單的賦值運算符=,舉例n=n+5 表達式的類型等號左邊對象的類型 表達式的值等號左邊對象被賦值后的值,Page 20,基本數(shù)據(jù)類型和表達式,21,賦值運算符和賦值表達式 復(fù)合的賦值運算符,有10種復(fù)合運算符:+=, -=, *=, /=, %=,=,,基本數(shù)據(jù)類型和表達式,27,條件運算符與條件表達式,注意: 條件運算符優(yōu)級高于賦值運算符,低于邏輯運算符 表達式2、3的類型可以不同,條件表達式的最終類型為 2 和 3 中較高的類型。 例: x=ab

11、? a:b;,基本數(shù)據(jù)類型和表達式,,,,,28,sizeof 運算符,語法形式sizeof (類型名)或 sizeof (表達式) 結(jié)果值:“類型名”所指定的類型或“表達式”的結(jié)果類型所占的字節(jié)數(shù)。 例: sizeof(short) sizeof(x),基本數(shù)據(jù)類型和表達式,29,,位運算按位與(,基本數(shù)據(jù)類型和表達式,31,位運算按位異或(),運算規(guī)則 兩個操作數(shù)進行異或:若對應(yīng)位相同,則結(jié)果該位為 0,若對應(yīng)位不同,則結(jié)果該位為 1, 舉例:計算 071052 071: 0 0 1 1 1 0 0 1 052: () 0 0 1 0 1 0 1 0 071052 : 0 0 0

12、 1 0 0 1 1,基本數(shù)據(jù)類型和表達式,32,位運算按位異或(),用途: 使特定位翻轉(zhuǎn)(與0異或保持原值,與1異或取反) 例如:要使 01111010 低四位翻轉(zhuǎn): 0 1 1 1 1 0 1 0 ()0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1,基本數(shù)據(jù)類型和表達式,33,位運算取反(),單目運算符,對一個二進制數(shù)按位取反。 例: 025:0000000000010101 025:1111111111101010,基本數(shù)據(jù)類型和表達式,34,位運算移位,左移運算() 右移后,低位:舍棄 高位:無符號數(shù):補0 有符號數(shù):補“符號位”,基本數(shù)據(jù)類型和

13、表達式,35,運算符優(yōu)先級,括號 ++,--,sizeof *, /, % +, - ==, != 位運算 不可寫為:if ((a=b;)0) t=a;,語 句,41,復(fù)合語句,將多個語句用一對大括號包圍,便構(gòu)成一個復(fù)合語句 例如 sum=sum+i; i++; ,語 句,42,簡單的輸入、輸出,向標(biāo)準(zhǔn)輸出設(shè)備(顯示器)輸出 例:int x; coutx;,43,順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu),算法的基本控制結(jié)構(gòu),44,如何解決分支問題?,例2-2 輸入一個年份,判斷是否閏年。,算法的基本控制結(jié)構(gòu),#include using namespace std; void main(void) i

14、nt year; bool IsLeapYear; cout year; IsLeapYear = ((year % 4 == 0 ,45,運行結(jié)果: Enter the year: 2000 2000 is a leap year,46,47,if (表達式) 語句 例:if (xy) couty) cout<

15、本控制結(jié)構(gòu),#include using namespace std; void main() int x,y; coutxy; if (x!=y) if (xy) couty<

16、 來確定層次關(guān)系。,算法的基本控制結(jié)構(gòu),52,特殊的多分支結(jié)構(gòu),例2-4 輸入一個06的整數(shù),轉(zhuǎn)換成星期輸出。,算法的基本控制結(jié)構(gòu),#include using namespace std; void main(void) int day; cin day; switch (day) case 0:cout << Sunday << endl; break; case 1:cout << Monday << endl; break; case 2:cout << Tuesday << endl; break; case 3: cout << Wednesday << endl; break

17、; case 4:cout << Thursday << endl; break; case 5:cout << Friday << endl; break; case 6:cout << Saturday << endl; break; default: cout << Day out of range Sunday .. Saturday << endl; break; ,53,54,一般形式 switch (表達式) case 常量表達式 1:語句1 case 常量表達式 2:語句2 case 常量表達式 n:語句n default : 語句n+1 ,swit

18、ch 語句,執(zhí)行順序 以case中的常量表達式值為入口標(biāo)號,由此開始順序執(zhí)行。因此,每個case分支最后應(yīng)該加break語句。,算法的基本控制結(jié)構(gòu),55,使用switch語句應(yīng)注意的問題,case分支可包含多個語句,且不用 。 表達式、判斷值都是int型或char型。 若干分支執(zhí)行內(nèi)容相同可共用一組語句。,算法的基本控制結(jié)構(gòu),56,如何有效地完成重復(fù)工作,例2-5 求自然數(shù)110之和 分析:本題需要用累加算法,累加過程是一個循環(huán)過程,可以用while語句實現(xiàn)。,算法的基本控制結(jié)構(gòu),#include using namespace std; void main() int i(1), sum(

19、0); while(i<=10) sum+=i; //相當(dāng)于sum=sum+i; i++; cout<

20、cout << The number in reverse order is ; do right_digit = n % 10; cout << right_digit; n /= 10; //相當(dāng)于n=n/10 while (n != 0); cout<

21、ile 語句執(zhí)行順序 先判斷表達式的值,為true 時,再執(zhí)行語句,算法的基本控制結(jié)構(gòu),對比下列程序:,程序1: #include using namespace std; void main() int i, sum(0); cini; while(i<=10) sum+=i; i++; cout<

22、sum<

23、r: 36 Number 36 Factors 1 2 3 4 6 9 12 18 36 運行結(jié)果2: Enter a positive integer: 7 Number 7 Factors 1 7,67,68,例2-9 編寫程序輸出以下圖案,* *** ***** ******* ***** *** *,算法的基本控制結(jié)構(gòu),#include using namespace std; void main() int i,j,n=4; for(i=1;i<=n;i++) //輸出前4行圖案 for(j=1;j<=30;j++) cout<

24、< ; //在圖案左側(cè)空30列 for(j=1; j<=8-2*i ;j++) cout<< ; for(j=1; j<=2*i-1 ;j++) cout<<*; cout<

25、=100; n<=200; n++) if (n%3!=0) cout<

26、f(nn ; cout<<正整數(shù)個數(shù):<

27、v;,自定義數(shù)據(jù)類型,76,枚舉類型enum,只要將需要的變量值一一列舉出來,便構(gòu)成了一個枚舉類型。 枚舉類型的聲明形式如下: enum 枚舉類型名 變量值列表; 例如: enum weekday sun,mon,tue,wed,thu,fri,sat;,自定義數(shù)據(jù)類型,77,枚舉類型enum,枚舉類型應(yīng)用說明: 對枚舉元素按常量處理,不能對它們賦值。例如,不能寫:sun=0; 枚舉元素具有缺省值,它們依次為: 0,1,2,......。 也可以在聲明時另行指定枚舉元素的值,如: enum weekday sun=7,mon=1,tue,wed,thu,fri,sat; 枚舉值可以進行關(guān)系運算

28、。 整數(shù)值不能直接賦給枚舉變量,如需要將整數(shù)賦值給枚舉變量,應(yīng)進行強制類型轉(zhuǎn)換。,自定義數(shù)據(jù)類型,78,例2-11,設(shè)某次體育比賽的結(jié)果有四種可能:勝(win)、負(fù)(lose)、平局(tie)、比賽取消(cancel),編寫程序順序輸出這四種情況。 分析:由于比賽結(jié)果只有四種可能,所以可以聲明一個枚舉類型,聲明一個枚舉類型的變量來存放比賽結(jié)果。,自定義數(shù)據(jù)類型,#include using namespace std; enum game_result WIN, LOSE, TIE, CANCEL; int main() game_result result; enum game_result

29、 omit = CANCEL; int count; for (count = WIN ; count <= CANCEL ; count++) result = (game_result)count; if (result == omit) cout << The game was cancelledn; else cout << The game was played ; if (result == WIN) cout << and we won!; if (result == LOSE) cout << and we lost.; cout << n;

30、 return 0; ,79,運行結(jié)果 The game was played and we won! The game was played and we lost. The game was played The game was cancelled,80,81,結(jié)構(gòu)體結(jié)構(gòu)的聲明,結(jié)構(gòu)的概念 結(jié)構(gòu)是由不同數(shù)據(jù)類型的數(shù)據(jù)組成的集合體。 聲明結(jié)構(gòu)類型 struct 結(jié)構(gòu)名 數(shù)據(jù)類型 成員名 1; 數(shù)據(jù)類型 成員名 2; : 數(shù)據(jù)類型 成員名 n; ;,自定義數(shù)據(jù)類型,82,結(jié)構(gòu)體結(jié)構(gòu)的聲明,舉例: struct student //學(xué)生信息結(jié)構(gòu)體 int num; //學(xué)號

31、 char name20; //姓名 char gender; //性別 int age; //年齡 float score; //成績 char addr30; //住址 ,自定義數(shù)據(jù)類型,83,結(jié)構(gòu)體結(jié)構(gòu)變量說明,變量說明形式 結(jié)構(gòu)名 結(jié)構(gòu)變量名; 注意: 結(jié)構(gòu)變量的存儲類型概念、它的壽命、可見性及使用范圍與普通變量完全一致。 結(jié)構(gòu)變量說明在結(jié)構(gòu)類型聲明之后,二者也可同時進行。 結(jié)構(gòu)變量占內(nèi)存大小可用 sizeof 運算求出: sizeof(運算量),自定義數(shù)據(jù)類型,84,結(jié)構(gòu)體結(jié)構(gòu)變量的初始化和使用,初始化 說明結(jié)構(gòu)變量的同時可以直接設(shè)置初值。 使用 結(jié)構(gòu)體成員的引用形式

32、: 結(jié)構(gòu)變量名.成員名,自定義數(shù)據(jù)類型,85,例2-12,結(jié)構(gòu)體變量的初始化和使用 #include #include using namespace std; struct student //學(xué)生信息結(jié)構(gòu)體 int num; //學(xué)號 char name20; //姓名 char gender; //性別 int age; //年齡 stu=97001,Lin Lin,F,19; void main() cout<

33、據(jù)類型,運行結(jié)果: 97001 Lin Lin F 19,86,聯(lián)合體,聲明形式: union 聯(lián)合名 數(shù)據(jù)類型 成員名 1; 數(shù)據(jù)類型 成員名 2; : 數(shù)據(jù)類型 成員名 n; ; 聯(lián)合體類型變量說明的語法形式 聯(lián)合名 聯(lián)合變量名; 引用形式: 聯(lián)合名.成員名,自定義數(shù)據(jù)類型,87,例: union uarea char c_data; short s_data; long l_data; ,聯(lián)合體,自定義數(shù)據(jù)類型,88,無名聯(lián)合,無名聯(lián)合沒有標(biāo)記名,只是聲明一個成員項的集合,這些成員項具有相同的內(nèi)存地址,可以由成員項的名字直接訪問。 例: union int i; float f; 在程序中可以這樣使用: i=10; f=2.2;,自定義數(shù)據(jù)類型,

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!