版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3單元分支結(jié)構(gòu)程序設(shè)計(jì)作者:林厚從信息學(xué)奧賽課課通(C++)第3單元分支結(jié)構(gòu)程序設(shè)計(jì)作者:林厚從信息學(xué)奧賽課課通(第1課
關(guān)系運(yùn)算符學(xué)習(xí)目標(biāo)1.熟練掌握C++中的關(guān)系運(yùn)算符。2.熟知關(guān)系運(yùn)算符和數(shù)學(xué)運(yùn)算符的優(yōu)先級(jí)。3.學(xué)會(huì)正確書寫關(guān)系表達(dá)式。第1課關(guān)系運(yùn)算符學(xué)習(xí)目標(biāo)1.關(guān)系運(yùn)算符C++提供了六種關(guān)系運(yùn)算符:>(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、==(等于)、!=(不等于)。關(guān)系表達(dá)式的結(jié)果為邏輯值真(非0值)或假(0)。1.關(guān)系運(yùn)算符C++提供了六種關(guān)系運(yùn)算符:>(大于)、<使用關(guān)系運(yùn)算符需要注意的問題(1)“等于”與“賦值”的區(qū)別;(2)實(shí)型數(shù)據(jù)(浮點(diǎn)數(shù))的關(guān)系運(yùn)算;(3)運(yùn)算符的優(yōu)先級(jí),如下表:使用關(guān)系運(yùn)算符需要注意的問題(1)“等于”與“賦值”的區(qū)別;2.關(guān)系運(yùn)算符的應(yīng)用舉例例1、假設(shè)變量定義為“intx=6,y=4,z=5;”,請(qǐng)分別寫出下列表達(dá)式的值。(1)x+y>y+z(2)‘x’<‘z’(3)x==x>=y(4)(x<y)>(y<=z)2.關(guān)系運(yùn)算符的應(yīng)用舉例例1、假設(shè)變量定義為“intx=例2、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-1-2#include<iostream>usingnamespacestd;intmain(){intn1=4,n2=5,n3;n3=(n1>n2);cout<<n3<<“,”;n3=(n1<n2);cout<<n3<<“,”;n3=(n1==4);cout<<n3<<“,”;n3=(n1==5);cout<<n3<<endl;return0;}例2、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-1-2例3、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-1-3#include<iostream>usingnamespacestd;intmain(){charx,y;x=‘m’;y=‘n’;intn;n=x<y;cout<<n<<endl;n=x==y-1;cout<<n<<endl;n=(‘y’!=‘Y’)+(5>3)+(y-x==1);cout<<n<<endl;return0;}例3、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-1-3實(shí)踐鞏固實(shí)踐鞏固第2課邏輯運(yùn)算符學(xué)習(xí)目標(biāo)1.熟練掌握C++中的邏輯運(yùn)算符。2.熟知邏輯運(yùn)算符的優(yōu)先級(jí)。3.學(xué)會(huì)正確書寫邏輯表達(dá)式。第2課邏輯運(yùn)算符學(xué)習(xí)目標(biāo)邏輯運(yùn)算符C++提供了&&(邏輯與)、||(邏輯或)和!(邏輯非)三種邏輯運(yùn)算符。其中,&&和||是雙目運(yùn)算符,而!是單目運(yùn)算符。邏輯運(yùn)算符C++提供了&&(邏輯與)、||(邏輯或)和邏輯運(yùn)算符邏輯運(yùn)算符1、邏輯運(yùn)算符的優(yōu)先級(jí)問題1、邏輯運(yùn)算符的優(yōu)先級(jí)問題(1)一個(gè)0~100之間(不包括0和100)的數(shù)a。
(2)x大于y且x大于z。
(3)x是英文字母。例1、寫出下列語義的C++表達(dá)式。(1)一個(gè)0~100之間(不包括0和100)的數(shù)整型數(shù)據(jù)在參與邏輯運(yùn)算時(shí),根據(jù)其值是0或非0,分別當(dāng)作邏輯值“假”或“真”進(jìn)行處理。例2、假設(shè)變量定義為“inta=0,b=0,c=1,d=1;”,請(qǐng)寫出表達(dá)式a&&b||c&&d的結(jié)果。2、整型數(shù)據(jù)也可以參與邏輯運(yùn)算整型數(shù)據(jù)在參與邏輯運(yùn)算時(shí),根據(jù)其值是0或非0,分別當(dāng)作//p3-2-3#include<iostream>usingnamespacestd;intmain(){ inta,b,c,d; a=2;b=3;c=0; d=(a+b||c); cout<<d<<endl; return0;}例3、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-2-3例3、閱讀程序,寫出程序的運(yùn)行結(jié)果。例4、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-2-4#include<iostream>usingnamespacestd;intmain(){inta,b,c,d;a=2;b=3;c=0;d=(a>b)&&(c=4);cout<<d<<””<<c<<endl;return0;}3、邏輯表達(dá)式是“短路計(jì)算”在邏輯表達(dá)式的計(jì)算過程中,一旦能夠確定整個(gè)表達(dá)式的值,就會(huì)立刻停止計(jì)算。例4、閱讀程序,寫出程序的運(yùn)行結(jié)果。3、邏輯表達(dá)式是“短路【問題分析】
判斷“閏年”的口訣是:四年一閏,百年不閏,四百年又閏。2016年是閏年,因?yàn)?016能被4整除;2100年不是閏年,因?yàn)樗鼙?00整除;但2000年是閏年,因?yàn)樗鼙?00整除。
所以,判斷某一年份是否是閏年有兩種情況:一種是能被400整除;另一種是能被4整除但不能被100整除。所以,可以表示成:(x%400==0)||((x%4==0)&&(x%100!=0))例5、寫出判斷某一年份x是否是“閏年”的表達(dá)式?!締栴}分析】例5、寫出判斷某一年份x是否是“閏年”的表達(dá)實(shí)踐鞏固實(shí)踐鞏固第3課if語句學(xué)習(xí)目標(biāo)1.掌握if語句的兩種格式。2.理解分支結(jié)構(gòu)和復(fù)合語句。3.熟練應(yīng)用if語句解決一些實(shí)際問題。第3課if語句學(xué)習(xí)目標(biāo)1.if語句if語句有兩種格式:第一種格式為:if(表達(dá)式)語句1;else語句2;第二種格式為:if(表達(dá)式)語句;1.if語句if語句有兩種格式:第二種格式為:例1、旅游費(fèi)用。【問題描述】風(fēng)華公司“南京一日游”的收費(fèi)標(biāo)準(zhǔn)為:5人以內(nèi)(含5人)按散客標(biāo)準(zhǔn),每人300元;超過5人,按團(tuán)體標(biāo)準(zhǔn),每人280元。請(qǐng)根據(jù)輸入的人數(shù),輸出其旅游費(fèi)用?!据斎敫袷健恳恍幸粋€(gè)正整數(shù)n,表示人數(shù),1≤n≤5000000?!据敵龈袷健恳恍幸粋€(gè)正整數(shù),表示需要的總旅游費(fèi)用?!据斎霕永?【輸出樣例】2520例1、旅游費(fèi)用?!締栴}描述】【問題分析】這是一個(gè)“選擇性”問題,根據(jù)人數(shù)n來選擇不同的收費(fèi)標(biāo)準(zhǔn)。條件就是n≤5,如果成立,那么收費(fèi)為n×300;否則,收費(fèi)為n×280。//p3-3-1a#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;if(n<=5)cout<<n*300<<endl;elsecout<<n*280<<endl;return0;}【問題分析】或換成另一種形式://p3-3-1b#include<iostream>usingnamespacestd;intmain(){intn,ans;cin>>n;ans=n*300;if(n>5)ans=n*280;cout<<ans<<endl;return0;}或換成另一種形式://p3-3-1b例2、三個(gè)數(shù)的大小比較?!締栴}描述】輸入三個(gè)整數(shù)x、y和z,判斷是否滿足x≤y≤z。若滿足,則輸出“YES”;否則,輸出“NO”。【輸入格式】一行三個(gè)整數(shù)x、y和z,int范圍以內(nèi)。【輸出格式】一行一個(gè)單詞,表示答案。【輸入樣例1】367【輸出樣例1】YES【輸入樣例2】376【輸出樣例2】NO例2、三個(gè)數(shù)的大小比較?!締栴}描述】【問題分析】如果邏輯表達(dá)式“x<=y&&y<=z”為真,則輸出“YES”;否則,輸出“NO”。//p3-3-2#include<iostream>usingnamespacestd;intmain(){intx,y,z;cin>>x>>y>>z;if(x<=y&&y<=z)cout<<”YES”<<endl;elsecout<<”NO”<<endl;return0;}【問題分析】2.復(fù)合語句例3、數(shù)據(jù)交換。【問題描述】輸入a、b兩個(gè)整數(shù),如果a大于b,則交換a與b的值,再輸出a和b的值?!据斎敫袷健恳恍袃蓚€(gè)整數(shù)a、b,int范圍以內(nèi)。【輸出格式】一行兩個(gè)整數(shù),a、b最后的值,中間空一格?!据斎霕永?】67【輸出樣例1】67【輸入樣例2】108【輸出樣例2】8102.復(fù)合語句例3、數(shù)據(jù)交換?!締栴}分析】
交換a與b的值需要用到3條語句。所以,當(dāng)判斷條件“a>b”成立時(shí),需要依次執(zhí)行完這3條語句,這時(shí)就需要用花括號(hào)“{}”將這3條語句括起來,這些括起來的語句組合稱為“復(fù)合語句”,流程圖如右圖?!締栴}分析】//p3-3-3#include<iostream>usingnamespacestd;intmain(){inta,b,c;cin>>a>>b;if(a>b){c=a;a=b;b=c;}cout<<a<<””<<b<<endl;return0;}//p3-3-3實(shí)踐鞏固實(shí)踐鞏固第4課if語句的嵌套學(xué)習(xí)目標(biāo)1.理解if語句嵌套的含義。2.熟練應(yīng)用if語句及其嵌套解決一些實(shí)際問題。第4課if語句的嵌套學(xué)習(xí)目標(biāo)if語句的嵌套
在分支結(jié)構(gòu)中經(jīng)常會(huì)遇到這樣的情況:如果條件1成立,就去做A事情,否則去做B事情,但是,在做A事情(或者B事情)時(shí),還要根據(jù)條件2是否成立,決定是做A1(或者B1)這件子事情,還是去做A2(或者B2)這件子事情。在程序設(shè)計(jì)中,把這種情況稱為分支結(jié)構(gòu)的“嵌套”,一般用來解決三種及以上的分支情況。if語句的嵌套在分支結(jié)構(gòu)中經(jīng)常會(huì)遇到這樣的情況:如【問題描述】輸入三個(gè)整數(shù)x、y、z,判斷其是否滿足x≤y≤z。若滿足,輸出“YES”;否則,輸出“NO”。【輸入格式】一行三個(gè)整數(shù)x、y、z,int范圍以內(nèi)。【輸出格式】一行一個(gè)單詞,表示答案?!据斎霕永?67【輸出樣例】YES例1、三個(gè)數(shù)的大小比較?!締栴}描述】例1、三個(gè)數(shù)的大小比較?!締栴}分析】前面已經(jīng)介紹過用邏輯表達(dá)式“x<=y&&y<=z”來表示YES”的條件,本題也可以用if語句的嵌套來解決,如圖:【問題分析】//p3-4-1#include<iostream>usingnamespacestd;intmain(){intx,y,z;cin>>x>>y>>z;if(x<=y)if(y<=z)cout<<”YES”<<endl;elsecout<<”NO”<<endl;elsecout<<”NO”<<endl;return0;}//p3-4-1(1)分支結(jié)構(gòu)可以嵌套很多層;(2)if與else的配對(duì)關(guān)系;(3)編程要形成良好的代碼風(fēng)格;使用if語句的嵌套需注意的問題(1)分支結(jié)構(gòu)可以嵌套很多層;使用if語句的嵌套需注意的//p3-4-2a#include<iostream>usingnamespacestd;intmain(){ intx=4,y=3,z=2; if(x<=y) if(y<=z) cout<<"YES"<<endl; else cout<<"NO"<<endl; return0; }例2、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-4-2a例2、閱讀程序,寫出程序的運(yùn)行結(jié)果。
【問題分析】
程序不會(huì)輸出任何結(jié)果。因?yàn)槠渲械膃lse子句從書寫格式上看,與外層“if(x<=y)”語句配對(duì),但其實(shí)是與內(nèi)層的“if(y<=z)”配對(duì)。而外層的“if(x<=y)”是不成立的,又沒有else子句,所以直接執(zhí)行后面的“returne0;”語句。
【問題分析】例3、判斷閏年。【問題描述】輸入某一年份x,判斷該年份是否是閏年。是則輸出“YES”,否則輸出“NO”。【輸入格式】一行一個(gè)正整數(shù)x,int范圍以內(nèi)?!据敵龈袷健恳恍幸粋€(gè)單詞,表示判斷結(jié)果?!据斎霕永?000【輸出樣例】YES例3、判斷閏年。【問題描述】【問題分析】前面已經(jīng)介紹過判斷閏年的條件表達(dá)式。對(duì)于閏年的判斷,也可以采用嵌套的方法來實(shí)現(xiàn)。【問題分析】//p3-4-3#include<iostream>usingnamespacestd;intmain(){intx;cin>>x;if(x%400==0)cout<<“YES”<<endl;elseif(x%4==0)if(x%100!=0)cout<<“YES”<<endl;elsecout<<“NO”<<endl;elsecout<<“NO”<<endl;return0;}//p3-4-3例4、優(yōu)惠購(gòu)物?!締栴}描述】
教材77頁。【問題分析】設(shè)id表示顧客的身份,price表示顧客購(gòu)買的商品價(jià)值,flag=0表示無大禮包,flag=1表示有大禮包,discount表示顧客享受的折扣,則計(jì)算流程如下:例4、優(yōu)惠購(gòu)物?!締栴}描述】【問題分析】flag=0;如果id等于“V”如果price≤500,則discount=0.85;否則,如果price≤1000,則discount=0.8;否則,discount=0.75,flag=1;否則discount=0.9;如果price>500,則flag=1;【參考代碼】
教材78頁。flag=0;【參考代碼】實(shí)踐鞏固實(shí)踐鞏固第5課條件表達(dá)式學(xué)習(xí)目標(biāo)學(xué)會(huì)書寫和使用條件表達(dá)式解決一些實(shí)際問題。第5課條件表達(dá)式學(xué)習(xí)目標(biāo)條件表達(dá)式C++語言表達(dá)能力強(qiáng),表達(dá)式類型豐富。其中就有一個(gè)“條件表達(dá)式”,通過它也可以來實(shí)現(xiàn)有選擇的取值。條件表達(dá)式的格式為:<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>其運(yùn)算規(guī)則為:首先計(jì)算表達(dá)式1的值,若表達(dá)式1的值為真(非0),則只計(jì)算表達(dá)式2,并將其結(jié)果作為整個(gè)表達(dá)式的值;否則,只計(jì)算表達(dá)式3,并將其結(jié)果作為整個(gè)表達(dá)式的值。條件表達(dá)式C++語言表達(dá)能力強(qiáng),表達(dá)式類型豐富。其中就有一個(gè)例1、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-5-1#include<iostream>usingnamespacestd;intmain(){intx=5,y=10,z;z=x>y?x:y;cout<<z<<endl;z=x>0?1:-1;cout<<z<<endl;cout<<(x%2==0?“xiseven”:”xisodd”)<<endl;return0;}例1、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-5-1例2、旅游費(fèi)用【問題描述】風(fēng)華公司“南京一日游”的收費(fèi)標(biāo)準(zhǔn)為:5人以內(nèi)(含5人)按散客標(biāo)準(zhǔn),每人300元。超過5人,按團(tuán)體標(biāo)準(zhǔn),每人280元。請(qǐng)根據(jù)輸入的人數(shù),輸出其旅游費(fèi)用?!据斎敫袷健恳恍幸粋€(gè)正整數(shù)n,表示人數(shù),1≤n≤5000000。【輸出格式】一行一個(gè)正整數(shù),表示需要的總旅游費(fèi)用。【輸入樣例】9【輸出樣例】2520例2、旅游費(fèi)用【問題描述】//p3-5-2#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;cout<<(n<=5?n*300:n*280)<<endl;return0;}//p3-5-2例3、判斷閏年【問題描述】輸入某一年份x,判斷該年份是否是閏年。是則輸出“YES”,否則輸出“NO”?!据斎敫袷健恳恍幸粋€(gè)正整數(shù)x,int范圍以內(nèi)?!据敵龈袷健恳恍幸粋€(gè)單詞,表示判斷結(jié)果?!据斎霕永?000【輸出樣例】YES例3、判斷閏年【問題描述】//p3-5-3#include<iostream>usingnamespacestd;intmain(){intx;cin>>x;cout<<(x%400==0?“YES”:(x%4==0?(x%100!=0?“YES”:”NO”):”NO”))<<endl;return0;}//p3-5-3實(shí)踐鞏固實(shí)踐鞏固第6課switch語句學(xué)習(xí)目標(biāo)1.掌握switch語句的格式和含義。2.學(xué)會(huì)應(yīng)用switch語句解決一些實(shí)際問題。第6課switch語句學(xué)習(xí)目標(biāo)多分支語句—switch
在一些實(shí)際問題中,分類情況特別多,用if語句嵌套實(shí)現(xiàn)起來,層數(shù)太多,容易出錯(cuò)。為此,C++提供了一種多分支語句——switch。switch語句的一般格式為:switch(表達(dá)式){case常量表達(dá)式1:語句組1;[break;]case常量表達(dá)式2:語句組2;[break;]…case常量表達(dá)式n:語句組n;[break;][default:語句組n+1]}多分支語句—switch在一些實(shí)際問題中,分多分支語句—switch
執(zhí)行過程為:先計(jì)算表達(dá)式的值,然后從前往后依次與case子句中所列出的各個(gè)常量表達(dá)式的值進(jìn)行比較,若表達(dá)式的值與常量中的值相等,就開始進(jìn)入相應(yīng)的case后面的語句組執(zhí)行,遇到后續(xù)的case也不再進(jìn)行判斷(默認(rèn)匹配),直至遇到break語句或switch語句結(jié)束。default表示表達(dá)式與所有常量表達(dá)式的值都不匹配,那就執(zhí)行其后面的語句組,通常將default放在最后。如果表達(dá)式與各分支常量表達(dá)式的值都不匹配時(shí),不需要執(zhí)行任何語句,則default可以省略。多分支語句—switch執(zhí)行過程為:先計(jì)算表達(dá)式的值例1、閱讀下面程序,思考輸入“-”,則輸出什么。//p3-6-1#include<iostream>usingnamespacestd;intmain(){charsymbol;cin>>symbol;switch(symbol){case‘+’:cout<<“+”<<endl;break;case‘-’:cout<<“-”<<endl;break;case‘*’:cout<<“*”<<endl;break;case‘/’:cout<<“/”<<endl;break;default:cout<<“InputInvalid!”;}return0;}【問題分析】輸出“-”。如果把其中的4條“break;”語句去掉,輸出什么?例1、閱讀下面程序,思考輸入“-”,則輸出什么。//p3-6使用switch語句要注意的問題(1)switch后面的表達(dá)式,取值只能是整型、字符型、布爾型或枚舉型。case后面的常量表達(dá)式,其值類型要與switch后面表達(dá)式的類型一致。(2)任意兩個(gè)case后的表達(dá)式值必須各不相同,否則將引起歧義。(3)語句組可以是一條語句,也可以是一個(gè)復(fù)合語句。(4)多個(gè)case語句可以共用一組程序。使用switch語句要注意的問題(1)switch后面例3、閱讀程序,思考分別輸入“A”“B”“C”,則程序輸出什么。//p3-6-3#include<iostream>usingnamespacestd;intmain(){charch;cin>>ch;switch(ch){case‘A’:case‘B’:case‘C’:cout<<“Pass”<<endl;break;}}例3、閱讀程序,思考分別輸入“A”“B”“C”,則程序輸出例4、優(yōu)惠購(gòu)物【問題描述】某商場(chǎng)的客戶分為白金卡會(huì)員、金卡會(huì)員、銀卡會(huì)員和普通客戶。為了回饋廣大顧客,現(xiàn)推出以下優(yōu)惠活動(dòng):(1)如果客戶是白金會(huì)員,現(xiàn)在將享受7折優(yōu)惠;(2)如果客戶是金卡會(huì)員,現(xiàn)在將享受8折優(yōu)惠;(3)如果客戶是銀卡會(huì)員,現(xiàn)在將享受9折優(yōu)惠;(4)如果客戶是普通客戶,現(xiàn)在將享受9.5折優(yōu)惠。本題的任務(wù)是根據(jù)顧客的身份和購(gòu)買商品的價(jià)格,給出應(yīng)付金額。例4、優(yōu)惠購(gòu)物【問題描述】【輸入格式】第一行一個(gè)字符?!癙”表示白金會(huì)員,“G”表示金卡會(huì)員,“S”表示銀卡會(huì)員,其他字符表示普通客戶。第二行一個(gè)整數(shù),int范圍以內(nèi),表示該顧客購(gòu)買的商品金額?!据敵龈袷健恳恍幸粋€(gè)實(shí)數(shù),保留兩位小數(shù),表示顧客應(yīng)付金額?!緲永斎搿縂580【樣例輸出】464.00【輸入格式】//p3-6-4#include<cstdio>usingnamespacestd;intmain(){charid;floatprice,discount;scanf(“%c\n”,&id);scanf(“%f”,&price);switch(id){case‘P’:discount=0.7;break;case‘G’:discount=0.8;break;case‘S’:discount=0.9;break;default:discount=0.95;}printf(“%.2f\n”,price*discount);return0;}//p3-6-4例5、某年某月的天數(shù)【問題描述】輸入x和y,輸出x年y月有多少天?!据斎敫袷健恳恍袃蓚€(gè)正整數(shù)x和y,分別表示年份和月份。x在int范圍以內(nèi),y為1~12?!据敵龈袷健恳恍幸粋€(gè)整數(shù),表示該年該月有多少天。【樣例輸入】20003【樣例輸出】31例5、某年某月的天數(shù)【問題描述】//p3-6-5#include<iostream>usingnamespacestd;intmain(){
intx,y,day; cin>>x>>y;switch(y){ case1: case3: case5: case7: case8: case10: case12:day=31;break; case4: case6: case9: case11:day=30;break; case2:{ if((x%400==0)||((x%4==0)&&(x%100!=0))) day=29; else day=28; break; } } cout<<day<<endl; return0;}//p3-6-5實(shí)踐鞏固實(shí)踐鞏固第7課分支結(jié)構(gòu)應(yīng)用舉例學(xué)習(xí)目標(biāo)1.總結(jié)反思,建立分支結(jié)構(gòu)的知識(shí)體系。2.實(shí)踐鞏固,熟練應(yīng)用分支結(jié)構(gòu)解決一些實(shí)際問題。第7課分支結(jié)構(gòu)應(yīng)用舉例學(xué)習(xí)目標(biāo)例1、水果價(jià)格【問題描述】蘋果(apples)、梨(pears)、橘子(oranges)、葡萄(grapes)4種水果,單價(jià)分別是3.00元/千克,2.50元/千克,4.10元/千克和10.2元/千克。【輸入格式】一行一個(gè)整數(shù),0~9之間。【輸出格式】提示信息和相應(yīng)水果的單價(jià),格式如樣例輸出所示?!緲永斎搿?【樣例輸出】[1]apples[2]pears[3]oranges[4]grapesPrice=4.1例1、水果價(jià)格【問題描述】//p3-7-1#include<iostream>usingnamespacestd;intmain(){intx;cin>>x;cout<<“[1]apples”<<endl;cout<<“[2]pears”<<endl;cout<<“[3]oranges”<<endl;cout<<“[4]grapes”<<endl;cout<<“Price=”;switch(x){case1:cout<<“3.0”<<endl;break;case2:cout<<“2.5”<<endl;break;case3:cout<<“4.1”<<endl;break;case4:cout<<“10.2”<<endl;break;default:cout<<“0”<<endl;}return0;}//p3-7-1例2、蟲子吃蘋果【問題描述】小蘇買了一箱蘋果共有n個(gè),很不幸的是箱子里混進(jìn)了一條蟲子。蟲子每x小時(shí)能吃掉一個(gè)蘋果。假設(shè)蟲子在吃完一個(gè)蘋果之前不會(huì)吃另一個(gè),那么經(jīng)過y小時(shí),這箱蘋果中還有多少個(gè)蘋果沒有被蟲子吃過?【輸入格式】一行三個(gè)整數(shù),表示n、x、y,int范圍以內(nèi),之間用一個(gè)空格隔開?!据敵龈袷健恳恍幸粋€(gè)整數(shù),即所求答案?!据斎霕永?21【輸出樣例】2例2、蟲子吃蘋果【問題描述】【問題分析】
如果y%x等于0,則剩余的蘋果為n-y/x;否則答案為n-y/x-1。特殊情況是,如果經(jīng)過y小時(shí)蟲子吃掉的蘋果比n多,則說明剩余蘋果為0。//p3-7-2#include<iostream>usingnamespacestd;intmain(){intn,x,y;cin>>n>>x>>y;intk=y/x;if(y%x)k++;//y%x等價(jià)于y%x!=0if(k<=n)cout<<n-k<<endl;elsecout<<0<<endl;return0;}【問題分析】例3、字符判斷【問題描述】鍵盤輸入任意一個(gè)字符,判斷是大寫字母、小寫字母還是數(shù)字。【輸入格式】一行一個(gè)字符?!据敵龈袷健咳绻谴髮懽帜福敵觥癱apital”;如果是小寫字母,則輸出“l(fā)owercase”;如果是數(shù)字,則輸出“number”;其他字符輸出“others”?!緲永斎搿緼【樣例輸出】capital例3、字符判斷【問題描述】【問題分析】C++中的字符可以直接比較大小,依據(jù)就是其對(duì)應(yīng)的ASCII碼值。而且在ASCII碼中大寫字母、小寫字母和數(shù)字字符都是連續(xù)編號(hào)的。所以,判斷字符類別可以直接進(jìn)行關(guān)系運(yùn)算,也可以通過它的ASCII碼范圍來實(shí)現(xiàn)?!締栴}分析】//p3-7-3#include<iostream>usingnamespacestd;intmain(){charch;cin>>ch;if(ch>=‘A’&&ch<=‘Z’)cout<<“capital”<<endl;elseif(ch>=‘a(chǎn)’&&ch<=‘z’)cout<<“l(fā)owercase”<<endl;elseif(ch>=‘0’&&ch<=‘9’)cout<<“number”<<endl;elsecout<<“others”<<endl;return0;}//p3-7-3例4、隨機(jī)函數(shù)【問題描述】編程隨機(jī)生成2個(gè)1~9之間的整數(shù)a、b。再隨機(jī)生成1個(gè)1~4的整數(shù),1、2、3、4分別對(duì)應(yīng)+、-、*、/這4個(gè)運(yùn)算符號(hào)c。程序輸出acb的結(jié)果?!据斎敫袷健繜o輸入。【輸出格式】輸出a和b的算術(shù)表達(dá)式及其結(jié)果,具體參照樣例輸出?!緲永敵觥?+3=8【樣例說明】樣例輸出只是一種可能,不唯一,但是輸出格式要相同。例4、隨機(jī)函數(shù)【問題描述】【問題分析】C++中的rand()函數(shù)返回[0,RAND_MAX]之間的隨機(jī)整數(shù),其中,RAND_MAX一般為32767。但是,在調(diào)用rand()之前一般要先設(shè)置“隨機(jī)種子”,通常可以用srand(time(0))來實(shí)現(xiàn)。rand()函數(shù)和srand()函數(shù)需要包含“cstdlib”頭文件,time()函數(shù)需要包含“ctime”頭文件。
一般來說,產(chǎn)生a~b之間的隨機(jī)整數(shù)可以表示為:a+rand()%(b-a+1)?!締栴}分析】//p3-7-4#include<cstdio>#include<cstdlib>#include<ctime>usingnamespacestd;intmain(){ inta,b,c; srand(time(0)); intx=1,y=9; a=x+rand()%(y-x+1); b=x+rand()%(y-x+1); x=1; y=4; c=x+rand()%(y-x+1); switch(c){ case1:printf("%d+%d=%d\n",a,b,a+b);break; case2:printf("%d-%d=%d\n",a,b,a-b);break; case3:printf("%d*%d=%d\n",a,b,a*b);break; case4:printf("%d/%d=%d\n",a,b,a/b);break; } return0;}//p3-7-4實(shí)踐鞏固實(shí)踐鞏固第3單元分支結(jié)構(gòu)程序設(shè)計(jì)作者:林厚從信息學(xué)奧賽課課通(C++)第3單元分支結(jié)構(gòu)程序設(shè)計(jì)作者:林厚從信息學(xué)奧賽課課通(第1課
關(guān)系運(yùn)算符學(xué)習(xí)目標(biāo)1.熟練掌握C++中的關(guān)系運(yùn)算符。2.熟知關(guān)系運(yùn)算符和數(shù)學(xué)運(yùn)算符的優(yōu)先級(jí)。3.學(xué)會(huì)正確書寫關(guān)系表達(dá)式。第1課關(guān)系運(yùn)算符學(xué)習(xí)目標(biāo)1.關(guān)系運(yùn)算符C++提供了六種關(guān)系運(yùn)算符:>(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、==(等于)、!=(不等于)。關(guān)系表達(dá)式的結(jié)果為邏輯值真(非0值)或假(0)。1.關(guān)系運(yùn)算符C++提供了六種關(guān)系運(yùn)算符:>(大于)、<使用關(guān)系運(yùn)算符需要注意的問題(1)“等于”與“賦值”的區(qū)別;(2)實(shí)型數(shù)據(jù)(浮點(diǎn)數(shù))的關(guān)系運(yùn)算;(3)運(yùn)算符的優(yōu)先級(jí),如下表:使用關(guān)系運(yùn)算符需要注意的問題(1)“等于”與“賦值”的區(qū)別;2.關(guān)系運(yùn)算符的應(yīng)用舉例例1、假設(shè)變量定義為“intx=6,y=4,z=5;”,請(qǐng)分別寫出下列表達(dá)式的值。(1)x+y>y+z(2)‘x’<‘z’(3)x==x>=y(4)(x<y)>(y<=z)2.關(guān)系運(yùn)算符的應(yīng)用舉例例1、假設(shè)變量定義為“intx=例2、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-1-2#include<iostream>usingnamespacestd;intmain(){intn1=4,n2=5,n3;n3=(n1>n2);cout<<n3<<“,”;n3=(n1<n2);cout<<n3<<“,”;n3=(n1==4);cout<<n3<<“,”;n3=(n1==5);cout<<n3<<endl;return0;}例2、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-1-2例3、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-1-3#include<iostream>usingnamespacestd;intmain(){charx,y;x=‘m’;y=‘n’;intn;n=x<y;cout<<n<<endl;n=x==y-1;cout<<n<<endl;n=(‘y’!=‘Y’)+(5>3)+(y-x==1);cout<<n<<endl;return0;}例3、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-1-3實(shí)踐鞏固實(shí)踐鞏固第2課邏輯運(yùn)算符學(xué)習(xí)目標(biāo)1.熟練掌握C++中的邏輯運(yùn)算符。2.熟知邏輯運(yùn)算符的優(yōu)先級(jí)。3.學(xué)會(huì)正確書寫邏輯表達(dá)式。第2課邏輯運(yùn)算符學(xué)習(xí)目標(biāo)邏輯運(yùn)算符C++提供了&&(邏輯與)、||(邏輯或)和!(邏輯非)三種邏輯運(yùn)算符。其中,&&和||是雙目運(yùn)算符,而!是單目運(yùn)算符。邏輯運(yùn)算符C++提供了&&(邏輯與)、||(邏輯或)和邏輯運(yùn)算符邏輯運(yùn)算符1、邏輯運(yùn)算符的優(yōu)先級(jí)問題1、邏輯運(yùn)算符的優(yōu)先級(jí)問題(1)一個(gè)0~100之間(不包括0和100)的數(shù)a。
(2)x大于y且x大于z。
(3)x是英文字母。例1、寫出下列語義的C++表達(dá)式。(1)一個(gè)0~100之間(不包括0和100)的數(shù)整型數(shù)據(jù)在參與邏輯運(yùn)算時(shí),根據(jù)其值是0或非0,分別當(dāng)作邏輯值“假”或“真”進(jìn)行處理。例2、假設(shè)變量定義為“inta=0,b=0,c=1,d=1;”,請(qǐng)寫出表達(dá)式a&&b||c&&d的結(jié)果。2、整型數(shù)據(jù)也可以參與邏輯運(yùn)算整型數(shù)據(jù)在參與邏輯運(yùn)算時(shí),根據(jù)其值是0或非0,分別當(dāng)作//p3-2-3#include<iostream>usingnamespacestd;intmain(){ inta,b,c,d; a=2;b=3;c=0; d=(a+b||c); cout<<d<<endl; return0;}例3、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-2-3例3、閱讀程序,寫出程序的運(yùn)行結(jié)果。例4、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-2-4#include<iostream>usingnamespacestd;intmain(){inta,b,c,d;a=2;b=3;c=0;d=(a>b)&&(c=4);cout<<d<<””<<c<<endl;return0;}3、邏輯表達(dá)式是“短路計(jì)算”在邏輯表達(dá)式的計(jì)算過程中,一旦能夠確定整個(gè)表達(dá)式的值,就會(huì)立刻停止計(jì)算。例4、閱讀程序,寫出程序的運(yùn)行結(jié)果。3、邏輯表達(dá)式是“短路【問題分析】
判斷“閏年”的口訣是:四年一閏,百年不閏,四百年又閏。2016年是閏年,因?yàn)?016能被4整除;2100年不是閏年,因?yàn)樗鼙?00整除;但2000年是閏年,因?yàn)樗鼙?00整除。
所以,判斷某一年份是否是閏年有兩種情況:一種是能被400整除;另一種是能被4整除但不能被100整除。所以,可以表示成:(x%400==0)||((x%4==0)&&(x%100!=0))例5、寫出判斷某一年份x是否是“閏年”的表達(dá)式?!締栴}分析】例5、寫出判斷某一年份x是否是“閏年”的表達(dá)實(shí)踐鞏固實(shí)踐鞏固第3課if語句學(xué)習(xí)目標(biāo)1.掌握if語句的兩種格式。2.理解分支結(jié)構(gòu)和復(fù)合語句。3.熟練應(yīng)用if語句解決一些實(shí)際問題。第3課if語句學(xué)習(xí)目標(biāo)1.if語句if語句有兩種格式:第一種格式為:if(表達(dá)式)語句1;else語句2;第二種格式為:if(表達(dá)式)語句;1.if語句if語句有兩種格式:第二種格式為:例1、旅游費(fèi)用?!締栴}描述】風(fēng)華公司“南京一日游”的收費(fèi)標(biāo)準(zhǔn)為:5人以內(nèi)(含5人)按散客標(biāo)準(zhǔn),每人300元;超過5人,按團(tuán)體標(biāo)準(zhǔn),每人280元。請(qǐng)根據(jù)輸入的人數(shù),輸出其旅游費(fèi)用?!据斎敫袷健恳恍幸粋€(gè)正整數(shù)n,表示人數(shù),1≤n≤5000000?!据敵龈袷健恳恍幸粋€(gè)正整數(shù),表示需要的總旅游費(fèi)用。【輸入樣例】9【輸出樣例】2520例1、旅游費(fèi)用?!締栴}描述】【問題分析】這是一個(gè)“選擇性”問題,根據(jù)人數(shù)n來選擇不同的收費(fèi)標(biāo)準(zhǔn)。條件就是n≤5,如果成立,那么收費(fèi)為n×300;否則,收費(fèi)為n×280。//p3-3-1a#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;if(n<=5)cout<<n*300<<endl;elsecout<<n*280<<endl;return0;}【問題分析】或換成另一種形式://p3-3-1b#include<iostream>usingnamespacestd;intmain(){intn,ans;cin>>n;ans=n*300;if(n>5)ans=n*280;cout<<ans<<endl;return0;}或換成另一種形式://p3-3-1b例2、三個(gè)數(shù)的大小比較。【問題描述】輸入三個(gè)整數(shù)x、y和z,判斷是否滿足x≤y≤z。若滿足,則輸出“YES”;否則,輸出“NO”?!据斎敫袷健恳恍腥齻€(gè)整數(shù)x、y和z,int范圍以內(nèi)?!据敵龈袷健恳恍幸粋€(gè)單詞,表示答案。【輸入樣例1】367【輸出樣例1】YES【輸入樣例2】376【輸出樣例2】NO例2、三個(gè)數(shù)的大小比較?!締栴}描述】【問題分析】如果邏輯表達(dá)式“x<=y&&y<=z”為真,則輸出“YES”;否則,輸出“NO”。//p3-3-2#include<iostream>usingnamespacestd;intmain(){intx,y,z;cin>>x>>y>>z;if(x<=y&&y<=z)cout<<”YES”<<endl;elsecout<<”NO”<<endl;return0;}【問題分析】2.復(fù)合語句例3、數(shù)據(jù)交換。【問題描述】輸入a、b兩個(gè)整數(shù),如果a大于b,則交換a與b的值,再輸出a和b的值。【輸入格式】一行兩個(gè)整數(shù)a、b,int范圍以內(nèi)?!据敵龈袷健恳恍袃蓚€(gè)整數(shù),a、b最后的值,中間空一格?!据斎霕永?】67【輸出樣例1】67【輸入樣例2】108【輸出樣例2】8102.復(fù)合語句例3、數(shù)據(jù)交換。【問題分析】
交換a與b的值需要用到3條語句。所以,當(dāng)判斷條件“a>b”成立時(shí),需要依次執(zhí)行完這3條語句,這時(shí)就需要用花括號(hào)“{}”將這3條語句括起來,這些括起來的語句組合稱為“復(fù)合語句”,流程圖如右圖?!締栴}分析】//p3-3-3#include<iostream>usingnamespacestd;intmain(){inta,b,c;cin>>a>>b;if(a>b){c=a;a=b;b=c;}cout<<a<<””<<b<<endl;return0;}//p3-3-3實(shí)踐鞏固實(shí)踐鞏固第4課if語句的嵌套學(xué)習(xí)目標(biāo)1.理解if語句嵌套的含義。2.熟練應(yīng)用if語句及其嵌套解決一些實(shí)際問題。第4課if語句的嵌套學(xué)習(xí)目標(biāo)if語句的嵌套
在分支結(jié)構(gòu)中經(jīng)常會(huì)遇到這樣的情況:如果條件1成立,就去做A事情,否則去做B事情,但是,在做A事情(或者B事情)時(shí),還要根據(jù)條件2是否成立,決定是做A1(或者B1)這件子事情,還是去做A2(或者B2)這件子事情。在程序設(shè)計(jì)中,把這種情況稱為分支結(jié)構(gòu)的“嵌套”,一般用來解決三種及以上的分支情況。if語句的嵌套在分支結(jié)構(gòu)中經(jīng)常會(huì)遇到這樣的情況:如【問題描述】輸入三個(gè)整數(shù)x、y、z,判斷其是否滿足x≤y≤z。若滿足,輸出“YES”;否則,輸出“NO”?!据斎敫袷健恳恍腥齻€(gè)整數(shù)x、y、z,int范圍以內(nèi)?!据敵龈袷健恳恍幸粋€(gè)單詞,表示答案?!据斎霕永?67【輸出樣例】YES例1、三個(gè)數(shù)的大小比較?!締栴}描述】例1、三個(gè)數(shù)的大小比較?!締栴}分析】前面已經(jīng)介紹過用邏輯表達(dá)式“x<=y&&y<=z”來表示YES”的條件,本題也可以用if語句的嵌套來解決,如圖:【問題分析】//p3-4-1#include<iostream>usingnamespacestd;intmain(){intx,y,z;cin>>x>>y>>z;if(x<=y)if(y<=z)cout<<”YES”<<endl;elsecout<<”NO”<<endl;elsecout<<”NO”<<endl;return0;}//p3-4-1(1)分支結(jié)構(gòu)可以嵌套很多層;(2)if與else的配對(duì)關(guān)系;(3)編程要形成良好的代碼風(fēng)格;使用if語句的嵌套需注意的問題(1)分支結(jié)構(gòu)可以嵌套很多層;使用if語句的嵌套需注意的//p3-4-2a#include<iostream>usingnamespacestd;intmain(){ intx=4,y=3,z=2; if(x<=y) if(y<=z) cout<<"YES"<<endl; else cout<<"NO"<<endl; return0; }例2、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-4-2a例2、閱讀程序,寫出程序的運(yùn)行結(jié)果。
【問題分析】
程序不會(huì)輸出任何結(jié)果。因?yàn)槠渲械膃lse子句從書寫格式上看,與外層“if(x<=y)”語句配對(duì),但其實(shí)是與內(nèi)層的“if(y<=z)”配對(duì)。而外層的“if(x<=y)”是不成立的,又沒有else子句,所以直接執(zhí)行后面的“returne0;”語句。
【問題分析】例3、判斷閏年?!締栴}描述】輸入某一年份x,判斷該年份是否是閏年。是則輸出“YES”,否則輸出“NO”?!据斎敫袷健恳恍幸粋€(gè)正整數(shù)x,int范圍以內(nèi)?!据敵龈袷健恳恍幸粋€(gè)單詞,表示判斷結(jié)果。【輸入樣例】2000【輸出樣例】YES例3、判斷閏年?!締栴}描述】【問題分析】前面已經(jīng)介紹過判斷閏年的條件表達(dá)式。對(duì)于閏年的判斷,也可以采用嵌套的方法來實(shí)現(xiàn)?!締栴}分析】//p3-4-3#include<iostream>usingnamespacestd;intmain(){intx;cin>>x;if(x%400==0)cout<<“YES”<<endl;elseif(x%4==0)if(x%100!=0)cout<<“YES”<<endl;elsecout<<“NO”<<endl;elsecout<<“NO”<<endl;return0;}//p3-4-3例4、優(yōu)惠購(gòu)物?!締栴}描述】
教材77頁?!締栴}分析】設(shè)id表示顧客的身份,price表示顧客購(gòu)買的商品價(jià)值,flag=0表示無大禮包,flag=1表示有大禮包,discount表示顧客享受的折扣,則計(jì)算流程如下:例4、優(yōu)惠購(gòu)物。【問題描述】【問題分析】flag=0;如果id等于“V”如果price≤500,則discount=0.85;否則,如果price≤1000,則discount=0.8;否則,discount=0.75,flag=1;否則discount=0.9;如果price>500,則flag=1;【參考代碼】
教材78頁。flag=0;【參考代碼】實(shí)踐鞏固實(shí)踐鞏固第5課條件表達(dá)式學(xué)習(xí)目標(biāo)學(xué)會(huì)書寫和使用條件表達(dá)式解決一些實(shí)際問題。第5課條件表達(dá)式學(xué)習(xí)目標(biāo)條件表達(dá)式C++語言表達(dá)能力強(qiáng),表達(dá)式類型豐富。其中就有一個(gè)“條件表達(dá)式”,通過它也可以來實(shí)現(xiàn)有選擇的取值。條件表達(dá)式的格式為:<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>其運(yùn)算規(guī)則為:首先計(jì)算表達(dá)式1的值,若表達(dá)式1的值為真(非0),則只計(jì)算表達(dá)式2,并將其結(jié)果作為整個(gè)表達(dá)式的值;否則,只計(jì)算表達(dá)式3,并將其結(jié)果作為整個(gè)表達(dá)式的值。條件表達(dá)式C++語言表達(dá)能力強(qiáng),表達(dá)式類型豐富。其中就有一個(gè)例1、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-5-1#include<iostream>usingnamespacestd;intmain(){intx=5,y=10,z;z=x>y?x:y;cout<<z<<endl;z=x>0?1:-1;cout<<z<<endl;cout<<(x%2==0?“xiseven”:”xisodd”)<<endl;return0;}例1、閱讀程序,寫出程序的運(yùn)行結(jié)果。//p3-5-1例2、旅游費(fèi)用【問題描述】風(fēng)華公司“南京一日游”的收費(fèi)標(biāo)準(zhǔn)為:5人以內(nèi)(含5人)按散客標(biāo)準(zhǔn),每人300元。超過5人,按團(tuán)體標(biāo)準(zhǔn),每人280元。請(qǐng)根據(jù)輸入的人數(shù),輸出其旅游費(fèi)用?!据斎敫袷健恳恍幸粋€(gè)正整數(shù)n,表示人數(shù),1≤n≤5000000?!据敵龈袷健恳恍幸粋€(gè)正整數(shù),表示需要的總旅游費(fèi)用。【輸入樣例】9【輸出樣例】2520例2、旅游費(fèi)用【問題描述】//p3-5-2#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;cout<<(n<=5?n*300:n*280)<<endl;return0;}//p3-5-2例3、判斷閏年【問題描述】輸入某一年份x,判斷該年份是否是閏年。是則輸出“YES”,否則輸出“NO”?!据斎敫袷健恳恍幸粋€(gè)正整數(shù)x,int范圍以內(nèi)?!据敵龈袷健恳恍幸粋€(gè)單詞,表示判斷結(jié)果?!据斎霕永?000【輸出樣例】YES例3、判斷閏年【問題描述】//p3-5-3#include<iostream>usingnamespacestd;intmain(){intx;cin>>x;cout<<(x%400==0?“YES”:(x%4==0?(x%100!=0?“YES”:”NO”):”NO”))<<endl;return0;}//p3-5-3實(shí)踐鞏固實(shí)踐鞏固第6課switch語句學(xué)習(xí)目標(biāo)1.掌握switch語句的格式和含義。2.學(xué)會(huì)應(yīng)用switch語句解決一些實(shí)際問題。第6課switch語句學(xué)習(xí)目標(biāo)多分支語句—switch
在一些實(shí)際問題中,分類情況特別多,用if語句嵌套實(shí)現(xiàn)起來,層數(shù)太多,容易出錯(cuò)。為此,C++提供了一種多分支語句——switch。switch語句的一般格式為:switch(表達(dá)式){case常量表達(dá)式1:語句組1;[break;]case常量表達(dá)式2:語句組2;[break;]…case常量表達(dá)式n:語句組n;[break;][default:語句組n+1]}多分支語句—switch在一些實(shí)際問題中,分多分支語句—switch
執(zhí)行過程為:先計(jì)算表達(dá)式的值,然后從前往后依次與case子句中所列出的各個(gè)常量表達(dá)式的值進(jìn)行比較,若表達(dá)式的值與常量中的值相等,就開始進(jìn)入相應(yīng)的case后面的語句組執(zhí)行,遇到后續(xù)的case也不再進(jìn)行判斷(默認(rèn)匹配),直至遇到break語句或switch語句結(jié)束。default表示表達(dá)式與所有常量表達(dá)式的值都不匹配,那就執(zhí)行其后面的語句組,通常將default放在最后。如果表達(dá)式與各分支常量表達(dá)式的值都不匹配時(shí),不需要執(zhí)行任何語句,則default可以省略。多分支語句—switch執(zhí)行過程為:先計(jì)算表達(dá)式的值例1、閱讀下面程序,思考輸入“-”,則輸出什么。//p3-6-1#include<iostream>usingnamespacestd;intmain(){charsymbol;cin>>symbol;switch(symbol){case‘+’:cout<<“+”<<endl;break;case‘-’:cout<<“-”<<endl;break;case‘*’:cout<<“*”<<endl;break;case‘/’:cout<<“/”<<endl;break;default:cout<<“InputInvalid!”;}return0;}【問題分析】輸出“-”。如果把其中的4條“break;”語句去掉,輸出什么?例1、閱讀下面程序,思考輸入“-”,則輸出什么。//p3-6使用switch語句要注意的問題(1)switch后面的表達(dá)式,取值只能是整型、字符型、布爾型或枚舉型。case后面的常量表達(dá)式,其值類型要與switch后面表達(dá)式的類型一致。(2)任意兩個(gè)case后的表達(dá)式值必須各不相同,否則將引起歧義。(3)語句組可以是一條語句,也可以是一個(gè)復(fù)合語句。(4)多個(gè)case語句可以共用一組程序。使用switch語句要注意的問題(1)switch后面例3、閱讀程序,思考分別輸入“A”“B”“C”,則程序輸出什么。//p3-6-3#include<iostream>usingnamespacestd;intmain(){charch;cin>>ch;switch(ch){case‘A’:case‘B’:case‘C’:cout<<“Pass”<<endl;break;}}例3、閱讀程序,思考分別輸入“A”“B”“C”,則程序輸出例4、優(yōu)惠購(gòu)物【問題描述】某商場(chǎng)的客戶分為白金卡會(huì)員、金卡會(huì)員、銀卡會(huì)員和普通客戶。為了回饋廣大顧客,現(xiàn)推出以下優(yōu)惠活動(dòng):(1)如果客戶是白金會(huì)員,現(xiàn)在將享受7折優(yōu)惠;(2)如果客戶是金卡會(huì)員,現(xiàn)在將享受8折優(yōu)惠;(3)如果客戶是銀卡會(huì)員,現(xiàn)在將享受9折優(yōu)惠;(4)如果客戶是普通客戶,現(xiàn)在將享受9.5折優(yōu)惠。本題的任務(wù)是根據(jù)顧客的身份和購(gòu)買商品的價(jià)格,給出應(yīng)付金額。例4、優(yōu)惠購(gòu)物【問題描述】【輸入格式】第一行一個(gè)字符?!癙”表示白金會(huì)員,“G”表示金卡會(huì)員,“S”表示銀卡會(huì)員,其他字符表示普通客戶。第二行一個(gè)整數(shù),int范圍以內(nèi),表示該顧客購(gòu)買的商品金額。【輸出格式】一行一個(gè)實(shí)數(shù),保留兩位小數(shù),表示顧客應(yīng)付金額?!緲永斎搿縂580【樣例輸出】464.00【輸入格式】//p3-6-4#include<cstdio>usingnamespacestd;intmain(){charid;floatprice,discount;scanf(“%c\n”,&id);scanf(“%f”,&price);switch(id){case‘P’:discount=0.7;break;case‘G’:discount=0.8;break;case‘S’:discount=0.9;break;default:discount=0.95;}printf(“%.2f\n”,price*discount);return0;}//p3-6-4例5、某年某月的天數(shù)【問題描述】輸入x和y,輸出x年y月有多少天?!据斎敫袷健恳恍袃蓚€(gè)正整數(shù)x和y,分別表示年份和月份。x在int范圍以內(nèi),y為1~12。【輸出格式】一行一個(gè)整數(shù),表示該年該月有多少天。【樣例輸入】20003【樣例輸出】31例5、某年某月的天數(shù)【問題描述】//p3-6-5#include<iostream>usingnamespacestd;intmain(){
intx,y,day; cin>>x>>y;switch(y){ case1: case3: case5: case7: case8: case10: case12:day=31;break; case4: case6: case9: case11:day=30;break; case2:{ if((x%400==0)||((x%4==0)&&(x%100!=0))) day=29; else day=28; break; } } cout<<day<<endl; return0;}//p3-6-5實(shí)踐鞏固實(shí)踐鞏固第7課分支結(jié)構(gòu)應(yīng)用舉例學(xué)習(xí)目
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024智能機(jī)器人研發(fā)與托管合同
- 知到智慧樹網(wǎng)課《大學(xué)生創(chuàng)業(yè)基礎(chǔ)(湖北工業(yè)大學(xué))》章節(jié)測(cè)試滿分答案
- 2024正規(guī)實(shí)驗(yàn)室設(shè)備轉(zhuǎn)讓與技術(shù)服務(wù)合同范本3篇
- 家長(zhǎng)引導(dǎo)如何為孩子量身定制學(xué)習(xí)計(jì)劃
- 家庭辦公環(huán)境下的衛(wèi)生管理如何有效防止幽門螺旋桿菌傳播
- 小學(xué)作文教育的創(chuàng)新策略與實(shí)踐
- 2024版機(jī)場(chǎng)航站樓風(fēng)管保溫系統(tǒng)施工合同3篇
- 學(xué)生體質(zhì)健康與運(yùn)動(dòng)安全的綜合管理方案
- 小學(xué)數(shù)學(xué)與商業(yè)思維中的多元智能培養(yǎng)
- 2024年精裝房屋改造升級(jí)協(xié)議樣本版B版
- 設(shè)備部年度工作總結(jié)和來年計(jì)劃
- 藥品的收貨與驗(yàn)收培訓(xùn)課件
- 寶寶大便觀察及護(hù)理課件
- 公司月度安全生產(chǎn)綜合檢查表
- 開題報(bào)告會(huì)記錄單
- 對(duì)話的力量:焦點(diǎn)解決取向在青少年輔導(dǎo)中的應(yīng)用
- 我的家鄉(xiāng)湖北荊門介紹
- (銀川市直部門之間交流)2022事業(yè)單位工作人員調(diào)動(dòng)表
- 廣州市小學(xué)生學(xué)籍表
- 法律與社會(huì)學(xué)習(xí)通章節(jié)答案期末考試題庫2023年
- 瓷磚采購(gòu)?fù)稑?biāo)方案
評(píng)論
0/150
提交評(píng)論