![《C++程序設(shè)計(jì)》完整教案_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/3853929d-0f8b-4d9f-9090-2037c9a59781/3853929d-0f8b-4d9f-9090-2037c9a597811.gif)
![《C++程序設(shè)計(jì)》完整教案_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/3853929d-0f8b-4d9f-9090-2037c9a59781/3853929d-0f8b-4d9f-9090-2037c9a597812.gif)
![《C++程序設(shè)計(jì)》完整教案_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/3853929d-0f8b-4d9f-9090-2037c9a59781/3853929d-0f8b-4d9f-9090-2037c9a597813.gif)
![《C++程序設(shè)計(jì)》完整教案_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/3853929d-0f8b-4d9f-9090-2037c9a59781/3853929d-0f8b-4d9f-9090-2037c9a597814.gif)
![《C++程序設(shè)計(jì)》完整教案_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/8/3853929d-0f8b-4d9f-9090-2037c9a59781/3853929d-0f8b-4d9f-9090-2037c9a597815.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、c+程序設(shè)計(jì)教案蔡勇智講師授課時(shí)間:2010年 3 月 2010年 7 月課程性質(zhì): 專業(yè)必修課課程類別: 講授課 +實(shí)訓(xùn)課授課對(duì)象: 08 級(jí)電子商務(wù)專業(yè)課 時(shí) 數(shù):周 4 教學(xué)目的: 通過本課程的學(xué)習(xí), 使學(xué)生理解面向?qū)ο蟪绦蛟O(shè)計(jì)思想,掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念和技術(shù)。使學(xué)生深刻理解面向?qū)ο蠹夹g(shù)所帶來的觀念改革, 掌握一種面向?qū)ο蟪绦蛟O(shè)計(jì)語言和面向?qū)ο笤O(shè)計(jì)的思維方式、 規(guī)則與基本方法, 了解面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)的發(fā)展趨勢(shì)。 通過面向?qū)ο笏季S的訓(xùn)練, 使學(xué)生逐漸掌握現(xiàn)代編程能力,為今后的軟件開發(fā)和各種信息處理打下良好的基礎(chǔ)。教學(xué)方法:本課程以以下兩種教學(xué)方法為主:1理論課堂教學(xué)使用多媒體
2、輔助教學(xué)手段,并采用可視化的編程工具用于課程學(xué)習(xí)和編程。2實(shí)驗(yàn)教學(xué)結(jié)合理論教學(xué)實(shí)際情況,布置合適比例的概念理解題和綜合設(shè)計(jì)題,使學(xué)生在掌握面向?qū)ο蟾拍?、鞏固知識(shí)的同時(shí),提高綜合設(shè)計(jì)和處理實(shí)際問題的能力。教學(xué)內(nèi)容:第一章面向?qū)ο蟪绦蛟O(shè)計(jì)概述第二章c+程序設(shè)計(jì)基礎(chǔ)第三章函數(shù)第四章數(shù)組第五章結(jié)構(gòu)體與共用體第六章指針與引用教學(xué)重難點(diǎn): 重難點(diǎn)在于采用面向?qū)ο蟮挠^點(diǎn)分析問題、解決問題,以及培養(yǎng)學(xué)生結(jié)合實(shí)際應(yīng)用,采用面向?qū)ο蟮乃枷朐O(shè)計(jì)有效的算法和可視化編程實(shí)現(xiàn)能力??己朔绞剑?平時(shí)考勤、作業(yè)占30%,期末考試占 70%。使用教材:c+程序設(shè)計(jì)鄧振杰主編第 1 章c+概述本章課時(shí):4 課時(shí)本章重點(diǎn):c+的基
3、本結(jié)構(gòu)c+的上機(jī)實(shí)現(xiàn)本章難點(diǎn):c+的上機(jī)實(shí)現(xiàn)教學(xué)內(nèi)容及教學(xué)目標(biāo):了解:1傳統(tǒng)程序設(shè)計(jì)與面向?qū)ο蟪绦蛟O(shè)計(jì)的區(qū)別2c+的發(fā)展3面向?qū)ο蟪绦蛟O(shè)計(jì)語言理解:1面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)2熟悉 vc+6.0 集成開發(fā)環(huán)境掌握:1c+的特點(diǎn)2c+程序結(jié)構(gòu)和書寫規(guī)則第一節(jié)面向?qū)ο蟪绦蛟O(shè)計(jì)基本概念:1. 對(duì)象在面向?qū)ο蟪绦蛟O(shè)計(jì)中,對(duì)象是由對(duì)象名、 一組屬性數(shù)據(jù)和一組操作封裝在一起構(gòu)成的實(shí)體。 其中屬性數(shù)據(jù)是對(duì)象固有特征的描述,操作是對(duì)這些屬性數(shù)據(jù)施加的動(dòng)態(tài)行為,是一系列的實(shí)現(xiàn)步驟,通常稱之為方法。2. 類在面向?qū)ο蟪绦蛟O(shè)計(jì)中,類是具有相同屬性數(shù)據(jù)和操作的對(duì)象的集合,它是對(duì)一類對(duì)象的抽象描述。 類是創(chuàng)建對(duì)象的模板,
4、它包含著所創(chuàng)建對(duì)象的狀態(tài)描述和方法的定義,一般是先聲明類,再由類創(chuàng)建其對(duì)象。按照這個(gè)模板創(chuàng)建的一個(gè)個(gè)具體的實(shí)例,就是對(duì)象。3. 屬性對(duì)象中的數(shù)據(jù)稱為對(duì)象的屬性,而類中的特性稱為類的屬性,不同的類和對(duì)象具有不同的屬性。4. 消息在面向?qū)ο蟪绦蛟O(shè)計(jì)中,當(dāng)要求一個(gè)對(duì)象做某一操作時(shí),就向該對(duì)象發(fā)出請(qǐng)求,通常稱為“消息”。當(dāng)對(duì)象接收到消息時(shí),就調(diào)用有關(guān)方法,執(zhí)行相應(yīng)操作。這種對(duì)象與對(duì)象之間通過消息進(jìn)行相互聯(lián)系的機(jī)制,就叫做消息傳遞機(jī)制,通過消息傳遞可實(shí)現(xiàn)對(duì)象的交互。5. 方法方法就是對(duì)象所能執(zhí)行的操作。方法包括接口和方法體兩部分。方法的接口就是消息的模式, 它告訴用戶如何調(diào)用該方法;方法體則是實(shí)現(xiàn)操作的
5、一系列步驟,也就是一段程序代碼。傳統(tǒng)程序設(shè)計(jì)及其局限性:1. 傳統(tǒng)程序設(shè)計(jì)開發(fā)軟件的生產(chǎn)效率低下2. 傳統(tǒng)程序設(shè)計(jì)難以應(yīng)付龐大的信息量和多樣的信息類型3. 傳統(tǒng)程序設(shè)計(jì)難以適應(yīng)各種新環(huán)境面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn):1.封裝性封裝是一種數(shù)據(jù)隱藏技術(shù),在面向?qū)ο蟪绦蛟O(shè)計(jì)中可以把數(shù)據(jù)和與數(shù)據(jù)有關(guān)的操作集中在一起形成類,將類的一部分屬性和操作隱藏起來,不讓用戶訪問, 另一部分作為類的外部接口,用戶可以訪問。2. 繼承性在面向?qū)ο蟪绦蛟O(shè)計(jì)中,繼承是指新建的類從已有的類那里獲得已有的屬性和操作。已有的類稱為基類或父類,繼承基類而產(chǎn)生的新建類稱為基類的子類或派生類。3. 多態(tài)性多態(tài)性是指相同的函數(shù)名可以有多個(gè)不
6、同的函數(shù)體,即一個(gè)函數(shù)名可以對(duì)應(yīng)多個(gè)不同的實(shí)現(xiàn)部分。在調(diào)用同一函數(shù)時(shí),由于環(huán)境的不同,可能引發(fā)不同的行為,導(dǎo)致不同的動(dòng)作,這種功能稱為多態(tài)。它使得類中具有相似功能的不同函數(shù)可以使用同一個(gè)函數(shù)名。第二節(jié)c+的發(fā)展1980 年,美國(guó) at&t 公司貝爾實(shí)驗(yàn)室的bjarne stioustrup 博士為了仿真課題研究,編寫了稱為“帶類的c”語言版本。 1983 年 7 月用 c+將該語言名字定下來,并對(duì)外公開發(fā)表。microsoft 公司于 20世紀(jì) 80年代中期在microsoft c 6.0 的基礎(chǔ)上開發(fā)了microsoft c/c+ 7.0,同時(shí)引進(jìn)了microsoft foundat
7、ion class (mfc )1.0 版本, 完善了源代碼。 后來 microsoft公司推出了microsoft c/c+ 8.0 ,即 visual c+ 1.0 版本,之后又推出了visual c+ 2.0 和visual c+ 4.0 版本。伴隨 windows 98 操作系統(tǒng)的發(fā)布,microsoft 公司又隆重推出了visual c+ 6.0 c+的特點(diǎn):c+全面兼容c 語言,許多c 語言代碼不經(jīng)修改就可以在c+中使用。用 c+編寫的程序可讀性更好,代碼結(jié)構(gòu)更為合理。生成代碼質(zhì)量高,運(yùn)行效率僅比匯編語言慢10%20%。從開發(fā)時(shí)間、 費(fèi)用到形成軟件的可重用性、可擴(kuò)充性、 可維護(hù)性和
8、可靠性等方面有很大提高,使得大中型軟件開發(fā)變得容易很多。支持面向?qū)ο蟪绦蛟O(shè)計(jì),可方便地構(gòu)造出模擬現(xiàn)實(shí)問題的實(shí)體和操作。第三節(jié)c+程序的基本結(jié)構(gòu)【例 1.1】一個(gè)簡(jiǎn)單的c+程序。# include void sayhello(); void main() sayhello( ); / 在顯示器上輸出顯示一行字符串coutthis is my first c+ program! endl; /函數(shù)定義void sayhello() couthello! endl; 1.頭文件在 c+程序開始部分出現(xiàn)以#開頭的命令, 表示這些命令是預(yù)處理命令,稱作預(yù)處理器。 c+提供了 3 類預(yù)處理命令:宏定義命令
9、、文件包含命令和條件編譯命令c+語言包含頭文件的格式有兩種:#include #include文件名 .擴(kuò)展名 2. 函數(shù)c+的程序是由若干個(gè)文件組成,每個(gè)文件又由若干個(gè)函數(shù)組成。函數(shù)之間是相互獨(dú)立的,相互之間可以調(diào)用。但函數(shù)在調(diào)用之前,必須先定義。c+的程序中的函數(shù)可分為兩大類,一類是用戶自己定義的函數(shù),另一類是系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)。使用系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)時(shí),可以直接調(diào)用,但需要將該函數(shù)的頭文件包含在該程序中。3. 主函數(shù)在組成 c+程序的若干個(gè)函數(shù)中,必須有一個(gè)且只能有一個(gè)主函數(shù)main()。執(zhí)行程序時(shí),系統(tǒng)先從主函數(shù)開始運(yùn)行,其他函數(shù)只能被主函數(shù)調(diào)用或通過主函數(shù)調(diào)用的函數(shù)所調(diào)用,函數(shù)可以嵌
10、套調(diào)用。4. 注釋第一種注釋方法是以“/*”開始,以“ */”結(jié)束,二者之間的所有字符都會(huì)被作為注釋處理,此時(shí)的注釋可以是一行,也可以是多行,適合于大塊的注釋。第二種注釋方法是以“/”表示注釋開始,本行中“/”后面的字符都會(huì)被作為注釋處理,這種注釋方式多用于較短的程序注釋。5. 輸入 /輸出輸入 /輸出語句是c+最基本的語句。綜上所述, 一個(gè) c+程序的基本結(jié)構(gòu)應(yīng)該包括以“#”開頭的若干個(gè)預(yù)處理命令,將程序所需要的頭文件包含進(jìn)來;然后定義主函數(shù)和其他函數(shù),當(dāng)然函數(shù)也可以在程序的起始部分先利用函數(shù)要包括各種語句和注釋,這部分是程序的主體部分,所占比重也最大。c+程序的書寫格式:c+程序的書寫格式
11、與c 程序書寫格式基本相同。原則如下:一般情況下一行只寫一條語句。短語句可以一行寫多條,長(zhǎng)語句也可以分成多行來寫。分行原則是不能將一個(gè)單詞分開,用雙引號(hào)括起來的字符串最好也不要分開。c+ 程序書寫時(shí)要盡量提高可讀性。為此,采用適當(dāng)?shù)乜s進(jìn)格式書寫程序是非常必要的,表示同一類內(nèi)容或同一層次的語句要對(duì)齊。c+ 程序中大括號(hào) 使用較多,其書寫方法也較多,建議用戶要養(yǎng)成使用大括號(hào) 的固定風(fēng)格。例如, 每個(gè)大括號(hào)占一行,并與使用大括號(hào)的語句對(duì)齊,大括號(hào)內(nèi)的語句采用縮進(jìn)兩個(gè)字符的格式書寫。第四節(jié)visual c+ 6.0 集成開發(fā)環(huán)境visual c+ 6.0 是微軟公司開發(fā)的可視化的c+集成開發(fā)環(huán)境。它集
12、程序代碼的編輯、編譯、連接、調(diào)試等功能為一體,界面友好,用戶操作方便。1 菜單欄2標(biāo)準(zhǔn)工具欄3工作區(qū)窗口4源程序編輯窗口5編譯工具欄6輸出窗口編輯、編譯和運(yùn)行程序:1. 編輯編輯是將寫好的c+源程序輸入到計(jì)算機(jī)中,生成磁盤文件的過程。默認(rèn)文件擴(kuò)展名為*.cpp。2. 編譯編輯好的源程序必須經(jīng)過編譯,計(jì)算機(jī)才能執(zhí)行,這些二進(jìn)制代碼稱為目標(biāo)代碼。將這些目標(biāo)代碼以.obj 為擴(kuò)展名保存成目標(biāo)程序文件。3. 連接編譯后生成的目標(biāo)代碼還不能直接在計(jì)算機(jī)上運(yùn)行,其主要原因是編譯器對(duì)每個(gè)源程序文件分別進(jìn)行編譯,如果一個(gè)程序有多個(gè)源程序文件,編譯后這些源程序文件還分布在不同的地方。因此,需要把它們連接在一起,
13、生成可以在計(jì)算機(jī)上運(yùn)行的可執(zhí)行文件。4. 運(yùn)行可執(zhí)行文件可以在windows 環(huán)境下直接雙擊運(yùn)行,也可以在visual c+ 6.0 的集成開發(fā)環(huán)境下運(yùn)行。在生成可執(zhí)行文件之前,一定要改正編譯和連接時(shí)出現(xiàn)的致命錯(cuò)誤和警告錯(cuò)誤,這樣才能保證運(yùn)行結(jié)果是正確的。參照教材練習(xí)c+程序的上機(jī)實(shí)現(xiàn)過程。源程序菜單欄標(biāo)準(zhǔn)工具欄工作區(qū)窗口輸出窗口編譯工編輯編譯連接運(yùn)行源程序hello.cpp 目標(biāo)程序hello.obj 可執(zhí)行程序hello.exe 結(jié)果有錯(cuò)誤無錯(cuò)誤利用 debug 調(diào)試功能調(diào)試程序:visual c+ 6.0集成開發(fā)環(huán)境為我們提供了輔助調(diào)試工具,可以實(shí)現(xiàn)單步運(yùn)行、設(shè)置斷點(diǎn)、觀察變量和表達(dá)式的
14、值等功能,使我們可以跟蹤程序的執(zhí)行過程,觀察不同時(shí)刻變量值的變化情況。 所謂斷點(diǎn)就是程序運(yùn)行時(shí)的暫停點(diǎn),程序運(yùn)行到斷點(diǎn)處便暫停,這樣就可以通過觀察斷點(diǎn)處變量的值來了解程序的執(zhí)行過程。參照教材練習(xí)利用debug 調(diào)試程序的過程。作業(yè)教材 p18-19 所有習(xí)題。第 2 章c+程序設(shè)計(jì)基礎(chǔ)本章課時(shí):16 課時(shí)本章重點(diǎn):運(yùn)算符與表達(dá)式控制語句本章難點(diǎn):控制語句教學(xué)內(nèi)容及目標(biāo):了解:1 為什么會(huì)有三種基本的程序控制結(jié)構(gòu)2 c+的基本數(shù)據(jù)類型理解:1程序控制結(jié)構(gòu)的控制方式:順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)2c+的運(yùn)算符、關(guān)鍵字、標(biāo)識(shí)符和分隔符、常量和變量語法規(guī)則3轉(zhuǎn)向語句的使用4表達(dá)式中數(shù)據(jù)類型的轉(zhuǎn)換規(guī)則掌
15、握:1選擇控制的使用:if 語句, switch 語句2循環(huán)控制結(jié)構(gòu)的使用:while 語句, do_while 語句, for 語句,循環(huán)的嵌套3判斷表達(dá)式的使用第一節(jié)詞法符號(hào)標(biāo)識(shí)符:標(biāo)識(shí)符是程序員為命名程序中的一些實(shí)體而定義的專用單詞。常見的有函數(shù)名,類名、 變量名、常量名、對(duì)象名等。c+語言中標(biāo)識(shí)符的命名規(guī)則如下:標(biāo)識(shí)符是由英文字母(包括大寫和小寫) 、數(shù)字和下劃線組成,并且以字母和下劃線開始,例如: abc、x1、_x1、desk 都是合法的標(biāo)識(shí)符,而2a 是非法的。標(biāo)識(shí)符中大寫和小寫字母是有區(qū)別的。標(biāo)識(shí)符的長(zhǎng)度是任意的,但有的編譯系統(tǒng)僅識(shí)別前32 個(gè)字符。標(biāo)識(shí)符不能和c+語言的關(guān)鍵字
16、同名。關(guān)鍵字:關(guān)鍵字是一種有特殊用途的詞法符號(hào),是c+系統(tǒng)預(yù)定義的保留字,不能再用作其他用途。下面列舉一些c+語言中常用的關(guān)鍵字:auto break bool case char catch class const continue default delete do double else enum explicit export extern false float for friend goto if inline int long new mutable name space operator private protected public register return shor
17、t signed sizeof static atruct switch this typedef true union unsigned typename void using virtual volatile while static_cast 運(yùn)算符:運(yùn)算符是 c+語言實(shí)現(xiàn)各種運(yùn)算的符號(hào),如+、 *、/ 等。運(yùn)算符根據(jù)操作對(duì)象個(gè)數(shù)的不同,可以分為單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符。單目運(yùn)算符又稱一元運(yùn)算符,它只對(duì)一個(gè)操作數(shù)進(jìn)行操作。例如,求負(fù)運(yùn)算符、邏輯求反運(yùn)算符 !等。雙目運(yùn)算符又稱二元運(yùn)算符,它可以對(duì)兩個(gè)操作數(shù)進(jìn)行操作。例如,加法運(yùn)算符+、乘法運(yùn)算符 *等。三目運(yùn)算符又稱三元運(yùn)算符,
18、它可以對(duì)三個(gè)操作數(shù)進(jìn)行操作。c+語言中只有一個(gè)三目運(yùn)算符,就是條件運(yùn)算符? : 。分隔符:分隔符又稱標(biāo)點(diǎn)符號(hào),是用來分隔單詞或程序正文的,它可以表示某個(gè)程序?qū)嶓w的結(jié)束和另一個(gè)程序?qū)嶓w的開始。在c+語言中,常用的分隔符有以下幾個(gè):空格符:常用來作為單詞與單詞之間的分隔符。逗號(hào):用來作為多個(gè)變量之間的分隔符,或用來作為函數(shù)多個(gè)參數(shù)之間的分隔符。分號(hào):用來作為for 循環(huán)語句中for 關(guān)鍵字后面括號(hào)中三個(gè)表達(dá)式的分隔符,或用作語句結(jié)束的標(biāo)志。冒號(hào):用來作為語句標(biāo)號(hào)與語句之間的分隔符,或switch 語句中關(guān)鍵字case與語句序列之間的分隔符。第二節(jié)基本數(shù)據(jù)類型c+語言的數(shù)據(jù)類型是十分豐富的,大致可分
19、為基本數(shù)據(jù)類型和非基本數(shù)據(jù)類型?;緮?shù)據(jù)類型包括整型、 字符型、 浮點(diǎn)型和布爾型。 非基本數(shù)據(jù)類型主要包括數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、指針類型和空類型等,如圖2-1 所示。數(shù)據(jù)類型決定了數(shù)據(jù)在內(nèi)存中所占的空間大小,也確定了其表示范圍。各種基本數(shù)據(jù)類型的長(zhǎng)度和取值范圍見表2-1。數(shù)據(jù)類型基本數(shù)據(jù)類型整型基本整型( int)短整型( short)長(zhǎng)整型( long)字符型浮點(diǎn)型單精度型( float)雙精度型( double)布爾型( bool)構(gòu)造數(shù)據(jù)類型數(shù)組類型結(jié)構(gòu)體類型共用體類型第三節(jié)常量與變量常量:1整型常量整型常量即整型常數(shù),可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制3 種形式來表示。十進(jìn)制整
20、型常量不能以0 開始。例如, 234、-67 為合法的十進(jìn)制整型常量。八進(jìn)制整型常量以0 為前綴。例如,0134、-076 為合法的八進(jìn)制整型常量。十六進(jìn)制整型常量以0x 或 0 x 為前綴。例如,0 x2f、 0 xa3b4 為合法的十六進(jìn)制整型常量。注意:整型常量中的長(zhǎng)整型用l 或 l 作后綴表示。例如,324l、 076l 等;整型常量中的無符號(hào)型用 u 或 u 作后綴表示。例如,431u、 0 x34du 等。2浮點(diǎn)型常量浮點(diǎn)型常量又稱實(shí)型常量,是由整數(shù)部分和小數(shù)部分組成的,只能用十進(jìn)制表示。浮點(diǎn)型常量有兩種表示方法:小數(shù)表示法和科學(xué)計(jì)數(shù)法。小數(shù)表示法:是由符號(hào)、數(shù)字和小數(shù)點(diǎn)組成。例如
21、,9.55、.25 等。科學(xué)計(jì)數(shù)法:是用指數(shù)形式來表示浮點(diǎn)型常量,即在小數(shù)表示法后面加上 e 或 e 表示指數(shù)。例如,3.2e-5, 7e10,-34.5e2 等。3字符常量c+中有兩種字符常量,即一般字符常量和轉(zhuǎn)義字符常量。一般字符常量:一對(duì)單引號(hào)括起來的一個(gè)字符,其值為ascii 碼值。例如, a、a 、$、5等都是合法的字符常量。轉(zhuǎn)義字符轉(zhuǎn)義字符是一個(gè)以“”開頭的特定字符,表示其后的字符具有特殊意義。例如,n中的 n 不是代表字符n,而是代表回車換行的意思。常用的轉(zhuǎn)義字符見表2-2。字符形式ascii 碼值功能00 x00nulla0 x07響鈴b0 x08退格( backspace 鍵
22、)t0 x09水平制表( tab 鍵)f0 x0c走紙換頁n0 x0a回車換行v0 x0b垂直制表r0 x0d回車(不換行)0 x5c字符 “ ”0 x27單引號(hào)0 x22雙引號(hào)?0 x3f問號(hào)ddd0ddd13 位八進(jìn)制數(shù)所代表的字符xhh0 xhh12 位十六進(jìn)制數(shù)所代表的字符表 2-2 c+中常用的轉(zhuǎn)義字符4字符串常量字符串常量是用一對(duì)雙引號(hào)括起來的字符序列。例如,a 、123、 hello 等都是字符串常量。這些字符在內(nèi)存中連續(xù)存儲(chǔ),并在最后加上字符0作為字符串結(jié)束的標(biāo)志。例如,字符串“hello ”在內(nèi)存中占連續(xù)6 個(gè)內(nèi)存單元,存放示意圖如圖2-2 所示。圖 2-2 字符串 hell
23、o 在內(nèi)存中的存放示意圖字符常量是用單引號(hào)括起來的一個(gè)字符。它在內(nèi)存中只占一個(gè)字節(jié)。所以,x 和 x是不同的。注意:不能將一個(gè)字符串常量賦給字符常量。例如,語句char c=abc是錯(cuò)誤的。5邏輯常量在 c+程序設(shè)計(jì)中經(jīng)常會(huì)用到兩個(gè)邏輯值(也稱布爾值) 0 和 1, 邏輯值“0” 代表“假”、“不成立”、 “false”等,邏輯值“1”代表“真” 、 “成立”、 “true”等。6符號(hào)常量在 c+中,可以用一個(gè)標(biāo)識(shí)符來表示一個(gè)常數(shù),這個(gè)標(biāo)識(shí)符就是符號(hào)常量。使用符號(hào)常量可以增加程序的可讀性和可維護(hù)性。c+語言提供了兩種定義符號(hào)常量的方法:用 const 語句定義符號(hào)常量一般格式為:const 數(shù)
24、據(jù)類型符號(hào)常量 =表達(dá)式;例如: const double pi = 3.1415926 ;注意:在定義符號(hào)常量時(shí)必須進(jìn)行初始化 用#define 語句定義符號(hào)常量#define 是預(yù)處理指令,缺點(diǎn)是不能顯示聲明常量的類型。其一般格式為: #define 常量名常量值例如: #define pi 3.1415926 變量:變量是指在程序運(yùn)行過程中其值可以改變的量。c+語言中使用變量前,必須先對(duì)它的數(shù)據(jù)類型進(jìn)行說明,以便編譯程序?yàn)樽兞糠峙浯鎯?chǔ)空間。1變量的命名變量的命名要遵循c+語言中標(biāo)識(shí)符的命名規(guī)定2變量的定義變量定義的一般格式為:數(shù)據(jù)類型變量 1,變量 2,, ;hello0其中數(shù)據(jù)類型可以
25、是前面講過的各種數(shù)據(jù)類型,它決定了變量在內(nèi)存中所占的存儲(chǔ)單元數(shù)。例如: int x,y,z; /定義了 3 個(gè)整型變量x、y、z float a,b,c; /定義了 3 個(gè)實(shí)型變量a、b、c 3變量與初始化可以在聲明變量的同時(shí)賦初值:例如: int x=10,y=20+a; 例如: int x(10); 也可以先定義變量,后賦值。例如:int x1,y1; x1=10;y1=20; 注意:不能連續(xù)賦值。如:int a=b=c=5; 是錯(cuò)誤的。但可以分別賦值。在同一個(gè)程序塊中,不能有兩個(gè)相同的變量名。 變量賦值時(shí),等號(hào)左右兩邊類型要匹配。表達(dá)式是由運(yùn)算符和各種運(yùn)算對(duì)象(常數(shù)、變量、常量等,也稱操
26、作數(shù))組合而成。在c+程序中,表達(dá)式與我們?cè)跀?shù)學(xué)中學(xué)到的類似,是用于計(jì)算的式子,是計(jì)算求值的基本單位。c+語言定義了豐富的運(yùn)算符。運(yùn)算符給出計(jì)算的類型,而參與運(yùn)算的數(shù)據(jù)叫操作數(shù)。按運(yùn)算符的運(yùn)算性質(zhì)又可分為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符等。使用運(yùn)算符時(shí),要注意以下幾點(diǎn):運(yùn)算符的功能。如加、減、乘、除等。與操作數(shù)的關(guān)系,注意操作數(shù)的個(gè)數(shù)和類型。運(yùn)算符的優(yōu)先級(jí)別。運(yùn)算符的結(jié)合性。第四節(jié)運(yùn)算符和表達(dá)式表 2-3 c+中常用運(yùn)算符的優(yōu)先級(jí)、功能和結(jié)合性優(yōu)先級(jí)運(yùn)算符功能說明要求操作數(shù)的個(gè)數(shù)結(jié)合性1( )改變優(yōu)先級(jí)左結(jié)合: :作用域運(yùn)算符 數(shù)組下標(biāo)運(yùn)算符成員選擇* *成員指針選擇2*指針運(yùn)算符1右結(jié)合&
27、amp;取地址sizeof求內(nèi)存字節(jié)數(shù)!邏輯求反按位求反+ -增 1、減 1運(yùn)算符+ -取正、取負(fù)運(yùn)算符3* / %乘法、除法、取余2左結(jié)合4+ -加法、減法2左結(jié)合5左移位、右移位2左結(jié)合6 =小于、大于、小于等于、大于等于2左結(jié)合表 2-3 c+中常用運(yùn)算符的優(yōu)先級(jí)、功能和結(jié)合性(續(xù)表)優(yōu)先級(jí)運(yùn)算符功能說明要求操作數(shù)的個(gè)數(shù)結(jié)合性7= !=等于、不等于2左結(jié)合8&按位與2左結(jié)合9按位異或2左結(jié)合10|按位或2左結(jié)合11&邏輯與2左結(jié)合12|邏輯或2左結(jié)合13?:條件運(yùn)算符3右結(jié)合14= += = *= /= %= = &= = |=賦值運(yùn)算符2右結(jié)合15,逗號(hào)運(yùn)算符左
28、結(jié)合1基本算術(shù)運(yùn)算符與算術(shù)表達(dá)式基本算術(shù)運(yùn)算符有:+(取正或加) 、(取負(fù)或減) 、*(乘)、(除)、%(取余)。其中+(取正)、(取負(fù))是單目運(yùn)算符,其余是雙目運(yùn)算符。上述運(yùn)算符與其在數(shù)學(xué)中的意義、優(yōu)先級(jí)、結(jié)合性基本相同,即先進(jìn)行乘法、除法和求余運(yùn)算,優(yōu)先級(jí)相同,后執(zhí)行加法和減法運(yùn)算,優(yōu)先級(jí)相同。注意:要求取余運(yùn)算符(%)的兩個(gè)操作數(shù)必須是整數(shù)或字符型數(shù)據(jù)。算術(shù)表達(dá)式是由算術(shù)運(yùn)算符與操作數(shù)組成的,其表達(dá)式的值是一個(gè)數(shù)值,表達(dá)式的類型由運(yùn)算符和操作數(shù)共同確定?!纠?2.1】基本算術(shù)表達(dá)式的計(jì)算。#include void main() int i=4,j=5,k=6; int x; x=i+j
29、-k; coutx=xendl; /輸出 x=3 x=(i+j)*k/2; coutx=xendl; /輸出 x=27 x=25*4/2%k; coutx=xendl; /輸出 x=2 double y=2.5; couty=y-(y+0.5)*2endl; /輸出 y= -3.5 運(yùn)行程序后,輸出結(jié)果為:x=3 x=27 x=2 y= -3.5 2增 1、減 1 運(yùn)算符及表達(dá)式增 1、減 1 運(yùn)算符都是單目運(yùn)算符,這兩個(gè)運(yùn)算符都有前置和后置兩種形式。前置形式是指運(yùn)算符在操作數(shù)的前面,后置是指運(yùn)算符在操作數(shù)的后面。例如:i+ ;/+后置 j;/前置注意:增 1、減 1 運(yùn)算符只能用于變量,不能
30、用于常量和表達(dá)式。增 1、減 1 運(yùn)算符的結(jié)合方向是自右向左,如表達(dá)式-i+ 中運(yùn)算符“ -”和“ +”優(yōu)先級(jí)相同,結(jié)合方向是自右向左,即表達(dá)式可以理解為-(i+) 。增 1、減 1 運(yùn)算符在很多情況下的使用可能會(huì)出現(xiàn)歧異,從而產(chǎn)生意想不到的結(jié)果?!纠?2.2】增 1、減 1 表達(dá)式的計(jì)算。#include void main() int i,j,k,m,n; i=4; j=i+; couti=itj=jendl; i=4; k=+i; couti=itk=kendl; i=4; m=i-; couti=itm=mendl; i=4; n=-i; couti=itn=nendl; 運(yùn)行程序后,
31、輸出結(jié)果為:i=5 j=4 i=5 k=5 i=3 j=4 i=3 k=3 關(guān)系運(yùn)算符:關(guān)系運(yùn)算符用于比較兩個(gè)操作數(shù)的大小,其比較的結(jié)果是一個(gè)布爾型的值。當(dāng)兩個(gè)操作數(shù)滿足關(guān)系運(yùn)算符指定的關(guān)系時(shí),表達(dá)式的值為true,否則為false。在 c+語言中, 關(guān)系運(yùn)算符都是雙目運(yùn)算符,共 6個(gè):(小于)、(大于)、=(大于或等于) 、= =(等于)、!=(不等于)。其中前4 種的優(yōu)先級(jí)高于后2 種。c+語言中雖然有布爾類型,但它仍然繼承了c 語言的規(guī)定, true 等于 1,false 等于0。所以,關(guān)系運(yùn)算符的比較結(jié)果可以作為算術(shù)運(yùn)算中的操作數(shù)。例如:表達(dá)式2 = 3 的結(jié)果為 0( false)
32、。在使用關(guān)系運(yùn)算符時(shí)還應(yīng)注意以下幾點(diǎn):不要把關(guān)系運(yùn)算符“= =”誤用為賦值運(yùn)算符“=” 。也不要將不等于運(yùn)算符“!=”寫成其他語言中的不等于運(yùn)算符“” 。a=60 的意思是 a的 ascii 碼值與 60 比較大小。對(duì)于數(shù)學(xué)中表示“x 大于等于5,且 x 小于等于20”的數(shù)學(xué)關(guān)系式5x20,正確的表達(dá)式應(yīng)該是: 5 = x & x = 20 關(guān)系表達(dá)式是由關(guān)系運(yùn)算符和操作數(shù)組成,表達(dá)式的值都是1(true)或 0(false) 。經(jīng)常出現(xiàn)在條件語句和循環(huán)語句中,用于決定問題的執(zhí)行方法?!纠?2.3】關(guān)系表達(dá)式的計(jì)算。#include void main() int i=4,j=5; c
33、outj)endl; cout=j)endl; cout(ij)endl; cout(i=j)endl; cout(i=j)endl; cout(i!=j)endl; 運(yùn)行程序后,輸出結(jié)果為:0 0 1 1 0 1 return 邏輯運(yùn)算符與邏輯表達(dá)式:1邏輯運(yùn)算符邏輯運(yùn)算符共有3 個(gè): 1 個(gè)單目運(yùn)算符 !(邏輯求反) ,2 個(gè)雙目運(yùn)算符& (邏輯與)和|(邏輯或)。注意:在三個(gè)運(yùn)算符中,邏輯非的優(yōu)先級(jí)最高,邏輯與次之,邏輯或最低。關(guān)系運(yùn)算和邏輯運(yùn)算的結(jié)果若為真,其值為1;若為假,其值為0。aba&ba|b0000010110011111表 2-3 邏輯值的邏輯運(yùn)算結(jié)果2邏輯
34、表達(dá)式邏輯表達(dá)式由邏輯運(yùn)算符與操作數(shù)組成,表達(dá)式的值都應(yīng)是1(true)或 0( false) ?!纠?2.4】邏輯表達(dá)式與關(guān)系表達(dá)式的計(jì)算#include void main() int x=3,y=5,z; z=(x0)|(y10); coutz=zendl; /輸出 z=1,表示 true z=(x=0)&(y10); coutz=zendl; /輸出 z=0,表示 false z=!(x=3); coutz=zendl; /輸出 z=0,表示 false 賦值運(yùn)算符:c+中的賦值運(yùn)算符分為兩種:簡(jiǎn)單賦值運(yùn)算符和復(fù)合賦值運(yùn)算符。1簡(jiǎn)單賦值運(yùn)算符“=”其表達(dá)式的一般形式為:變量=
35、表達(dá)式2復(fù)合賦值運(yùn)算符如果以 #表示數(shù)值型運(yùn)算符,則復(fù)合賦值表達(dá)式的一般形式為:變量#= 表達(dá)式該表達(dá)式等價(jià)于:變量= 變量# 表達(dá)式例如:a += 5 等價(jià)于a = a+5 m %=7 等價(jià)于m = m % 7 復(fù)合賦值運(yùn)算符的優(yōu)先級(jí)和賦值運(yùn)算符相同,結(jié)合性也相同,都為右結(jié)合。3賦值表達(dá)式賦值表達(dá)式由賦值運(yùn)算符與操作數(shù)組成。賦值表達(dá)式的作用就是把賦值運(yùn)算符右邊表達(dá)式的值賦給左邊的變量。賦值表達(dá)式的類型為左邊變量的類型,其值為賦值后左邊變量的值。在 c+語言中還可以連續(xù)賦值?!纠?2.5】賦值表達(dá)式的應(yīng)用。#include void main() int m=3,n=4,k; k=m+ - -
36、n; coutk=kendl; char x=m,y=n; int z; z=yx; coutz=zendl; z=(y=x+1); coutz=zendl; z=(y!=y); coutz=zendl; int a=1,b=3,c=5; a+=b*=c-=2; couta=a,b=b,c=c b ? a : b 2逗號(hào)運(yùn)算符由逗號(hào)運(yùn)算符構(gòu)成的表達(dá)式稱為逗號(hào)表達(dá)式,其一般形式為:表達(dá)式 1,表達(dá)式2, , ,表達(dá)式n 逗號(hào)表達(dá)式的執(zhí)行規(guī)則是從左到右,逐個(gè)表達(dá)式執(zhí)行,最后一個(gè)表達(dá)式的值是該逗號(hào)表達(dá)式的值。注意:逗號(hào)運(yùn)算符“, ”的優(yōu)先級(jí)最低。例如,表達(dá)式“a=3,a+l,a*a ”的結(jié)果為9。表
37、達(dá)式中數(shù)據(jù)類型的轉(zhuǎn)換:1. 隱含轉(zhuǎn)換當(dāng)操作數(shù)的類型不一致時(shí),表達(dá)式的類型就取決于操作數(shù)中類型最高的操作數(shù)類型,c+語言將自動(dòng)進(jìn)行類型轉(zhuǎn)換,隱含轉(zhuǎn)換的示意圖如圖2-3 所示,其轉(zhuǎn)換規(guī)則如下:注意: 隱含轉(zhuǎn)換是由編譯系統(tǒng)自動(dòng)完成的,它實(shí)際并不改變操作數(shù)的數(shù)據(jù)類型,只是在計(jì)算表達(dá)式值時(shí),臨時(shí)改變操作數(shù)的數(shù)據(jù)類型,計(jì)算完成后,操作數(shù)仍保持原有的數(shù)據(jù)類型。2. 強(qiáng)制轉(zhuǎn)換強(qiáng)制轉(zhuǎn)換的作用是將表達(dá)式的類型強(qiáng)制轉(zhuǎn)換成指定的數(shù)據(jù)類型。其一般形式為:數(shù)據(jù)類型(表達(dá)式)或(數(shù)據(jù)類型)表達(dá)式例如:double(a) /將 a 強(qiáng)制轉(zhuǎn)換成double 型float(5%3) /將 5%3 的結(jié)果轉(zhuǎn)換成float 型注意:
38、如果將高類型轉(zhuǎn)換成低類型,會(huì)造成數(shù)據(jù)精度的損失。因此,這是一種不安全的類型轉(zhuǎn)換。第五節(jié)控制語句c+語句概述:1表達(dá)式語句表達(dá)式語句是由一個(gè)表達(dá)式加上分號(hào)組成。例如:int i ;/將 i 聲明為整型變量的語句a=3*4+5 ;/賦值語句2復(fù)合語句復(fù)合語句也稱塊語句,是由兩條或兩條以上的語句組成,并用“ ”括起來的語句。復(fù)合語句在語法上相當(dāng)于一條語句。注意:在復(fù)合語句的右括號(hào)后不再需要分號(hào)。3控制語句控制語句通常包括選擇語句、循環(huán)語句和轉(zhuǎn)移語句。4空語句語句空語句只有一個(gè)分號(hào),它不作任何操作,常用在需要一條語句而又不需要任何操作的地方,如循環(huán)語句中。選擇語句:1if 語句if 語句用來有條件地執(zhí)
39、行某一語句系列。if 語句主要有3 種語法格式:(1)簡(jiǎn)單 if 語句格式:if(表達(dá)式) 語句; 功能:首先計(jì)算表達(dá)式的值,如果表達(dá)式的值不為0,表示條件判定為真,花括號(hào) 內(nèi)的語句將被執(zhí)行;否則,將執(zhí)行 后面的語句。其中的表達(dá)式一般是關(guān)系表達(dá)式,并且表達(dá)式必須用()括起來。語句可以是一條語句,也可以是多條語句。如果只有一條語句,則 可以省略?!纠?2.7】簡(jiǎn)單 if 語句的應(yīng)用。#include void main() float score; coutplease enter your score:score; if (score=60) coutpassed!endl; if (scor
40、e60) coutno passed!endl; coutyou should do your best to studyendl; 運(yùn)行程序后,屏幕上輸出顯示:please enter your score:提示用戶輸入成績(jī), 當(dāng)用戶輸入成績(jī)信息后,程序會(huì)根據(jù)用戶的輸入,輸出顯示相應(yīng)的信息。如輸入 70,則顯示:passed! (2)兩分支if 語句格式:if(表達(dá)式) 語句 1; else 語句 2; 功能:首先計(jì)算表達(dá)式的值,如果表達(dá)式條件判定為真,則執(zhí)行語句1,否則將執(zhí)行語句 2。該格式的流程圖如圖2-5 所示?!纠?2.8】利用兩分支if 語句改寫例2.7。#include void
41、 main() float score; coutplease enter your score:score; if (score=60) coutpassed!endl; else coutno passed!endl; cout you should do your best to studyendl; (3)多分支if 語句格式:if(表達(dá)式1) else if(表達(dá)式2) else if(表達(dá)式3) else if(表達(dá)式n) else 功能:首先計(jì)算表達(dá)式1 的值,如果表達(dá)式1條件判定為真,則執(zhí)行語句1,否則判定表達(dá)式 2,如果條件判定為真,則執(zhí)行語句2,, 依此類推,直到所有的表達(dá)
42、式條件均不滿足,此時(shí)將執(zhí)行語句n+1。該格式實(shí)際上提供了多重條件選擇。該格式的流程圖如圖2-6所示?!纠?2.9】利用多分支if 語句比較兩個(gè)數(shù)的大小。#include void main() int x,y; coutplease input x,y:xy; if (x=y) coutx=yy) coutyendl; else coutxyendl; 程序執(zhí)行后,屏幕上輸出顯示:please input x,y: 計(jì)算機(jī)提示用戶輸入兩個(gè)x 和 y 的值。當(dāng)用戶輸入后, 計(jì)算機(jī)將顯示相應(yīng)的判斷結(jié)果。例如,輸入 1 和 2 后將顯示“ xy ”的判斷結(jié)果。(4)if 語句的嵌套三種 if 語句之
43、間可以實(shí)現(xiàn)嵌套。通常為了不破壞程序的可讀性,嵌套的層次一般不超過兩層?!纠?2.10】利用 if 語句的嵌套改寫例2.9。#include void main() int x,y; coutplease input x,y:xy; if (x!=y) if (xy) coutyendl; else coutxyendl; else coutx=yendl; 2switch 語句switch 語句又稱開關(guān)語句,其語法格式為:switch(表達(dá)式m) case 常量表達(dá)式m1 :語句 1;case 常量表達(dá)式m2 :語句 2;case 常量表達(dá)式mn :語句 n;default:語句 mn+1 ;
44、 其中, switch、case和 default 是關(guān)鍵字,常量表達(dá)式通常為整型數(shù)值和字符常量,語句1、語句2、 , 語句n 是由 1 條或多條語句組成的語句段,也可以是空語句。如果是多條語句,可以用花括號(hào) 括起來。switch 語句的執(zhí)行過程是:首先計(jì)算switch 語句中的表達(dá)式,然后按先后順序?qū)⒌玫降慕Y(jié)果與 case中的常量表達(dá)式的值進(jìn)行比較。如果兩者相等,程序就轉(zhuǎn)到相應(yīng)case處開始順序執(zhí)行。如果沒有找到相匹配的結(jié)果,就從 default 處開始執(zhí)行。 如果沒有default,則轉(zhuǎn)到 switch語句后面的語句。如果希望switch 語句在執(zhí)行完某一case 后面的語句后,不再執(zhí)行其
45、后面的 case和 default 分支,就需要在每個(gè)case的末尾加上一條break 語句,表示跳出switch 語句。加 break 語句的 switch 語句流程圖如圖2-7 所示?!纠?2.11】根據(jù)考試成績(jī)的等級(jí)給出百分制分?jǐn)?shù)段。#include void main() char grade; cout請(qǐng)輸入成績(jī):grade; if (grade=a & grade=z) grade-=32; /若輸入小寫字母,則轉(zhuǎn)化為大寫字母switch(grade) 語句2圖2-7 switch語句語句1表達(dá)式 m語句n語句n+1真.m=m1m=m2m=mnm=mn+1case a :c
46、out90100 endl; case b :cout8089 endl; case c :cout7079 endl; case d :cout6069 endl; case e :cout60 分以下 endl; default:coutinput error!endl; 運(yùn)行程序后,屏幕上將顯示字符串“請(qǐng)輸入成績(jī):” 。假設(shè)輸入b 后,將輸出結(jié)果:8089 7079 6069 60 分以下input error! 顯然,這樣的輸出結(jié)果是不符合題目原意的,原因就在于沒有用break 語句作為每個(gè)case的結(jié)束語句?,F(xiàn)修改例2.11 程序如下:switch(grade) case a :co
47、ut90100 endl;break; case b :cout8089 endl; break; case c :cout7079 endl; break; case d :cout6069 endl; break; case e :cout60 分以下 endl; break; default:coutinput error!endl; 再運(yùn)行程序,然后輸入成績(jī)b,將輸出結(jié)果:8089 循環(huán)語句:在程序設(shè)計(jì)中經(jīng)常遇到需要重復(fù)執(zhí)行的操作,這些操作可以使用循環(huán)語句來實(shí)現(xiàn)。循環(huán)語句使得程序在給定條件滿足時(shí),能夠重復(fù)地執(zhí)行某些操作。c+語言提供了3 種循環(huán)語句: while循環(huán)語句、 do-whi
48、le 循環(huán)語句和for 循環(huán)語句。1while 循環(huán)語句while 循環(huán)語句的語法形式為:while (表達(dá)式)循環(huán)體 ; 其中, while 是關(guān)鍵字,表達(dá)式可以是c+ 語言中任何合法的表達(dá)式,它用來判斷執(zhí)行循環(huán)體的條件, 根據(jù)循環(huán)條件決定是否執(zhí)行循環(huán)體。循環(huán)體由語句組成,可以是一條語句,也可以是多條語句。while 循環(huán)執(zhí)行過程示意圖如圖2-8 所示。表達(dá)式循環(huán)體真假注意:如果循環(huán)體有多個(gè)語句時(shí),要用大括號(hào) 把它們括起來,以復(fù)合語句形式出現(xiàn)。在使用循環(huán)語句時(shí),一定要設(shè)法改變循環(huán)變量,使之在有限次循環(huán)之后能滿足循環(huán)終止條件而結(jié)束循環(huán)?!纠?2.12】編程計(jì)算1100 之和。#include
49、void main() int i=1,sum=0; while(i=100) sum+=i; i+; coutsum=sumendl; 程序運(yùn)行后,輸出結(jié)果:sum = 5050 2do-while 循環(huán)語句do-while 循環(huán)語句的語法形式為:do ,/循環(huán)體部分while(表達(dá)式 );do-while 循環(huán)語句與while 循環(huán)語句的區(qū)別在于:do-while 循環(huán)語句首先執(zhí)行循環(huán)體,再求表達(dá)式的值。如果其值非0,則再次執(zhí)行循環(huán)體,直至表達(dá)式的值為零;而while 語句首先求表達(dá)式的值,再按其值為零或非零決定是否執(zhí)行循環(huán)體。因此,do-while 循環(huán)語句中的循環(huán)體至少執(zhí)行一次。do-
50、while 循環(huán)執(zhí)行過程如圖2-9 所示。表達(dá)式真循環(huán)體注意: do-while 循環(huán)語句最后的分號(hào)不可缺少。【例 2.13】利用 do-while 循環(huán)語句改寫例2.12。#include void main() int i=1,sum=0; do sum+=i; i+; while(i=100); coutsum=sumendl; 3for 循環(huán)語句for 循環(huán)語句的功能非常強(qiáng)大。所有 while 循環(huán)語句和do-while 循環(huán)語句都可以用for 循環(huán)語句替代。 for 循環(huán)語句的語法形式為:for(表達(dá)式 1;表達(dá)式2;表達(dá)式3) 循環(huán)體;其中,表達(dá)式1 通常用來給循環(huán)變量賦初值;表達(dá)
51、式2 通常是關(guān)系表達(dá)式或邏輯表達(dá)式,一般用來設(shè)置循環(huán)條件;表達(dá)式3 用來在每次循環(huán)之后修改循環(huán)變量的值。for 語句的執(zhí)行過程是:首先執(zhí)行表達(dá)式1,給循環(huán)變量賦初值;接著執(zhí)行表達(dá)式2,并根據(jù)表達(dá)式2 的值決定是否執(zhí)行循環(huán)體。如果表達(dá)式2 的值為true 或其他非0 值,則執(zhí)行循環(huán)體,否則退出循環(huán);每執(zhí)行完一次循環(huán)體后,再執(zhí)行表達(dá)式3,修改循環(huán)變量;然后再執(zhí)行表達(dá)式2,并根據(jù)表達(dá)式2 的值決定是否繼續(xù)執(zhí)行循環(huán)體。for 循環(huán)語句的執(zhí)行過程如圖 2-10 所示。表達(dá)式2循環(huán)體真假圖2-10 for 循環(huán)語句執(zhí)行過程表達(dá)式1表達(dá)式3在使用 for 循環(huán)語句時(shí),應(yīng)該注意下列幾種情況:(1)for 語句
52、中的3 個(gè)表達(dá)式可以沒有。但必須注意每個(gè)表達(dá)式后的分號(hào)不能省略。此時(shí) for循環(huán)語句的形式為:for(;) 這時(shí)在循環(huán)體內(nèi)必須有其他控制循環(huán)執(zhí)行的語句,否則會(huì)形成死循環(huán)。(2)表達(dá)式1 如果沒有或不是用來給循環(huán)變量賦初值,則應(yīng)在for 語句前給循環(huán)變量賦初值。(3)表達(dá)式2 如果沒有,則在for 語句循環(huán)體內(nèi)應(yīng)有其他控制循環(huán)執(zhí)行的語句,否則會(huì)形成死循環(huán)。(4)表達(dá)式3 如果沒有或不是用來修改循環(huán)變量的值,則應(yīng)在for 語句循環(huán)體內(nèi)設(shè)置相應(yīng)的語句?!纠?2.14】利用 for 循環(huán)語句改寫例2.12。#include void main() int i,sum=0; for(i=1; i=100
53、; i+) sum+=i; coutsum=sumendl; 【例 2.15】在屏幕上顯示09 共 10 個(gè)整數(shù)。#include void main() int i=0; for(; i=9;) couti+t; coutendl; 程序運(yùn)行后,將輸出結(jié)果:0 1 2 3 4 5 6 7 8 9 return c+語言還提供了goto 語句、 break 語句和 continue 語句等轉(zhuǎn)移語句,它們主要用于改變程序中語句的執(zhí)行順序,使程序從某一語句有目的地轉(zhuǎn)移到另一語句繼續(xù)執(zhí)行。轉(zhuǎn)移語句:1goto 語句goto 語句語法格式為:goto 語句標(biāo)號(hào);goto 語句的作用是使程序轉(zhuǎn)移到語句標(biāo)
54、號(hào)所標(biāo)示的語句處繼續(xù)執(zhí)行。語句標(biāo)號(hào)是一種用來標(biāo)識(shí)語句的符號(hào),其命名遵守標(biāo)識(shí)符的命名規(guī)定,放在語句的前面,并用冒號(hào)(: )與語句分開。c+語言中, goto 語句的使用被限制在一個(gè)函數(shù)體內(nèi),即goto 語句只能在一個(gè)函數(shù)范圍內(nèi)進(jìn)行語句轉(zhuǎn)移。在同一函數(shù)中,語句標(biāo)號(hào)應(yīng)該是唯一的。注意:由于goto 語句的使用會(huì)破壞程序的結(jié)構(gòu),編程時(shí),應(yīng)盡量少用或不用。2break 語句break 語句的語法格式如下:break;break 語句可用在以下兩種情況:(1)break 語句用在switch 語句中,其功能是退出switch 語句。(2)break 語句用在循環(huán)語句的循環(huán)體中,其功能是退出循環(huán)語句。如果是
55、多重循環(huán),它將會(huì)在本次循環(huán)結(jié)束時(shí)執(zhí)行該重循環(huán)后面的語句。3continue 語句continue 語句的語法格式為:continue;continue 語句只能用在循環(huán)語句的循環(huán)體內(nèi)。在循環(huán)執(zhí)行的過程中,如果遇到continue 語句,程序?qū)⒔Y(jié)束本次循環(huán),接著開始下一次循環(huán)?!纠?2.16】從鍵盤上輸入10 個(gè)整數(shù),若是正整數(shù)則求和,若是負(fù)整數(shù)則不進(jìn)行計(jì)算,繼續(xù)輸入數(shù)據(jù),若輸入0 則終止程序。#include void main() int num,sum=0; coutplease input number:endl; for(int i=0; inum; if(num= =0) break
56、; if(num0) continue; sum+=num; coutsum=sumendl; return 作業(yè)教材 p46-47 所有習(xí)題第 3 章函數(shù)本章課時(shí):12 課時(shí)本章重點(diǎn):函數(shù)調(diào)用變量作用域本章難點(diǎn):函數(shù)調(diào)用教學(xué)內(nèi)容及目標(biāo):了解:1參數(shù)的傳遞方式的分類2內(nèi)聯(lián)函數(shù)的含義理解:1變量存儲(chǔ)特性與標(biāo)識(shí)符作用域2函數(shù)調(diào)用機(jī)制:嵌套調(diào)用和遞歸調(diào)用掌握:1函數(shù)參數(shù)的傳遞,包括:傳值參數(shù),指針參數(shù),引用參數(shù)和函數(shù)的返回類型2函數(shù)指針:函數(shù)的地址,函數(shù)指針3重載函數(shù)的定義與使用方法第一節(jié)函數(shù)的定義和聲明【例 3.1】實(shí)現(xiàn)兩個(gè)數(shù)相加。#include int add(int ,int); /函數(shù)原型
57、void main() int sum,x,y; cout請(qǐng)輸入被加數(shù)和加數(shù):xy; sum=add(x,y); /函數(shù)調(diào)用coutsum=sumendl; int add(int a,int b) /函數(shù)定義 return a+b; 執(zhí)行結(jié)果:請(qǐng)輸入被加數(shù)和加數(shù): 213 625 sum=838 函數(shù)定義的一般語法格式如下:函數(shù)類型函數(shù)名 (參數(shù)表 ) 函數(shù)體 1函數(shù)類型與返回值int sum(int a,int b) /有返回值,返回類型為整型 return (a+b); void printsum(int a,int b) /無返回值 couta+bb?a:b; void print(v
58、oid) /無參數(shù) coutc+ is easy to learn!endl; void print() /無參數(shù) couthello world!endl; int max(int a, b) 形參在該函數(shù)被調(diào)用時(shí)才初始化,即從主調(diào)函數(shù)獲取數(shù)據(jù)。如果被調(diào)用函數(shù)不需要從調(diào)用函數(shù)那里獲取數(shù)據(jù),則該函數(shù)可為無參函數(shù)。函數(shù)原型:函數(shù)原型又稱函數(shù)聲明,用來告訴編譯器函數(shù)頭的相關(guān)內(nèi)容。函數(shù)原型通常位于程序代碼的開始處。函數(shù)原型的語法格式為:類型函數(shù)名(參數(shù)列表) ;參數(shù)列表的個(gè)數(shù)、 順序和指定的類型必須和函數(shù)定義中一致。在函數(shù)原型說明中也可以不給出參數(shù)名,只給出類型。例如:int sum(int,int
59、); /不帶參數(shù)名int fac(int a); /帶參數(shù)名第二節(jié)函數(shù)調(diào)用函數(shù)調(diào)用的概念:函數(shù)調(diào)用是用一個(gè)表達(dá)式表示。調(diào)用格式為:函數(shù)名(實(shí)參列表);實(shí)參是用來在調(diào)用函數(shù)時(shí)對(duì)形參進(jìn)行初始化的,實(shí)參與形式參數(shù)個(gè)數(shù)相同、類型一致、順序一致。如果在一個(gè)文件中有多個(gè)函數(shù),一般都將主程序或主函數(shù)放在其他所有函數(shù)的前面。在函數(shù)調(diào)用前進(jìn)行函數(shù)原型的說明,被調(diào)用的函數(shù)定義放在后面。通常使用函數(shù)調(diào)用的返回值來給某個(gè)變量賦值。有返回值函數(shù)的調(diào)用格式為:變量名 =函數(shù)名(實(shí)參列表) ;或cout函數(shù)名(實(shí)參列表) ;在任何情況下, c+能自動(dòng)將變量的類型轉(zhuǎn)換為與參數(shù)一致的類型,這是 c+標(biāo)準(zhǔn)類型轉(zhuǎn)換的一部分。任何非
60、法的轉(zhuǎn)換都會(huì)被c+編譯程序檢測(cè)出來?!纠?3.2】編程求三個(gè)整數(shù)中最大的數(shù)。#include int max2(int,int); int max3(int,int,int); void main() int sum,x,y,z,m; cout請(qǐng)輸入三個(gè)整數(shù):xyz; m=max3(x,y,z); cout最大的數(shù)是:mb?a:b; int max3(int a,int b,int c) int m1,m2; m1=max2(a,b); m2=max2(m1,c) return m2; 執(zhí)行結(jié)果:請(qǐng)輸入三個(gè)數(shù):25 36 47 最大的數(shù)是: 47 函數(shù)調(diào)用的參數(shù)傳遞:參數(shù)形式:數(shù)值、引用、指針參數(shù)傳遞:傳值、傳址、引用傳值調(diào)用是利用參數(shù)傳遞數(shù)據(jù)最常用的方法。調(diào)用時(shí)
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年食品蒸發(fā)濃縮機(jī)械合作協(xié)議書
- 2025年塑料助劑:潤(rùn)滑劑合作協(xié)議書
- 2025年呼吸制氧合作協(xié)議書
- 2025年年4K超高清合作協(xié)議書
- 2025年脂環(huán)烴合作協(xié)議書
- 八年級(jí)英語下冊(cè) Unit 10 單元綜合測(cè)試卷(人教版 2025年春)
- 2024-2025學(xué)年黑龍江省佳木斯市富錦市第十小學(xué)四年級(jí)(上)期末數(shù)學(xué)試卷
- 2025道德與法治九年級(jí)第二學(xué)期中考教學(xué)工作計(jì)劃
- 鄂州市梁子湖區(qū)八年級(jí)上冊(cè)語文名著導(dǎo)讀《紅星照耀中國(guó)》
- 七年級(jí)上學(xué)期歷史試卷
- 江蘇省蘇州市2024-2025學(xué)年高三上學(xué)期1月期末生物試題(有答案)
- 銷售與銷售目標(biāo)管理制度
- 特殊教育學(xué)校2024-2025學(xué)年度第二學(xué)期教學(xué)工作計(jì)劃
- 2025年第一次工地開工會(huì)議主要議程開工大吉模板
- 第16課抗日戰(zhàn)爭(zhēng)課件-人教版高中歷史必修一
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計(jì)規(guī)范
- NB-T 47013.15-2021 承壓設(shè)備無損檢測(cè) 第15部分:相控陣超聲檢測(cè)
- 《生物資源評(píng)估》剩余產(chǎn)量模型
- 2022年廣東省10月自考藝術(shù)概論00504試題及答案
- 隧道二襯承包合同參考
- 物理專業(yè)常用英語詞匯
評(píng)論
0/150
提交評(píng)論