C程序語言設(shè)計課件第二章.ppt
《C程序語言設(shè)計課件第二章.ppt》由會員分享,可在線閱讀,更多相關(guān)《C程序語言設(shè)計課件第二章.ppt(88頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第二章 C++簡單程序設(shè)計,C++語言程序設(shè)計,2,本章主要內(nèi)容,C++語言概述 基本數(shù)據(jù)類型和表達(dá)式 數(shù)據(jù)的輸入與輸出 算法的基本控制結(jié)構(gòu) 自定義數(shù)據(jù)類型,3,C++語言的產(chǎn)生,C++是從C語言發(fā)展演變而來的,首先是一個更好的C 引入了類的機(jī)制,最初的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)進(jìn)行了改革和擴(kuò)充 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ù)類型和表達(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ù)字,實型變量,,,,缺省為double型 后綴 F(或 f)為 float型 后綴 L(或 l)為 long double型,基本數(shù)據(jù)類型和表達(dá)式,13,數(shù)據(jù)類型 字符型數(shù)據(jù)(一),字符常量 單引號括起來的一個字符,如:a, D, ?, $ 字符變量 用來存放字符常量例:char c1,c2; c1=a; c2=A; 字符數(shù)據(jù)在內(nèi)存中的存儲形式 以ASCII碼存儲,占1字節(jié),用7個二進(jìn)制位,Page 13,基本數(shù)據(jù)類型和表達(dá)式,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ù)類型和表達(dá)式,15,數(shù)據(jù)類型 布爾型數(shù)據(jù),布爾型變量的說明:例:bool flag; 布爾型數(shù)據(jù)的取值:只有 false 和 true 兩個值,基本數(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ù)類型 混合運算時的類型轉(zhuǎn)換,不同類型數(shù)據(jù)進(jìn)行混合運算時,C++編譯器會自動進(jìn)行類型轉(zhuǎn)換。 為了避免不同的數(shù)據(jù)類型在運算中出現(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,變量的存儲類型,auto 屬于一時性存儲,其存儲空間可以被若干變量多次覆蓋使用。 register 存放在通用寄存器中。 extern 在所有函數(shù)和程序段中都可引用。 static 在內(nèi)存中是以固定地址存放的,在整個程序運行期間都有效。,基本數(shù)據(jù)類型和表達(dá)式,19,算術(shù)運算符與算術(shù)表達(dá)式,基本算術(shù)運算符 + - * / (若整數(shù)相除,結(jié)果取整) %(取余,操作數(shù)為整數(shù)) 優(yōu)先級與結(jié)合性 先乘除,后 10、加減,同級自左至右 ++, --(自增、自減) 例:i++; -- j;,Page 19,基本數(shù)據(jù)類型和表達(dá)式,20,賦值運算符和賦值表達(dá)式 簡單的賦值運算符=,舉例n=n+5 表達(dá)式的類型等號左邊對象的類型 表達(dá)式的值等號左邊對象被賦值后的值,Page 20,基本數(shù)據(jù)類型和表達(dá)式,21,賦值運算符和賦值表達(dá)式 復(fù)合的賦值運算符,有10種復(fù)合運算符:+=, -=, *=, /=, %=,=,,基本數(shù)據(jù)類型和表達(dá)式,27,條件運算符與條件表達(dá)式,注意: 條件運算符優(yōu)級高于賦值運算符,低于邏輯運算符 表達(dá)式2、3的類型可以不同,條件表達(dá)式的最終類型為 2 和 3 中較高的類型。 例: x=ab 11、? a:b;,基本數(shù)據(jù)類型和表達(dá)式,,,,,28,sizeof 運算符,語法形式sizeof (類型名)或 sizeof (表達(dá)式) 結(jié)果值:“類型名”所指定的類型或“表達(dá)式”的結(jié)果類型所占的字節(jié)數(shù)。 例: sizeof(short) sizeof(x),基本數(shù)據(jù)類型和表達(dá)式,29,,位運算按位與(,基本數(shù)據(jù)類型和表達(dá)式,31,位運算按位異或(),運算規(guī)則 兩個操作數(shù)進(jìn)行異或:若對應(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ù)類型和表達(dá)式,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ù)類型和表達(dá)式,33,位運算取反(),單目運算符,對一個二進(jìn)制數(shù)按位取反。 例: 025:0000000000010101 025:1111111111101010,基本數(shù)據(jù)類型和表達(dá)式,34,位運算移位,左移運算() 右移后,低位:舍棄 高位:無符號數(shù):補(bǔ)0 有符號數(shù):補(bǔ)“符號位”,基本數(shù)據(jù)類型和 13、表達(dá)式,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 (表達(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 輸入一個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)號,由此開始順序執(zhí)行。因此,每個case分支最后應(yīng)該加break語句。,算法的基本控制結(jié)構(gòu),55,使用switch語句應(yīng)注意的問題,case分支可包含多個語句,且不用 。 表達(dá)式、判斷值都是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í)行順序 先判斷表達(dá)式的值,為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; 枚舉值可以進(jìn)行關(guā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é)果只有四種可能,所以可以聲明一個枚舉類型,聲明一個枚舉類型的變量來存放比賽結(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)類型聲明之后,二者也可同時進(jìn)行。 結(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點美食推薦
- XX國有企業(yè)黨委書記個人述責(zé)述廉報告及2025年重點工作計劃
- 世界濕地日濕地的含義及價值
- 20XX年春節(jié)節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)人到場心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫之美生活之美
- 節(jié)后開工第一課輕松掌握各要點節(jié)后常見的八大危險
- 廈門城市旅游介紹廈門景點介紹廈門美食展示
- 節(jié)后開工第一課復(fù)工復(fù)產(chǎn)十注意節(jié)后復(fù)工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓(xùn)
- 深圳城市旅游介紹景點推薦美食探索
- 節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)勿忘安全本心人人講安全個個會應(yīng)急
- 預(yù)防性維修管理
- 常見閥門類型及特點
- 設(shè)備預(yù)防性維修
- 2.乳化液泵工理論考試試題含答案