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

下載本文檔

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

文檔簡介

項目四

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

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

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

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

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

語句序列2;[break;]

case常量表達式n:

語句序列n;[break;][default:語句序列n+1;]}4.7switch多分支語句任務(wù)11打印成績等級——switch多分支語句switch語句的工作過程是:先計算switch括號中表達式的值,如果它與某一case后的常量表達式的值相等,則執(zhí)行這個case常量后的語句序列,遇到break語句后,跳出switch結(jié)構(gòu),執(zhí)行switch結(jié)構(gòu)后的語句。若表達式的值與所有case后的常量都不相等,則執(zhí)行default(如果有)后的語句序列。#include<stdio.h>main(){floatscore;intx;printf("請輸入成績:");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等.壓縮文件請下載最新的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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論