《編程基礎(chǔ)-C語言》項(xiàng)目四選擇結(jié)構(gòu)程序設(shè)計(jì)_第1頁
《編程基礎(chǔ)-C語言》項(xiàng)目四選擇結(jié)構(gòu)程序設(shè)計(jì)_第2頁
《編程基礎(chǔ)-C語言》項(xiàng)目四選擇結(jié)構(gòu)程序設(shè)計(jì)_第3頁
《編程基礎(chǔ)-C語言》項(xiàng)目四選擇結(jié)構(gòu)程序設(shè)計(jì)_第4頁
《編程基礎(chǔ)-C語言》項(xiàng)目四選擇結(jié)構(gòu)程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目四

選擇結(jié)構(gòu)程序設(shè)計(jì)任務(wù)8'A'比'a'大嗎?——關(guān)系表達(dá)式任務(wù)9閏年的表示——邏輯表達(dá)式任務(wù)10兒童票售票提示——if選擇語句任務(wù)11打印成績(jī)等級(jí)——switch多分支語句任務(wù)8'A'比'a'大嗎?——關(guān)系表達(dá)式任務(wù)描述:編寫程序,比較C語言中字母A和字母a的大小。任務(wù)分析:在本任務(wù)中,要比較兩個(gè)值的大小需要用到關(guān)系運(yùn)算符。在C語言中,所謂關(guān)系運(yùn)算就是進(jìn)行比較的運(yùn)算:將兩個(gè)值進(jìn)行比較,判斷其是否符合給定的條件。若符合,則為真(結(jié)果為1),否則為假(結(jié)果為0)。4.1關(guān)系運(yùn)算符及其優(yōu)先級(jí)運(yùn)算符含義優(yōu)先級(jí)結(jié)合方向>

大于6自左至右>=大于或等于6自左至右<

小于6自左至右<=小于或等于6自左至右==等于7自左至右!=不等于7自左至右表4-1C語言中的關(guān)系運(yùn)算符任務(wù)8'A'比'a'大嗎?——關(guān)系表達(dá)式4.1關(guān)系運(yùn)算符及其優(yōu)先級(jí)(1)“>=”、“<=”、“==”、和“!=”與數(shù)學(xué)中對(duì)應(yīng)的運(yùn)算符寫法不同,要注意區(qū)分。(2)關(guān)系運(yùn)算符被分為兩種優(yōu)先級(jí),前四種高于后兩種。關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。(3)當(dāng)相同優(yōu)先級(jí)的關(guān)系運(yùn)算符同時(shí)出現(xiàn)時(shí),從左至右進(jìn)行運(yùn)算。任務(wù)8'A'比'a'大嗎?——關(guān)系表達(dá)式4.2關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來的式子稱為關(guān)系表達(dá)式。關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”和“假”。C語言沒有邏輯型數(shù)據(jù),以“1”代表“真”,以“0”代表“假”。若有定義語句:a=1,b=2,c=3;則:a<b為真,值為1。a!=b為真,值為1。a==c>b為真,值為1。d=c>b>ad的值為0。任務(wù)8'A'比'a'大嗎?——關(guān)系表達(dá)式#include<stdio.h>main(){inta,b,c;a='A'>'a';b='A'=='a';c='A'<'a';printf("%d,%d,%d",a,b,c);}任務(wù)8'A'比'a'大嗎?——關(guān)系表達(dá)式任務(wù)實(shí)施:任務(wù)8'A'比'a'大嗎?——關(guān)系表達(dá)式任務(wù)總結(jié):關(guān)系表達(dá)式可以像本任務(wù)中這樣賦值給一個(gè)變量,也可以作為條件判斷單獨(dú)使用。在使用關(guān)系運(yùn)算符時(shí)要注意其與數(shù)學(xué)中運(yùn)算符寫法的不同。任務(wù)拓展:將“知識(shí)準(zhǔn)備”中的例子在軟件中進(jìn)行驗(yàn)證,更好地理解掌握關(guān)系表達(dá)式的使用。任務(wù)9閏年的表示——邏輯表達(dá)式任務(wù)描述:閏年分為普通閏年和世紀(jì)閏年:(1)普通閏年:年份是4的倍數(shù),且不是100的倍數(shù)。(2)世紀(jì)閏年:年份是400的倍數(shù)。請(qǐng)用C語言邏輯表達(dá)式來表示閏年。任務(wù)分析:在本任務(wù)中,需要用到邏輯表達(dá)式。要將文字描述轉(zhuǎn)化成C語言的邏輯表達(dá)式,需要先來認(rèn)識(shí)邏輯運(yùn)算符。4.3邏輯運(yùn)算符及其優(yōu)先級(jí)表4-2C語言中的邏輯運(yùn)算符任務(wù)9閏年的表示——邏輯表達(dá)式運(yùn)算符含義優(yōu)先級(jí)結(jié)合方向&&邏輯與11自左至右||邏輯或12自左至右!邏輯非2自右至左4.3邏輯運(yùn)算符及其優(yōu)先級(jí)(1)“&&”和“||”為雙目運(yùn)算符,“!”為單目運(yùn)算符。(2)三種邏輯運(yùn)算符優(yōu)先級(jí)都不相同,“!”最高,“&&”高于“||”。邏輯運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符。(3)當(dāng)相同優(yōu)先級(jí)的邏輯運(yùn)算符同時(shí)出現(xiàn)時(shí),“&&”和“||”是從左至右進(jìn)行運(yùn)算,而“!”是從右至左進(jìn)行運(yùn)算。任務(wù)8'A'比'a'大嗎?——關(guān)系表達(dá)式4.4邏輯表達(dá)式用邏輯運(yùn)算符連接若干個(gè)表達(dá)式組成的式子稱為邏輯表達(dá)式。與關(guān)系表達(dá)式一樣,邏輯表達(dá)式的值也是一個(gè)邏輯值,即“真”和“假”,以“1”代表“真”,以“0”代表“假”。但在判斷一個(gè)量是否為“真”時(shí),以“0”代表“假”,以非0代表“真”。1.求值規(guī)則a&&b若a、b同時(shí)為真,則a&&b為真,值為1。a||b若a、b之一為真,則a||b為真,值為1。!a若a為真,則!a為假,值為0。任務(wù)9閏年的表示——邏輯表達(dá)式4.4邏輯表達(dá)式2.求值策略按照求值規(guī)則,邏輯與和邏輯或表達(dá)式應(yīng)該從左至右依次計(jì)算各表達(dá)式的值,但實(shí)際上并不一定從左至右運(yùn)算到底,當(dāng)表達(dá)式的值能夠確定的時(shí)候運(yùn)算就應(yīng)該停止。(1)a&&b&&c若a為假,則整個(gè)表達(dá)式為假,就不必判斷b和c的值;若a為真,b為假,則整個(gè)表達(dá)式也為假,就不必判斷c的值。(2)a||b||c若a為真,則整個(gè)表達(dá)式為真,就不必判斷b和c的值;若a為假,b為真,則整個(gè)表達(dá)式也為真,就不必判斷c的值。任務(wù)9閏年的表示——邏輯表達(dá)式#include<stdio.h>main(){intyear;printf("輸入一個(gè)年份:");scanf("%d",&year);if((year%4==0)&&(year%100!=0)||(year%400==0))/*if語句判斷是否滿足條件*/printf("%d年是閏年",year);elseprintf("%d年是平年",year);/*如對(duì)非閏年不做要求,可省略此句*/}任務(wù)實(shí)施:任務(wù)9閏年的表示——邏輯表達(dá)式任務(wù)總結(jié):能夠?qū)?shí)際問題的文字描述轉(zhuǎn)換成正確的邏輯表達(dá)式是本任務(wù)的重點(diǎn)在邏輯運(yùn)算中,需要綜合運(yùn)用運(yùn)算符的優(yōu)先級(jí)、結(jié)合性、求值規(guī)則以及求值策略。任務(wù)拓展:1.用邏輯表達(dá)式表示1<x≤10。2.用邏輯表達(dá)式表示x是3或5的倍數(shù)。任務(wù)9閏年的表示——邏輯表達(dá)式任務(wù)10兒童票售票提示——if選擇語句任務(wù)描述:按照《鐵路旅客運(yùn)輸規(guī)程》規(guī)定,隨同成人旅行的身高1.2~1.5米的兒童,享受半價(jià)客票;超過1.5米的兒童應(yīng)買全價(jià)票;每一成人旅客可免費(fèi)攜帶一名身高不足1.2米的兒童。編寫程序,根據(jù)用戶輸入的兒童身高給出相應(yīng)的售票提示。任務(wù)分析:在本任務(wù)中,需要根據(jù)用戶輸入的兒童身高選擇給出對(duì)應(yīng)的提示,這就需要用到選擇程序結(jié)構(gòu)了,if語句就是通過條件判斷來實(shí)現(xiàn)選擇結(jié)構(gòu)的。4.5if語句的三種形式任務(wù)10兒童票售票提示——if選擇語句1.if語句語句格式:if(表達(dá)式)語句;執(zhí)行過程:先判斷表達(dá)式,如果表達(dá)式為真,則執(zhí)行表達(dá)式后面的語句,否則跳過該語句,執(zhí)行if語句之后的語句。4.5if語句的三種形式任務(wù)10兒童票售票提示——if選擇語句1.if語句(1)“表達(dá)式”可以為任何類型的表達(dá)式:關(guān)系表達(dá)式、邏輯表達(dá)式、算術(shù)表達(dá)式、賦值表達(dá)式等。(2)if表達(dá)式后邊的“語句”,也稱if的內(nèi)嵌語句。內(nèi)嵌語句可以是單條語句,也可以有多條語句。如果是多條語句,要用一對(duì){}將它們括起來構(gòu)成一條復(fù)合語句。if(a>b){t=a;a=b;b=t;}printf("%d",a);4.5if語句的三種形式任務(wù)10兒童票售票提示——if選擇語句2.if…else語句語句格式:if(表達(dá)式)語句1;else語句2;執(zhí)行過程如圖所示:先判斷表達(dá)式,如果表達(dá)式為真,則執(zhí)行語句1,否則執(zhí)行語句2。4.5if語句的三種形式任務(wù)10兒童票售票提示——if選擇語句3.if語句的嵌套(1)當(dāng)實(shí)際運(yùn)用中面臨兩種以上的選擇時(shí),把if…else語句稍加擴(kuò)展就能滿足需求。其一般形式為:if(表達(dá)式1)語句1;elseif(表達(dá)式2)語句2;elseif(表達(dá)式3)語句3;

elseif(表達(dá)式m)語句m;else語句n;4.5if語句的三種形式任務(wù)10兒童票售票提示——if選擇語句(2)一條if語句中可以包含另一條if語句,稱為if語句的嵌套。在嵌套的if語句中,else與它前面最近的if配對(duì),除非用花括號(hào)來改變。格式1:if(表達(dá)式)if(表達(dá)式)語句1;else語句2;格式2:if(表達(dá)式){if(表達(dá)式)語句1;}else語句2;4.5if語句的三種形式任務(wù)10兒童票售票提示——if選擇語句配對(duì)關(guān)系不同,程序運(yùn)行結(jié)果就不同,試比較以下兩個(gè)程序段的輸出結(jié)果。程序段1:if(score>=60)if(score<70)printf("Pass!");elseprintf("Good!");程序段2:if(score>=60){if(score<70)printf("Pass!");}elseprintf("Good!");4.6條件表達(dá)式任務(wù)10兒童票售票提示——if選擇語句使用條件表達(dá)式可以達(dá)到簡(jiǎn)單的if…else的功能,條件運(yùn)算符是C語言中唯一的三目運(yùn)算符,其一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3當(dāng)表達(dá)式1為真時(shí),整個(gè)條件表達(dá)式的值等于表達(dá)式2的值,否則結(jié)果為表達(dá)式3的值(1)條件運(yùn)算符的優(yōu)先級(jí)為13級(jí),高于賦值運(yùn)算符和逗號(hào)運(yùn)算符,但低于其它運(yùn)算符。max=x>y?x:y;先計(jì)算x>y是否為真,如果為真,則把x的值賦給max,否則將y的值賦給max。(2)條件運(yùn)算符的結(jié)合性為右結(jié)合性,即自右向左進(jìn)行計(jì)算。max=x>y?x:y>z?y:z;等價(jià)于max=x>y?x:(y>z?y:z);#include<stdio.h>main(){floath;printf("請(qǐng)輸入兒童身高(米):");scanf("%f",&h);if(h<1.2)printf("免票!");elseif(h<=1.5)printf("請(qǐng)購(gòu)買半價(jià)票!");elseprintf("請(qǐng)購(gòu)買全價(jià)票!");}任務(wù)實(shí)施:任務(wù)10兒童票售票提示——if選擇語句任務(wù)總結(jié):多個(gè)if結(jié)構(gòu)并列,有執(zhí)行多個(gè)分支的可能性基本的if…else結(jié)構(gòu)以及擴(kuò)展的if…else結(jié)構(gòu)只能根據(jù)條件執(zhí)行其中的一個(gè)分支使用if…else的嵌套結(jié)構(gòu)要仔細(xì)確定好if與else的配對(duì)。任務(wù)拓展:1.從鍵盤輸入3個(gè)數(shù),判斷能否構(gòu)成三角形,如果能,則輸出該三角形的形狀信息(等邊、等腰、任意三種情況),否則輸出提示。2.從鍵盤上輸入3個(gè)數(shù),按照從大到小的順序輸出。3.從鍵盤輸入一個(gè)字母,判斷它是否為大寫英文字母,若是,轉(zhuǎn)換成對(duì)應(yīng)的小寫字母,否則原樣輸出(用條件表達(dá)式實(shí)現(xiàn))。任務(wù)10兒童票售票提示——if選擇語句任務(wù)描述:編寫程序,當(dāng)輸入學(xué)生的考試成績(jī)(百分制)后,輸出學(xué)生的成績(jī)等級(jí):90分及以上為優(yōu),80-89分為良,70-79分為中,60-69分為及格,60分以下為不及格。任務(wù)分析:在本任務(wù)中,程序面臨多重選擇,使用if嵌套語句可以實(shí)現(xiàn)多重選擇,但是嵌套層次過多,這時(shí)使用switch多分支語句更為方便。任務(wù)11打印成績(jī)等級(jí)——switch多分支語句4.7switch多分支語句任務(wù)11打印成績(jī)等級(jí)——switch多分支語句switch(表達(dá)式){case常量表達(dá)式1:

語句序列1;[break;]case常量表達(dá)式2:

語句序列2;[break;]

case常量表達(dá)式n:

語句序列n;[break;][default:語句序列n+1;]}4.7switch多分支語句任務(wù)11打印成績(jī)等級(jí)——switch多分支語句switch語句的工作過程是:先計(jì)算switch括號(hào)中表達(dá)式的值,如果它與某一case后的常量表達(dá)式的值相等,則執(zhí)行這個(gè)case常量后的語句序列,遇到break語句后,跳出switch結(jié)構(gòu),執(zhí)行switch結(jié)構(gòu)后的語句。若表達(dá)式的值與所有case后的常量都不相等,則執(zhí)行default(如果有)后的語句序列。#include<stdio.h>main(){floatscore;intx;printf("請(qǐng)輸入成績(jī):");scanf("%f",&score);x=score/10;switch(x){case10:case9:printf("優(yōu)\n");break;case8:printf("良\n");break;

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論