信息學(xué)奧賽之選擇結(jié)構(gòu)_第1頁(yè)
信息學(xué)奧賽之選擇結(jié)構(gòu)_第2頁(yè)
信息學(xué)奧賽之選擇結(jié)構(gòu)_第3頁(yè)
信息學(xué)奧賽之選擇結(jié)構(gòu)_第4頁(yè)
信息學(xué)奧賽之選擇結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

信息學(xué)奧林匹克競(jìng)賽教練員:鄧富教練員:鄧富選擇結(jié)構(gòu)程序設(shè)計(jì)本節(jié)要點(diǎn)關(guān)系運(yùn)算符和關(guān)系表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式選擇結(jié)構(gòu)程序設(shè)計(jì)單分支雙分支復(fù)合語(yǔ)句一關(guān)系運(yùn)算符與關(guān)系表達(dá)式1、關(guān)系運(yùn)算符:注意:(1)==與=(a=5;賦值運(yùn)算;a==5;判斷是否相等)(2)<,>,<=,>=的優(yōu)先級(jí)大于==,!=(3)算術(shù)運(yùn)算符的優(yōu)先級(jí)高于關(guān)系運(yùn)算符的優(yōu)先級(jí);關(guān)系運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符的優(yōu)先級(jí);如:c>ab等效于c>aba>b==c等效于a>b==c不知道優(yōu)先級(jí)的高低,萬能的方法是多加括號(hào)!>(大于)<(小于)==(等于)>=(大于等于)<=小于等于!=(不等于)2、關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將表達(dá)式連接起來稱為關(guān)系表達(dá)式。其值非真即假。在C語(yǔ)言中,用非0代表真,用0表示假。關(guān)系表達(dá)式的結(jié)果只有兩個(gè),真為1,假為0。一般格式為:表達(dá)式1關(guān)系運(yùn)算符表達(dá)式2如:a<b、ab!=cd、‘a(chǎn)’>‘b’等都是合法的關(guān)系表達(dá)式。說明:1關(guān)系表達(dá)式的值:如果關(guān)系表達(dá)式成立,其值為1,表示“真”;否則是0,表示“假”。2關(guān)系運(yùn)算符的兩側(cè)可以是變量也可以是表達(dá)式一關(guān)系運(yùn)算符與關(guān)系表達(dá)式【例題】輸出關(guān)系表達(dá)式的運(yùn)算結(jié)果。#include<bits/stdch>usingnamesain{inta=10,b=20;cout<<a<b<<""<<a>=b<<""<<a!=b<<endl;cout<<a*b<=ab<<""<<a*b==ab<<""<<a*b>ab<<endl;cout<<'a'>'b'<<""<<'a'<'b'<<endl;return0;}運(yùn)行結(jié)果為:10100101二邏輯運(yùn)算符與邏輯表達(dá)式1.邏輯運(yùn)算符:與&&;或||;非??;AB!AA&&BA||B10110001!AA&&BA||B001011100101長(zhǎng)沙籍的男生長(zhǎng)沙籍的或所有男生非長(zhǎng)沙籍的長(zhǎng)沙籍&&男生例如:兩個(gè)條件:長(zhǎng)沙籍男生長(zhǎng)沙籍||男生!長(zhǎng)沙籍注意:優(yōu)先級(jí)!&&||!算術(shù)關(guān)系邏輯賦值逗號(hào)3不可寫為1<<10應(yīng)為:1<&&<102作為條件,所有非0值均為真;作為結(jié)果,只有0或1兩種?!纠}】判斷某年是否為閏年1)能被400整除2)能被4整除,不能被100整除%400==0%4==0&&%100!=0%400==0||%4==0&&%100!=0判斷一個(gè)數(shù)是否為偶數(shù),應(yīng)如何表示?a%2==0(除以2的余數(shù)為0就是偶數(shù))1<=a<=10,如何表示?a>=1&&a<=10(多個(gè)關(guān)系運(yùn)算符不能連在一起寫)判斷一個(gè)字符是否為小寫字母,應(yīng)如何表示?ch>=‘a(chǎn)’&&ch<=‘’或者ch>97&&ch<122‘a(chǎn)’的ASCII碼為97,‘’的ASCII碼為122三選擇程序設(shè)計(jì)所謂選擇結(jié)構(gòu),就是根據(jù)不同的條件,選擇不同的處理塊。(1)基本形式1:if(表達(dá)式)語(yǔ)句;其執(zhí)行過程是:首先計(jì)算表達(dá)式的值,若不為0,表示條件判斷為真,則執(zhí)行語(yǔ)句;否則,不執(zhí)行語(yǔ)句,如圖所示。三選擇程序設(shè)計(jì)例題1:求的絕對(duì)值#include<bits/stdch>usingnamesain{

return0;}int;cin>>;if<0=-;cout<<<<endl;(2)基本形式2if(表達(dá)式)語(yǔ)句1;else語(yǔ)句2;其執(zhí)行過程是:首先計(jì)算表達(dá)式的值,若不為0,表示條件判斷為真,則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2。三選擇程序設(shè)計(jì)#include<bits/stdch>usingnamesain{

return0;}int;cin>>;if<0cout<<-<<endl;elsecout<<<<endl;例題1:求的絕對(duì)值【問題描述】行李托運(yùn),10公斤以內(nèi)運(yùn)費(fèi)25元,超過10公斤,超過部份每公斤加收15元?!疚募斎搿枯斎胫挥幸粋€(gè)數(shù),表示行李的重量(<=10000)?!疚募敵觥枯敵鲋挥幸恍?,包括1個(gè)數(shù)(保留兩位小數(shù))?!緲永斎搿?【樣例輸出】250例題2:行李托運(yùn)#include<bits/stdch>usingnamesain{

return0;}doublep,s;cin>>p;ifp<=10s=25;elses=25p-10*15;cout<<fied<<setprecision2<<s<<endl;參考代碼【問題描述】已知有三個(gè)不等的數(shù)均小于10000,將其中的最大數(shù)找出來?!疚募斎搿枯斎胫挥幸恍校?個(gè)整數(shù)。之間用一個(gè)空格分開?!疚募敵觥枯敵鲋挥幸恍邪?個(gè)整數(shù)?!緲永斎搿?58【樣例輸出】8例題3:求三個(gè)數(shù)的最大數(shù)方法一:#include<bits/stdch>usingnamesain{inta,b,c,ma;cin>>a>>b>>c;ifa<bma=b;elsema=a;ifma<cma=c;cout<<ma<<endl;return0;}方法二:#include<bits/stdch>usingnamesain{inta,b,c;cin>>a>>b>>c;ifa<ba=b;ifa>ccout<<a<<endl; elsecout<<c<<endl;return0;}參考代碼在if語(yǔ)句中,跟在條件或else后的語(yǔ)句可能不止一個(gè),這時(shí)要用到復(fù)合語(yǔ)句。復(fù)合語(yǔ)句是以{開始,以}結(jié)束的語(yǔ)句。在{與}之間可以包括若干個(gè)語(yǔ)句,每個(gè)語(yǔ)句之間以分號(hào)分開。復(fù)合語(yǔ)句的一般形式:{語(yǔ)句1;語(yǔ)句2;……語(yǔ)句n;}復(fù)合語(yǔ)句方法三:#include<bits/stdch>usingnamesain{inta,b,c,d;cin>>a>>b>>c;ifa<b{d=a;a=b;b=d;}ifa<c{d=a;a=c;c=d;}cout<<a<<endl;return0;}參考代碼基本形式3——if語(yǔ)句的嵌套if表達(dá)式1語(yǔ)句1;elseif表達(dá)式2語(yǔ)句2;…elseif表達(dá)式n語(yǔ)句n;else語(yǔ)句n1;三選擇程序設(shè)計(jì)#include<bits/stdch>usingnamesain{int,y;cin>>;if<0y=0;elseif<=5y=;elsey=*;cout<<”=”<<<<”y=”<<y<<endl;return0;}參考代碼【問題描述】編程模擬剪刀、石頭、布游戲:用S表示剪刀,用R表示石頭,用P表示布。規(guī)則是:剪刀剪布,石頭砸剪刀,布包石頭。游戲者甲乙分別把自己的選擇輸入,計(jì)算機(jī)給出結(jié)果?!疚募斎搿枯斎爰滓覂蓚€(gè)人分別出的結(jié)果【文件輸出】輸出結(jié)果,若甲獲得勝利輸出"Win",平局輸出"Equ",否則輸出"Fall"【樣例輸入】SR【樣例輸出】Fall例題6:剪刀石頭布游戲#include<bits/stdch>usingnamesain{chara,b;cin>>a>>b;ifa=='R'&&b=='S'||a=='S'&&b=='P'||a=='P'&&b=='R'cout<<"Win";ifa=='S'&&b=='R'||a=='P'&&b=='S'||a=='R'&&b=='P'cout<<"Fall";ifa==bcout<<"Equ";return0;}參考代碼判斷大寫字母題目描述 判斷一個(gè)字符是否是大寫字母即大于等于A且小于等于。若該字符是大寫字母,輸出1,否則輸出0。輸入 一個(gè)字符輸出 一行。若該字符是大寫字母,輸出1,否則輸出0。樣例輸入 E樣例輸出 1DescripleOutput4練習(xí):求分段函數(shù)的值習(xí)題:判斷閏年題目描述 判斷某年是否是閏年。如果公元a年是閏年輸出Y,否則輸出N。輸入 輸入只有一行,包含一個(gè)整數(shù)a輸出 一行,如果公元a年是閏年輸出Y,否則輸出N。樣例輸入 2006樣例輸出 N提示判斷閏年的條件:

1能被400整除的是閏年

2能被4整除但是不能被100整除的也是閏年

習(xí)題:計(jì)算郵資題目描述根據(jù)郵件的重量和用戶是否選擇加急計(jì)算郵費(fèi)。計(jì)算規(guī)則:重量在1000克以內(nèi)包括1000克,基本費(fèi)8元。超過1000克的部分,每500克加收超重費(fèi)4元,不足500克部分按500克計(jì)算;如果用戶選擇加急,多收5元。輸入輸入一行,包含整數(shù)和一個(gè)字符,以一個(gè)空格分開,分別表示重量(單位為克)和是否加急。如果字符是y,說明選擇加急;如果字符是n,說明不加急。輸出輸出一行,包含一個(gè)整數(shù),表示郵費(fèi)。樣例輸入1200y樣例輸出17DescripleOutputGOOD練習(xí)2:判斷成績(jī)等級(jí)多分支語(yǔ)句—switch在一些實(shí)際問題中,分類情況特別多,用if語(yǔ)句嵌套實(shí)現(xiàn)起來,層數(shù)太多,容易出錯(cuò)。為此,C提供了一種多分支語(yǔ)句——switch。switch語(yǔ)句的一般格式為:switch表達(dá)式{case常量表達(dá)式1:語(yǔ)句組1;case常量表達(dá)式2:語(yǔ)句組2;…case常量表達(dá)式n:語(yǔ)句組n;}多分支語(yǔ)句—switch執(zhí)行過程為:先計(jì)算表達(dá)式的值,然后從前往后依次與case子句中所列出的各個(gè)常量表達(dá)式的值進(jìn)行比較,若表達(dá)式的值與常量中的值相等,就開始進(jìn)入相應(yīng)的case后

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論