




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、程序設(shè)計與語言(),培養(yǎng)目標(biāo) 課程簡介 實(shí)驗(yàn) 學(xué)時 考核形式 教材,主講:何潔月,培養(yǎng)目標(biāo),1.建立基本的計算機(jī)程序設(shè)計概念體系和基本的程序設(shè)計方法。 2.理解和掌握C+語言的基本語法和語義,初步理解面向?qū)ο蟮乃枷?,初步掌握面向?qū)ο蟪绦蛟O(shè)計的方法。 3. 逐步提高學(xué)生的編程能力和調(diào)試程序的能力。 為后面的學(xué)習(xí)打好基礎(chǔ)。,課程簡介,第章 概述 計算機(jī)程序設(shè)計語言的發(fā)展(一般了解) 面向?qū)ο蟮姆椒ǎㄒ话懔私猓?面向?qū)ο蟮能浖_發(fā)(一般了解) 信息的表示與存儲(理解) 程序的開發(fā)過程(一般了解) 小結(jié),課程簡介,第章 簡單程序設(shè)計 語言概述(一般理解) 基本數(shù)據(jù)類型和表達(dá)式(掌握) 數(shù)據(jù)的輸入與輸出
2、(掌握) 算法的基本控制結(jié)構(gòu)(掌握) 自定義數(shù)據(jù)類型(掌握) 小結(jié),課程簡介,第章 函數(shù) 函數(shù)的定義與使用(掌握) 內(nèi)聯(lián)函數(shù)(掌握) 帶默認(rèn)形參值的函數(shù)(掌握) 函數(shù)重載(掌握) 函數(shù)模板(掌握) 使用系統(tǒng)函數(shù)(掌握) 小結(jié),課程簡介,第章 類與對象 面向?qū)ο蟮乃枷耄ɡ斫猓?面向?qū)ο蟪绦蛟O(shè)計的基本特點(diǎn)(理解) 類和對象(掌握) 構(gòu)造函數(shù)和析構(gòu)函數(shù)(掌握) 類的組合(掌握) 類模板(掌握) 面向?qū)ο髽?biāo)記(一般了解) 小結(jié),課程簡介,第章 程序的結(jié)構(gòu) 程序的結(jié)構(gòu)(理解) 生存期(掌握) 數(shù)據(jù)和函數(shù)(掌握) 靜態(tài)成員(掌握) 友元(掌握) 共享數(shù)據(jù)的保護(hù)(掌握) 多文件結(jié)構(gòu)和編譯預(yù)處理命令(掌握)
3、小結(jié),課程簡介,第章 數(shù)組、指針與字符串 數(shù)組(掌握) 指針(掌握) 動態(tài)內(nèi)存分配(掌握) 字符串(掌握),實(shí)驗(yàn),實(shí)驗(yàn)共分次,每次小時,實(shí)驗(yàn)環(huán)境為:visual c+6.0 實(shí)驗(yàn):visual c+6.0開發(fā)環(huán)境應(yīng)用入門 實(shí)驗(yàn):簡單程序設(shè)計 實(shí)驗(yàn):函數(shù)的應(yīng)用 實(shí)驗(yàn):類與對象 實(shí)驗(yàn):程序的結(jié)構(gòu) 實(shí)驗(yàn):數(shù)組、指針與字符串,教材,教材: C+語言程序設(shè)計 C+語言程序設(shè)計習(xí)題與實(shí)驗(yàn)指導(dǎo),考核,總評成績=平時作業(yè)+上機(jī)實(shí)驗(yàn)+期末筆試成績(閉卷)期末上機(jī)成績(閉卷) 平時作業(yè)占 10% 平時上機(jī)實(shí)驗(yàn)占 10% 期末筆試成績(閉卷)占 60% 期末上機(jī)成績(閉卷)占 20%,第一章 緒論,計算機(jī)程序設(shè)計語
4、言的發(fā)展 面向?qū)ο蟮姆椒?面向?qū)ο蟮能浖_發(fā) 信息的表示與存儲 程序的開發(fā)過程,1.1計算機(jī)語言的發(fā)展,計算機(jī)的工作是用程序來控制的 程序是指令的集合。 指令是計算機(jī)可以識別的命令。,計算機(jī)程序,機(jī)器語言,由計算機(jī)硬件系統(tǒng)可以識別的二進(jìn)制指令組成的語言稱為機(jī)器語言。 計算機(jī)發(fā)展的初期,軟件工程師們只能用機(jī)器語言來編寫程序。這一階段,在人類的自然語言和計算機(jī)編程語言之間存在著巨大的鴻溝。 例如 1011 1111 1101 缺點(diǎn):難懂,不易修改,移植性差,匯編語言,匯編語言將機(jī)器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。 此時編程語言與人類自然語言間的鴻溝略有縮小,但仍與人類的思維
5、相差甚遠(yuǎn)。因?yàn)樗某橄髮哟翁?,程序員需要考慮大量的機(jī)器細(xì)節(jié)。 例如 ADD CX,DX 將DX的內(nèi)容加進(jìn)CX 。不能立即執(zhí)行,需要匯編,變成目標(biāo)程序。,高級語言,高級語言屏蔽了機(jī)器的細(xì)節(jié),提高了語言的抽象層次,程序中可以采用具有一定涵義的數(shù)據(jù)命名和容易理解的執(zhí)行語句。這使得在書寫程序時可以聯(lián)系到程序所描述的具體事物。 例如 if y3 z=x+y; 類似英語和數(shù)學(xué)表達(dá)式,高級語言,分成 解釋方式與編譯方式,解 釋 程 序,運(yùn) 行 結(jié) 果,編 譯 程 序,目 標(biāo) 程 序,初 始 數(shù) 據(jù),目 標(biāo) 程 序,源 程 序,源程序,初始數(shù)據(jù),運(yùn) 行 結(jié) 果,高級語言發(fā)展:,第一代語言是對數(shù)學(xué)表達(dá)式有很強(qiáng)
6、的運(yùn)算處理能力 代表是Fortran 和Algol 60 第二代語言的重點(diǎn)如何有效地表達(dá)算法 代表是Pascal 和C 第三代語言引入抽象數(shù)據(jù)類型的程序設(shè)計語言 代表是被認(rèn)為是基于對象的語言 第四代面向?qū)ο蟪绦蛟O(shè)計語言 代表是Smalltalk、Eiffel、c+、Java,面向?qū)ο蟮恼Z言,出發(fā)點(diǎn): 更直接地描述客觀世界中存在的事物(對象)以及它們之間的關(guān)系。 特點(diǎn): 是高級語言。 將客觀事物看作具有屬性和行為的對象。 通過抽象找出同一類對象的共同屬性和行為,形成類。 通過類的繼承與多態(tài)實(shí)現(xiàn)代碼重用,面向?qū)ο蟮恼Z言,優(yōu)點(diǎn): 使程序能夠比較直接地反問題域的本來面目,軟件開發(fā)人員能夠利用人類認(rèn)識事
7、物所采用的一般思維方法來進(jìn)行軟件開發(fā)。,語言的鴻溝,面向?qū)ο蟮恼Z言,自然語言,非面向?qū)ο蟮恼Z言,匯編語言,機(jī)器語言,對問題域的認(rèn)識(人,語言的鴻溝,編程(人,程序的理解和執(zhí)行(機(jī)器,程序的目的:用于數(shù)學(xué)計算 主要工作:設(shè)計求解問題的過程 缺點(diǎn):對于龐大、復(fù)雜的程序難以開發(fā)和維護(hù),1.2 面向?qū)ο蟮姆椒?面向?qū)ο蠓椒ǖ挠蓙?一、程序設(shè)計方法的發(fā)展歷程 面向過程的程序設(shè)計方法,二、程序設(shè)計方法的發(fā)展歷程面向過程的結(jié)構(gòu)化程序設(shè)計方法,設(shè)計思路 自頂向下、逐步求精。采用模塊分解與功能抽象,自頂向下、分而治之。 程序結(jié)構(gòu): 按功能劃分為若干個基本模塊,形成一個樹狀結(jié)構(gòu)。 各模塊間的關(guān)系盡可能簡單,功能上
8、相對獨(dú)立;每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成。 其模塊化實(shí)現(xiàn)的具體方法是使用子程序。,優(yōu)點(diǎn): 有效地將一個較復(fù)雜的程序系統(tǒng)設(shè)計任務(wù)分解成許多易于控制和處理的子任務(wù),便于開發(fā)和維護(hù)。,缺點(diǎn):可重用性差、數(shù)據(jù)安全性差、難以開發(fā)圖形界面的應(yīng)用 把數(shù)據(jù)和處理數(shù)據(jù)的過程分離為相互獨(dú)立的實(shí)體。 當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時,所有相關(guān)的處理過程都要進(jìn)行相應(yīng)的修改。 每一種相對于老問題的新方法都要帶來額外的開銷。 圖形用戶界面的應(yīng)用,很難用過程來描述和實(shí)現(xiàn),開發(fā)和維護(hù)都很困難。,三、程序設(shè)計方法的發(fā)展歷程 面向?qū)ο蟮姆椒?將數(shù)據(jù)及對數(shù)據(jù)的操作方法封裝在一起,作為一個相互依存、不可分離的整體對象。 對同類型
9、對象抽象出其共性,形成類。 類通過一個簡單的外部接口,與外界發(fā)生關(guān)系。 對象與對象之間通過消息進(jìn)行通訊。,優(yōu)點(diǎn): 程序模塊間的關(guān)系更為簡單,程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了良好的保障。 通過繼承與多態(tài)性,可以大大提高程序的可重用性,使得軟件的開發(fā)和維護(hù)都更為方便。,面向?qū)ο蟮幕靖拍?對象,一般意義上的對象: 是現(xiàn)實(shí)世界中一個實(shí)際存在的事物。 可以使有形的(比如一輛汽車),也可以是無形的(比如一項計劃)。 是構(gòu)成世界的一個獨(dú)立單位,具有: 靜態(tài)特征:可以用某種數(shù)據(jù)來描述 動態(tài)特征:對象所表現(xiàn)的行為或具有的功能,面向?qū)ο蠓椒ㄖ械膶ο螅?是系統(tǒng)中用來描述客觀事物的一個實(shí)體,它是用來構(gòu)成系統(tǒng)的一
10、個基本單位。對象由一組屬性和一組行為構(gòu)成。 屬性:用來描述對象靜態(tài)特征的數(shù)據(jù)項。 行為:用來描述對象動態(tài)特征的操作序列。,面向?qū)ο蟮幕靖拍?類,分類人類通常的思維方法 分類所依據(jù)的原則抽象 忽略事物的非本質(zhì)特征,只注意那些與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征,從而找出事物的共性,把具有共同性質(zhì)的事物劃分為一類,得出一個抽象的概念。 例如,石頭、樹木、汽車、房屋等都是人們在長期的生產(chǎn)和生活實(shí)踐中抽象出的概念。,面向?qū)ο蠓椒ㄖ械念?具有相同屬性和服務(wù)的一組對象的集合 為屬于該類的全部對象提供了抽象的描述,包括屬性和行為兩個主要部分。 類與對象的關(guān)系:猶如模具與鑄件之間的關(guān)系,一個屬于某類的對象稱為該類的一個
11、實(shí)例。,集合成員 抽象描述具體實(shí)例,集合成員 抽象描述具體實(shí)例,面向?qū)ο蟮幕靖拍?封裝,把對象的屬性和服務(wù)結(jié)合成一個獨(dú)立的系統(tǒng)單位。 盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。對外形成一個邊界(或者說一道屏障),只保留有限的對外接口使之與外部發(fā)生聯(lián)系。,封裝,顧客,面向?qū)ο蟮幕靖拍?繼承,繼承對于軟件復(fù)用有著重要意義,是面向?qū)ο蠹夹g(shù)能夠提高軟件開發(fā)效率的重要原因之一。 定義:特殊類的對象擁有其一般類的全部屬性與服務(wù),稱作特殊類對一般類的繼承。 例如:將輪船作為一個一般類,客輪便是一個特殊類。,哺乳動物 熱血、有毛發(fā)、用奶哺育幼仔,狗 有犬牙、食肉、特定的骨骼結(jié)構(gòu)、群居,柯利狗 尖鼻子、身體顏色紅白相間、適
12、合放牧,面向?qū)ο蟮幕靖拍?多態(tài)性,多態(tài)是指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個屬性或行為在一般類及其各個特殊類中具有不同的語義。 例如: 數(shù)的加法-實(shí)數(shù)的加法 -復(fù)數(shù)的加法 例動物叫,面向?qū)ο蟮能浖こ?面向?qū)ο蟮能浖こ淌敲嫦驅(qū)ο蠓椒ㄔ谲浖こ填I(lǐng)域的全面應(yīng)用。它包括: 面向?qū)ο蟮姆治觯∣OA) 面向?qū)ο蟮脑O(shè)計(OOD) 面向?qū)ο蟮木幊蹋∣OP) 面向?qū)ο蟮臏y試(OOT) 面向?qū)ο蟮能浖S護(hù)(OOSM),面向?qū)ο蟮能浖_發(fā),傳統(tǒng)的軟件工程方法,面向?qū)ο蟮能浖こ谭椒?自然語言,分析與設(shè)計的鴻溝,編程語言,自然語言,面向?qū)ο蟮木幊?/p>
13、語言,系統(tǒng)分析,系統(tǒng)分析階段應(yīng)該扼要精確地抽象出系統(tǒng)必須做什么,但是不關(guān)心如何去實(shí)現(xiàn)。 面向?qū)ο蟮南到y(tǒng)分析,直接用問題域中客觀存在的事物建立模型中的對象,對單個事物及事物之間的關(guān)系,都保留他們的原貌,不做轉(zhuǎn)換,也不打破原有界限而重新組合,因此能夠很好地映射客觀事物。,設(shè)計,針對系統(tǒng)的一個具體實(shí)現(xiàn)運(yùn)用面向?qū)ο蟮姆椒?。其中包括兩方面的工作?把OOA模型直接搬到OOD,作為OOD的一部分 針對具體實(shí)現(xiàn)中的人機(jī)界面、數(shù)據(jù)存儲、任務(wù)管理等因素補(bǔ)充一些與實(shí)現(xiàn)有關(guān)的部分。,編程,OOP工作就是用一種面向?qū)ο蟮木幊陶Z言把OOD模型中的每個成分書寫出來,是面向?qū)ο蟮能浖_發(fā)最終落實(shí)的重要階段。,測試,測試的任
14、務(wù)是發(fā)現(xiàn)軟件中的錯誤。 在面向?qū)ο蟮能浖y試中繼續(xù)運(yùn)用面向?qū)ο蟮母拍钆c原則來組織測試,以對象的類作為基本測試單位,可以更準(zhǔn)確的發(fā)現(xiàn)程序錯誤并提高測試效率。,維護(hù),將軟件交付使用后,工作并沒有完結(jié),還要根據(jù)軟件的運(yùn)行情況和用戶的需求,不斷改進(jìn)系統(tǒng)。 使用面向?qū)ο蟮姆椒ㄩ_發(fā)的軟件,其程序與問題域是一致的,因此,在維護(hù)階段運(yùn)用面向?qū)ο蟮姆椒梢源蟠筇岣哕浖S護(hù)的效率。,信息的表示和存儲,信息的分類 計算機(jī)的數(shù)字系統(tǒng) 程序設(shè)計中常用的數(shù)制 不同進(jìn)位計數(shù)制間的轉(zhuǎn)換 信息的存儲單位 二進(jìn)制數(shù)的編碼表示 小數(shù)的表示方法 非數(shù)值信息的表示,信息的分類, 指令 控制信息 控制字 信息 定點(diǎn)數(shù) 數(shù)值信息 數(shù)據(jù)信息
15、 浮點(diǎn)數(shù) 字符數(shù)據(jù) 非數(shù)值信息 邏輯數(shù)據(jù),計算機(jī)的數(shù)字系統(tǒng),計算機(jī)采用的是二進(jìn)制數(shù)字系統(tǒng)。 基本符號:0、1 進(jìn)位原則:逢二進(jìn)一 優(yōu)點(diǎn): 易于物理實(shí)現(xiàn) 二進(jìn)制數(shù)運(yùn)算簡單 機(jī)器可靠性高 通用性強(qiáng) 缺點(diǎn):對人來說可讀性差,程序設(shè)計中常用的數(shù)制,不同進(jìn)位計數(shù)制間的轉(zhuǎn)換 R 進(jìn)制十進(jìn)制,各位數(shù)字與它的權(quán)相乘,其積相加。 例如: (11111111.11)2=1*27 + 1*26 + 1* 25 +1* 24 + 1* 23 + 1* 22 +1* 21+ 1* 20+1*2-1+1*2-2 =(255.75)10 (3506.2)8=3*83 + 5*82 + 0*81 + 6*80 +2*8-1=
16、(1862.25)10 (0.2A)16=2*16-1 +10*16-2=(0.1640625)10,不同進(jìn)位計數(shù)制間的轉(zhuǎn)換 十進(jìn)制 R 進(jìn)制,十進(jìn)制整數(shù)轉(zhuǎn)換成R進(jìn)制的整數(shù) “除R取余”法,例如: 2 68 余 數(shù) 2 34 0 低位 2 17 0 2 8 1 2 4 0 2 2 0 2 1 0 0 1 高位 所以 681010001002,不同進(jìn)位計數(shù)制間的轉(zhuǎn)換 十進(jìn)制 R 進(jìn)制,十進(jìn)制小數(shù)轉(zhuǎn)換成R進(jìn)制小數(shù) “乘 R 取整”法,例如: 高位 0.31252 = 0 .625 0.625 2 = 1 .25 0.25 2 = 0 .5 0.5 2 = 1 .0 所以 0.312510 = 0.
17、01012,不同進(jìn)位計數(shù)制間的轉(zhuǎn)換二、八、十六進(jìn)制的相互轉(zhuǎn)換,每位八進(jìn)制數(shù)相當(dāng)于三位二進(jìn)制數(shù) 每位十六進(jìn)制數(shù)相當(dāng)于四位二進(jìn)制數(shù) (1011010.10)2=(001 011 010 .100)2=(132.4)8 (1011010.10)2=(0101 1010 .1000)2=(5A.8)16 (F7)16(1111 0111)2(11110111)2,信息的存儲單位,位(bit):度量數(shù)據(jù)的最小單位,表示一位二進(jìn)制信息。 字節(jié)(byte):由八位二進(jìn)制數(shù)字組成(1 byte = 8 bit)。 K 字節(jié) 1 K = 1024 byte M 字節(jié) 1 M = 1024 K G 字節(jié) 1 G
18、= 1024 M,二進(jìn)制數(shù)的編碼表示:原碼,符號絕對值表示的編碼 例如: X=+0101011 X原 = 0 0101011 X=-0101011 X原 = 1 0101011 符號位 缺點(diǎn): 零的表示不唯一:+0原 =000.0 -0原 =100.0 進(jìn)行四則運(yùn)算時,符號位需單獨(dú)處理,且運(yùn)算規(guī)則復(fù)雜。,二進(jìn)制數(shù)的編碼表示:反碼,正數(shù)的反碼與原碼表示相同。 負(fù)數(shù)的反碼與原碼有如下關(guān)系: 符號位相同(仍用1表示),其余各位取反(0變1,1變0)。例如:X=-1100110 X原 =11100110 X反 =10011001X=+0000000 X原 =00000000 X反 =00000000
19、反碼中零的表示也不唯一 X=-0000000 X原 =10000000 X反 =11111111 反碼只是求補(bǔ)碼的中間碼,二進(jìn)制數(shù)的編碼表示:補(bǔ)碼,模數(shù): n位整數(shù)(包括一位符號位),則它的模數(shù)為 2n 。 n位小數(shù),小數(shù)點(diǎn)前一位為符號位,則它的模數(shù)為 2。 補(bǔ)數(shù): 一個數(shù)減去另一個數(shù),或者說一個數(shù)加上一個負(fù)數(shù),等于第一個數(shù)加上第二個數(shù)的補(bǔ)數(shù)。例:8+(-2)=8+10 ( mod 12 ) 一個二進(jìn)制負(fù)數(shù)可用其模數(shù)與真值做加法 (模減去該數(shù)的絕對值) 求得其補(bǔ)碼。,二進(jìn)制數(shù)的編碼表示:補(bǔ)碼,計算機(jī)中的補(bǔ)碼表示法 負(fù)數(shù)的補(bǔ)碼由該數(shù)反碼的末位加 1 求得 對補(bǔ)碼再求補(bǔ)即得到原碼 補(bǔ)碼運(yùn)算規(guī)則p1
20、4 符號位可作為數(shù)值參加運(yùn)算 減法運(yùn)算可轉(zhuǎn)換為加法運(yùn)算: 加上一個負(fù)數(shù)等于加上該數(shù)的補(bǔ)碼 補(bǔ)碼運(yùn)算的結(jié)果仍為補(bǔ)碼 運(yùn)算結(jié)果溢出: 負(fù)數(shù)之和得正數(shù),或正數(shù)之和得負(fù)數(shù),小數(shù)的表示方法,計算機(jī)中通常采用浮點(diǎn)方式表示小數(shù)一個數(shù) N 用浮點(diǎn)形式表示可以寫成: N=M2E E表示2的冪,稱為數(shù)N的階碼。階碼確定了數(shù)N的小數(shù)點(diǎn)的位置,其位數(shù)反映了該浮點(diǎn)數(shù)所表示的數(shù)的范圍。 M表示數(shù)N的全部有效數(shù)字,稱為數(shù)N的尾數(shù)。其位數(shù)反映了數(shù)據(jù)的精度。 p15,非數(shù)值信息的表示,西文字符: ASCII碼:用7位二進(jìn)制數(shù)表示一個字符,最多可以表示27=128個字符 EBCDIC碼:用8位二進(jìn)制數(shù)表示一個字符,最多可以表示2
21、8=256個字符 漢字: 應(yīng)用較為廣泛的是國家標(biāo)準(zhǔn)信息交換用漢字編碼(GB2312-80標(biāo)準(zhǔn)),簡稱國標(biāo)碼。是二字節(jié)碼,用二個七位二進(jìn)制數(shù)編碼表示一個漢字。,程序的開發(fā)過程,源程序、目標(biāo)程序、翻譯程序 三種不同類型的翻譯程序: 匯編程序、編譯程序、解釋程序 程序的開發(fā)過程 編輯、編譯、連接、運(yùn)行調(diào)試,基本術(shù)語,源程序: 用源語言寫的,有待翻譯的程序 目標(biāo)程序: 也稱為結(jié)果程序,是源程序通過翻譯程序加工以后所生成的程序。 翻譯程序: 是指一個把源程序翻譯成等價的目標(biāo)程序的程序。,基本術(shù)語 三種不同類型的翻譯程序,匯編程序: 其任務(wù)是把用匯編語言寫成的源程序,翻譯成機(jī)器語言形式的目標(biāo)程序。 編譯程
22、序: 若源程序是用高級程序設(shè)計語言所寫,經(jīng)翻譯程序加工生成目標(biāo)程序,那么,該翻譯程序就稱為編譯程序。,基本術(shù)語 三種不同類型的翻譯程序,解釋程序: 這也是一種翻譯程序,同樣是將高級語言源程序翻譯成機(jī)器指令。它與編譯程序不同點(diǎn)就在于:它是邊翻譯邊執(zhí)行的,即輸入一句、翻譯一句、 執(zhí)行一句,直至將整個源程序翻譯并執(zhí)行完畢。,程序的開發(fā)過程,編輯 將源程序輸入到計算機(jī)中,生成后綴為cpp的磁盤文件。 編譯 將程序的源代碼轉(zhuǎn)換為機(jī)器語言代碼。 連接 將多個源程序文件以及庫中的某些文件連在一起,生成一個后綴為exe的可執(zhí)行文件。 運(yùn)行調(diào)試,程序開發(fā)過程:,開始,編輯源程序,編譯,編譯錯,連接,連接錯,運(yùn)行
23、,運(yùn)行錯,完成,是,是,是,作業(yè),復(fù)習(xí)第一章,預(yù)習(xí)第二章 作業(yè):、 、,第二章 C+簡單程序設(shè)計,本章主要內(nèi)容,C+語言概述 基本數(shù)據(jù)類型和表達(dá)式 數(shù)據(jù)的輸入與輸出 算法的基本控制結(jié)構(gòu) 自定義數(shù)據(jù)類型,2.1.1 C+語言的產(chǎn)生,C+是從C語言發(fā)展演變而來的: C語言的開發(fā)史源于高級語言和UNIX操作系統(tǒng)的發(fā)展要求。 早期的系統(tǒng)程序設(shè)計,使用的是匯編語言,其優(yōu)點(diǎn): (1)能體現(xiàn)計算機(jī)硬件指令級的特性,表達(dá)能力強(qiáng); (2)運(yùn)行效率高。 其缺點(diǎn):可讀性,可移植性及描述問題的性能不如高級語言。 這樣很自然有如下想法:能否用具有足夠表達(dá)能力的高級語言 來進(jìn)行系統(tǒng)軟件的設(shè)計呢?Bell實(shí)驗(yàn)室做了這一嘗試
24、。 1970:在 PDP-11/20機(jī)上實(shí)現(xiàn)了B語言,并用它編寫了UNIX系統(tǒng)的實(shí)用程序。 B-BCPL-CPL-ALGOL 60,2.1 C+語言概述,在B語言基礎(chǔ)上,改進(jìn)其缺陷,發(fā)展出了C語言, 其設(shè)計目標(biāo): (1)保持BCPL和B的精練性及接近硬件的特點(diǎn) (2)恢復(fù)這些語言失去的通用性 1972:第一個C編譯投入使用 1973:UNIX用C改寫,加入多道程序功能,發(fā)生質(zhì)變 現(xiàn)在,UNIX已得到廣泛推廣,成為公認(rèn)的第一標(biāo)準(zhǔn)的操作系統(tǒng) 隨著UNIX的進(jìn)一步開發(fā),C也交織在一起被迅速推廣。,1983:對C擴(kuò)充,發(fā)展為C。 C+語言的標(biāo)準(zhǔn)化工作從1989年開始,于1994年制定了ANSI C+標(biāo)
25、準(zhǔn)草案。以后又經(jīng)過不斷完善,成為目前的C+。,2.1.2 C+的特點(diǎn),全面兼容C 它保持了C的簡潔、高效和接近匯編語言等特點(diǎn) 對C的類型系統(tǒng)進(jìn)行了改革和擴(kuò)充 C+也支持面向過程的程序設(shè)計,不是一個純正的面向?qū)ο蟮恼Z言 支持面向?qū)ο蟮姆椒?2.1.3 C+程序?qū)嵗?-1,/ this is a simplest program. #include void main(void) coutHello!n; coutWelcome to c+!n; 說明:(1)注解 (2) 編譯預(yù)處理 (3)main函數(shù) (4)語句括號 (5)語句分號;,C+程序?qū)嵗?運(yùn)行結(jié)果: Hello! Welcome t
26、o c+!,C+字符集,語言的最基本單位是字符: 字符詞語句函數(shù)程序。 字符集是構(gòu)成語言的基本元素 大小寫的英文字母:AZ,az 數(shù)字字符:09 特殊字符:空格!#%.,( ) ,詞法記號,詞法記號是最小的詞法單位 、關(guān)鍵字 C+預(yù)定義的單詞。是指C+中有特殊含義的字,是不能重 新定義的。程序員不可用之作為自己定義的變量或函數(shù)的名字。,類別 關(guān)鍵字個數(shù) 舉例 ANSI C 32 char,for 等 ANSI C+ 61 (增加29個) class,public等 BC/AC 擴(kuò)展了一些 asm 等,、標(biāo)識符 程序員聲明的單詞,它命名程序正文中的 一些實(shí)體。,標(biāo)識符的構(gòu)成規(guī)則 以大寫字母、小寫
27、字母或下劃線(_)開始。 可以由以大寫字母、小寫字母、下劃線(_)或數(shù)字09組成。 大寫字母和小寫字母代表不同的標(biāo)識符。 例 Rectangle、 Draw、 _line. 、文字 在程序中直接使用符號表示的數(shù)據(jù) 包括數(shù)字、字符、字符串和布爾文字 、操作符 用于實(shí)現(xiàn)各種運(yùn)算的符號。 、分隔符 用于分隔各個詞法記號或程序正文:( ) , : ; 、空白:空格、制表符(TAB鍵產(chǎn)生的字符)、換行符(Enter鍵所產(chǎn)生的字符)和注釋的總稱。 程序書寫自由 / 、 /* */,2.2基本數(shù)據(jù)類型和表達(dá)式,2.2.1基本數(shù)據(jù)類型,是程序命令操作的對象。,是指將數(shù)據(jù)根據(jù)表達(dá)形式的不同而 劃分的類別。,數(shù)據(jù)
28、:,數(shù)據(jù)類型:,C+的數(shù)據(jù)類型一般分為如下幾種:,基本數(shù)據(jù)類型,非基本數(shù)據(jù)類型(用戶定義數(shù)據(jù)類型),整型 字符型 實(shí)型(浮點(diǎn)型) 邏輯型(布爾型) 數(shù)組 指針 空類型 結(jié)構(gòu) 聯(lián)合 枚舉 類,數(shù)據(jù)類型,數(shù)據(jù)類型修飾符:,short,long,unsigned,例:,無符號整型 unsigned int,無符號長整型 unsigned long,無符號短整型 unsigned short,signed,類型 所占位數(shù) 數(shù)的范圍 int 16 -32768 32767 short int 16 -32768 32767 long int 32 -2147483648 2147483647 unsig
29、ned int 16 0 65535 unsigned short 16 0 65535 unsigned long 32 0 4294967295,至于它們之間的差異,請看下表(p):(16位計算機(jī)),0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.31456789,23,+,數(shù)符,小數(shù)部分,指數(shù),例: cout“size of int is “ size of (int)endl;,C+強(qiáng)類型語言要求程序設(shè)計者在使用數(shù)據(jù)之前對數(shù)據(jù)的類型進(jìn)行聲明。,注意: (1)整型和實(shí)型的幾種不同方式 (2)注意各種數(shù)據(jù)類型的取值范圍。 (3)注意C無布爾類型。C語言在表達(dá)邏輯運(yùn)算的結(jié)果
30、時,用 整數(shù)0 代表邏輯“假”,用非0的整數(shù)值(如1)表示邏輯“真”。 C+中增添了布爾類型bool,但并非每個C+編譯器都支持。 用size of (數(shù)據(jù)類型)可以確定數(shù)據(jù)類型的字節(jié)長度,數(shù)據(jù)類型 常量與變量,#include void main(void) const int PRICE=30; int num,total; float v ,r,h; num=10; total=num*PRICE; couttotal endl; r=2.5; h=3.2; v=3.14159*r*r*h; coutv endl; ,Page 84,2.2.2 常量,在程序中出現(xiàn)的常量分為一般常量和符號
31、常量兩種。,一般常量,讓我們來看右邊的程序段:,int sum; sum=3+5; printf (“sum=%d”,sum);,.,其中的“”和“”都是一般常量。,常量 就是其值不能被改變的量,它相當(dāng)于數(shù)學(xué)中的常數(shù)。,常量由于數(shù)據(jù)類型的不同而被分為:,整型常量,實(shí)型常量,字符常量,字符串常量,1、 整型常量,整型常量即以文字形式出現(xiàn)的整數(shù)。 分十進(jìn)制整數(shù)、八進(jìn)制整數(shù)和十六進(jìn)制整數(shù),注意它們的書寫形式。,整型常量類型 表達(dá)形式 有無正負(fù) 十進(jìn)制 957 有正負(fù) 八進(jìn)制 01667 只有正 十六進(jìn)制 0 xB7 只有正,123L 123l 長整型,2、 實(shí)型常量,實(shí)型常量即以文字形式出現(xiàn)的實(shí)數(shù),
32、又稱浮點(diǎn)型。 它分一般形式和指數(shù)形式。,實(shí)型常量類型 表達(dá)形式 一般形式 0.123 指數(shù)形式 123e5,(2) 一個實(shí)型常數(shù)缺省說明為double,如表示float型,則 在實(shí)數(shù)后加 f或 F。 例 34.5f 34.5,注: (1)指數(shù)形式的書寫。E或e的前面必須要有數(shù)字,且E后面的指數(shù)必須為整數(shù)。 例:e3 2.1e3.5 .e3 e,單引號括起來的一個字符 例 A 每個字符常數(shù)占一個字節(jié) 每個字符常數(shù)有一個編碼數(shù)字值A(chǔ)SCII碼表中的碼值 例如:A:65 B:66 a:97 b:98 , 字符常量可象數(shù)量一樣進(jìn)行運(yùn)行、比較 例1:if(c=Ac=Z) c=c+a-A; 將字符變量c從
33、大寫字母轉(zhuǎn)為小寫字母。 例2:0-0=0 1-0=1 2-0=2 如果c是一數(shù)字字符,則c-0就是它對應(yīng)數(shù)字的數(shù)值,3、 字符常量,非圖形字符(如回車、制表符等) 及 “等字符,因它們有特殊作用,所以表示這些字符本身時,應(yīng):p。 n 表換行,無論是不可顯示字符還是一般字符,都可用8進(jìn)制數(shù)、16進(jìn)制數(shù)表示 ddd:一 至三位8進(jìn)制數(shù)。 xhh: 一 至二位16進(jìn)制數(shù)。 例如:001表示碼值為(01)8 的ASCII字符。 A也可用101表示 0為空白符,即NULL,碼值為0,在C語言中是字符串的結(jié)束標(biāo)志。(與0和空格符不同) 例:cout“x07operatingtsystemn”; opera
34、ting system,轉(zhuǎn)義字符,例 : int a=b; char c=97; coutaendl; coutcendl; 輸出: 98 a,字符數(shù)據(jù)的使用方法 字符數(shù)據(jù)和整型數(shù)據(jù)之間可以運(yùn)算。 字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。,4、 字符串常量,字符串型常量是用雙引號括起來的一個或多個字符。 例如,將1用雙引號括起來,此時“1”代表的是一個字符串型常量, 與字符型常量1也是有區(qū)別的。,C+規(guī)定以字符0作為字符串結(jié)束標(biāo)志。如,一個字符串“HELLO”,在內(nèi)存中以“0”為結(jié)尾?!?”在輸出時不作顯示,只用來表示字符串的結(jié)束。,字符串型常量,“HELLO”,H E L L O 0,注意“P”與P
35、不同。前者為字符串,在機(jī)內(nèi)存儲形式 為 P 0 ,而P就是一常數(shù)P。,define PI 3.14159 main ( ) int r ; float L,S ; r = 10 ; L= 2 * PI * r ; S=PI * r * r ; printf (“周長=%fn”,L); printf (“面積=%fn”,S); ,這是一個知道圓半徑r,求圓周長L、圓面積S的簡單C程序。其中的PI就是符號常量,它的值在一開始就被預(yù)處理命令“#define”定義為實(shí)數(shù)3.14159了,故程序在運(yùn)行和編譯時會自動用“3.14159”來替代PI。,符號常量比起一般常量來,不但使用方便,實(shí)際值容易修改,而
36、且更形象化,便于記憶。,符號常量,數(shù)據(jù)類型 布爾型數(shù)據(jù),布爾型變量的說明:例:bool flag; 布爾型數(shù)據(jù)的取值:只有 false 和 true 兩個值,*C+中: const float pi=3.14159; *常量定義中初始化的值可以是一個常量表達(dá)式: const int size=100*sizeof(int); const int number=max(15,23); (錯) 注意:#define 與const的區(qū)別,2.3變量,變量是什么,變量程序在運(yùn)行過程中,其值會發(fā)生改變的量。,變量:變量值 23,變量名 length,變量類型 int,C+規(guī)定必須以字母或下劃線打頭,后面
37、跟字母、數(shù)字或下劃線(如:a3, Z_5e, _D7d等),并且不能與保留字、函數(shù)名、類名等C+專用名相同(如 char, for, int 等)。 注意: (a)長度:早期的C編譯程序只認(rèn)前8個字符。VC允許256個字符。 但一般不要超過31個字符為宜,1、命名,(b)約定: 變量名、函數(shù)名、和數(shù)據(jù)類型名等用小寫字母 自定義的類型名(如類)、 符號常量名及宏 用大寫字母; 下劃線開頭的名字常為系統(tǒng)程序(庫函數(shù)用),用戶一般不用。 (c)要有意義:如用Sum表示“求和變量”,不要用aaa,A1, B12之類名字。 例: my_car 小寫 my_Car 駱駝 iMyCar 匈牙利標(biāo)識法(WIN
38、DOWS標(biāo)準(zhǔn)命名法),下面我們看一段關(guān)于變量的程序:,程序中的num1,num2和sum都是變量。它們的值在程序的運(yùn)行過程中都發(fā)生了變化。變量定義后,各變量的初值都是不確定的。num1的第一個確切值是10,當(dāng)再次給num1賦值時,num1的值又變成-5。其他兩個變量的變化情況類似。,#include void main() int num1,num2,sum; num1=10;num2=25; sum=num1+num2; cout“sum=“sumendl; num1=-5; num2=num1+3; sum=num1+num2; cout“sum=“sumendl; ,變量:需要定義,說明
39、其存儲屬性和數(shù)據(jù)類型。,例:static int nward=0, nkayword;,同一語句中,不能混合定義不同類型的變量。,2、 變量的定義,變量的存儲類型,auto存儲類 屬于一時性存儲,其存儲空間可以被若干變量多次覆蓋使用。 register存儲類 存放在通用寄存器中。 extern存儲類 在所有函數(shù)和程序段中都可引用。 static存儲類 在內(nèi)存中是以固定地址存放的,在整個程序運(yùn)行期間都有效。,(1) double area, radius=23; (2) double area, radius; radius=23;,3、變量賦值與初始化,算術(shù)運(yùn)算符與算術(shù)表達(dá)式,表達(dá)式: 一個常
40、量或標(biāo)識對象的標(biāo)識符是一個最簡單的表達(dá)式,其值是常量或?qū)ο蟮闹?一個表達(dá)式的值可以用來參與其它操作,即用作其它運(yùn)算符的操作數(shù),這就形成了更復(fù)雜的表達(dá)式 包含在括號中的表達(dá)式仍是一個表達(dá)式,其類型和值于未加括號時的表達(dá)式相同 算術(shù)表達(dá)式: 由算術(shù)運(yùn)算符、操作數(shù)和括號構(gòu)成的表達(dá)式稱為算術(shù)表達(dá)式 a+b+(c-b)/2+5,Page 104,、基本算術(shù)運(yùn)算符 + - * / %(取余) (若整數(shù)相除,結(jié)果取整) 優(yōu)先級與結(jié)合性 先乘除,后加減,同級自左至右 ,(1) / 整除 5/2=2 5.0/2.0=2.5 若 / 的兩操作數(shù)都為整數(shù),則為整除: 例 int i = 15; float f ;
41、f = i/10; 結(jié)果為:f=1 如果將第三條語句改為 f = (float)i/10; 或f = i/10.0; 則結(jié)果為:f=1.5,在 C+語言中,表達(dá)式 (7/3+1)+ 5/6 的值是( )。 A)2B)3C)4 D)不能確定,B,(余的符號與被除數(shù)相同,不允許對浮點(diǎn)數(shù)操作) 3%4=3 4%4=0 例 #include void main() int n; n = 40 % 5; cout 40 % 5 : n endl; /(0) n = 40 % 7; cout 40 % 7 : n endl; / (5) n = 40 % -7; cout 40 % -7 : n endl
42、; /(5) n = -40 % 7; cout -40 % 7 : n endl; /(-5) n = -40 % -7; cout -40 % -7 : n endl; /(-5) ,( 2.) % 取余,() 取作為表達(dá)式的值,然后 () 先;然后取作為表達(dá)式的值 () ??; () ,取 例: int a=3; int b=+a; couta“ “bendl; int c=a+; couta“ “cendl;,4 5 4,、增量和減量,,.賦值運(yùn)算 = 賦值運(yùn)算符用于將一個數(shù)據(jù)傳給一個變量。 例如: int x; x = 5; 將值 5 傳給變量 x。其中=號即賦值運(yùn)算符。 A: (1)
43、 雙目運(yùn)算符,從右到左 d=a=b (2) 賦值操作是一個表達(dá)式, 每個表達(dá)式在求值后都有一個確定的值,其值為賦值號左邊表達(dá)式的值 例:cout(x=5)endl; (3) 當(dāng)賦值號兩邊類型不一至?xí)r,根據(jù)左邊類型轉(zhuǎn),int a=10; float x=70000.5;x = a;將 a 的值 10 賦給 x,x 的值為 10.0。 int a=10; float x=70000.5; a = x;將 x 的值 70000.5 賦給 a,但 70000.5 超過了 int 的取值范圍,于是將超過的部分扔掉了,a 是多少不知道了。 特別注意,上面的賦值語句,編譯時是可以通過的。,復(fù)合的賦值運(yùn)算符,
44、有10種復(fù)合運(yùn)算符:+=, -=, *=, /=, %=,=, x+=x-=x*x; 若x為整型變量,則上述語句執(zhí)行后 x 的值是_(4)_。 A. 36 B. -60C. 60D. -24,B,、逗號運(yùn)算和逗號表達(dá)式,格式: 表達(dá)式1,表達(dá)式2 求解順序及結(jié)果: 先求解1,再求解2,最終結(jié)果為表達(dá)式2的值 例 a=3*5,a*4 最終結(jié)果為60 例 2 int a, b, c; d=(a=1, b=a+2 , c=b+3 ); coutdendl; ,Page 115,、關(guān)系運(yùn)算與關(guān)系表達(dá)式,用關(guān)系運(yùn)算符將兩個表達(dá)式連接起來,就是關(guān)系表達(dá)式 關(guān)系運(yùn)算是比較簡單的一種邏輯運(yùn)算,優(yōu)先次序?yàn)椋?=
45、 = != 優(yōu)先級相同(高) 優(yōu)先級相同(低) 關(guān)系表達(dá)式是一種最簡單的邏輯表達(dá)式 其結(jié)果類型為 bool,值只能為 true 或 false。 例如:ab,c=a+b,x+y=3,邏輯運(yùn)算與邏輯表達(dá)式,邏輯運(yùn)算符: !(非) = !=; else x=b;,注意:(1)條件運(yùn)算符優(yōu)于賦值運(yùn)算符比關(guān)系運(yùn)算符和算術(shù)運(yùn)算符都低 例 max=(ab)?a:b+1 (2)條件運(yùn)算符的結(jié)合性為“自右向左” 例ab?a:cd?c:d 即 ab?a:(cd?c:d) (3) 條件表達(dá)式與一般if的語句的關(guān)系 coutb?a:b; ()表達(dá)式2、3的類型可以不同,條件表達(dá)式的最終類型為 2 和 3 中較高的類
46、型。,、sizeof 操作符,語法形式sizeof (類型名)或 sizeof (表達(dá)式) 結(jié)果值:“類型名”所指定的類型或“表達(dá)式”的結(jié)果類型所占的字節(jié)數(shù)。 例:coutsizeof(double)endl;,、位運(yùn)算按位與(,位運(yùn)算按位異或(),運(yùn)算規(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 1 0 0 1 1,位運(yùn)算按位異或(),用途: 使特定位翻轉(zhuǎn)(與0異或保持原值,與1異或取反) 例如:要使 0
47、1111010 低四位翻轉(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,位運(yùn)算取反(),單目運(yùn)算符:對一個二進(jìn)制數(shù)按位取反。 例: 025:0000000000010101 025:1111111111101010,位運(yùn)算移位,左移運(yùn)算() 右移后,低位:舍棄 高位:無符號數(shù):補(bǔ)0 有符號數(shù):補(bǔ)“符號位”,例1:,char a=-8; cout2)endl;,例2:,21,9、運(yùn)算符優(yōu)先級,括號 +,-,sizeof *, /, % +, - =, != 位運(yùn)算 float x=10; x=(float)a+a/b; (19.0),賦值
48、語句,格式: 賦值表達(dá)式; 賦值語句與賦值表達(dá)式的區(qū)別: 賦值表達(dá)式可以包含在其它表達(dá)式中,而賦值語句不可。 例:if (a=b)0) t=a; 不可寫為:if (a=b;)0) t=a;,這是C中新加的非常簡單易用的輸入、輸出方式, C+中沒有專門的輸入輸出語句,是用I/O流類來實(shí)現(xiàn)。 在程序的開頭增加一行: #include 1)用插入操作符“”向標(biāo)準(zhǔn)輸出流cout中插入字符。 向標(biāo)準(zhǔn)輸出設(shè)備(顯示器)輸出 例:int x; cout“x=“x;,簡單的輸入、輸出,2) 用抽取操作符“”從標(biāo)準(zhǔn)輸入流cin中抽取字符 從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)輸入 例:int x; cinx; int a,b;
49、 cinab;,) 使用控制符 有時缺省輸出格式不能滿足要求,這時可以用控制符控制輸出的格式。 P表2-。 在程序的開頭增加一行: #include,例:,#include #include void main() coutsetw(5)setprecision(3)3.1415endl; 3.14,2.5算法的基本控制結(jié)構(gòu),問題的提出: (1) -1 (x0) (2)統(tǒng)計任意一個人群的平均身高 算法 算法的基本控制結(jié)構(gòu): 順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 程序流程圖,if (表達(dá)式) 語句 例:if (xy) couty) coutx; else couty; if (表達(dá)式1) 語句1else
50、 if (表達(dá)式2) 語句2else if (表達(dá)式3) 語句3 else 語句 n,2.4.1 if 語句 三種形式, (條件表達(dá)式) 語句; 或(條件表達(dá)式) 語句; 或(條件表達(dá)式);空語句作中的語句 語句;,例(判輸入是否合理) #include void main( ) unsigned int age; cout age; if (age10) cout The age may be wrong; ,#include void main() int year; cout year; / think about the sequence of the logical expressi
51、on if (year %4 = 0 ,ifelse語句 if(條件表達(dá)式) 語句; else 語句;,例判閏年,一般形式 if ( ) if ( ) 語句 1 else 語句 2 else if ( ) 語句 3 else 語句 4 注意 語句 1、2、3、4 可以是復(fù)合語句,每層的 if 與 else 配對,或用 來確定層次關(guān)系。,int x=20; if(x=0) if(x50) cout“x is okn”; else cout“x is not okn”;,If 語句的嵌套二義性 因?yàn)?if 可以嵌套,所有在嵌套時有時會出 歧義, 例如上例中,else 是與第一個 if 配對, 還是
52、與第二個 if 配對? 這種時候,系統(tǒng)就認(rèn)為 :else 與最近的一個 if 相對應(yīng),二義性: (1) if() if() coutendl;/輸出能被整除,能被整除 else coutendl;/輸出能被整除,不能被整除 (2) if() if() coutendl; /輸出能被整除,能被整除 else coutendl;/輸出不能被整除不管是否被整除,例2-3 輸入兩個整數(shù),比較兩個數(shù)的大小。,#include void main( ) int x,y; coutxy; if (x!=y) if (xy) coutyendl; else coutxyendl; else coutx=yen
53、dl; ,運(yùn)行結(jié)果1: Enter x and y:5 8 xy,#include void main( ) int x,y,z; cinxyz; int max=x; If (zy) if(zx) max=z; else if(yx) max=y; coutmax; ,功能:在三個數(shù)中取最大的,#include void main( ) int x,y,z; cinxyz; int max=x; If (ymax) max=y; if(zmax) max=z; coutmax; ,#include void main() unsigned int amount = 0; float tota
54、l=0 ; cout amount; if (amount 10) total = 5.88 * long(amount); else if (amount = 100) total = 5.68 * long(amount); else total = 5.68 * 0.95 * long(amount); cout Pay the money : total Please; ,例 / 5.88 * amount amount 100,if(條件) 語句; else if(條件) 語句; else if (條件3) 語句3; 語句;,如何解決多分之問題?,int grade; if(grad
55、e=85,一般形式 switch (表達(dá)式) case 常量表達(dá)式 1:語句1 case 常量表達(dá)式 2:語句2 case 常量表達(dá)式 n:語句n default : 語句n+1 ,2.4.2 switch 語句,執(zhí)行順序 以case中的常量表達(dá)式值為入口標(biāo)號,由此開始順序執(zhí)行。因此,每個case分支最后應(yīng)該加break語句。,switch(表達(dá)式) case常量表達(dá)式1:語句組1 case常量表達(dá)式2:語句組2 case常量表達(dá)式N:語句組N default:語句組N+1 ,k=k1 k=k2 k=k3 k=k4,A1,A2,A3,A4,k,特殊的多分支結(jié)構(gòu),例2-4 輸入一個06的整數(shù),轉(zhuǎn)換成星期輸出。,#include 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; case 4:cout Thursday endl; break; case 5:cout Friday endl; break; case 6:cout Saturday endl
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 苧麻繡花面料項目投資可行性研究分析報告(2024-2030版)
- 云南省宣威市第八中學(xué)2025年化學(xué)高一下期末預(yù)測試題含解析
- 2024年中國水溶膜行業(yè)調(diào)查報告
- 陳設(shè)擺件行業(yè)深度研究分析報告(2024-2030版)
- 鍋爐行業(yè)風(fēng)險分析報告
- 特種設(shè)備風(fēng)險管控制度
- 幼兒園年度安全工作總結(jié)6
- 廚房月工作總結(jié)與計劃
- 醫(yī)療健康領(lǐng)域在線教育的未來展望與挑戰(zhàn)
- 智慧城市公共服務(wù)系統(tǒng)的信息安全建設(shè)
- 信訪工作法治化培訓(xùn)講座
- 急性右心衰的治療與護(hù)理
- 露天礦山新進(jìn)員工安全培訓(xùn)
- 主播助理合同范本
- 制約理論(TOC)驅(qū)動制造業(yè)突破性增長
- 湖南省2024年普通高等學(xué)校對口升學(xué)旅游專業(yè)
- 氨甲環(huán)酸用藥護(hù)理
- 2025年遼寧沈陽地鐵集團(tuán)有限公司所屬分公司招聘筆試參考題庫附帶答案詳解
- 車間主任轉(zhuǎn)正述職報告
- 靜脈采血并發(fā)癥預(yù)防與處理
- 特殊兒童融合教育培訓(xùn)
評論
0/150
提交評論