c語言4PPT課件_第1頁
c語言4PPT課件_第2頁
c語言4PPT課件_第3頁
c語言4PPT課件_第4頁
c語言4PPT課件_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2021/3/91第四章第四章 選擇結(jié)構(gòu)選擇結(jié)構(gòu)2021/3/92回顧:1、輸入的命令是什么?2、輸出的命令是什么?3、輸出一個如下結(jié)果:例:已知a=3.1415927;保留3位小數(shù),前面帶2空格的。printf(“%7.3f ”,a);4、scanf在輸入數(shù)據(jù)數(shù)據(jù)的時候必須用間隔符(空格、回車,Tab)隔開2021/3/93目標(biāo) 熟練使用關(guān)系運算符 熟練使用邏輯運算符 熟練使用if 結(jié)構(gòu) 熟練使用嵌套 if 結(jié)構(gòu) 熟練使用 switch 結(jié)構(gòu) 理解條件運算符的用法2021/3/944.1關(guān)系運算和邏輯運算關(guān)系運算和邏輯運算一、一、C語言中的邏輯值語言中的邏輯值語言中規(guī)定:(1)用0、1 表示

2、邏輯假和真值;語言沒有專門的邏輯值,而是用來表示“真”,用表示“假”。(2)任何基本類型的值都可作為邏輯值使用。所有非0的值被當(dāng)作“真”使用,而0值被當(dāng)作“假”使用二、關(guān)系運算符和關(guān)系表達式關(guān)系運算符和關(guān)系表達式 1.C語言的關(guān)系運算符共種:(大于)= (大于等于)(小于) (num3 num4)num=40;num/10 != 2gender = m真假=如果 gender = f如果 gender = m2021/3/98三、邏輯運算符和邏輯表達式三、邏輯運算符和邏輯表達式1)C語言提供了三種邏輯運算符,分別是: &邏輯與 |邏輯或 !邏輯非結(jié)合性結(jié)合性:自左至右優(yōu)先級次序優(yōu)先級次

3、序:! 高于& 高于|邏輯表達式的值:邏輯表達式的值:0,1小總結(jié):小總結(jié): 算術(shù)運算符 + - * / % (第二章) 賦值運算符 = += -+ *= /= %=(第二章) 關(guān)系運算符 = = = != 邏輯運算符 ! & | 優(yōu)先級(高到低)!、算術(shù)運算符、關(guān)系運算符、優(yōu)先級(高到低)!、算術(shù)運算符、關(guān)系運算符、&、|、賦值運算符、賦值運算符2021/3/99邏輯運算符 運算運算運算符運算符表達式表達式邏輯“與”&operand1 & operand2邏輯“或”|operand1 | operand2邏輯“非”!operand1 邏輯運算符用于連接

4、一個或多個條件,判斷這些條件是否成立 邏輯運算符的類型為:2021/3/910 邏輯“與”運算符 &所有學(xué)科及格考勤率達到 75%留級留級留級升級YesNoNoNoNoYesYesYes2021/3/911邏輯“與”運算符 &表達式表達式 1 1表達式表達式 2 2結(jié)果結(jié)果000010100111所有學(xué)科及格考勤率達到 75%留級留級NoNo升級YesYes留級NoYes留級留級NoYes2021/3/912 例如:已知a=2;b=4;c=4;d=6(ab)&(cb)&(cd) (ad) (ab)&(cd) 2021/3/913邏輯“或”運算符 |無法支

5、付可支付可支付可支付YesNoNoNoNoYesYesYes購物帳單信用卡2021/3/914現(xiàn)金信用卡邏輯“或”運算符 |表達式 1表達式 2結(jié)果000011101111無法支付NoNo可支付NoYes可支付NoYes可支付YesYes2021/3/915 例如:已知a=2;b=4;c=4;d=6(ab)|(cb) |(cd) (ad) (ab) |(cd)2021/3/916邏輯“非”運算符 !表達式結(jié)果1001天氣 NOT 陰天真真假帶傘操作不帶傘2021/3/917邏輯“非”運算符 ! !(真)的值為0 !(假)的值為1 !(非零)的值0 !(零)的值為1例如: a=2;b=4;c=0

6、 !(ab) !(ab) !(a) !(0) 2021/3/918邏輯運算符總結(jié)所有學(xué)科所有學(xué)科及格及格考勤率達到考勤率達到 75%&只有當(dāng)兩個兩個條件都為真真時結(jié)果才為真只要任何任何一個條件為真真時結(jié)果就為真對原條件取反取反,即:如果原條件為假時結(jié)果就為真|!優(yōu)先次序:!(非) &(與)|(或)邏輯運算符中的&和|低于關(guān)系運算符,!高于算術(shù)運算符2021/3/919一、數(shù)學(xué)上一、數(shù)學(xué)上0 x0&xc&b=c2、a|b+c&b-c3、!(ab)&c|1 答案:1、0 2、1 3、1已知a=1,b=0;則y=a|b+;2021/3/9214

7、.2條件結(jié)構(gòu) 條件結(jié)構(gòu)就是需要根據(jù)條件進行判斷,然后執(zhí)行不同的操作一、簡單 if 語句的一般形式為:if () 說明:說明:必須是一條語句,若是必須是一條語句,若是 多條,用花括號括起來多條,用花括號括起來 如果條件為真,if 語句執(zhí)行一個語句或一組語句; 如果條件為假,則執(zhí)行 if 語句后面的語句(如果有)。2021/3/922二、 if-else 語句的一般形式為:語句的一般形式為:(if-else必須成對出現(xiàn)必須成對出現(xiàn)) if () else 如果條件為真,執(zhí)行 if 后面的一個語句或一組語句; 如果條件為假,則執(zhí)行 else 后面的語句。2021/3/923三、三、If語句的執(zhí)行過程

8、語句的執(zhí)行過程 首先判定if后面圓括號中表達式的值。如果為真,則執(zhí)行其后的if子句,然后執(zhí)行if語句后的下一條語句;若果表達式的值為假,則跳過if子句,直接執(zhí)行if語句的下一條語句2021/3/924例題例題4.1:輸入兩個數(shù),分別放入:輸入兩個數(shù),分別放入x和和y中,若兩數(shù)不相等,則輸出大數(shù);中,若兩數(shù)不相等,則輸出大數(shù);若相等,則輸出字符串若相等,則輸出字符串x=y和和x的值的值 #include void main() int x,y; printf(“Enter x&y:n”); scanf(“%d%d,&x,&y); printf(“x,y:%d%dn”,x,

9、y); if(xy)printf(“x=%dn”,x); if(yx)printf(“y=%dn”,y); if(x=y)printf(“x=y %d:n ,x); 2021/3/925例例4.2 main() int a,b,c,t; printf(“input a,b,c”):scanf(“%d%d%d”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c); if(ab) t=a;a=b;b=t; if(ac) t=a; a=c; c=t; if(bc) t=b; b=c; c=t; printf(“%d,%d,%dn”,a,b,c

10、);例例 輸入兩個值給變量輸入兩個值給變量a、b,然后輸,然后輸出比較大的數(shù)出比較大的數(shù) main() int a,b,max; scanf(“%d%d”,&a,&b); max=ab?a:b;printf(“max=%d,max);2021/3/926#include void main()int num;printf(n請輸入一個整數(shù):); scanf (%d,&num);if(num % 2) = 0)printf(%d 是一個偶數(shù)。n,num); elseprintf(%d 是一個奇數(shù)。n,num);if-else語句的示例內(nèi)存內(nèi)存num57請輸入一個整數(shù):57

11、57 是一個奇數(shù)。2021/3/927問題描述: 判定給定的年份是否為閏年。提示:閏年的判定規(guī)則為:能被 4 整除但不能被 100 整除的年份,或能被 400 整除的年份。 #include void main() int year; printf(n 請輸入年份:); scanf(%d,&year); if(year % 4 =0 & year % 100 != 0) | (year % 400 = 0) printf(n %d 年是閏年 n , year); else printf(n %d 年不是閏年 n , year);綜合示例1請輸入年份:20052005 年不是閏年

12、2021/3/928由于由于if和和else子句中可以是任意合法的子句中可以是任意合法的C語句,因此自然也可語句,因此自然也可以是以是if語句,稱此為嵌套的語句,稱此為嵌套的if語句。語句。4.2.2嵌套的if語句1.if子句中嵌套具有子句中嵌套具有else子句的子句的if語句語句 if(表達式1) if(表達式2) 語句1 else 語句2 else 語句32.在在if子句中嵌套不含子句中嵌套不含else子句的子句的if語句語句 if(表達式1) if(表達式2) 語句1else 語句22021/3/929if (x 0) if (y 1) z = 1;else /*這個 else 部分屬于

13、哪個 if?*/ z = 2; C語言規(guī)定,每個 else 部分總屬于前面最近的那個缺少對應(yīng)的 else 部分的 if 語句。提倡使用大括號括起來以避免看起來有二義性。2021/3/930 3.在在else子句中嵌套子句中嵌套if語句語句 if(表達式1)語句1 else if(表達式2) 語句2 else 語句3 或?qū)懗?if(表達式1)語句1 else if(表達式2) 語句2 else 語句32021/3/931例題例題4.5 編寫程序,根據(jù)輸入的學(xué)生成績給出相應(yīng)的等級,大于或等于編寫程序,根據(jù)輸入的學(xué)生成績給出相應(yīng)的等級,大于或等于90分以上的等級為分以上的等級為A,60分以下的等級為

14、分以下的等級為E,其余每,其余每10分為一個等級。分為一個等級。程序如下:程序如下:#includemain() int g; printf(“Enter g:”);scanf(“%d”,&g); printf(“g=%d:”,g);if(g=90)printf(“An”);else if (g =80)printf(“Bn”); else if (g =70)printf(“Cn”); else if (g =60)printf(“Dn”); else printf(“En”);2021/3/932 #include main() int g; printf(Enter g:);sc

15、anf(%d,&g); printf(g=%d:,g); if(g=90)printf(An); if (g=80)printf(Bn); if (9=70)printf(Cn); if (g=60)printf(Dn); if(g100) value=50;else value=100;value = num 100 ? 50 : 100;(1)(0)條件表達式使用使用“if-else”的等同代碼的等同代碼 假設(shè) num = 200 value = num 100;? 50 : 100200value=502021/3/935條件運算符示例問題描述:個人所得稅收取規(guī)定:工資大于100

16、0元的部分將扣除5的個人所得稅。小于1000元的部分不扣除個人所得稅。要求用戶輸入基本工資,計算稅后工資。 #include void main()double sal;double rate;printf(n 請輸入基本工資:);scanf(%lf,&sal);rate= (sal=1000) ? 0 : 0.05;sal=sal-(sal-1000)*rate;printf(n 稅后工資為:%7.2f n,sal); 請輸入基本工資:1500稅后工資為:1475.002021/3/936 運用一次運用一次if或或if-else,只有兩種選擇。若是多重選,只有兩種選擇。若是多重選擇,

17、需要多次嵌套,程序復(fù)雜,此時引入擇,需要多次嵌套,程序復(fù)雜,此時引入switch語句。語句。 例題例題4.5 #include main() int g; printf(“Enter g:”);scanf(“%d”,&g); printf(“g=%d:”,g); if(g=90)printf(“An”); else if (g =80)printf(“Bn”); else if (g =70)printf(“Cn”); else if (g =60)printf(“Dn”); else printf(“En”); 2021/3/937switch 結(jié)構(gòu) 3-1printf(“這是邁克爾

18、,身高 180cm,加利福尼亞第 12 大街”);printf(“這是丹尼爾,身高 193cm,現(xiàn)居住地不明,1998 年 12 月 12 日在佛羅里達被捕”);printf(“這是吉姆,身高 175cm,墨西哥州海鷗路弗羅拉公寓,于 2003 年 11 月 1 日在新澤西因搶銀行被捕”);printf(“未發(fā)現(xiàn)匹配項。對不起!”);停止搜索停止搜索停止搜索停止搜索警察記錄嫌疑犯照片不是這是吉姆,身高 175cm,墨西哥州海鷗路弗羅拉公寓,于 2003 年 11 月 1 日在新澤西因搶銀行被捕不是是2021/3/938 switch-case 語句是多路判斷語句 switch 語句計算條件表達

19、式并對照多個常數(shù)值進行檢查switch 結(jié)構(gòu) 3-2switch (表達式) case 常量 1:語句;break; case 常量 2:語句;break;default:語句;計算表達式的值如果等于常量1 如果等于常量2 如果沒有找到匹配的值 2021/3/939switch 結(jié)構(gòu) 3-3 在使用switch結(jié)構(gòu)時應(yīng)注意以下幾點: 在case后的各常量表達式的值不能相同,否則會出現(xiàn)錯誤; case和常量表達式之間一定要有空格。例如case 0: 各case和default子句的先后順序可以變動,而不會影響程序執(zhí)行結(jié)果; default子句可以省略; 遇到break則跳出整個循環(huán),沒有繼續(xù)往下

20、執(zhí)行。2021/3/9401、用、用switch語句改寫例題語句改寫例題4.5程序如下:程序如下:(演示:沒有演示:沒有break)#includemain() int g; printf(“Enter g:”);scanf(“%d”,&g); printf(“g=%d:”,g);switch(g/10)case 10:case 9:printf(“An”);case 8:printf(“Bn”);case 7: printf(“Cn”);case 6:printf(“Dn”);default:printf(“En”);2021/3/9412、用、用switch語句改寫例題語句改寫例題

21、4.5程序如下:程序如下:(演示:帶有演示:帶有break)#includemain() int g; printf(“Enter g:”);scanf(“%d”,&g); printf(“g=%d:”,g);switch(g/10)case10:case9:printf(“An”);break;case8:printf(“Bn”); break;case7: printf(“Cn”); break;case6:printf(“Dn”); break;default:printf(“En”);2021/3/942switch 結(jié)構(gòu)示例問題描述:要求用戶輸入一個字符值并檢查它是否為元音字母。 char in_char;printf(n 請輸入一個小寫字母: );scanf(%c, &in_char);switch(in_char) case a: printf(n 您輸入的是元音字母 an); break; case e: printf(n 您輸入的是元音字母 en); break; case i: printf(n 您輸入的是元音字母 in); break; case o: printf(n 您輸入的是元音字母 on); break; case u: printf(n 您輸入的是元音字母 un); 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論