C程序語言設(shè)計(jì)課件第二章.ppt
《C程序語言設(shè)計(jì)課件第二章.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《C程序語言設(shè)計(jì)課件第二章.ppt(88頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第二章 C++簡(jiǎn)單程序設(shè)計(jì),C++語言程序設(shè)計(jì),2,本章主要內(nèi)容,C++語言概述 基本數(shù)據(jù)類型和表達(dá)式 數(shù)據(jù)的輸入與輸出 算法的基本控制結(jié)構(gòu) 自定義數(shù)據(jù)類型,3,C++語言的產(chǎn)生,C++是從C語言發(fā)展演變而來的,首先是一個(gè)更好的C 引入了類的機(jī)制,最初的C++被稱為“帶類的C” 1983年正式取名為C++ 從1989年開始C++語言的標(biāo)準(zhǔn)化工作 于1994年制定了ANSI C++標(biāo)準(zhǔn)草案 于1998年11月被國(guó)際標(biāo)準(zhǔn)化組織(ISO)批準(zhǔn)為國(guó)際標(biāo)準(zhǔn),成為目前的C++,C++語言概述,4,C++的特點(diǎn),全面兼容C 它保持了C的簡(jiǎn)潔、高效和接近匯編語言等特點(diǎn) 對(duì)C的類型系統(tǒng)進(jìn)行了改革和擴(kuò)充 C++也
2、支持面向過程的程序設(shè)計(jì),不是一個(gè)純正的面向?qū)ο蟮恼Z言 支持面向?qū)ο蟮姆椒?C++語言概述,5,C++程序?qū)嵗?-1,//2_1.cpp #include using namespace std; void main(void) cout< 3、中直接使用符號(hào)表示的數(shù)據(jù) 操作符用于實(shí)現(xiàn)各種運(yùn)算的符號(hào) 分隔符 () , : ; 用于分隔各個(gè)詞法記號(hào)或程序正文 空白符空格、制表符(TAB鍵產(chǎn)生的字符)、換行符(Enter鍵所產(chǎn)生的字符)和注釋的總稱,C++語言概述,8,標(biāo)識(shí)符的構(gòu)成規(guī)則,以大寫字母、小寫字母或下劃線(_)開始。 可以由以大寫字母、小寫字母、下劃線(_)或數(shù)字09組成。 大寫字母和小寫字母代表不同的標(biāo)識(shí)符。,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ù)類型和表達(dá)式,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ù)字,實(shí)型變量,,,,缺省為double型 后綴 F(或 f)為 float型 后綴 L(或 l)為 long double型,基本數(shù)據(jù)類型和表達(dá)式,13,數(shù)據(jù)類型 字符型數(shù)據(jù)(一),字符常量 單引號(hào)括起來的一個(gè)字符,如:a, D, ?, $ 字符變量 用來存放字符常量例:char c1,c2; c1=a; c2=A; 字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式 以ASCII碼存儲(chǔ),占1字節(jié),用7個(gè)二進(jìn)制位,Page 13,基本數(shù)據(jù)類型和表達(dá)式,14,字符數(shù)據(jù)的使用方法 字符數(shù)據(jù)和整型數(shù)據(jù)之間可以運(yùn)算。 字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。 字符串常量 例:CH 8、INA a a 所以:char c; c=a;,Page 14,數(shù)據(jù)類型 字符型數(shù)據(jù)(二),基本數(shù)據(jù)類型和表達(dá)式,15,數(shù)據(jù)類型 布爾型數(shù)據(jù),布爾型變量的說明:例:bool flag; 布爾型數(shù)據(jù)的取值:只有 false 和 true 兩個(gè)值,基本數(shù)據(jù)類型和表達(dá)式,16,數(shù)據(jù)類型 變量初始化,例: int a=3; double f=3.56; char c=a; int c(5);,Page 16,基本數(shù)據(jù)類型和表達(dá)式,17,,數(shù)據(jù)類型 混合運(yùn)算時(shí)的類型轉(zhuǎn)換,不同類型數(shù)據(jù)進(jìn)行混合運(yùn)算時(shí),C++編譯器會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換。 為了避免不同的數(shù)據(jù)類型在運(yùn)算中出現(xiàn)類型問題,應(yīng)盡量使用同 9、種類型數(shù)據(jù)。 可以采用強(qiáng)制類型轉(zhuǎn)換: 例如:float c;int a,b;c=float(a)/float(b); 或 c= (float)a/(float)b;,基本數(shù)據(jù)類型和表達(dá)式,18,變量的存儲(chǔ)類型,auto 屬于一時(shí)性存儲(chǔ),其存儲(chǔ)空間可以被若干變量多次覆蓋使用。 register 存放在通用寄存器中。 extern 在所有函數(shù)和程序段中都可引用。 static 在內(nèi)存中是以固定地址存放的,在整個(gè)程序運(yùn)行期間都有效。,基本數(shù)據(jù)類型和表達(dá)式,19,算術(shù)運(yùn)算符與算術(shù)表達(dá)式,基本算術(shù)運(yùn)算符 + - * / (若整數(shù)相除,結(jié)果取整) %(取余,操作數(shù)為整數(shù)) 優(yōu)先級(jí)與結(jié)合性 先乘除,后 10、加減,同級(jí)自左至右 ++, --(自增、自減) 例:i++; -- j;,Page 19,基本數(shù)據(jù)類型和表達(dá)式,20,賦值運(yùn)算符和賦值表達(dá)式 簡(jiǎn)單的賦值運(yùn)算符=,舉例n=n+5 表達(dá)式的類型等號(hào)左邊對(duì)象的類型 表達(dá)式的值等號(hào)左邊對(duì)象被賦值后的值,Page 20,基本數(shù)據(jù)類型和表達(dá)式,21,賦值運(yùn)算符和賦值表達(dá)式 復(fù)合的賦值運(yùn)算符,有10種復(fù)合運(yùn)算符:+=, -=, *=, /=, %=,=,,基本數(shù)據(jù)類型和表達(dá)式,27,條件運(yùn)算符與條件表達(dá)式,注意: 條件運(yùn)算符優(yōu)級(jí)高于賦值運(yùn)算符,低于邏輯運(yùn)算符 表達(dá)式2、3的類型可以不同,條件表達(dá)式的最終類型為 2 和 3 中較高的類型。 例: x=ab 11、? a:b;,基本數(shù)據(jù)類型和表達(dá)式,,,,,28,sizeof 運(yùn)算符,語法形式sizeof (類型名)或 sizeof (表達(dá)式) 結(jié)果值:“類型名”所指定的類型或“表達(dá)式”的結(jié)果類型所占的字節(jié)數(shù)。 例: sizeof(short) sizeof(x),基本數(shù)據(jù)類型和表達(dá)式,29,,位運(yùn)算按位與(,基本數(shù)據(jù)類型和表達(dá)式,31,位運(yùn)算按位異或(),運(yùn)算規(guī)則 兩個(gè)操作數(shù)進(jìn)行異或:若對(duì)應(yīng)位相同,則結(jié)果該位為 0,若對(duì)應(yīng)位不同,則結(jié)果該位為 1, 舉例:計(jì)算 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ù)類型和表達(dá)式,32,位運(yùn)算按位異或(),用途: 使特定位翻轉(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ù)類型和表達(dá)式,33,位運(yùn)算取反(),單目運(yùn)算符,對(duì)一個(gè)二進(jìn)制數(shù)按位取反。 例: 025:0000000000010101 025:1111111111101010,基本數(shù)據(jù)類型和表達(dá)式,34,位運(yùn)算移位,左移運(yùn)算() 右移后,低位:舍棄 高位:無符號(hào)數(shù):補(bǔ)0 有符號(hào)數(shù):補(bǔ)“符號(hào)位”,基本數(shù)據(jù)類型和 13、表達(dá)式,35,運(yùn)算符優(yōu)先級(jí),括號(hào) ++,--,sizeof *, /, % +, - ==, != 位運(yùn)算 不可寫為:if ((a=b;)0) t=a;,語 句,41,復(fù)合語句,將多個(gè)語句用一對(duì)大括號(hào)包圍,便構(gòu)成一個(gè)復(fù)合語句 例如 sum=sum+i; i++; ,語 句,42,簡(jiǎn)單的輸入、輸出,向標(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 輸入一個(gè)年份,判斷是否閏年。,算法的基本控制結(jié)構(gòu),#include using namespace std; void main(void) i 14、nt year; bool IsLeapYear; cout year; IsLeapYear = ((year % 4 == 0 ,45,運(yùn)行結(jié)果: Enter the year: 2000 2000 is a leap year,46,47,if (表達(dá)式) 語句 例: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 輸入一個(gè)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 (表達(dá)式) case 常量表達(dá)式 1:語句1 case 常量表達(dá)式 2:語句2 case 常量表達(dá)式 n:語句n default : 語句n+1 ,swit 18、ch 語句,執(zhí)行順序 以case中的常量表達(dá)式值為入口標(biāo)號(hào),由此開始順序執(zhí)行。因此,每個(gè)case分支最后應(yīng)該加break語句。,算法的基本控制結(jié)構(gòu),55,使用switch語句應(yīng)注意的問題,case分支可包含多個(gè)語句,且不用 。 表達(dá)式、判斷值都是int型或char型。 若干分支執(zhí)行內(nèi)容相同可共用一組語句。,算法的基本控制結(jié)構(gòu),56,如何有效地完成重復(fù)工作,例2-5 求自然數(shù)110之和 分析:本題需要用累加算法,累加過程是一個(gè)循環(huán)過程,可以用while語句實(shí)現(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í)行順序 先判斷表達(dá)式的值,為true 時(shí),再執(zhí)行語句,算法的基本控制結(jié)構(gòu),對(duì)比下列程序:,程序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 運(yùn)行結(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ù)個(gè)數(shù):<
27、v;,自定義數(shù)據(jù)類型,76,枚舉類型enum,只要將需要的變量值一一列舉出來,便構(gòu)成了一個(gè)枚舉類型。 枚舉類型的聲明形式如下: enum 枚舉類型名 變量值列表; 例如: enum weekday sun,mon,tue,wed,thu,fri,sat;,自定義數(shù)據(jù)類型,77,枚舉類型enum,枚舉類型應(yīng)用說明: 對(duì)枚舉元素按常量處理,不能對(duì)它們賦值。例如,不能寫:sun=0; 枚舉元素具有缺省值,它們依次為: 0,1,2,......。 也可以在聲明時(shí)另行指定枚舉元素的值,如: enum weekday sun=7,mon=1,tue,wed,thu,fri,sat; 枚舉值可以進(jìn)行關(guān)系運(yùn)算 28、。 整數(shù)值不能直接賦給枚舉變量,如需要將整數(shù)賦值給枚舉變量,應(yīng)進(jìn)行強(qiáng)制類型轉(zhuǎn)換。,自定義數(shù)據(jù)類型,78,例2-11,設(shè)某次體育比賽的結(jié)果有四種可能:勝(win)、負(fù)(lose)、平局(tie)、比賽取消(cancel),編寫程序順序輸出這四種情況。 分析:由于比賽結(jié)果只有四種可能,所以可以聲明一個(gè)枚舉類型,聲明一個(gè)枚舉類型的變量來存放比賽結(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,運(yùn)行結(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é)號(hào) 31、 char name20; //姓名 char gender; //性別 int age; //年齡 float score; //成績(jī) char addr30; //住址 ,自定義數(shù)據(jù)類型,83,結(jié)構(gòu)體結(jié)構(gòu)變量說明,變量說明形式 結(jié)構(gòu)名 結(jié)構(gòu)變量名; 注意: 結(jié)構(gòu)變量的存儲(chǔ)類型概念、它的壽命、可見性及使用范圍與普通變量完全一致。 結(jié)構(gòu)變量說明在結(jié)構(gòu)類型聲明之后,二者也可同時(shí)進(jìn)行。 結(jié)構(gòu)變量占內(nèi)存大小可用 sizeof 運(yùn)算求出: sizeof(運(yùn)算量),自定義數(shù)據(jù)類型,84,結(jié)構(gòu)體結(jié)構(gòu)變量的初始化和使用,初始化 說明結(jié)構(gòu)變量的同時(shí)可以直接設(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é)號(hào) char name20; //姓名 char gender; //性別 int age; //年齡 stu=97001,Lin Lin,F,19; void main() cout< 33、據(jù)類型,運(yùn)行結(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)記名,只是聲明一個(gè)成員項(xiàng)的集合,這些成員項(xiàng)具有相同的內(nèi)存地址,可以由成員項(xiàng)的名字直接訪問。 例: union int i; float f; 在程序中可以這樣使用: i=10; f=2.2;,自定義數(shù)據(jù)類型,
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第7課時(shí)圖形的位置練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第1課時(shí)圖形的認(rèn)識(shí)與測(cè)量1平面圖形的認(rèn)識(shí)練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時(shí)比和比例2作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)4比例1比例的意義和基本性質(zhì)第3課時(shí)解比例練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第7課時(shí)圓柱的體積3作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)1負(fù)數(shù)第1課時(shí)負(fù)數(shù)的初步認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末豐收?qǐng)@作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)易錯(cuò)清單十二課件新人教版
- 標(biāo)準(zhǔn)工時(shí)講義
- 2021年一年級(jí)語文上冊(cè)第六單元知識(shí)要點(diǎn)習(xí)題課件新人教版
- 2022春一年級(jí)語文下冊(cè)課文5識(shí)字測(cè)評(píng)習(xí)題課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時(shí)數(shù)學(xué)思考1練習(xí)課件新人教版