




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第3 3章章 程序的控制結(jié)構(gòu)程序的控制結(jié)構(gòu)2本本 章章 主主 要要 內(nèi)內(nèi) 容容u3.1 3.1 算法算法u3.2 3.2 語句概述語句概述u3.3 3.3 順序結(jié)構(gòu)順序結(jié)構(gòu)u3.5 3.5 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)u3.6 3.6 綜合例子綜合例子u3.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu)33.1 3.1 算算 法法4 3.1 3.1 算算 法法53.1.1 3.1.1 算法的特性算法的特性 63.1.2 3.1.2 算法的表示算法的表示73.1.2 3.1.2 算法的表示算法的表示83.1.2 3.1.2 算法的表示算法的表示93.1.2 3.1.2 算法的表示算法的表示符號名稱用途起止框起止框用于描述控
2、制流程的開始和結(jié)束:開始框內(nèi)標(biāo)用于描述控制流程的開始和結(jié)束:開始框內(nèi)標(biāo)注注“開始開始”字樣,結(jié)束框內(nèi)標(biāo)注字樣,結(jié)束框內(nèi)標(biāo)注“結(jié)束結(jié)束”字樣字樣輸入輸出輸入輸出框框用于表示數(shù)據(jù)的輸入和輸出:框內(nèi)標(biāo)明輸入輸用于表示數(shù)據(jù)的輸入和輸出:框內(nèi)標(biāo)明輸入輸出的變量出的變量處理框處理框用于描述數(shù)據(jù)加工和處理:常采用文字加符號用于描述數(shù)據(jù)加工和處理:常采用文字加符號來表示計(jì)算公式和賦值操作來表示計(jì)算公式和賦值操作判斷框判斷框用于描述條件判斷和轉(zhuǎn)移關(guān)系:框內(nèi)描述條件用于描述條件判斷和轉(zhuǎn)移關(guān)系:框內(nèi)描述條件關(guān)系,兩個(gè)流出邊分別標(biāo)注關(guān)系,兩個(gè)流出邊分別標(biāo)注 Yes/NoYes/No、Y/NY/N、TrTrue/Fal
3、seue/False或或“真真/ /假假”,表示條件成立或不成立,表示條件成立或不成立時(shí)的轉(zhuǎn)移關(guān)系時(shí)的轉(zhuǎn)移關(guān)系調(diào)用框調(diào)用框用于描述過程調(diào)用或模塊調(diào)用:框內(nèi)標(biāo)注函數(shù)用于描述過程調(diào)用或模塊調(diào)用:框內(nèi)標(biāo)注函數(shù)或模塊名或模塊名流程線流程線用于連接兩個(gè)圖形框:箭頭描述處理過程的轉(zhuǎn)用于連接兩個(gè)圖形框:箭頭描述處理過程的轉(zhuǎn)移方向移方向連接框連接框用于描述多張流程圖的連接:應(yīng)附加文字標(biāo)識用于描述多張流程圖的連接:應(yīng)附加文字標(biāo)識連接關(guān)系連接關(guān)系傳統(tǒng)流程圖的流程:傳統(tǒng)流程圖的流程: 這種如同亂麻一樣的算法稱為這種如同亂麻一樣的算法稱為BSBS型算法,意為型算法,意為一碗面條一碗面條(A Bowl of Spagh
4、etti)(A Bowl of Spaghetti),亂無頭緒。,亂無頭緒。缺點(diǎn):難以閱讀、修改,使算法的可靠性和可維護(hù)性難以保證。解決辦法:必須限制箭頭的濫用,即不允許無規(guī)律地使流程隨意轉(zhuǎn)向,只能順序地進(jìn)行下去。 三種基本結(jié)構(gòu)和改進(jìn)的流程圖三種基本結(jié)構(gòu)和改進(jìn)的流程圖 BohraBohra和和JacopiniJacopini提出了以下三種基本結(jié)構(gòu):提出了以下三種基本結(jié)構(gòu): 順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu) 用這三種基本結(jié)構(gòu)作為表示一個(gè)良好算法的用這三種基本結(jié)構(gòu)作為表示一個(gè)良好算法的基本單元。基本單元。3.1.2 3.1.2 算法的表示算法的表示三種基本結(jié)構(gòu)的圖示:三種基
5、本結(jié)構(gòu)的圖示: 順序結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu)3.1.2 3.1.2 算法的表示算法的表示3.1.2 3.1.2 算法的表示算法的表示當(dāng)型當(dāng)型(While型型)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 直到型直到型(Until型型)循環(huán)循環(huán) 三種基本結(jié)構(gòu)的共同特點(diǎn):三種基本結(jié)構(gòu)的共同特點(diǎn):(1)(1)只有一個(gè)入口。只有一個(gè)入口。 (2)(2)只有一個(gè)出口。(只有一個(gè)出口。(注意:注意:一個(gè)菱形判斷框有兩個(gè)一個(gè)菱形判斷框有兩個(gè)出口,而一個(gè)選擇結(jié)構(gòu)只有一個(gè)出口。不要將菱出口,而一個(gè)選擇結(jié)構(gòu)只有一個(gè)出口。不要將菱形框的出口和選擇結(jié)構(gòu)的出口混淆。)形框的出口和選擇結(jié)構(gòu)的出口混淆。)(3)(3)結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行
6、到。結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到。(4)(4)結(jié)構(gòu)內(nèi)不存在結(jié)構(gòu)內(nèi)不存在“死循環(huán)死循環(huán)”( (無終止的循環(huán)無終止的循環(huán)) )。 3.1.2 3.1.2 算法的表示算法的表示 圖中沒有一條從圖中沒有一條從入口到出口的路徑通入口到出口的路徑通過過A A框???。不正確的流程表示:不正確的流程表示:流程內(nèi)的死循環(huán)流程內(nèi)的死循環(huán)3.1.2 3.1.2 算法的表示算法的表示l由三種基本結(jié)構(gòu)順序組成的算法結(jié)構(gòu),可由三種基本結(jié)構(gòu)順序組成的算法結(jié)構(gòu),可以解決任何復(fù)雜的問題。由基本結(jié)構(gòu)所構(gòu)以解決任何復(fù)雜的問題。由基本結(jié)構(gòu)所構(gòu)成的算法屬于成的算法屬于“結(jié)構(gòu)化結(jié)構(gòu)化”的算法,它不存的算法,它不存在無規(guī)律的轉(zhuǎn)向,只在
7、本基本結(jié)構(gòu)內(nèi)才允在無規(guī)律的轉(zhuǎn)向,只在本基本結(jié)構(gòu)內(nèi)才允許存在分支和向前或向后的跳轉(zhuǎn)。許存在分支和向前或向后的跳轉(zhuǎn)。3.1.2 3.1.2 算法的表示算法的表示l只要具有上述四個(gè)只要具有上述四個(gè)特點(diǎn)的都可以作為特點(diǎn)的都可以作為基本結(jié)構(gòu)??梢宰曰窘Y(jié)構(gòu)??梢宰约憾x基本結(jié)構(gòu),己定義基本結(jié)構(gòu),并由這些基本結(jié)構(gòu)并由這些基本結(jié)構(gòu)組成結(jié)構(gòu)化程序。組成結(jié)構(gòu)化程序。上圖符合基本結(jié)構(gòu)的特點(diǎn)上圖符合基本結(jié)構(gòu)的特點(diǎn)3.1.2 3.1.2 算法的表示算法的表示 右圖是一個(gè)多分右圖是一個(gè)多分支選擇結(jié)構(gòu),根據(jù)表支選擇結(jié)構(gòu),根據(jù)表達(dá)式的值決定執(zhí)行路達(dá)式的值決定執(zhí)行路線。虛線框內(nèi)的結(jié)構(gòu)線。虛線框內(nèi)的結(jié)構(gòu)一個(gè)入口一個(gè)出口,一個(gè)入
8、口一個(gè)出口,并且有上述全部的四并且有上述全部的四個(gè)特點(diǎn)。由此構(gòu)成的個(gè)特點(diǎn)。由此構(gòu)成的算法結(jié)構(gòu)也是結(jié)構(gòu)化算法結(jié)構(gòu)也是結(jié)構(gòu)化的算法??梢哉J(rèn)為是的算法??梢哉J(rèn)為是由三種基本結(jié)構(gòu)所派由三種基本結(jié)構(gòu)所派生出來的。生出來的。3.1.2 3.1.2 算法的表示算法的表示開開始始sum=0i=1i=100NYsum=sum+ii=i+1輸輸出出sum的的值值結(jié)結(jié)束束圖圖3-1 例例3-2算算法法描描述述203.1.2 3.1.2 算法的表示算法的表示 N-SN-S流程圖用以下的流程圖符號:流程圖用以下的流程圖符號: (1)順序結(jié)構(gòu)順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)選擇結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)3.1.2 3.1.2 算法
9、的表示算法的表示 用三種用三種N-SN-S流程圖中的基本框,可以組成復(fù)雜的流程圖中的基本框,可以組成復(fù)雜的N-SN-S流程圖。圖中的流程圖。圖中的A A框或框或B B框,可以是一個(gè)簡單的操框,可以是一個(gè)簡單的操作,也可以是三個(gè)基本結(jié)構(gòu)之一。作,也可以是三個(gè)基本結(jié)構(gòu)之一。 A框可以是一個(gè)選擇結(jié)構(gòu)框可以是一個(gè)選擇結(jié)構(gòu) B框可以是一個(gè)循環(huán)結(jié)構(gòu)框可以是一個(gè)循環(huán)結(jié)構(gòu) 3.1.2 3.1.2 算法的表示算法的表示3.1.2 3.1.2 算法的表示算法的表示例:判定例:判定2000200025002500年中的每一年是否閏年,年中的每一年是否閏年,并將結(jié)果輸出。并將結(jié)果輸出。 分析:分析:閏年的條件是:閏年
10、的條件是:(1)(1)能被能被4 4整除,但不能整除,但不能被被100100整除的年份都是閏年,如整除的年份都是閏年,如1996,20041996,2004年年是閏年;是閏年;(2)(2)能被能被100100整除,又能被整除,又能被400400整除的整除的年份是閏年。如年份是閏年。如1600,20001600,2000年是閏年。不符合年是閏年。不符合這兩個(gè)條件的年份不是閏年。這兩個(gè)條件的年份不是閏年。 3.1.2 3.1.2 算法的表示算法的表示設(shè)設(shè)y y為被檢測的年份,算法用自然語言可表示如下:為被檢測的年份,算法用自然語言可表示如下:S1S1:2000y2000yS2S2:若:若y y不能
11、被不能被4 4整除,則輸出整除,則輸出y“y“不是閏年不是閏年”。然后轉(zhuǎn)。然后轉(zhuǎn)到到S6S6。S3S3:若:若y y能被能被4 4整除,不能被整除,不能被100100整除,則輸出整除,則輸出y“y“是閏是閏年年”。然后轉(zhuǎn)到。然后轉(zhuǎn)到S6S6。S4S4:若:若y y能被能被100100整除,又能被整除,又能被400400整除,輸出整除,輸出y“y“是閏是閏年年”, ,否則輸出否則輸出“不是閏年不是閏年”。然后轉(zhuǎn)到。然后轉(zhuǎn)到S6S6。S5: S5: 輸出輸出y“y“不是閏年不是閏年”。S6S6:y+1yy+1yS7S7:當(dāng):當(dāng)y2500y2500時(shí),轉(zhuǎn)時(shí),轉(zhuǎn)S2S2繼續(xù)執(zhí)行,如果繼續(xù)執(zhí)行,如果y
12、y25002500,算,算法停止。法停止。3.1.2 3.1.2 算法的表示算法的表示 以上算法中每做一步都分別分離出一些范圍(巳能判定為閏年或非閏年),逐步縮小范圍,直至執(zhí)行S5時(shí),只可能是非閏年。 “其它”包括能被4整除,又能被100整除,而不能被400整除的那些年份(如1800、1900、2100) 是非閏年。3.1.2 3.1.2 算法的表示算法的表示用流程圖表示算法要比用文字描述算法邏輯清晰、易于理解。 將判定將判定閏年的算閏年的算法用流程法用流程圖表示。圖表示。 將判將判定閏年定閏年的算法的算法用用N-SN-S圖表示圖表示3.1.2 3.1.2 算法的表示算法的表示 例例: : 對
13、一個(gè)大于或等于對一個(gè)大于或等于3 3的正整數(shù),判斷它是的正整數(shù),判斷它是不是一個(gè)素?cái)?shù)。不是一個(gè)素?cái)?shù)。 概念:概念:所謂素?cái)?shù),是指除了所謂素?cái)?shù),是指除了1 1和該數(shù)本身之外,不和該數(shù)本身之外,不能被其它任何整數(shù)整除的數(shù)。例如,能被其它任何整數(shù)整除的數(shù)。例如,1313是素?cái)?shù)。是素?cái)?shù)。因?yàn)樗荒鼙灰驗(yàn)樗荒鼙? 2,3 3,4 4,1212整除。整除。分析:分析:判斷一個(gè)數(shù)判斷一個(gè)數(shù)n(n3)n(n3)是否素?cái)?shù)的方法:是否素?cái)?shù)的方法: 將將n n作為被除數(shù),將作為被除數(shù),將2 2到到(n-1)(n-1)各個(gè)整數(shù)輪流作各個(gè)整數(shù)輪流作為除數(shù),如果都不能被整除,則為除數(shù),如果都不能被整除,則n n為素?cái)?shù)。
14、為素?cái)?shù)。 3.1.2 3.1.2 算法的表示算法的表示算法用自然語言可表示如下:算法用自然語言可表示如下:S1S1:輸入:輸入n n的值的值S2S2:i=2i=2(i i作為除數(shù))作為除數(shù))S3S3:n n被被i i除,得余數(shù)除,得余數(shù)r rS4S4:如果:如果r=0r=0,表示,表示n n能被能被i i整除,則打印整除,則打印n“n“不是素不是素?cái)?shù)數(shù)”,算法結(jié)束。否則執(zhí)行,算法結(jié)束。否則執(zhí)行S5S5S5S5:i+1ii+1iS6S6:如果:如果in-1in-1,返回,返回S3S3。否則打印。否則打印n“n“是素?cái)?shù)是素?cái)?shù)”。然后結(jié)束。然后結(jié)束。3.1.2 3.1.2 算法的表示算法的表示 實(shí)際
15、上,實(shí)際上,n n不必被不必被2 2到到(n-1)(n-1)的整數(shù)除,只需被的整數(shù)除,只需被2 2到到n/2n/2間整數(shù)除,甚至只需被間整數(shù)除,甚至只需被2 2到到 之間的整數(shù)除之間的整數(shù)除即可。即可。n傳統(tǒng)流程圖分析:傳統(tǒng)流程圖分析:出口出口1出口出口2此圖不符合基本結(jié)構(gòu)特點(diǎn)!此圖不符合基本結(jié)構(gòu)特點(diǎn)! 由于不能分解為三種基本結(jié)由于不能分解為三種基本結(jié)構(gòu),就無法直接用構(gòu),就無法直接用N-SN-S流程流程圖的三種基本結(jié)構(gòu)的符號來圖的三種基本結(jié)構(gòu)的符號來表示。因此,應(yīng)當(dāng)先作必要表示。因此,應(yīng)當(dāng)先作必要的變換。的變換。傳統(tǒng)流程圖變換為:傳統(tǒng)流程圖變換為:一個(gè)出口一個(gè)出口3.1.2 3.1.2 算法的
16、表示算法的表示用用N-S流程圖流程圖表示:表示:343.1.2 3.1.2 算法的表示算法的表示353.1.2 3.1.2 算法的表示算法的表示寫寫出出C C程序只是程序只是描述描述了了算法,只有算法,只有運(yùn)運(yùn)行程序才行程序才是是實(shí)現(xiàn)實(shí)現(xiàn)算法算法36本本 章章 主主 要要 內(nèi)內(nèi) 容容u3.1 3.1 算法算法u3.2 3.2 語句概述語句概述u3.3 3.3 順序結(jié)構(gòu)順序結(jié)構(gòu)u3.5 3.5 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)u3.6 3.6 綜合例子綜合例子u3.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu)373.2 3.2 語句概述語句概述383.2 3.2 語句概述語句概述393.2 3.2 語句概述語句概述40本本 章
17、章 主主 要要 內(nèi)內(nèi) 容容u3.1 3.1 算法算法u3.2 3.2 語句概述語句概述u3.3 3.3 順序結(jié)構(gòu)順序結(jié)構(gòu)u3.5 3.5 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)u3.6 3.6 綜合例子綜合例子u3.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu)413.3 3.3 順序結(jié)構(gòu)順序結(jié)構(gòu)AB圖圖 3-3 順順序序結(jié)結(jié)構(gòu)構(gòu)AB423.3 3.3 順序結(jié)構(gòu)順序結(jié)構(gòu)l43本本 章章 主主 要要 內(nèi)內(nèi) 容容u3.1 3.1 算法算法u3.2 3.2 語句概述語句概述u3.3 3.3 順序結(jié)構(gòu)順序結(jié)構(gòu)u3.5 3.5 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)u3.6 3.6 綜合例子綜合例子u3.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu)443.4 3.4 選擇結(jié)構(gòu)選擇
18、結(jié)構(gòu)453.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 表表 達(dá)達(dá) 式式語語 句句真真 ( 非非 0 )假假 ( 0 )圖圖 3 -4 ( a ) 單單 分分 支支 if語語 句句463.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 表表 達(dá)達(dá) 式式語語 句句 1真真 ( 非非 0)假假 ( 0)圖圖 3-5( a) 雙雙 分分 支支 if語語 句句語語 句句 2473.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 例3-7 輸入三角形的三邊長,求三角形面積。 分析:與例3-6相比,此例去掉假設(shè)前提:“設(shè)輸入的三條線段能構(gòu)成三角形的三條邊”,因此本題在輸入三條線段后要加入條件判斷其能否構(gòu)成三角形的三條邊,若可以則計(jì)算并輸出面積,否則輸出提
19、示信息。源程序如下:運(yùn)行情況如下:運(yùn)行情況如下:Please input a, b, Please input a, b, c:3,4,5c:3,4,5area= 6.00area= 6.00Please input a, b, Please input a, b, c:1, 2, 3c:1, 2, 3it is not a trilateralit is not a trilateral思考:思考:if if后的后的“ ” ”能否去掉?若去掉,能否去掉?若去掉,表示什么意思?表示什么意思?#include #include #include #include main()main() flo
20、at a, b, c, s, area; float a, b, c, s, area; printf(Please input a, b, c:); printf(Please input a, b, c:); scanf(%f, %f, %f, &a, &b, &c); scanf(%f, %f, %f, &a, &b, &c); if (a+bc & a+cb & b+ca) / if (a+bc & a+cb & b+ca) /* *判判斷斷三三條線條線段能否段能否構(gòu)構(gòu)成成 三角形的三三角形的三條邊條邊*
21、*/ / s=1.0/2 s=1.0/2* *(a+b+c);(a+b+c); area=sqrt(s area=sqrt(s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c);(s-c); printf(area=%7.2f printf(area=%7.2f n, area);n, area); else printf(it is not a trilateral else printf(it is not a trilateral n);n); 483.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 3.if3.if語句的嵌套形式(多分支情況)語句的嵌套形式(多分支情況) 在在if if
22、語句中又包含一個(gè)或多個(gè)語句中又包含一個(gè)或多個(gè)if if語句稱為語句稱為if if語句的嵌套。這語句的嵌套。這種情況主要用來解決多分支情況,種情況主要用來解決多分支情況,if if語句的嵌套有多種的表語句的嵌套有多種的表現(xiàn)形式:現(xiàn)形式: (1 1)下列形式為比較常用的一種:)下列形式為比較常用的一種: if if (表達(dá)式(表達(dá)式1 1) 語句語句1 1 else if else if (表達(dá)式(表達(dá)式2 2) 語句語句2 2 else if else if (表達(dá)式(表達(dá)式3 3) 語句語句3 3 else if else if (表達(dá)式(表達(dá)式mm) 語句語句mm else else 語句語
23、句n n 493.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 例例3-8 3-8 已知學(xué)生的百分制成績,編寫程序按百分制已知學(xué)生的百分制成績,編寫程序按百分制分?jǐn)?shù)進(jìn)行分段評定,給出相應(yīng)的等級:分?jǐn)?shù)大于等于分?jǐn)?shù)進(jìn)行分段評定,給出相應(yīng)的等級:分?jǐn)?shù)大于等于9090,則評定為則評定為AA;分?jǐn)?shù)在;分?jǐn)?shù)在80808989之間,則評定為之間,則評定為BB;分?jǐn)?shù)在分?jǐn)?shù)在70707979之間,則評定為之間,則評定為CC;分?jǐn)?shù)在;分?jǐn)?shù)在60606969之之間,則評定為間,則評定為DD;分?jǐn)?shù)小于;分?jǐn)?shù)小于6060,則評定為,則評定為EE; 分析:這是一個(gè)根據(jù)百分制分?jǐn)?shù)進(jìn)行分段定級的多分支分析:這是一個(gè)根據(jù)百分制分?jǐn)?shù)進(jìn)行分段定級
24、的多分支選擇問題,可利用上面介紹的選擇問題,可利用上面介紹的if if語句的嵌套來解決。語句的嵌套來解決。#include #include main( )main( ) float score; float score; char grade; char grade; printf(Please enter scores:); printf(Please enter scores:); scanf(%f, &score); scanf(%f, &score); if(score100) / if(score100) /* *對輸對輸入入數(shù)數(shù)據(jù)的合法性據(jù)的合法性進(jìn)進(jìn)行行檢查檢查
25、* */ / printf(“Input error! printf(“Input error! n);n); else else if(score=90) grade=A; if(score=90) grade=A; else if(score=80) grade=B; else if(score=80) grade=B;else if(score=70) grade=C;else if(score=70) grade=C; else if(score=60) grade=D; else if(score=60) grade=D; else grade=E; else grade=E; pr
26、intf(%5.1f-%c printf(%5.1f-%c n, score, grade);n, score, grade); 運(yùn)行情況:運(yùn)行情況:Please enter sPlease enter scores:-85cores:-85Input error!Input error!Please enter sPlease enter scores:85cores:85 85.0-B 85.0-BPlease enter sPlease enter scores:100cores:100100.0-A100.0-APlease enter sPlease enter scores:56c
27、ores:56 56.0-E 56.0-E503.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) (2 2)其他形式:)其他形式: 在嵌套內(nèi)將會(huì)出現(xiàn)多個(gè)在嵌套內(nèi)將會(huì)出現(xiàn)多個(gè)if if和多個(gè)和多個(gè)elseelse重疊的情況,這時(shí)要特別注意重疊的情況,這時(shí)要特別注意if if和和elseelse的配對問題。例如:的配對問題。例如: if(if(表達(dá)式表達(dá)式1) 1) if( if(表達(dá)式表達(dá)式2)2) 語句語句1 1; elseelse 語句語句2 2; 其中的其中的elseelse究竟是與哪一個(gè)究竟是與哪一個(gè)if if配對呢配對呢? ?是與表達(dá)式是與表達(dá)式2 2前還是與表達(dá)式前還是與表達(dá)式1 1前的前的if if
28、配對配對? ?語言規(guī)定,從最內(nèi)層開始,語言規(guī)定,從最內(nèi)層開始,elseelse總是與它上面最近的(未總是與它上面最近的(未曾配對的)曾配對的)if if配對配對, ,因此對上述例子應(yīng)按前一種情況理解。因此對上述例子應(yīng)按前一種情況理解。if()if()if()else.else.else.例:例: if (a= b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);修改:修改: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);如果如果ifif與與elseelse的數(shù)目的數(shù)目不一樣不一樣,為實(shí)現(xiàn)程
29、序設(shè)計(jì)者,為實(shí)現(xiàn)程序設(shè)計(jì)者的企圖,可以的企圖,可以加花括弧加花括弧來確定配對關(guān)系。來確定配對關(guān)系。if語句嵌套語句嵌套:if (expr1) if (expr2) statement1 else statement2else if(expr3) statement3 else statement4內(nèi)嵌內(nèi)嵌if內(nèi)嵌內(nèi)嵌ifif (expr1) if (expr2) statement1 else statement2內(nèi)嵌內(nèi)嵌if內(nèi)嵌內(nèi)嵌ifif (expr1) if (expr2) statement1else statement3 if (expr1) statement1else if(ex
30、pr3) statement3 else statement4內(nèi)嵌內(nèi)嵌if533.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 例例3-9 3-9 求三個(gè)數(shù)的最大數(shù)。求三個(gè)數(shù)的最大數(shù)。 分析:假設(shè)所求的三個(gè)數(shù)用變量分析:假設(shè)所求的三個(gè)數(shù)用變量x, y, zx, y, z表示表示, ,三個(gè)數(shù)的最大數(shù)用變?nèi)齻€(gè)數(shù)的最大數(shù)用變量量mm表示。本題有很多種的求法與寫法,下面列出其中幾種,請表示。本題有很多種的求法與寫法,下面列出其中幾種,請讀者進(jìn)行比較理解:讀者進(jìn)行比較理解: 方法方法1 1:用單分支形式:用單分支形式: if (xy & xz) m=x; if (xy & xz) m=x; if (yx
31、 &yz) m=y; if (yx &yz) m=y; if (zy &zx) m=z; if (zy &zx) m=z; 方法方法2 2:用單分支形式:用單分支形式: : m=x; m=x; if (ym) m=y; if (ym) m=y; if (zm) m=z; if (zm) m=z; 方法方法3 3:用雙分支形式:用雙分支形式 if (xy) m=x; if (xy) m=x; else m=y ; else m=y ; if (mz) m=m; if (mz) m=m; else m=z; else m=z; 方法方法4: 4: 用條件表達(dá)式用條件
32、表達(dá)式 m=xy ? x: y;m=xy ? x: y;m=mz ? m: z; m=mz ? m: z; 方法方法5 5:用:用if if語句的嵌套語句的嵌套 if ( xy )if ( xy ) if (xz) m=x; if (xz) m=x; else m=z; else m=z; else else if (yz) m=y; if (yz) m=y; else m=z; else m=z; 方法方法6 6:用:用if if語句的嵌套語句的嵌套m=x;m=x;if (zy)if (zy) if (zx) m=z; if (zx) m=z;else else if (yx) m=y; i
33、f (yx) m=y; 說明說明:上述的:上述的“ ” ”若去掉,結(jié)果就不正若去掉,結(jié)果就不正確了,如:確了,如:x=2,y=3,z=1x=2,y=3,z=1。543.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 3.4.2 switch3.4.2 switch語句語句 語言還提供了另一種用于多分支選擇的語言還提供了另一種用于多分支選擇的switchswitch語句,語句,以代替嵌套的以代替嵌套的if if語句,簡化程序的設(shè)計(jì)。語句,簡化程序的設(shè)計(jì)。switchswitch語句又稱語句又稱為開關(guān)語句,它允許程序根據(jù)表達(dá)式的計(jì)算結(jié)果在多個(gè)為開關(guān)語句,它允許程序根據(jù)表達(dá)式的計(jì)算結(jié)果在多個(gè)分支中進(jìn)行選擇,常用于各種
34、分類、菜單等程序的設(shè)計(jì)。分支中進(jìn)行選擇,常用于各種分類、菜單等程序的設(shè)計(jì)。它的一般形式如下:它的一般形式如下: switch switch (表達(dá)式)(表達(dá)式) case case 常量表達(dá)式常量表達(dá)式1 1:語句序列:語句序列1 1 case case 常量表達(dá)式常量表達(dá)式2 2:語句序列:語句序列2 2 case case 常量表達(dá)式常量表達(dá)式n n:語句序列:語句序列n n default default :語句序列:語句序列n+1n+1 語義:語義:計(jì)算充當(dāng)開關(guān)角色的表達(dá)式的值,并逐個(gè)與其后的常量表計(jì)算充當(dāng)開關(guān)角色的表達(dá)式的值,并逐個(gè)與其后的常量表達(dá)式值相比較,當(dāng)表達(dá)式的值與某個(gè)常量表
35、達(dá)式的值相等時(shí),即按順達(dá)式值相比較,當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),即按順序執(zhí)行此序執(zhí)行此casecase后的所有語句,包括后續(xù)后的所有語句,包括后續(xù)casecase,而不再進(jìn)行判斷,直到,而不再進(jìn)行判斷,直到遇到遇到breakbreak或右花括號或右花括號“”(整個(gè)語句執(zhí)行完畢)為止。如表達(dá)式的(整個(gè)語句執(zhí)行完畢)為止。如表達(dá)式的值與所有值與所有casecase后的常量表達(dá)式均不相同時(shí),則執(zhí)行后的常量表達(dá)式均不相同時(shí),則執(zhí)行defaultdefault后的語句。后的語句。553.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 例例3-10 3-10 用用switchswitch語句改寫例語句改寫例3-
36、83-8。已知學(xué)生的百分制。已知學(xué)生的百分制成績,編寫程序按百分制分?jǐn)?shù)進(jìn)行分段評定,給出相應(yīng)成績,編寫程序按百分制分?jǐn)?shù)進(jìn)行分段評定,給出相應(yīng)的等級:分?jǐn)?shù)大于等于的等級:分?jǐn)?shù)大于等于9090,則評定為,則評定為AA;分?jǐn)?shù)在;分?jǐn)?shù)在8 80 08989之間,則評定為之間,則評定為BB;分?jǐn)?shù)在;分?jǐn)?shù)在70707979之間,則之間,則評定為評定為CC;分?jǐn)?shù)在;分?jǐn)?shù)在60606969之間,則評定為之間,則評定為DD;分?jǐn)?shù)小于分?jǐn)?shù)小于6060,則評定為,則評定為EE; 分析:使用分析:使用switchswitch語句時(shí)要注意到語句時(shí)要注意到casecase后的常量表后的常量表達(dá)式最終結(jié)果只能是某一個(gè)值(點(diǎn)
37、),不能表示區(qū)間達(dá)式最終結(jié)果只能是某一個(gè)值(點(diǎn)),不能表示區(qū)間(范圍)。因此要解決本例中的根據(jù)分?jǐn)?shù)進(jìn)行分段定級,(范圍)。因此要解決本例中的根據(jù)分?jǐn)?shù)進(jìn)行分段定級,必須設(shè)法完成從區(qū)間到點(diǎn)的轉(zhuǎn)化。其傳統(tǒng)流程圖如圖必須設(shè)法完成從區(qū)間到點(diǎn)的轉(zhuǎn)化。其傳統(tǒng)流程圖如圖3-3-7 7。輸輸出出“A”10,9(a)輸輸出出“B”輸輸出出“C”輸輸出出“D”輸輸出出“E”85,4,3,2,1,0其其它它圖圖 3-7 例例 3-10 算算 法法 描描 述述 input invalid scoretemp67563.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu)源程序如下:源程序如下: #include #include main()
38、main() float score; float score; int temp; int temp; printf(Please input score:); printf(Please input score:); scanf(%f, &score); scanf(%f, &score); if(score100) temp=-1; if(score100) temp=-1; else else temp=(int)score/10temp=(int)score/10; /; /* *采用整除采用整除方法,方法,將區(qū)間將區(qū)間取取值轉(zhuǎn)值轉(zhuǎn)化到點(diǎn)上化到點(diǎn)上* */ / swi
39、tch( temp ) switch( temp ) case 10: case 10: case 9: printf(A case 9: printf(A n); break;n); break; case 8: printf(B case 8: printf(B n); break;n); break; case 7: printf(C case 7: printf(C n); break;n); break; case 6: printf(D case 6: printf(D n); break;n); break; case 5: case 5: case 4: case 4: cas
40、e 3: case 3: case 2: case 2: case 1: case 1: case 0: printf(E case 0: printf(E n); break;n); break; default: printf(Input invalid score default: printf(Input invalid score n); /n); /* *處處理非法理非法數(shù)數(shù)據(jù)據(jù)* */ / 運(yùn)運(yùn)行情行情況況如下:如下:Please input score:-85Please input score:-85Input invalid scoreInput invalid score
41、Please input score:85Please input score:85B BPlease input score:100Please input score:100A APlease input score:56Please input score:56E E573.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 說明說明:在使用:在使用switchswitch語句時(shí)還應(yīng)注意以下幾點(diǎn):語句時(shí)還應(yīng)注意以下幾點(diǎn): 1 1switchswitch后面括弧內(nèi)的后面括弧內(nèi)的“表達(dá)式表達(dá)式”的值一般為整的值一般為整型、字符型或枚舉型數(shù)據(jù)。每個(gè)型、字符型或枚舉型數(shù)據(jù)。每個(gè)casecase后的后的 “ “常量表達(dá)
42、常量表達(dá)式式”的類型應(yīng)該與的類型應(yīng)該與switchswitch后面括弧內(nèi)的后面括弧內(nèi)的“表達(dá)式表達(dá)式”的類的類型一致。型一致。 2 2由于每個(gè)由于每個(gè)casecase后的常量只是起到語句標(biāo)號作用,后的常量只是起到語句標(biāo)號作用,所以每一個(gè)所以每一個(gè)casecase的常量表達(dá)式的值必須互不相同,否則的常量表達(dá)式的值必須互不相同,否則就會(huì)出現(xiàn)互相矛盾的現(xiàn)象(對表達(dá)式的同一個(gè)值,有就會(huì)出現(xiàn)互相矛盾的現(xiàn)象(對表達(dá)式的同一個(gè)值,有兩種或多種執(zhí)行方案)。兩種或多種執(zhí)行方案)。 3. 3.各各casecase和和defaultdefault子句的先后順序可以變動(dòng),而子句的先后順序可以變動(dòng),而不會(huì)影響程序執(zhí)行結(jié)
43、果。但從程序的執(zhí)行效率角度考不會(huì)影響程序執(zhí)行結(jié)果。但從程序的執(zhí)行效率角度考慮,一般將發(fā)生頻率高的情況放在前面。慮,一般將發(fā)生頻率高的情況放在前面。 4. 4.在在casecase后,允許有多個(gè)語句,并可以不用后,允許有多個(gè)語句,并可以不用 括起來。括起來。 5.default 5.default子句可以省略不用。子句可以省略不用。 6.6.多個(gè)多個(gè)casecase可以共用一組執(zhí)行語句,如:可以共用一組執(zhí)行語句,如: case Acase A: case Bcase B: case Ccase C: printf(“printf(“60n”)60n”);break ;break ; grade
44、grade的值為的值為AA、BB或或CC時(shí)都執(zhí)行同一時(shí)都執(zhí)行同一組語句。組語句。 7.switch7.switch語句不同于語句不同于if if語句語句,switchswitch僅能判斷一種邏輯僅能判斷一種邏輯關(guān)系,即看括弧內(nèi)的關(guān)系,即看括弧內(nèi)的“表達(dá)式表達(dá)式”的值和指定的常量值是的值和指定的常量值是否相等,而不能進(jìn)行大于、小于某個(gè)值的判斷,不能表否相等,而不能進(jìn)行大于、小于某個(gè)值的判斷,不能表達(dá)區(qū)間的概念,而達(dá)區(qū)間的概念,而if if語句可以計(jì)算并判斷各種表達(dá)式,所語句可以計(jì)算并判斷各種表達(dá)式,所以以switchswitch語句并不能完全替代語句并不能完全替代if if語句。反過來,凡是能用
45、語句。反過來,凡是能用switchswitch語句解決的問題肯定能用語句解決的問題肯定能用if if語句來解決。語句來解決。例例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:score為為5時(shí),輸出:時(shí),輸出: Very good! Good! Pass! Fail! data error!例例 void main()
46、 int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d”,a,b); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:a=2,b=1603.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 3.4.3 3.4.3 程序設(shè)計(jì)舉例程序設(shè)計(jì)舉例 例例3-11 3-11 輸入三個(gè)數(shù)輸入三個(gè)數(shù)a a,b b,c c,要求按由小到,要求按由小到大的順序輸出。大的順序輸出。 分析:可以用偽代碼寫出算法:分析:可以用偽代碼寫出算
47、法: if ab if ab 將將a a和和b b對換,使對換,使a a成為成為a a、b b中的小者中的小者 if ac if ac 將將a a和和c c對換,使對換,使 a a成為成為a a、c c中的小者,中的小者,則則a a是三者中最小者是三者中最小者 if bc if bc 將將b b和和c c對換,使對換,使b b是是b b、c c中的小者,也中的小者,也是三者中次小者是三者中次小者 然后順序輸出然后順序輸出a a,b b,c c即可。即可。源程序如下:源程序如下:#include #include main()main() float a, b, c, t; float a, b
48、, c, t; printf(Please input a,b,c:); printf(Please input a,b,c:); scanf(%f, %f, %f, &a, &b, &c); scanf(%f, %f, %f, &a, &b, &c); if(ab) if(ab) t=a; a=b; b=t; / t=a; a=b; b=t; /* *實(shí)現(xiàn)實(shí)現(xiàn)a a和和b b的互換的互換* */ / if(ac) if(ac) t=a; a=c; c=t; / t=a; a=c; c=t; /* *實(shí)現(xiàn)實(shí)現(xiàn)a a和和c c的互換的互換* */
49、/ if(bc) if(bc) t=b; b=c; c=t; / t=b; b=c; c=t; /* *實(shí)現(xiàn)實(shí)現(xiàn)b b和和c c的互換的互換* */ / printf(%5.2f, %5.2f, %5.2fn, a, b, c); printf(%5.2f, %5.2f, %5.2fn, a, b, c); 運(yùn)行情況如下:運(yùn)行情況如下:Please input a,b,c:Please input a,b,c:2, 8, 72, 8, 7 2.00, 7.00, 8.002.00, 7.00, 8.00思考:對兩個(gè)變量思考:對兩個(gè)變量a a和和b b的值,為什么的值,為什么要引入中間變量要引入
50、中間變量t ?t ?直接用直接用a=b;b=a;a=b;b=a;來交換行嗎?來交換行嗎?613.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu)例例3-12 3-12 寫程序,判斷某一年是否閏年。寫程序,判斷某一年是否閏年。 分析:滿足下列兩個(gè)條件之一的年份為閏年:能被分析:滿足下列兩個(gè)條件之一的年份為閏年:能被4 4整整除,但不能被除,但不能被100100整除的年份;能被整除的年份;能被4 4整除,又能被整除,又能被400400整除的年份;整除的年份;考慮到對任一個(gè)年份來說,要么為閏年,要么為非閏年,考慮到對任一個(gè)年份來說,要么為閏年,要么為非閏年,兩者必居其一。因此可以引入一個(gè)標(biāo)志變量兩者必居其一。因此可以引
51、入一個(gè)標(biāo)志變量leapleap代表代表是否閏年的信息。若某年為閏年,則令是否閏年的信息。若某年為閏年,則令leap=1leap=1;若為;若為非閏年,令非閏年,令1eap1eap0 0。最后判斷。最后判斷l(xiāng)eapleap是否為是否為1( 1(真真) ),若是,若是,則輸出則輸出“閏年閏年”信息。信息。我們用圖我們用圖3-83-8表示判別閏年的算法。表示判別閏年的算法。623.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu)#include #include main()main() int year, leap; int year, leap; printf(Please input year:); printf
52、(Please input year:); scanf(%d, &year); scanf(%d, &year); if (year%4=0) if (year%4=0) if (year%100=0) if (year%100=0) if (year%400=0) if (year%400=0) leap=1; leap=1; else leap=0; else leap=0; else leap=1; else leap=1; else leap=0; else leap=0;if (leap)if (leap)printf(%d is a leap yearn, year
53、);printf(%d is a leap yearn, year);elseelse printf(%d is not a leap yearn, year); printf(%d is not a leap yearn, year); 運(yùn)行情況如下運(yùn)行情況如下: :Please input year:1989Please input year:19891989 is not a leap year1989 is not a leap yearPlease input year:2004Please input year:20042004 is a leap year2004 is a le
54、ap year思考:程序的最后一個(gè)思考:程序的最后一個(gè)if if語句的語句的if (leap) if (leap) 為什么為什么不寫成不寫成if (leap=1)?if (leap=1)?633.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 說明:本例中通過引入標(biāo)志變量說明:本例中通過引入標(biāo)志變量leapleap來表示兩種不同狀態(tài)值的方法,對優(yōu)來表示兩種不同狀態(tài)值的方法,對優(yōu)化程序和提高程序的可讀性非常有效,希望能夠理解并掌握?;绦蚝吞岣叱绦虻目勺x性非常有效,希望能夠理解并掌握。 從流程圖可以看到,對閏年進(jìn)行判斷時(shí)有四個(gè)可能的出口。上述程序代碼從流程圖可以看到,對閏年進(jìn)行判斷時(shí)有四個(gè)可能的出口。上述程序代碼
55、的寫法可以理解為對四個(gè)出口從左到右掃描得到,那么若對四個(gè)出口從右到左的寫法可以理解為對四個(gè)出口從左到右掃描得到,那么若對四個(gè)出口從右到左掃描則也可以將程序中第掃描則也可以將程序中第7 71515行改寫成以下的行改寫成以下的if if語句:語句: if(year if(year4 !=0) 1eap=04 !=0) 1eap=0; else if(year else if(year100!=0) leap=1100!=0) leap=1; else if(year else if(year400!=0) 1eap=0400!=0) 1eap=0; else leap=1; else leap=1
56、; 也可以用一個(gè)邏輯表達(dá)式包含所有的閏年條件,將上述也可以用一個(gè)邏輯表達(dá)式包含所有的閏年條件,將上述if if語句用下面的語句用下面的if if語語句代替:句代替: if(yearif(year4 40 0yearyear100 !=0) | (year100 !=0) | (year400=0) leap=1400=0) leap=1; else leap=0else leap=0;643.4 3.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 例例3-13 3-13 求下列分段函數(shù)的值:求下列分段函數(shù)的值: 分析:上述的分段函數(shù)可以分析:上述的分段函數(shù)可以看作一個(gè)多分支選擇問題,看作一個(gè)多分支選擇問題,有兩種解法。
57、有兩種解法。5 . 45 . 3235 . 35 . 22*35 . 25 . 1235 . 15 . 023xxxxxxxxy法一:利用法一:利用if if語句的嵌套所對應(yīng)的源程序:語句的嵌套所對應(yīng)的源程序:#include #include main()main() float x, y;float x, y;printf(Please input x:);printf(Please input x:);scanf(%f, &x);scanf(%f, &x);if(x=4.5)if(x=4.5) printf(x errorn); printf(x errorn);else
58、else if (x1.5) y=3+2 if (x1.5) y=3+2* *x;x; else if (x2.5) y=3-2 else if (x2.5) y=3-2* *x;x; else if (x3.5) y=3 else if (x3.5) y=3* *2 2* *x;x; else y=3/(2 else y=3/(2* *x);x);printf(y=%fn, y);printf(y=%fn, y); 法二:使用法二:使用switchswitch語句,注意如何完成從區(qū)間值到語句,注意如何完成從區(qū)間值到點(diǎn)的轉(zhuǎn)化。觀察原來四個(gè)區(qū)間的特點(diǎn),可以采用點(diǎn)的轉(zhuǎn)化。觀察原來四個(gè)區(qū)間的特點(diǎn),可
59、以采用把原來把原來x x值加上值加上0.50.5再取整,或者把原來再取整,或者把原來x x值除以值除以0.0.5 5再取整兩種方法。下面是采用前面一種方法所對再取整兩種方法。下面是采用前面一種方法所對應(yīng)的源程序:應(yīng)的源程序:#include #include main()main() float x, y;float x, y; printf(Please input x:); printf(Please input x:); scanf(%f, &x); scanf(%f, &x);switch switch ( ( (intint) )(x+0.5)(x+0.5) ) ca
60、se 1: y=3+2 case 1: y=3+2* *x; printf(y=%fn, y); break;x; printf(y=%fn, y); break; case 2: y=3-2 case 2: y=3-2* *x; printf(y=%fn, y); break;x; printf(y=%fn, y); break; case 3: y=3 case 3: y=3* *2 2* *x; printf(y=%fn, y); break;x; printf(y=%fn, y); break; case 4: y=3/(2 case 4: y=3/(2* *x); printf(y=%fn, y); break;x); printf(y=%fn, y); break; default: printf(x errorn); default: printf(x errorn); 運(yùn)行情況如下:運(yùn)行情況如下:Plea
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 古裝穿越體驗(yàn)行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書
- 交通運(yùn)輸管理培訓(xùn)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書
- 一年級線上教學(xué)返校對接優(yōu)化計(jì)劃
- 幼兒園體育活動(dòng)工作計(jì)劃
- 一年級語文下學(xué)期主題教學(xué)計(jì)劃
- 部編版小學(xué)五年級語文重點(diǎn)難點(diǎn)復(fù)習(xí)計(jì)劃
- 2025春人教部編版九年級語文下冊教學(xué)計(jì)劃
- 一年級科學(xué)上冊課外拓展計(jì)劃
- 青少年乒乓球夏令營活動(dòng)計(jì)劃
- 職業(yè)培訓(xùn)線上教學(xué)推廣計(jì)劃
- 學(xué)生托管班管理制度
- 2024年山東夏季高中學(xué)業(yè)水平合格考生物試卷真題(含答案)
- 2025年經(jīng)濟(jì)學(xué)基礎(chǔ)知識測試試題及答案
- 統(tǒng)編版小學(xué)語文小升初專題訓(xùn)練:根據(jù)課文內(nèi)容填空(含答案)
- 2025年7月浙江省普通高中學(xué)業(yè)水平考試押題模擬暨選考意向?qū)б須v史學(xué)科試題(原卷版)
- 貴州省黔西南州、黔東南州、黔南州2025年八年級英語第二學(xué)期期末學(xué)業(yè)水平測試試題含答案
- 杭州市公安局濱江區(qū)分局招聘警務(wù)輔助人員筆試真題2024
- (2025)入黨積極分子培訓(xùn)考試試題及答案
- 2025年天津市河西區(qū)中考二模語文試題
- 2025屆高考化學(xué)復(fù)習(xí):必背化學(xué)方程式-有機(jī)化學(xué)
- DB31/ 638-2012鑄鋼件單位產(chǎn)品能源消耗限額
評論
0/150
提交評論