C需语言程序中的基本控制结构有哪些,C语言程序的基本控制结构1.ppt
第三講 C語(yǔ)言程序的 基本控制結(jié)構(gòu),參考書 《計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)》第三章 《C程序設(shè)計(jì)》第四章、第五章,本講主要內(nèi)容,結(jié)構(gòu)化程序設(shè)計(jì) if 語(yǔ)句 switch 語(yǔ)句 while 語(yǔ)句 do-while 語(yǔ)句 for 語(yǔ)句 break 和 continue 語(yǔ)句,結(jié)構(gòu)化程序設(shè)計(jì),計(jì)算機(jī)程序=算法+數(shù)據(jù)結(jié)構(gòu) 計(jì)算機(jī)程序設(shè)計(jì)=算法+數(shù)據(jù)結(jié)構(gòu) +程序設(shè)計(jì)方法學(xué),結(jié)構(gòu)化程序設(shè)計(jì) —結(jié)構(gòu)化算法(一),算法就是解決問(wèn)題的方法。 例如:秦九韶在《九章算術(shù)》中記載的,求最大公 約數(shù)的輾轉(zhuǎn)相除法: 第一步:算法開始。 第二步:輸入原始數(shù)據(jù):取得所給定的自然數(shù) m 和 n。 第三步:當(dāng) m≠n 時(shí),順序執(zhí)行第四步;反之,轉(zhuǎn)到第六步。 第四步:若 mn ,則 m←m-n ;否則 n←n-m。 第五步:返回第三步。 第六步:輸出結(jié)果:所求最大公約數(shù)為 m。 第七步:算法結(jié)束。,算法的特征: 有窮性 如:Sin x=x/1-x3/3!+x5/5!-x7/7!+… 不是算法。 N!=1×2×3×…×N 是算法。 確定性 如:菜譜中說(shuō)“加少許鹽”不嚴(yán)格,不是算法。 可執(zhí)行性 0個(gè)或多個(gè)輸入 1個(gè)或多個(gè)輸出,結(jié)構(gòu)化程序設(shè)計(jì) —結(jié)構(gòu)化算法(二),算法類型: 數(shù)值算法、非數(shù)值算法。 基本結(jié)構(gòu): 結(jié)構(gòu)化算法必須只能由下列三種基本控制 結(jié)構(gòu)所構(gòu)成: 順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu),結(jié)構(gòu)化程序設(shè)計(jì) —結(jié)構(gòu)化算法(三),結(jié)構(gòu)化程序設(shè)計(jì) —結(jié)構(gòu)化算法(三),結(jié)構(gòu)化算法的本質(zhì)屬性: 有且僅有一個(gè)入口 有且僅有一個(gè)出口 無(wú)死塊(即永遠(yuǎn)無(wú)法執(zhí)行到的塊) 無(wú)死循環(huán)塊,算法描述工具: 流程圖 N-S圖 PDL 語(yǔ)言,結(jié)構(gòu)化程序設(shè)計(jì) —結(jié)構(gòu)化算法(四),結(jié)構(gòu)化程序設(shè)計(jì) —結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)與方法,模塊化結(jié)構(gòu)設(shè)計(jì)方法 在程序設(shè)計(jì)中,將一個(gè)復(fù)雜的算法(或程序)分解成若干個(gè)相對(duì)獨(dú)立、功能單一的模塊,利用這些模塊即可適當(dāng)?shù)亟M合成所需要的全局算法(或)程序。 自頂向下結(jié)構(gòu)設(shè)計(jì)方法 從總體出發(fā),居高臨下,逐層分解和逐步細(xì)化。 逐步求精結(jié)構(gòu)設(shè)計(jì)方法 實(shí)質(zhì)上也是一種自頂向下的設(shè)計(jì)方法。 首先拋開細(xì)節(jié)設(shè)計(jì)出抽象算法,然后把抽象數(shù)據(jù)和操作逐步具體化,直到可以由計(jì)算機(jī)具體實(shí)現(xiàn)為止。,if (表達(dá)式) 語(yǔ)句 例:if (xy) printf(“%d“,x); if (表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2 例:if (xy) printf(“%d“,x); else printf(“%d“,y); if (表達(dá)式1) 語(yǔ)句1 else if (表達(dá)式2) 語(yǔ)句2 else if (表達(dá)式2) 語(yǔ)句3 … else 語(yǔ)句 n,if 語(yǔ)句 ——三種形式,一般形式 if ( ) if ( ) 語(yǔ)句 1 else 語(yǔ)句 2 else if ( ) 語(yǔ)句 3 else 語(yǔ)句 4 注意 語(yǔ)句 1、2、3、4 可以是復(fù)合語(yǔ)句每層的 if 與 else 配對(duì),或用 { } 來(lái)確定層次關(guān)系,條件運(yùn)算符,一般形式: 表達(dá)式1?表達(dá)式2:表達(dá)式3 執(zhí)行順序: 先求解表達(dá)式1,若值為非0,則求解表達(dá)式2,表達(dá)式2的值為最終結(jié)果; 若值為0,則求解表達(dá)式3,表達(dá)式3的值為最終結(jié)果。 注意: 條件運(yùn)算符優(yōu)級(jí)高于賦值運(yùn)算符,低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符; 結(jié)合方向?yàn)樽杂抑磷?#xff1b; 只能取代簡(jiǎn)單的if語(yǔ)句:內(nèi)嵌語(yǔ)句為賦值語(yǔ)句,且兩個(gè)分支都給同一 個(gè)變量賦值; 表達(dá)式1、2、3的類型可以不同,條件表達(dá)式的最終類型為 2 和 3 中 較高的類型。,一般形式 switch (表達(dá)式) { case 常量表達(dá)式 1:語(yǔ)句1 case 常量表達(dá)式 2:語(yǔ)句2 ┆ case 常量表達(dá)式 n:語(yǔ)句n default : 語(yǔ)句n+1 },switch 語(yǔ)句,,,,,,執(zhí)行順序 以case中的常量表達(dá)式值為入口標(biāo)號(hào),由此開始順序執(zhí)行。 因此,每個(gè)case分支最后應(yīng)該加break語(yǔ)句。,使用switch語(yǔ)句應(yīng)注意的問(wèn)題,case分支可包含多個(gè)語(yǔ)句,且不用{ } 表達(dá)式、判斷值都是int型或char型 若干分支執(zhí)行內(nèi)容相同可共用一組語(yǔ)句,while 語(yǔ)句,形式 while (表達(dá)式) 語(yǔ)句,執(zhí)行順序 先判斷表達(dá)式的值,非 0 再執(zhí)行語(yǔ)句。 —— 實(shí)現(xiàn)“當(dāng)型”循環(huán)。,類似于直到型循環(huán),但不同。,do-while 語(yǔ)句,一般形式 do 語(yǔ)句 while (表達(dá)式),執(zhí)行順序 先執(zhí)行語(yǔ)句,后判斷條件。 表達(dá)式非0時(shí),繼續(xù)執(zhí)行循環(huán)體。 while 語(yǔ)句與 do-while 語(yǔ)句的比較,,While 語(yǔ)句執(zhí)行順序 先判斷表達(dá)式的值,非 0 再執(zhí)行語(yǔ)句 —— 實(shí)現(xiàn)“當(dāng)型”循環(huán)。,直到型循環(huán)是當(dāng)條件表達(dá)式為“真”時(shí),停止循環(huán)。,,for 語(yǔ)句,形式 for (表達(dá)式1;表達(dá)式2;表達(dá)式3) 語(yǔ)句,流程圖 P70 圖5.6 注意事項(xiàng) P70-71,break 和 continue 語(yǔ)句,break語(yǔ)句 使程序從循環(huán)體和switch語(yǔ)句內(nèi)跳出,繼續(xù)執(zhí) 行邏輯上的下一條語(yǔ)句。不能用在別處。 continue 語(yǔ)句 結(jié)束本次循環(huán),接著進(jìn)行是否執(zhí)行下一次循環(huán) 的判斷。,《C 程序設(shè)計(jì)》 P64 4.5- 4.8 《C 程序設(shè)計(jì)》 P79 5.2 , 5.6 , 5.10 , 5.15 復(fù)習(xí):《C 程序設(shè)計(jì)》第四、五章 《計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)》第三章 熟悉一種C語(yǔ)言編譯環(huán)境的調(diào)試方法。,作 業(yè),
展開閱讀全文
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的C需语言程序中的基本控制结构有哪些,C语言程序的基本控制结构1.ppt的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 快手极速版保存作品怎么取消水印设置
- 下一篇: flutter 全屏背景图(包括appb