![《C++程序設(shè)計(jì)》完整教案_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/ee2b1c51-d45a-4a60-8624-57ee5800067e/ee2b1c51-d45a-4a60-8624-57ee5800067e1.gif)
![《C++程序設(shè)計(jì)》完整教案_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/ee2b1c51-d45a-4a60-8624-57ee5800067e/ee2b1c51-d45a-4a60-8624-57ee5800067e2.gif)
![《C++程序設(shè)計(jì)》完整教案_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/ee2b1c51-d45a-4a60-8624-57ee5800067e/ee2b1c51-d45a-4a60-8624-57ee5800067e3.gif)
![《C++程序設(shè)計(jì)》完整教案_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/ee2b1c51-d45a-4a60-8624-57ee5800067e/ee2b1c51-d45a-4a60-8624-57ee5800067e4.gif)
![《C++程序設(shè)計(jì)》完整教案_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/ee2b1c51-d45a-4a60-8624-57ee5800067e/ee2b1c51-d45a-4a60-8624-57ee5800067e5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上C+程序設(shè)計(jì)教案蔡勇智 講師授課時(shí)間:2010年3月 2010年 7月課程性質(zhì):專(zhuān)業(yè)必修課課程類(lèi)別:講授課+實(shí)訓(xùn)課授課對(duì)象:08級(jí)電子商務(wù)專(zhuān)業(yè) 課 時(shí) 數(shù):周4教學(xué)目的:通過(guò)本課程的學(xué)習(xí),使學(xué)生理解面向?qū)ο蟪绦蛟O(shè)計(jì)思想,掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念和技術(shù)。使學(xué)生深刻理解面向?qū)ο蠹夹g(shù)所帶來(lái)的觀念改革,掌握一種面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言和面向?qū)ο笤O(shè)計(jì)的思維方式、規(guī)則與基本方法,了解面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)的發(fā)展趨勢(shì)。通過(guò)面向?qū)ο笏季S的訓(xùn)練,使學(xué)生逐漸掌握現(xiàn)代編程能力,為今后的軟件開(kāi)發(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í)際問(wèn)題的能力。教學(xué)內(nèi)容:第一章 面向?qū)ο蟪绦蛟O(shè)計(jì)概述第二章 C+程序設(shè)計(jì)基礎(chǔ)第三章 函數(shù)第四章 數(shù)組第五章 結(jié)構(gòu)體與共用體 第六章 指針與引用教學(xué)重難點(diǎn):重難點(diǎn)在于采用面向?qū)ο蟮挠^點(diǎn)分析問(wèn)題、解決問(wèn)題,以及培養(yǎng)學(xué)生結(jié)合實(shí)際應(yīng)用,采用面向?qū)ο蟮乃枷朐O(shè)計(jì)有效的算法和可視化編程實(shí)現(xiàn)能力??己朔绞剑浩綍r(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ì)語(yǔ)言理解:1面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)2熟悉VC+6.0集成開(kāi)發(fā)環(huán)境掌握: 1C+的特點(diǎn)2C+程序結(jié)構(gòu)和書(shū)寫(xiě)規(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)步驟,通常稱(chēng)之為方法。 2. 類(lèi) 在面向?qū)ο蟪绦蛟O(shè)計(jì)中,類(lèi)是具有相同屬性數(shù)據(jù)和操作的對(duì)象的集合,它是對(duì)一類(lèi)對(duì)象的抽象描述。類(lèi)是創(chuàng)建對(duì)象的模
4、板,它包含著所創(chuàng)建對(duì)象的狀態(tài)描述和方法的定義,一般是先聲明類(lèi),再由類(lèi)創(chuàng)建其對(duì)象。按照這個(gè)模板創(chuàng)建的一個(gè)個(gè)具體的實(shí)例,就是對(duì)象。 3. 屬性 對(duì)象中的數(shù)據(jù)稱(chēng)為對(duì)象的屬性,而類(lèi)中的特性稱(chēng)為類(lèi)的屬性,不同的類(lèi)和對(duì)象具有不同的屬性。4. 消息 在面向?qū)ο蟪绦蛟O(shè)計(jì)中,當(dāng)要求一個(gè)對(duì)象做某一操作時(shí),就向該對(duì)象發(fā)出請(qǐng)求,通常稱(chēng)為“消息”。當(dāng)對(duì)象接收到消息時(shí),就調(diào)用有關(guān)方法,執(zhí)行相應(yīng)操作。這種對(duì)象與對(duì)象之間通過(guò)消息進(jìn)行相互聯(lián)系的機(jī)制,就叫做消息傳遞機(jī)制,通過(guò)消息傳遞可實(shí)現(xiàn)對(duì)象的交互。5. 方法 方法就是對(duì)象所能執(zhí)行的操作。方法包括接口和方法體兩部分。方法的接口就是消息的模式,它告訴用戶(hù)如何調(diào)用該方法;方法體則是
5、實(shí)現(xiàn)操作的一系列步驟,也就是一段程序代碼。傳統(tǒng)程序設(shè)計(jì)及其局限性:1. 傳統(tǒng)程序設(shè)計(jì)開(kāi)發(fā)軟件的生產(chǎn)效率低下2. 傳統(tǒng)程序設(shè)計(jì)難以應(yīng)付龐大的信息量和多樣的信息類(lèi)型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)的操作集中在一起形成類(lèi),將類(lèi)的一部分屬性和操作隱藏起來(lái),不讓用戶(hù)訪(fǎng)問(wèn),另一部分作為類(lèi)的外部接口,用戶(hù)可以訪(fǎng)問(wèn)。 2. 繼承性 在面向?qū)ο蟪绦蛟O(shè)計(jì)中,繼承是指新建的類(lèi)從已有的類(lèi)那里獲得已有的屬性和操作。已有的類(lèi)稱(chēng)為基類(lèi)或父類(lèi),繼承基類(lèi)而產(chǎn)生的新建類(lèi)稱(chēng)為基類(lèi)的子類(lèi)或派生類(lèi)。3. 多態(tài)性 多態(tài)性是指相同的函
6、數(shù)名可以有多個(gè)不同的函數(shù)體,即一個(gè)函數(shù)名可以對(duì)應(yīng)多個(gè)不同的實(shí)現(xiàn)部分。在調(diào)用同一函數(shù)時(shí),由于環(huán)境的不同,可能引發(fā)不同的行為,導(dǎo)致不同的動(dòng)作,這種功能稱(chēng)為多態(tài)。它使得類(lèi)中具有相似功能的不同函數(shù)可以使用同一個(gè)函數(shù)名。第二節(jié) C+的發(fā)展1980年,美國(guó)AT&T公司貝爾實(shí)驗(yàn)室的Bjarne Stioustrup博士為了仿真課題研究,編寫(xiě)了稱(chēng)為“帶類(lèi)的C”語(yǔ)言版本。1983年7月用C+將該語(yǔ)言名字定下來(lái),并對(duì)外公開(kāi)發(fā)表。 Microsoft公司于20世紀(jì)80年代中期在Microsoft C 6.0的基礎(chǔ)上開(kāi)發(fā)了Microsoft C/C+ 7.0,同時(shí)引進(jìn)了Microsoft Foundation
7、 Class(MFC)1.0版本,完善了源代碼。后來(lái)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語(yǔ)言,許多C語(yǔ)言代碼不經(jīng)修改就可以在C+中使用。用C+編寫(xiě)的程序可讀性更好,代碼結(jié)構(gòu)更為合理。生成代碼質(zhì)量高,運(yùn)行效率僅比匯編語(yǔ)言慢10%20%。從開(kāi)發(fā)時(shí)間、費(fèi)用到形成軟件的可重用性、可擴(kuò)充性、可維護(hù)性和可靠性等方面有很大提高,使得大中型軟件開(kāi)發(fā)
8、變得容易很多。支持面向?qū)ο蟪绦蛟O(shè)計(jì),可方便地構(gòu)造出模擬現(xiàn)實(shí)問(wèn)題的實(shí)體和操作。 第三節(jié) c+程序的基本結(jié)構(gòu)【例1.1】一個(gè)簡(jiǎn)單的C+程序。# include <iostream.h>void sayhello();void main()sayhello( ); / 在顯示器上輸出顯示一行字符串cout<<"This is my first C+ program! "<<endl;/函數(shù)定義void sayhello()cout<<"Hello! "<<endl;1.頭文件 在C+程序開(kāi)始部分出現(xiàn)以
9、#開(kāi)頭的命令,表示這些命令是預(yù)處理命令,稱(chēng)作預(yù)處理器。C+提供了3類(lèi)預(yù)處理命令:宏定義命令、文件包含命令和條件編譯命令 C+語(yǔ)言包含頭文件的格式有兩種:#include<文件名.擴(kuò)展名> #include"文件名.擴(kuò)展名"2. 函數(shù) C+的程序是由若干個(gè)文件組成,每個(gè)文件又由若干個(gè)函數(shù)組成。函數(shù)之間是相互獨(dú)立的,相互之間可以調(diào)用。但函數(shù)在調(diào)用之前,必須先定義。 C+的程序中的函數(shù)可分為兩大類(lèi),一類(lèi)是用戶(hù)自己定義的函數(shù),另一類(lèi)是系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)。使用系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)時(shí),可以直接調(diào)用,但需要將該函數(shù)的頭文件包含在該程序中。3. 主函數(shù) 在組成C+程序的若干個(gè)函數(shù)
10、中,必須有一個(gè)且只能有一個(gè)主函數(shù)main()。執(zhí)行程序時(shí),系統(tǒng)先從主函數(shù)開(kāi)始運(yùn)行,其他函數(shù)只能被主函數(shù)調(diào)用或通過(guò)主函數(shù)調(diào)用的函數(shù)所調(diào)用,函數(shù)可以嵌套調(diào)用。4. 注釋第一種注釋方法是以“/*”開(kāi)始,以“*/”結(jié)束,二者之間的所有字符都會(huì)被作為注釋處理,此時(shí)的注釋可以是一行,也可以是多行,適合于大塊的注釋。第二種注釋方法是以“/”表示注釋開(kāi)始,本行中“/”后面的字符都會(huì)被作為注釋處理,這種注釋方式多用于較短的程序注釋。5. 輸入/輸出 輸入/輸出語(yǔ)句是C+最基本的語(yǔ)句。 綜上所述,一個(gè)C+程序的基本結(jié)構(gòu)應(yīng)該包括以“#”開(kāi)頭的若干個(gè)預(yù)處理命令,將程序所需要的頭文件包含進(jìn)來(lái);然后定義主函數(shù)和其他函數(shù),
11、當(dāng)然函數(shù)也可以在程序的起始部分先利用函數(shù)要包括各種語(yǔ)句和注釋?zhuān)@部分是程序的主體部分,所占比重也最大。C+程序的書(shū)寫(xiě)格式:C+程序的書(shū)寫(xiě)格式與C程序書(shū)寫(xiě)格式基本相同。原則如下:一般情況下一行只寫(xiě)一條語(yǔ)句。短語(yǔ)句可以一行寫(xiě)多條,長(zhǎng)語(yǔ)句也可以分成多行來(lái)寫(xiě)。分行原則是不能將一個(gè)單詞分開(kāi),用雙引號(hào)括起來(lái)的字符串最好也不要分開(kāi)。C+程序書(shū)寫(xiě)時(shí)要盡量提高可讀性。為此,采用適當(dāng)?shù)乜s進(jìn)格式書(shū)寫(xiě)程序是非常必要的,表示同一類(lèi)內(nèi)容或同一層次的語(yǔ)句要對(duì)齊。C+程序中大括號(hào) 使用較多,其書(shū)寫(xiě)方法也較多,建議用戶(hù)要養(yǎng)成使用大括號(hào) 的固定風(fēng)格。例如,每個(gè)大括號(hào)占一行,并與使用大括號(hào)的語(yǔ)句對(duì)齊,大括號(hào)內(nèi)的語(yǔ)句采用縮進(jìn)兩個(gè)字符
12、的格式書(shū)寫(xiě)。第四節(jié) Visual C+ 6.0集成開(kāi)發(fā)環(huán)境 Visual C+ 6.0是微軟公司開(kāi)發(fā)的可視化的C+集成開(kāi)發(fā)環(huán)境。它集程序代碼的編輯、編譯、連接、調(diào)試等功能為一體,界面友好,用戶(hù)操作方便。源程序編輯窗口菜單欄標(biāo)準(zhǔn)工具欄工作區(qū)窗口輸出窗口編譯工具欄1 菜單欄2標(biāo)準(zhǔn)工具欄3工作區(qū)窗口4源程序編輯窗口5編譯工具欄6輸出窗口編輯、編譯和運(yùn)行程序:1. 編輯 編輯是將寫(xiě)好的C+源程序輸入到計(jì)算機(jī)中,生成磁盤(pán)文件的過(guò)程。默認(rèn)文件擴(kuò)展名為*.cpp。2. 編譯 編輯好的源程序必須經(jīng)過(guò)編譯,計(jì)算機(jī)才能執(zhí)行,這些二進(jìn)制代碼稱(chēng)為目標(biāo)代碼。將這些目標(biāo)代碼以.obj為擴(kuò)展名保存成目標(biāo)程序文件。3. 連接
13、 編譯后生成的目標(biāo)代碼還不能直接在計(jì)算機(jī)上運(yùn)行,其主要原因是編譯器對(duì)每個(gè)源程序文件分別進(jìn)行編譯,如果一個(gè)程序有多個(gè)源程序文件,編譯后這些源程序文件還分布在不同的地方。因此,需要把它們連接在一起,生成可以在計(jì)算機(jī)上運(yùn)行的可執(zhí)行文件。4. 運(yùn)行 可執(zhí)行文件可以在Windows環(huán)境下直接雙擊運(yùn)行,也可以在Visual C+ 6.0的集成開(kāi)發(fā)環(huán)境下運(yùn)行。在生成可執(zhí)行文件之前,一定要改正編譯和連接時(shí)出現(xiàn)的致命錯(cuò)誤和警告錯(cuò)誤,這樣才能保證運(yùn)行結(jié)果是正確的。 參照教材練習(xí)C+程序的上機(jī)實(shí)現(xiàn)過(guò)程。利用Debug調(diào)試功能調(diào)試程序:Visual C+ 6.0集成開(kāi)發(fā)環(huán)境為我們提供了輔助調(diào)試工具,可以實(shí)現(xiàn)單步運(yùn)行、
14、設(shè)置斷點(diǎn)、觀察變量和表達(dá)式的值等功能,使我們可以跟蹤程序的執(zhí)行過(guò)程,觀察不同時(shí)刻變量值的變化情況。所謂斷點(diǎn)就是程序運(yùn)行時(shí)的暫停點(diǎn),程序運(yùn)行到斷點(diǎn)處便暫停,這樣就可以通過(guò)觀察斷點(diǎn)處變量的值來(lái)了解程序的執(zhí)行過(guò)程。 參照教材練習(xí)利用Debug調(diào)試程序的過(guò)程。作業(yè)教材P18-19所有習(xí)題。第2章 C+程序設(shè)計(jì)基礎(chǔ)本章課時(shí):16課時(shí)本章重點(diǎn):運(yùn)算符與表達(dá)式控制語(yǔ)句本章難點(diǎn):控制語(yǔ)句教學(xué)內(nèi)容及目標(biāo):了解:1 為什么會(huì)有三種基本的程序控制結(jié)構(gòu)2 C+的基本數(shù)據(jù)類(lèi)型理解: 1程序控制結(jié)構(gòu)的控制方式:順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)2C+的運(yùn)算符、關(guān)鍵字、標(biāo)識(shí)符和分隔符、常量和變量語(yǔ)法規(guī)則3轉(zhuǎn)向語(yǔ)句的使用4表達(dá)式中
15、數(shù)據(jù)類(lèi)型的轉(zhuǎn)換規(guī)則掌握:1選擇控制的使用:if語(yǔ)句,switch語(yǔ)句2循環(huán)控制結(jié)構(gòu)的使用:while語(yǔ)句,do_while語(yǔ)句,for語(yǔ)句,循環(huán)的嵌套3判斷表達(dá)式的使用第一節(jié) 詞法符號(hào)標(biāo)識(shí)符:標(biāo)識(shí)符是程序員為命名程序中的一些實(shí)體而定義的專(zhuān)用單詞。常見(jiàn)的有函數(shù)名,類(lèi)名、變量名、常量名、對(duì)象名等。C+語(yǔ)言中標(biāo)識(shí)符的命名規(guī)則如下:標(biāo)識(shí)符是由英文字母(包括大寫(xiě)和小寫(xiě))、數(shù)字和下劃線(xiàn)組成,并且以字母和下劃線(xiàn)開(kāi)始,例如:Abc、X1、_x1、desk都是合法的標(biāo)識(shí)符,而2A是非法的。標(biāo)識(shí)符中大寫(xiě)和小寫(xiě)字母是有區(qū)別的。標(biāo)識(shí)符的長(zhǎng)度是任意的,但有的編譯系統(tǒng)僅識(shí)別前32個(gè)字符。標(biāo)識(shí)符不能和C+語(yǔ)言的關(guān)鍵字同名。
16、關(guān)鍵字:關(guān)鍵字是一種有特殊用途的詞法符號(hào),是C+系統(tǒng)預(yù)定義的保留字,不能再用作其他用途。下面列舉一些C+語(yǔ)言中常用的關(guān)鍵字:auto break bool case char catch classConst continue default delete do double elseEnum explicit export extern false float forfriend goto if inline int long newMutable name space operator private protectedpublic register return short signed
17、 sizeofStatic atruct switch this typedef trueunion unsigned typename void using virtualvolatile while static_cast 運(yùn)算符:運(yùn)算符是C+語(yǔ)言實(shí)現(xiàn)各種運(yùn)算的符號(hào),如+、*、/ 等。運(yùn)算符根據(jù)操作對(duì)象個(gè)數(shù)的不同,可以分為單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符。單目運(yùn)算符又稱(chēng)一元運(yùn)算符,它只對(duì)一個(gè)操作數(shù)進(jìn)行操作。例如,求負(fù)運(yùn)算符、邏輯求反運(yùn)算符!等。雙目運(yùn)算符又稱(chēng)二元運(yùn)算符,它可以對(duì)兩個(gè)操作數(shù)進(jìn)行操作。例如,加法運(yùn)算符+、乘法運(yùn)算符*等。三目運(yùn)算符又稱(chēng)三元運(yùn)算符,它可以對(duì)三個(gè)操作數(shù)進(jìn)行操作。C
18、+語(yǔ)言中只有一個(gè)三目運(yùn)算符,就是條件運(yùn)算符? :。分隔符:分隔符又稱(chēng)標(biāo)點(diǎn)符號(hào),是用來(lái)分隔單詞或程序正文的,它可以表示某個(gè)程序?qū)嶓w的結(jié)束和另一個(gè)程序?qū)嶓w的開(kāi)始。在C+語(yǔ)言中,常用的分隔符有以下幾個(gè):空格符:常用來(lái)作為單詞與單詞之間的分隔符。逗號(hào):用來(lái)作為多個(gè)變量之間的分隔符,或用來(lái)作為函數(shù)多個(gè)參數(shù)之間的分隔符。分號(hào):用來(lái)作為for循環(huán)語(yǔ)句中for關(guān)鍵字后面括號(hào)中三個(gè)表達(dá)式的分隔符,或用作語(yǔ)句結(jié)束的標(biāo)志。冒號(hào):用來(lái)作為語(yǔ)句標(biāo)號(hào)與語(yǔ)句之間的分隔符,或switch語(yǔ)句中關(guān)鍵字case<整型常量>與語(yǔ)句序列之間的分隔符。第二節(jié) 基本數(shù)據(jù)類(lèi)型C+語(yǔ)言的數(shù)據(jù)類(lèi)型是十分豐富的,大致可分為基本數(shù)據(jù)類(lèi)
19、型和非基本數(shù)據(jù)類(lèi)型?;緮?shù)據(jù)類(lèi)型包括整型、字符型、浮點(diǎn)型和布爾型。非基本數(shù)據(jù)類(lèi)型主要包括數(shù)組類(lèi)型、結(jié)構(gòu)體類(lèi)型、共用體類(lèi)型、指針類(lèi)型和空類(lèi)型等,如圖2-1所示。 數(shù)據(jù)類(lèi)型決定了數(shù)據(jù)在內(nèi)存中所占的空間大小,也確定了其表示范圍。各種基本數(shù)據(jù)類(lèi)型的長(zhǎng)度和取值范圍見(jiàn)表2-1。 第三節(jié) 常量與變量常量:1整型常量 整型常量即整型常數(shù),可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制3種形式來(lái)表示。十進(jìn)制整型常量不能以0開(kāi)始。例如,234、-67為合法的十進(jìn)制整型常量。八進(jìn)制整型常量以0為前綴。例如,0134、-076為合法的八進(jìn)制整型常量。十六進(jìn)制整型常量以0X或0x為前綴。例如,0x2F、0xA3B4為合法的十六進(jìn)制整型
20、常量。注意:整型常量中的長(zhǎng)整型用L或l作后綴表示。例如,324L、076L等;整型常量中的無(wú)符號(hào)型用U或u作后綴表示。例如,431U、0x34DU等。2浮點(diǎn)型常量 浮點(diǎn)型常量又稱(chēng)實(shí)型常量,是由整數(shù)部分和小數(shù)部分組成的,只能用十進(jìn)制表示。浮點(diǎn)型常量有兩種表示方法:小數(shù)表示法和科學(xué)計(jì)數(shù)法。小數(shù)表示法:是由符號(hào)、數(shù)字和小數(shù)點(diǎn)組成。例如,9.55、.25等??茖W(xué)計(jì)數(shù)法:是用指數(shù)形式來(lái)表示浮點(diǎn)型常量,即在小數(shù)表示法后面加上E或e表示指數(shù)。例如,3.2E-5,7e10,-34.5e2等。3字符常量 C+中有兩種字符常量,即一般字符常量和轉(zhuǎn)義字符常量。一般字符常量:一對(duì)單引號(hào)括起來(lái)的一個(gè)字符,其值為ASCI
21、I碼值。例如,'a'、'A'、'$'、'5'等都是合法的字符常量。轉(zhuǎn)義字符 轉(zhuǎn)義字符是一個(gè)以“”開(kāi)頭的特定字符,表示其后的字符具有特殊意義。例如,n中的n不是代表字符n,而是代表回車(chē)換行的意思。常用的轉(zhuǎn)義字符見(jiàn)表2-2。字符形式ASCII碼值功能00x00NULLa0x07響鈴b0x08退格(Backspace鍵)t0x09水平制表(Tab鍵)f0x0c走紙換頁(yè)n0x0a回車(chē)換行v0x0b垂直制表r0x0d回車(chē)(不換行)0x5c字符“”'0x27單引號(hào)''0x22雙引號(hào)?0x3f問(wèn)號(hào)ddd0ddd13位八進(jìn)
22、制數(shù)所代表的字符xhh0xhh12位十六進(jìn)制數(shù)所代表的字符表2-2 C+中常用的轉(zhuǎn)義字符4字符串常量 字符串常量是用一對(duì)雙引號(hào)括起來(lái)的字符序列。例如,"a"、"123"、"hello"等都是字符串常量。這些字符在內(nèi)存中連續(xù)存儲(chǔ),并在最后加上字符'0'作為字符串結(jié)束的標(biāo)志。例如,字符串“HELLO”在內(nèi)存中占連續(xù)6個(gè)內(nèi)存單元,存放示意圖如圖2-2所示。HELLO0 圖2-2 字符串"HELLO"在內(nèi)存中的存放示意圖 字符常量是用單引號(hào)括起來(lái)的一個(gè)字符。它在內(nèi)存中只占一個(gè)字節(jié)。所以,"x&qu
23、ot;和'x'是不同的。注意:不能將一個(gè)字符串常量賦給字符常量。例如,語(yǔ)句char c="abc"是錯(cuò)誤的。5邏輯常量 在C+程序設(shè)計(jì)中經(jīng)常會(huì)用到兩個(gè)邏輯值(也稱(chēng)布爾值)0和1,邏輯值“0”代表“假”、“不成立”、“false”等,邏輯值“1”代表“真”、“成立”、“true”等。 6符號(hào)常量 在C+中,可以用一個(gè)標(biāo)識(shí)符來(lái)表示一個(gè)常數(shù),這個(gè)標(biāo)識(shí)符就是符號(hào)常量。使用符號(hào)常量可以增加程序的可讀性和可維護(hù)性。C+語(yǔ)言提供了兩種定義符號(hào)常量的方法:用const語(yǔ)句定義符號(hào)常量 一般格式為:const 數(shù)據(jù)類(lèi)型 符號(hào)常量=表達(dá)式; 例如:const double pi
24、 = 3.; 注意:在定義符號(hào)常量時(shí)必須進(jìn)行初始化 用#define語(yǔ)句定義符號(hào)常量 #define是預(yù)處理指令,缺點(diǎn)是不能顯示聲明常量的類(lèi)型。其一般格式為:#define 常量名 常量值 例如:#define pi 3.變量:變量是指在程序運(yùn)行過(guò)程中其值可以改變的量。C+語(yǔ)言中使用變量前,必須先對(duì)它的數(shù)據(jù)類(lèi)型進(jìn)行說(shuō)明,以便編譯程序?yàn)樽兞糠峙浯鎯?chǔ)空間。1變量的命名變量的命名要遵循C+語(yǔ)言中標(biāo)識(shí)符的命名規(guī)定2變量的定義變量定義的一般格式為:數(shù)據(jù)類(lèi)型 變量1,變量2,;其中數(shù)據(jù)類(lèi)型可以是前面講過(guò)的各種數(shù)據(jù)類(lèi)型,它決定了變量在內(nèi)存中所占的存儲(chǔ)單元數(shù)。例如:int x,y,z; /定義了3個(gè)整型變量x
25、、y、z float a,b,c; /定義了3個(gè)實(shí)型變量a、b、c3變量與初始化可以在聲明變量的同時(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)左右兩邊類(lèi)型要匹配。表達(dá)式是由運(yùn)算符和各種運(yùn)算對(duì)象(常數(shù)、變量、常量等,也稱(chēng)操作數(shù))組合而成。在C+程序中,表達(dá)式與我們?cè)跀?shù)學(xué)中學(xué)到的類(lèi)似,是用于計(jì)算的式子,是計(jì)算求值的基本單位。 C+語(yǔ)言定義了豐富的運(yùn)算符。運(yùn)算
26、符給出計(jì)算的類(lèi)型,而參與運(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ù)和類(lèi)型。運(yùn)算符的優(yōu)先級(jí)別。運(yùn)算符的結(jié)合性。第四節(jié) 運(yùn)算符和表達(dá)式表2-3 C+中常用運(yùn)算符的優(yōu)先級(jí)、功能和結(jié)合性?xún)?yōu)先級(jí)運(yùn)算符功能說(shuō)明要求操作數(shù)的個(gè)數(shù)結(jié)合性1( )改變優(yōu)先級(jí) 左結(jié)合:作用域運(yùn)算符 數(shù)組下標(biāo)運(yùn)算符 成員選擇* *成員指針選擇2*指針運(yùn)算符1右結(jié)合&取地址sizeof求內(nèi)存字節(jié)數(shù)!邏輯求反按位求反+ -增1、減1運(yùn)算符+ -取正、取負(fù)運(yùn)算符3* / %乘法、除法、
27、取余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)算符功能說(shuō)明要求操作數(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)算符 左結(jié)
28、合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á)式的類(lèi)型由運(yùn)算符和操作數(shù)共同確定。【例2.1】基本算術(shù)表達(dá)式的計(jì)算。#include<iostream.h>void main()int i=4,j=5,k=
29、6;int x;x=i+j-k;cout<<"x="<<x<<endl; /輸出x=3x=(i+j)*k/2;cout<<"x="<<x<<endl; /輸出x=27x=25*4/2%k;cout<<"x="<<x<<endl; /輸出x=2double y=2.5;cout<<"y="<<y-(y+0.5)*2<<endl; /輸出y= -3.5運(yùn)行程序后,輸出結(jié)果為:x
30、=3x=27x=2y= -3.52增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)算符只能用于變量,不能用于常量和表達(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<iostream.h>void mai
31、n()int i,j,k,m,n;i=4;j=i+;cout<<"i="<<i<<'t'<<"j="<<j<<endl;i=4;k=+i;cout<<"i="<<i<<'t'<<"k="<<k<<endl; i=4;m=i-;cout<<"i="<<i<<'t'<&
32、lt;"m="<<m<<endl;i=4;n=-i;cout<<"i="<<i<<'t'<<"n="<<n<<endl;運(yùn)行程序后,輸出結(jié)果為:i=5 j=4i=5 k=5i=3 j=4i=3 k=3 關(guān)系運(yùn)算符: 關(guān)系運(yùn)算符用于比較兩個(gè)操作數(shù)的大小,其比較的結(jié)果是一個(gè)布爾型的值。當(dāng)兩個(gè)操作數(shù)滿(mǎn)足關(guān)系運(yùn)算符指定的關(guān)系時(shí),表達(dá)式的值為true,否則為false。 在C+語(yǔ)言中,關(guān)系運(yùn)算符都是雙目運(yùn)算符,共6個(gè):<(小于)
33、、<=(小于或等于)、>(大于)、>=(大于或等于)、= =(等于)、!=(不等于)。其中前4種的優(yōu)先級(jí)高于后2種。 C+語(yǔ)言中雖然有布爾類(lèi)型,但它仍然繼承了C語(yǔ)言的規(guī)定,true等于1,false等于0。所以,關(guān)系運(yùn)算符的比較結(jié)果可以作為算術(shù)運(yùn)算中的操作數(shù)。例如:表達(dá)式2 >= 3的結(jié)果為0(false)。 在使用關(guān)系運(yùn)算符時(shí)還應(yīng)注意以下幾點(diǎn):不要把關(guān)系運(yùn)算符“= =”誤用為賦值運(yùn)算符“=”。也不要將不等于運(yùn)算符“!=”寫(xiě)成其他語(yǔ)言中的不等于運(yùn)算符“<>”。'a'>=60的意思是'a'的ASCII碼值與60比較大小。對(duì)
34、于數(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)在條件語(yǔ)句和循環(huán)語(yǔ)句中,用于決定問(wèn)題的執(zhí)行方法?!纠?.3】關(guān)系表達(dá)式的計(jì)算。#include<iostream.h>void main()int i=4,j=5;cout<<(i>j)<<endl; cout<<(i>=j)<<endl; cout<<(i<j)
35、<<endl; cout<<(i<=j)<<endl; cout<<(i=j)<<endl; cout<<(i!=j)<<endl; 運(yùn)行程序后,輸出結(jié)果為:001101return邏輯運(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|b0000010
36、110011111表2-3 邏輯值的邏輯運(yùn)算結(jié)果2邏輯表達(dá)式 邏輯表達(dá)式由邏輯運(yùn)算符與操作數(shù)組成,表達(dá)式的值都應(yīng)是1(true)或0(false)?!纠?.4】邏輯表達(dá)式與關(guān)系表達(dá)式的計(jì)算#include<iostream.h>void main()int x=3,y=5,z;z=(x>0)|(y<10);cout<<"z="<<z<<endl; /輸出z=1,表示truez=(x=0)&&(y<10);cout<<"z="<<z<<en
37、dl; /輸出z=0,表示falsez=!(x=3);cout<<"z="<<z<<endl; /輸出z=0,表示false賦值運(yùn)算符:C+中的賦值運(yùn)算符分為兩種:簡(jiǎn)單賦值運(yùn)算符和復(fù)合賦值運(yùn)算符。1簡(jiǎn)單賦值運(yùn)算符“=” 其表達(dá)式的一般形式為:變量 = 表達(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é)合性也相同,都為右
38、結(jié)合。3賦值表達(dá)式 賦值表達(dá)式由賦值運(yùn)算符與操作數(shù)組成。賦值表達(dá)式的作用就是把賦值運(yùn)算符右邊表達(dá)式的值賦給左邊的變量。賦值表達(dá)式的類(lèi)型為左邊變量的類(lèi)型,其值為賦值后左邊變量的值。在C+語(yǔ)言中還可以連續(xù)賦值?!纠?.5】賦值表達(dá)式的應(yīng)用。#include<iostream.h>void main()int m=3,n=4,k;k=m+ - -n;cout<<"k="<<k<<endl;char x='m',y='n'int z;z=y<x;cout<<"z="
39、<<z<<endl;z=(y=x+1);cout<<"z="<<z<<endl;z=('y'!='Y');cout<<"z="<<z<<endl;int a=1,b=3,c=5;a+=b*=c-=2;cout<<"a="<<a<<','<<"b="<<b<<','<<&quo
40、t;c="<<c<<endl;運(yùn)行程序后,輸出結(jié)果為:k=0z=0z=1z=1a=10,b=9,c=3其他運(yùn)算符:1條件運(yùn)算符 條件運(yùn)算符“?:”是一個(gè)三目運(yùn)算符,其使用的一般形式為: 表達(dá)式1?表達(dá)式2:表達(dá)式3 該表達(dá)式執(zhí)行時(shí),先分析表達(dá)式1,其值為真時(shí),則表達(dá)式2的值為條件表達(dá)式的值;否則表達(dá)式3的值為條件表達(dá)式的值。條件運(yùn)算符的優(yōu)先級(jí)僅高于賦值運(yùn)算符和逗號(hào)運(yùn)算符 例如,求a和b中較大者,可寫(xiě)成表達(dá)式:max = a > b ? a : b2逗號(hào)運(yùn)算符 由逗號(hào)運(yùn)算符構(gòu)成的表達(dá)式稱(chēng)為逗號(hào)表達(dá)式,其一般形式為: 表達(dá)式1,表達(dá)式2,表達(dá)式n 逗號(hào)表達(dá)式
41、的執(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。 表達(dá)式中數(shù)據(jù)類(lèi)型的轉(zhuǎn)換:1. 隱含轉(zhuǎn)換 當(dāng)操作數(shù)的類(lèi)型不一致時(shí),表達(dá)式的類(lèi)型就取決于操作數(shù)中類(lèi)型最高的操作數(shù)類(lèi)型,C+語(yǔ)言將自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換,隱含轉(zhuǎn)換的示意圖如圖2-3所示,其轉(zhuǎn)換規(guī)則如下:注意:隱含轉(zhuǎn)換是由編譯系統(tǒng)自動(dòng)完成的,它實(shí)際并不改變操作數(shù)的數(shù)據(jù)類(lèi)型,只是在計(jì)算表達(dá)式值時(shí),臨時(shí)改變操作數(shù)的數(shù)據(jù)類(lèi)型,計(jì)算完成后,操作數(shù)仍保持原有的數(shù)據(jù)類(lèi)型。2. 強(qiáng)制轉(zhuǎn)換 強(qiáng)制轉(zhuǎn)換的作用是將表達(dá)式的類(lèi)型強(qiáng)制轉(zhuǎn)換成指定的數(shù)據(jù)類(lèi)型。 其一般形式
42、為: 數(shù)據(jù)類(lèi)型(表達(dá)式)或 (數(shù)據(jù)類(lèi)型)表達(dá)式 例如: double(a) /將a強(qiáng)制轉(zhuǎn)換成double型 float(5%3) /將5%3的結(jié)果轉(zhuǎn)換成float型 注意:如果將高類(lèi)型轉(zhuǎn)換成低類(lèi)型,會(huì)造成數(shù)據(jù)精度的損失。因此,這是一種不安全的類(lèi)型轉(zhuǎn)換。 第五節(jié) 控制語(yǔ)句C+語(yǔ)句概述:1表達(dá)式語(yǔ)句 表達(dá)式語(yǔ)句是由一個(gè)表達(dá)式加上分號(hào)組成。例如: int i; /將i聲明為整型變量的語(yǔ)句 a=3*4+5; /賦值語(yǔ)句2復(fù)合語(yǔ)句 復(fù)合語(yǔ)句也稱(chēng)塊語(yǔ)句,是由兩條或兩條以上的語(yǔ)句組成,并用“ ”括起來(lái)的語(yǔ)句。復(fù)合語(yǔ)句在語(yǔ)法上相當(dāng)于一條語(yǔ)句。 注意:在復(fù)合語(yǔ)句的右括號(hào)后不再需要分號(hào)。3控制語(yǔ)句 控制語(yǔ)句通常包
43、括選擇語(yǔ)句、循環(huán)語(yǔ)句和轉(zhuǎn)移語(yǔ)句。4空語(yǔ)句語(yǔ)句 空語(yǔ)句只有一個(gè)分號(hào),它不作任何操作,常用在需要一條語(yǔ)句而又不需要任何操作的地方,如循環(huán)語(yǔ)句中。 選擇語(yǔ)句:1if語(yǔ)句if語(yǔ)句用來(lái)有條件地執(zhí)行某一語(yǔ)句系列。if語(yǔ)句主要有3種語(yǔ)法格式:(1)簡(jiǎn)單if語(yǔ)句格式:if(表達(dá)式) 語(yǔ)句; 功能:首先計(jì)算表達(dá)式的值,如果表達(dá)式的值不為0,表示條件判定為真,花括號(hào)內(nèi)的語(yǔ)句將被執(zhí)行;否則,將執(zhí)行后面的語(yǔ)句。其中的表達(dá)式一般是關(guān)系表達(dá)式,并且表達(dá)式必須用()括起來(lái)。語(yǔ)句可以是一條語(yǔ)句,也可以是多條語(yǔ)句。如果只有一條語(yǔ)句,則 可以省略?!纠?.7】簡(jiǎn)單if語(yǔ)句的應(yīng)用。#include<iostream.h>
44、; void main() float score;cout<<"Please enter your score:"<<endl;cin>>score;if (score>=60)cout<<"Passed!"<<endl;if (score<60)cout<<"No passed!"<<endl;cout<<"You should do your best to study"<<endl;運(yùn)行程
45、序后,屏幕上輸出顯示:Please enter your score:提示用戶(hù)輸入成績(jī),當(dāng)用戶(hù)輸入成績(jī)信息后,程序會(huì)根據(jù)用戶(hù)的輸入,輸出顯示相應(yīng)的信息。如輸入70,則顯示:Passed!(2)兩分支if語(yǔ)句格式:if(表達(dá)式) 語(yǔ)句1;else 語(yǔ)句2; 功能:首先計(jì)算表達(dá)式的值,如果表達(dá)式條件判定為真,則執(zhí)行語(yǔ)句1,否則將執(zhí)行語(yǔ)句2。該格式的流程圖如圖2-5所示。 【例2.8】利用兩分支if語(yǔ)句改寫(xiě)例2.7。#include<iostream.h> void main() float score;cout<<"Please enter your score:
46、"<<endl;cin>>score;if (score>=60)cout<<"Passed!"<<endl;elsecout<<"No passed!"<<endl;cout<<" You should do your best to study"<<endl;(3)多分支if語(yǔ)句格式:if(表達(dá)式1) <語(yǔ)句1>else if(表達(dá)式2) <語(yǔ)句2>else if(表達(dá)式3) <語(yǔ)句3>
47、;else if(表達(dá)式n) <語(yǔ)句n>else <語(yǔ)句n+1> 功能:首先計(jì)算表達(dá)式1的值,如果表達(dá)式1條件判定為真,則執(zhí)行語(yǔ)句1,否則判定表達(dá)式2,如果條件判定為真,則執(zhí)行語(yǔ)句2,依此類(lèi)推,直到所有的表達(dá)式條件均不滿(mǎn)足,此時(shí)將執(zhí)行語(yǔ)句n+1。該格式實(shí)際上提供了多重條件選擇。該格式的流程圖如圖2-6所示。 【例2.9】利用多分支if語(yǔ)句比較兩個(gè)數(shù)的大小。#include<iostream.h> void main() int x,y;cout<<"Please input x,y:"<<endl;cin>&
48、gt;x>>y;if (x=y) cout<<"x=y"<<endl;else if (x>y)cout<<"x>y"<<endl;else cout<<"x<y"<<endl;程序執(zhí)行后,屏幕上輸出顯示:Please input x,y:計(jì)算機(jī)提示用戶(hù)輸入兩個(gè)x和y的值。當(dāng)用戶(hù)輸入后,計(jì)算機(jī)將顯示相應(yīng)的判斷結(jié)果。例如,輸入1和2后將顯示“x<y”的判斷結(jié)果。 (4)if語(yǔ)句的嵌套 三種if語(yǔ)句之間可以實(shí)現(xiàn)嵌套。通常為了不破壞程
49、序的可讀性,嵌套的層次一般不超過(guò)兩層?!纠?.10】利用if語(yǔ)句的嵌套改寫(xiě)例2.9。#include<iostream.h> void main() int x,y;cout<<"Please input x,y:"<<endl;cin>>x>>y;if (x!=y)if (x>y)cout<<"x>y"<<endl;elsecout<<"x<y"<<endl;elsecout<<"x=y
50、"<<endl;2switch語(yǔ)句switch語(yǔ)句又稱(chēng)開(kāi)關(guān)語(yǔ)句,其語(yǔ)法格式為:switch(表達(dá)式M)case 常量表達(dá)式M1:語(yǔ)句1;case 常量表達(dá)式M2:語(yǔ)句2; case 常量表達(dá)式Mn:語(yǔ)句n; default:語(yǔ)句Mn+1; 其中,switch、case和default是關(guān)鍵字,常量表達(dá)式通常為整型數(shù)值和字符常量,語(yǔ)句1、語(yǔ)句2、語(yǔ)句n是由1條或多條語(yǔ)句組成的語(yǔ)句段,也可以是空語(yǔ)句。如果是多條語(yǔ)句,可以用花括號(hào)括起來(lái)。 switch語(yǔ)句的執(zhí)行過(guò)程是:首先計(jì)算switch語(yǔ)句中的表達(dá)式,然后按先后順序?qū)⒌玫降慕Y(jié)果與case中的常量表達(dá)式的值進(jìn)行比較。如果兩者相
51、等,程序就轉(zhuǎn)到相應(yīng)case處開(kāi)始順序執(zhí)行。如果沒(méi)有找到相匹配的結(jié)果,就從default處開(kāi)始執(zhí)行。如果沒(méi)有default,則轉(zhuǎn)到switch語(yǔ)句后面的語(yǔ)句。如果希望switch語(yǔ)句在執(zhí)行完某一case后面的語(yǔ)句后,不再執(zhí)行其后面的case和default分支,就需要在每個(gè)case的末尾加上一條break語(yǔ)句,表示跳出switch語(yǔ)句。加break語(yǔ)句的switch語(yǔ)句流程圖如圖2-7所示。 【例2.11】根據(jù)考試成績(jī)的等級(jí)給出百分制分?jǐn)?shù)段。#include<iostream.h> void main() char grade;cout<<"請(qǐng)輸入成績(jī):&quo
52、t;<<endl;cin>>grade;if (grade>='a' && grade<='z') grade-=32; /若輸入小寫(xiě)字母,則轉(zhuǎn)化為大寫(xiě)字母 switch(grade) case 'A' :cout<<"90100"<< endl; case 'B' :cout<<"8089"<< endl; case 'C' :cout<<"7079&q
53、uot;<< endl; case 'D' :cout<<"6069"<< endl; case 'E' :cout<<"60分以下"<< endl; default:cout<<"Input error!"<<endl; 運(yùn)行程序后,屏幕上將顯示字符串“請(qǐng)輸入成績(jī):”。假設(shè)輸入B后,將輸出結(jié)果:80897079606960分以下Input error!顯然,這樣的輸出結(jié)果是不符合題目原意的,原因就在于沒(méi)有用break語(yǔ)
54、句作為每個(gè)case的結(jié)束語(yǔ)句?,F(xiàn)修改例2.11程序如下:switch(grade)case 'A' :cout<<"90100"<< endl;break;case 'B' :cout<<"8089"<< endl; break;case 'C' :cout<<"7079"<< endl; break; case 'D' :cout<<"6069"<< en
55、dl; break; case 'E' :cout<<"60分以下"<< endl; break; default:cout<<"Input error!"<<endl; 再運(yùn)行程序,然后輸入成績(jī)B,將輸出結(jié)果:8089循環(huán)語(yǔ)句:在程序設(shè)計(jì)中經(jīng)常遇到需要重復(fù)執(zhí)行的操作,這些操作可以使用循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)。循環(huán)語(yǔ)句使得程序在給定條件滿(mǎn)足時(shí),能夠重復(fù)地執(zhí)行某些操作。C+語(yǔ)言提供了3種循環(huán)語(yǔ)句:while循環(huán)語(yǔ)句、do-while循環(huán)語(yǔ)句和for循環(huán)語(yǔ)句。 1while循環(huán)語(yǔ)句while循環(huán)語(yǔ)句的語(yǔ)法形式為: while(表達(dá)式) 循環(huán)體;其中,while是關(guān)鍵字,表達(dá)式可以是C+語(yǔ)言中任何合法的表達(dá)式,它用來(lái)判斷執(zhí)行循環(huán)體的條件,根據(jù)循環(huán)條件決定是否執(zhí)行循環(huán)體。循環(huán)體由語(yǔ)句組成,可以是一條語(yǔ)句,也可以是多條語(yǔ)句。while循環(huán)執(zhí)行過(guò)程示意圖如圖2-8所示。表達(dá)式循環(huán)體真假圖2-8 while循環(huán)執(zhí)行過(guò)程注意: 如果循環(huán)體有多個(gè)語(yǔ)句時(shí),要用大括號(hào)把它們括起來(lái),以復(fù)合語(yǔ)句形式出現(xiàn)。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 時(shí)尚品牌店裝修合同樣本
- 2025年度特種設(shè)備安全管理停薪留職協(xié)議
- 夜間快遞運(yùn)輸線(xiàn)路外包合同
- 保險(xiǎn)公司裝修質(zhì)量保證協(xié)議
- 產(chǎn)業(yè)園裝修貸款合同范本
- 2025年度網(wǎng)絡(luò)安全應(yīng)急響應(yīng)工程師聘請(qǐng)合同-@-1
- 學(xué)校教室半包裝修合同樣本
- 工廠(chǎng)車(chē)間裝修包工協(xié)議
- 家電賣(mài)場(chǎng)展位裝修合同書(shū)
- 保險(xiǎn)公司裝修制式合同樣本
- 《工程測(cè)試技術(shù)》全套教學(xué)課件
- 自卸車(chē)司機(jī)實(shí)操培訓(xùn)考核表
- 教師個(gè)人基本信息登記表
- 中考現(xiàn)代文閱讀理解題精選及答案共20篇
- ESD測(cè)試作業(yè)指導(dǎo)書(shū)-防靜電手環(huán)
- 高頻變壓器的制作流程
- 春季開(kāi)學(xué)安全第一課PPT、中小學(xué)開(kāi)學(xué)第一課教育培訓(xùn)主題班會(huì)PPT模板
- JJG30-2012通用卡尺檢定規(guī)程
- 部編版人教版二年級(jí)上冊(cè)語(yǔ)文教材分析
- 艾賓浩斯遺忘曲線(xiàn)復(fù)習(xí)方法表格模板100天
- APR版制作流程
評(píng)論
0/150
提交評(píng)論