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

下載本文檔

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

文檔簡介

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

2、+語言概述4C+程序?qū)嵗?-1/2_1.cpp#include using namespace std;void main() coutHello!n; coutWelcome to c+!n;運行結(jié)果:Hello!Welcome to c+!C+語言概述5C+字符集大小寫的英文字母:AZ,az數(shù)字字符:09特殊字符:空格!#%&*_(下劃線)+=-/;.,()C+語言概述6詞法記號關(guān)鍵字 C+預(yù)定義的單詞標(biāo)識符 程序員聲明的單詞,用來命名程序正文中的一些實體文字 在程序中直接使用符號表示的數(shù)據(jù)操作符 用于實現(xiàn)各種運算的符號分隔符 () , : ; 用于分隔各個詞法記號或程序正文空白符 空格

3、、制表符(TAB鍵產(chǎn)生的字符)、換行符(Enter鍵所產(chǎn)生的字符)和注釋的總稱C+語言概述7標(biāo)識符的構(gòu)成規(guī)則以大寫字母、小寫字母或下劃線(_)開始??梢杂梢源髮懽帜浮⑿懽帜?、下劃線(_)或數(shù)字09組成。大寫字母和小寫字母代表不同的標(biāo)識符。C+語言概述8基本數(shù)據(jù)類型和表達(dá)式整型:short/int/long (八、十、十六進(jìn)制)實型:float/double(默認(rèn)常數(shù)為doubleo類型 故float f=123.45有警告)字符型:char布爾型:bool (true、false)字符串常量:this符號常量:const 數(shù)據(jù)類型 常量名=常量值基本數(shù)據(jù)類型P24 表2-19變量初始化例:

4、int a=3; double f=3.56; char c=a; int c(5);Page 10基本數(shù)據(jù)類型和表達(dá)式10運算符及表達(dá)式Page 11基本數(shù)據(jù)類型和表達(dá)式算術(shù)運算符:+ - * ? % + -賦值運算符:= 及復(fù)合的賦值運算符逗號運算符:,關(guān)系運算符: = = !=邏輯運算符:! & |條件運算符:? :sizeof運算符:計算某種類型的對象在內(nèi)存中所占的字節(jié)數(shù)。位運算符:& | (操作數(shù)必為整型)11運算符優(yōu)先級括號+,-,sizeof*, /, %+, -=, !=位運算&|?:賦值運算逗號運算低高基本數(shù)據(jù)類型和表達(dá)式12混合運算時數(shù)據(jù)類型的轉(zhuǎn)換一些二元運算符(算術(shù)運算符

5、、關(guān)系運算符、邏輯運算符、位運算符和賦值運算符)要求兩個操作數(shù)的類型一致。在算術(shù)運算和關(guān)系運算中如果參與運算的操作數(shù)類型不一致,編譯系統(tǒng)會自動對數(shù)據(jù)進(jìn)行轉(zhuǎn)換(即隱含轉(zhuǎn)換),基本原則是將低類型數(shù)據(jù)轉(zhuǎn)換為高類型數(shù)據(jù)。char,short,int,unsigned,long,unsigned long,float,double低 高基本數(shù)據(jù)類型和表達(dá)式13當(dāng)參與運算的操作數(shù)必須是bool型時,如果操作數(shù)是其它類型,編譯系統(tǒng)會自動將非0數(shù)據(jù)轉(zhuǎn)換為true,0轉(zhuǎn)換為false。位運算的操作數(shù)必須是整數(shù),當(dāng)二元位運算的操作數(shù)是不同類型的整數(shù)時,也會自動進(jìn)行類型轉(zhuǎn)換,賦值運算要求左值與右值的類型相同,若類型

6、不同,編譯系統(tǒng)會自動將右值轉(zhuǎn)換為左值的類型。可以采用強(qiáng)制類型轉(zhuǎn)換。基本數(shù)據(jù)類型和表達(dá)式混合運算時數(shù)據(jù)類型的轉(zhuǎn)換14語句聲明語句表達(dá)式語句選擇語句循環(huán)語句跳轉(zhuǎn)語句復(fù)合語句標(biāo)號語句 基本數(shù)據(jù)類型和表達(dá)式15簡單的輸入、輸出數(shù)據(jù)的輸入與輸出 在C+中,將數(shù)據(jù)從一個對象到另一個對象的流動抽象為“流”。流在使用前被建立,使用后被刪除。從流中獲取數(shù)據(jù)的操作符稱為提取操作,向流中添加數(shù)據(jù)的操作稱為插入操作。數(shù)據(jù)的輸入與輸出是通過I/O流來實現(xiàn)的,cin和cout是預(yù)定義的流類對象。一、輸出 cout表達(dá)式表達(dá)式其中,變量變量其中, 是提取符輸入的值用空格分隔,也可以分行輸入,不能用逗號分隔。17簡單的輸入、

7、輸出數(shù)據(jù)的輸入與輸出三、簡單的I/O格式控制 (iomanip) 操縱符名含義dec數(shù)值數(shù)據(jù)采用十進(jìn)制表示hex數(shù)值數(shù)據(jù)采用十六進(jìn)制表示oct數(shù)值數(shù)據(jù)采用八進(jìn)制表示ws提取空白符endl插入換行符ends插入空字符setw(int)設(shè)置域?qū)?8簡單的輸入、輸出數(shù)據(jù)的輸入與輸出三、簡單的I/O格式控制 (iomanip) 操縱符名含義fixed定點數(shù)格式輸出,小數(shù)6位scientific科學(xué)記數(shù)法格式輸出,小數(shù)6位setprecision(int)設(shè)置有效位數(shù)(普通顯示方式)或精度(定點或科學(xué)記數(shù)法方式)boolalpha使bool類型的數(shù)據(jù)輸出結(jié)果為true或false19簡單的輸入、輸出數(shù)據(jù)

8、的輸入與輸出三、簡單的I/O格式控制 (iomanip) #include #include using namespace std;void main()float f=12.456789f; coutsetprecision(3)fendl;運行結(jié)果:12.5coutfixedsetprecision(3)fendl;運行結(jié)果:12.45720簡單的輸入、輸出數(shù)據(jù)的輸入與輸出三、簡單的I/O格式控制 (iomanip) 注:使用setprecision(n)可控制輸出流顯示浮點數(shù)的數(shù)字個數(shù)。C+默認(rèn)的流輸出數(shù)值有效位是6。如果setprecision(n)與setiosflags(ios:

9、fixed)合用,可以控制小數(shù)點右邊的數(shù)字個數(shù)。如果與setiosflags(ios:scientific)合用,可以控制指數(shù)表示法的小數(shù)位數(shù)。如果與setiosflags(ios:left)合用,可以使輸出的數(shù)據(jù)在域內(nèi)左對齊。21順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)算法的基本控制結(jié)構(gòu)算法的基本控制結(jié)構(gòu)22P39 例2-2P40 例2-3P42 例2-4P43 例2-5P44 例2-6P46 例2-7P47 例2-8P49 例2-9P50 例2-10算法的基本控制結(jié)構(gòu)23typedef語句為一個已有的數(shù)據(jù)類型另外命名語法形式typedef 已有類型名 新類型名表;例如typedef double area

10、,volume;typedef int natural;natural i1,i2;area a;volume v;自定義數(shù)據(jù)類型24枚舉類型enum只要將需要的值一一列舉出來,便構(gòu)成了一個枚舉類型。枚舉類型的聲明形式如下:enum 枚舉類型名 值列表;例如:enum weekdaysun,mon,tue,wed,thu,fri,sat;自定義數(shù)據(jù)類型25枚舉類型enum枚舉類型應(yīng)用說明:對枚舉元素按常量處理,不能對它們賦值。例如,不能寫:sun=0;枚舉元素具有默認(rèn)值,它們依次為: 0,1,2,。也可以在聲明時另行指定枚舉元素的值,如:enum weekdaysun=7,mon=1,tue,

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

12、ult; enum game_result 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; return 0;2828運行結(jié)

13、果 The game was played and we won! The game was played and we lost. The game was played The game was cancelled2929結(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ù)類型30結(jié)構(gòu)體結(jié)構(gòu)的聲明舉例:struct student /學(xué)生信息結(jié)構(gòu)體 int num; /學(xué)號 char name20; /姓名 char gender; /性別 int a

14、ge; /年齡 float score; /成績 char addr30; /住址自定義數(shù)據(jù)類型31結(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ù)類型32結(jié)構(gòu)體結(jié)構(gòu)變量的初始化和使用初始化說明結(jié)構(gòu)變量的同時可以直接設(shè)置初值。使用結(jié)構(gòu)體成員的引用形式:結(jié)構(gòu)變量名.成員名自定義數(shù)據(jù)類型33例2-12結(jié)構(gòu)體變量的初始化和使用#include #include using namespace

15、 std;struct student /學(xué)生信息結(jié)構(gòu)體 int num;/學(xué)號 char name20;/姓名 char gender;/性別 int age;/年齡stu=97001,Lin Lin,F,19;int main() coutsetw(7)stu.numsetw(20) setw(3)stu.sexsetw(3)stu.age;自定義數(shù)據(jù)類型運行結(jié)果: 97001 Lin Lin F 1934聯(lián)合體聲明形式:union 聯(lián)合名 數(shù)據(jù)類型 成員名 1; 數(shù)據(jù)類型 成員名 2; : 數(shù)據(jù)類型 成員名 n; ;聯(lián)合體類型變量說明的語法形式聯(lián)合名 聯(lián)合變量名;引用形式:聯(lián)合名.成員名自定義數(shù)據(jù)類型35例: union uarea char c_data; short s_data; long l_data;uareac_datal_datas_data聯(lián)合體自定義數(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論