




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第4章 選擇結構程序設計 C 語言程序設計主講:王廣正wgz809301選擇結構YNABP成立?順序結構ABint a,b;a=12;b=13;if (xy) max=x; else max=y;2本章主要內容關系運算符及表達式邏輯運算符及表達式if語句switch語句要求:重點掌握if語句和switch語句35.1 關系運算符和關系表達式關系運算: 用于表示兩個值的大小,也稱“比較運算”關系運算符 (小于) (大于)= (大于等于)= = (等于)!= (不等于)4關系運算符優先級算術運算符關系運算符賦值運算符高低a=b+cd55.1.2 關系表達式及其值關系表達式: 通過關系運算符連接的式
2、子關系表達式的值: 關系表達式的值是一個邏輯值:“真”或“假”。 在C語言中,以“1”表示“真” 以“0”表示“假” 關系成立:1 關系不成立:0例:若a=3,b=2,c=1,則:6關系運算說明 字符型數據的比較按ASCII碼值進行。 對浮點數的比較,由于存在誤差,因此不能使用“相等”或“不相等”的判別。但可使用誤差進行判別,如: fabs(1.0/3.0*3.0-1.0)b)&(n=cd)執行時:因“ab”的值為0,則m=0(已能確定表達式的值為假);而“n=cd”不被執行,故n的值仍保持原值1。 在邏輯表達式的求解中,并不是所有的邏輯運算符都被執行,只有在必須執行下一個邏輯運算符才能求出表
3、達式的解時,才執行該運算符。若&的左端為0,則不再進行計算,該表達式的值肯定為0。若 | 的左端為1,則不再進行計算,該表達式的值肯定為1。11year不能被4整除,Nyear能被4整除,但不能被100整除,Yyear能被100整除,又能被400整除,Y其它,N閏年的判別:(year%4=0 & year%100!=0)|year%400=012課堂練習14.執行語句:int a=1,b=0,c; c=a0|+b; 后,b的值為_。(2005-12) A) 0 B) 1 C) 2 D) 不確定15.在C程序中,用_表示邏輯值“真”.(2005-12) A) 1 B) 非0的數 C) 非1的數
4、D) 大于0的數21.若變量ch為char類型,能正確判斷出ch為大寫字母的表達式是_.(2005-12)A) A=ch=A)|(ch=Z)C) (A=ch) D) (ch=A)&(ch0) m+; if ( ab ) c=a; a=b; b=c; (3) If (a&b) printf(“#n”);(4) If (a=0) printf(“a=%d”,a);sum=a+b;16雙重分支語句 語句一般格式if (表達式) 語句1 else 語句2 功能:計算表達式的值,如果它的值是一個非0值(邏輯真),就執行內嵌語句1,之后跳過內嵌語句2,執行后續語句;否則跳過內嵌語句1,執行內嵌語句2,之后
5、執行后續語句。 語句1 語句2流程圖NY表達式非0?17雙重分支語句舉例: if (x0) m+; else m-; if ( ch= a & ch= z ) ch=ch-32 ; printf( %cn,ch); else printf( %cn,ch) ;18多重分支語句 語句一般格式if (表達式1) 語句1 else if (表達式2) 語句2 else if (表達式m) 語句m else 語句 n功能:依次計算并判斷表達式i,為非0時執行后面的語句,都為0時,執行語句n無論執行完那個語句分支,都轉到后續語句19多重分支語句的算法流程圖表達式2?表達式1?語句n 語句1 語句2 語句
6、mYNYNNY表達式m ?20多重分支語句的舉例if (a0) x= -1 ;else if (a=0 ) x= 0 ; else x=1 ;printf(“x=%d”,x);a=0?a=0) if (x0) y=1; else y=0; else y=-1;else總是與它上面的最近的未配對的if配對22if語句的嵌套舉例: if (c=50) printf(50=c=100n); else printf(c50n); else if (c=150) printf(100c150n); if (c=50) printf(50=c=100n); else printf(cb) if(ac)if
7、(ad) m=1; else m=2; else m=3;問題:哪一個 else 和哪一個 if 相匹配?規則:在嵌套的ifelse語句中,else總是與上面的離它最近的尚未配對的if 配對。245.3.3 條件運算符一般形式:表達式1? 表達式2: 表達式3 條件表達式取表達式2的值NY表達式1? 條件表達式取表達式3的值ab?a:b;a?a:-a;max=(ab)?a:b;ab?a:cd?c:d結合方向:自右至左25if語句的簡單應用【例5.4】輸入一個字符,如果是大寫字母,則將其轉換為小寫字母輸出,否則直接輸出。輸入:用 getchar 或 scnaf 函數ch是否為大寫字母: ch=A
8、 & ch=65 & ch =A & ch=A & ch=Z ? ch+32:ch);putchar ( n)27if語句的應用2:【例】輸入一個數,判斷它是奇數還是偶數,如果是奇數則進一步判斷它是否為5的倍數。 定義變量x輸入x的值 x是奇數 T F 輸出“odd” x是5的倍數 輸出“even” T F是5的倍數28程序:main( ) int x; scanf (%d,&x); if (x%2 != 0) printf(%d is an odd n,x) ; if (x%5=0) printf(%d is the times of 5 n,x) ; else printf(%d is a
9、n even n,x) ;思考:如果沒有,算法和輸出如何?29學習if語句的難點if else 語句的配對正確用表達式描述條件例如:當x大于5小于10時令x自增 if ( 5x10 ) x+;正確判斷內嵌語句例如:if(x5 & x10) x+; 30熟悉常用的if 表達式形式例如有定義:int a,b=0;a等于什么值時,執行b=2 ;語句?if (a=0) b=2;if (a=1) b=2;if (a!=0) b=2; if (a=1) b=2;if (a=0) b=2;if (a) b=2;if (!a) b=2;等價于等價于315.4 switch語句 switch語句的一般形式 sw
10、itch (表達式) case 常量表達式1: 語句序列1 case 常量表達式2: 語句序列2 case 常量表達式n: 語句序列n default : 語句序列n+1 功能:計算表達式的值,與常量表達式的值比較,等于第i個值時,順序執行語句序列i、i+1、 、 n+1若與所有常量表達式值都不相等,執行語句序列n+1。 32switch語句舉例:switch(grade/10)case 10: printf(“An”);case 9: printf(“Bn”);case 8: printf(“Cn”);case 7: printf(“Dn”);case 6: printf(En);defau
11、lt: printf(“Fn”);switch(grade/10)case 10: case 9: case 8: printf(“An”);case 7: case 6: printf(Bn);default: printf(“Cn”);33說明:“case 常量表達式i:”等價于語句標號,計算出的表達式值等于哪個語句標號,就從哪個位置開始順序向下執行語句序列。 語句位置影響運行結果例如:switch (a) case 2: printf(#); default: printf($); case 5: printf(&);switch與break語句結合才能實現程序的分支break;brea
12、k; break;34注意:switch語句的書寫格式:語句體本身必須用花括號括起;case和default后面如果有多條語句,則可以不必使用花括號;case和常量表達式之間必須有空格;default可以寫在語句體的任何位置,也可以省略不寫break語句可以改變case的語句標號作用,終止后續case語句序列的執行。 switch語句和break語句結合,可以實現程序的選擇控制(break語句還可以在循環語句中使用) 允許switch嵌套使用,但同一個switch語句中,任意兩個case的常量表達式值不能相同。 35365.5 選擇結構程序設計舉例【例5.5】寫程序,判斷某一年是否為閏年。 思
13、路:年份year為閏年的條件為 能夠被4整除,但不能被100整除的年份; 能夠被400整除的年份。只要滿足任意一個就可以確定它是閏年。例如:1996年、2000年是閏年1998年、1900年不是閏年設定標志變量leap,只要符合其中一個條件的就是閏年,令 leap =1;否則令 leap=0 37算法:定義變量year、leap 輸入年份year 能被4整除且 不能被100整除? T F 能被400整除? leap=1 T F leap = 1 leap = 0 leap=1? T F 是閏年 不是閏年year%400=0year%4=0 & year%100 !=038程序:main( ) int year, leap ; scanf(%d, &year); if (year%4=0 & year%100!=0) lea
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 硬件設施維護與更新工作總結計劃
- 2024年西安市團結實驗學校招聘筆試真題
- 2024年湖南省交通運輸廳下屬事業單位真題
- 微生物世界探索活動計劃
- 法律與經濟政策的協調試題及答案探討
- 2024年福建藝術職業學院招聘筆試真題
- 建立良好團隊文化的路徑計劃
- 一個學期的教學反思與總結計劃
- 如何提高倉庫的系統性計劃
- 網絡管理員考試新版本試題及答案
- 教師專業發展第6章 教師教育對教師專業發展的全程規劃
- 2024年湖南湘西自治州公開招募“三支一扶”高校畢業生(高頻重點復習提升訓練)共500題附帶答案詳解
- 2024中考化學成都10年考情及趨勢分析【必考知識點】
- 二手房委托代理協議書范本參考
- 人教版五年級下冊美術測試題
- 甘肅旅游旅行
- 2024哈爾濱幼兒師范高等專科學校教師招聘考試筆試試題
- 中華人民共和國:各省份對應的地級市與縣級市一覽表
- 孕期艾梅乙實驗室檢測培訓
- MOOC 知識圖譜導論-浙江大學 中國大學慕課答案
- 室內裝飾裝修改造技術規程
評論
0/150
提交評論