版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
模塊二分支程序設(shè)計訓(xùn)練能力目標(biāo)掌握關(guān)系表達(dá)式和邏輯表達(dá)式的應(yīng)用。
掌握利用if語句實(shí)現(xiàn)的單分支和雙分支選擇結(jié)構(gòu)。
掌握利用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。知識準(zhǔn)備
任務(wù)引例----比較兩個數(shù)的大小。#include<stdio.h>voidmain(){floata,b;printf("請您輸入兩個實(shí)數(shù):\n");scanf("%f,%f",&a,&b);if(a>b)printf("第一個數(shù)較大。\n");elseif(a==b)printf("兩個數(shù)相等。\n");elseprintf("第二個數(shù)較大。\n");}程
序
清單程序運(yùn)行
請您輸入兩個實(shí)數(shù):4,8第二個數(shù)較大。做中學(xué)2-1兩個數(shù)的升序排序。2.1
if-else語句2.1.1單分支結(jié)構(gòu)的if語句
算法設(shè)計
定義三個變量a,b,t,從鍵盤給a、b賦值。使用if語句判斷a和b大小,如果a>b,交換a、b的值,算法見右圖。結(jié)束程序運(yùn)行請輸入兩個實(shí)數(shù):4.4,2.3 2.304.40知識點(diǎn)語法格式:
if(條件表達(dá)式)語句;單分支結(jié)構(gòu)執(zhí)行過程:單分支結(jié)構(gòu)if語句的執(zhí)行過程如圖2-2所示,首先對表達(dá)式求解,當(dāng)結(jié)果為真(非0)時,則執(zhí)行指定的語句;否則跳過指定語句,接著執(zhí)行該語句下面的語句。
語法特征為:一個條件表達(dá)式,一個可選執(zhí)行。圖2-2if單分支結(jié)構(gòu)B做中學(xué)2-2求絕對值。算法設(shè)計定義兩個變量x,y,從鍵盤讀值給x。如果x<0,y賦值為-x;否則,y賦值為x。算法見圖2-3。2.1.2雙分支結(jié)構(gòu)的if-else語句
結(jié)束#include<stdio.h>voidmain(){intx,y;printf("輸入一個整數(shù):");scanf("%d",&x);if(x<0)/*判斷x<0是否成立*/y=-x;else/*若x<0的值為假*/y=x;printf("這個數(shù)的絕對值是:%d\n",y);}程序清單程序運(yùn)行輸入一個整數(shù):-5這個數(shù)的絕對值是:5
知識點(diǎn)
語法格式:if(條件表達(dá)式)
語句1;else
語句2;雙分支結(jié)構(gòu)執(zhí)行過程:語法特征:
一個條件表達(dá)式,兩個可選執(zhí)行。
B做中學(xué)2-3某運(yùn)輸公司對用戶收取運(yùn)費(fèi)的規(guī)定如下(s表示里程數(shù)km):S<2500(沒有折扣)
250≤s<5002%500≤s<10005%1000≤s<20008%2000≤s<300010%3000≤s15%設(shè)基本運(yùn)費(fèi)為每公里每噸p元,貨物重為w噸,折扣為d,總運(yùn)費(fèi)f的計算公式為f=p×w×s×(1-d)2.2switch-case語句算法設(shè)計通過分析上述數(shù)據(jù)可以看到,d隨著s的增加而增加,有一定規(guī)律。s的每個取值范圍,要么增加250,或者500,或者1000,均是250的倍數(shù)。我們可將公司對用戶收取運(yùn)費(fèi)的規(guī)定理解如下表距離s折扣率d距離s折扣率ds<25001750≤s<20008%250≤s<5002%2000≤s<225010%500≤s<7505%2250≤s<250010%750≤s<10005%2500≤s<275010%1000≤s<12508%2750≤s<300010%1250≤s<15008%3000≤s15%1500≤s<17508%
#include<stdio.h>voidmain(){intc,s;floatp,w,d,f;printf("請輸入每公里運(yùn)價(元/噸*公里),貨物重量(噸),運(yùn)輸里程(公里):"); scanf("%f,%f,%d",&p,&w,&s); if(s>=3000) c=12; else c=s/250; switch(c){case0:d=0;break; case1:d=2;break; case2: case3:d=5;break;case4: case5: case6: case7:d=8;break; case8: case9: case10: case11:d=10;break; case12:d=15;break;default:printf("輸入里程有錯!\n"); } f=p*w*s*(1-d/100.0f); printf("應(yīng)繳運(yùn)費(fèi):%15.4f\n",f);}程序運(yùn)行請輸入每公里運(yùn)價(元/噸*公里),貨物重量(噸),運(yùn)輸里程(公里):0.2,30,1200應(yīng)繳運(yùn)費(fèi):6624.0001知識點(diǎn)使用switch-case語句可以實(shí)現(xiàn)多分支選擇結(jié)構(gòu),流程圖如圖2-5所示。
圖2-5switch語句流程圖知識點(diǎn)
語法格式:switch(表達(dá)式){case常量1:語句1;case常量2:語句2;┇case常量n:語句n;[default:語句n+1;]}switch-case語句使用說明:
表達(dá)式可以為任何整數(shù)類型。
各個常量取不同的值。
表達(dá)式的值與某個case后的常量的值相等,就執(zhí)行此常量后面的語句。如果表達(dá)式的值沒有和任何常量相匹配,就執(zhí)行default后面的語句。如果省略了default語句,則不作任何處理,執(zhí)行switch結(jié)構(gòu)后面的語句。
如果在相匹配case的語句塊中沒有break語句,程序從此開始順序執(zhí)行,直到遇到某個case子句中的break語句,才跳出switch結(jié)構(gòu)。否則,一直執(zhí)行到switch語句結(jié)束。因而多個case可以共用同一組執(zhí)行語句。如,case8:case9:case10:case11:d=10;break;case后面必須是常量表達(dá)式,表達(dá)式中不能包含變量。
如,不能寫成caseb。default出現(xiàn)的位置不影響程序執(zhí)行結(jié)果。所以可先出現(xiàn)default子句,再出現(xiàn)各case子句。語法特征為:一個表達(dá)式的值,對應(yīng)n個常量表達(dá)式的值。邊學(xué)邊練實(shí)現(xiàn)英寸與厘米的換算。求方程ax2+bx+c=0的解。菜單程序設(shè)計。輸入年份,判斷是否為潤年。三個數(shù)排序(升序)。根據(jù)利潤計算工資。拓展提升2.3多分支結(jié)構(gòu)的if-else語句
對于雙分支結(jié)構(gòu)的if語句,若它的子句(語句1或語句2)也是if語句,就出現(xiàn)了if語句的嵌套。執(zhí)行過程見圖2-8。圖2-8多路分支選擇結(jié)構(gòu)做中學(xué)2-4分段函數(shù)計算。算法設(shè)計程序的功能為根據(jù)自變量x的取值范圍,選擇不同的數(shù)值表達(dá)式計算出y的值,并輸出。x有四個范圍,可構(gòu)成3個條件表達(dá)式,4個可選分支的結(jié)構(gòu),流程圖右圖編程實(shí)現(xiàn)多值函數(shù)的功能結(jié)束#include<stdio.h>voidmain(){intx,y;printf("請輸入一個整數(shù):");scanf("%d",&x);if(x>0&&x<=10){/*如果滿足條件0<x<=10*/y=x;printf("x∈(0,10],y=%d\n",y);}elseif(x>10&&x<20){/*如果滿足條件10<x<20*/y=2*x;printf("x∈(10,20),y=%d\n",y);}elseif(x>=20&&x<100){/*如果滿足條件20<=x<100*/y=3*x;printf("x∈[20,100),y=%d\n",y);}else{y=0;printf("x的值太大或太?。=%d\n",y);}}程序清單程序運(yùn)行第一次運(yùn)行請輸入一個整數(shù):5x∈(0,10],y=5第二次運(yùn)行請輸入一個整數(shù):15x∈(10,20),y=30第三次運(yùn)行請輸入一個整數(shù):30x∈[20,100),y=90第四次運(yùn)行請輸入一個整數(shù):120x的值太大或太?。=0
知識點(diǎn)
語法格式:if(條件式1)
語句1;elseif(條件式2)
語句2;elseif條件式3)
語句3┇elseif(條件式n)
語句n;else
語句n+1;
執(zhí)行過程:
首先求解表達(dá)式l的值,若為“真”,執(zhí)行語句1;否則求解表達(dá)式2的值,若為“真”,執(zhí)行語句2;否則繼續(xù)求解表達(dá)式3,若為“真”,執(zhí)行語句3;否則接著進(jìn)行判斷,依此類推,直到找到結(jié)果為“真”的表達(dá)式,并執(zhí)行與之相關(guān)的語句。
如果經(jīng)過求解,所有的表達(dá)式都為“假”,那么就執(zhí)行最后一個else后面的語句。注意每一個else是和其前面最接近的if配對使用。做中學(xué)2-5運(yùn)輸公司對用戶的運(yùn)費(fèi)計算(與做中學(xué)2-3相同)。算法設(shè)計高折扣率可以在低折扣率基礎(chǔ)上加上一個常數(shù)得到。假設(shè)折扣率2%用d2表示、折扣率5%用d5表示、折扣率8%用d8表示、折扣率10%用d10表示、折扣率15%用d15表示,則可以得到下表。2.4switch-case語句的巧用距離s折扣率d折扣率d計算常數(shù)s<250d0=0d0=d0+00250≤s<500d2=2%d2=d0+22500≤s<1000d5=5%d5=d2+331000≤s<2000d8=8%d8=d5+332000≤s<3000d10=10%d10=d8+223000≤sd15=15%d15=d10+55即d15=d10+5=d8+2+5=d5+3+2+5=d2+3+3+2+5=d0+2+3+3+2+5。#include<stdio.h>voidmain(){ intc,s; floatp,w,d,f; printf("請輸入每公里運(yùn)價(元/噸*公里),貨物重量(噸),運(yùn)輸里程(公里):"); scanf("%f,%f,%d",&p,&w,&s);d=0;if(s>=3000)c=12;elsec=s/250;switch(c){case12:d+=5;case11:case10:case9:case8:d+=2;case7:case6:case5:case4:d+=3;case3:ca
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 糍粑制作課程設(shè)計
- 2024年漁船交易及漁獲權(quán)共享合作協(xié)議2篇
- 2024年電子商務(wù)平臺物流協(xié)議3篇
- 電影拍攝現(xiàn)場機(jī)械裝置的人機(jī)工程學(xué)考核試卷
- 碳酸飲料行業(yè)的消費(fèi)者信任度考核試卷
- 2024年股份投資協(xié)議樣本版B版
- 2024年標(biāo)準(zhǔn)版報關(guān)代理協(xié)作協(xié)議版B版
- 中鐵建投鹽城黃沙港開發(fā)有限公司招聘筆試真題2023
- 閩侯縣南通鎮(zhèn)衛(wèi)生院招聘南通鎮(zhèn)鄉(xiāng)村醫(yī)生筆試真題2023
- 督學(xué)責(zé)任區(qū)工作計劃
- 部編版2023-2024學(xué)年六年級上冊語文期末測試試卷(含答案)
- 溝通的藝術(shù)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024年山東濟(jì)南地鐵校園招聘筆試參考題庫含答案解析
- 土石壩沉降及其實(shí)測數(shù)據(jù)分析計算
- plc--病床呼叫系統(tǒng)
- 永煤集團(tuán)順和煤礦液壓銷齒彎道推車機(jī)技術(shù)規(guī)格書
- 九型人格測試之180題(完整版)和答案解析
- LS-MASTER-K-指令手冊
- 清單計價規(guī)范附錄附表詳解PPT課件
- 光刻膠知識簡介
- 烏茲別克語字母表
評論
0/150
提交評論