[理學(xué)]c_programppt課件_第1頁
[理學(xué)]c_programppt課件_第2頁
[理學(xué)]c_programppt課件_第3頁
[理學(xué)]c_programppt課件_第4頁
[理學(xué)]c_programppt課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、主要內(nèi)容o 5.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式o 5.2 邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式o 5.3 if語句語句o 5.4 switch語句語句o 5.5 程序舉例程序舉例要點(diǎn)要點(diǎn): :n關(guān)系表達(dá)式關(guān)系表達(dá)式n邏輯表達(dá)式邏輯表達(dá)式n選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì) 5.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式“關(guān)系運(yùn)算關(guān)系運(yùn)算實(shí)際上是實(shí)際上是比較運(yùn)算比較運(yùn)算o 5.1.1 關(guān)系運(yùn)算符及其優(yōu)先次序關(guān)系運(yùn)算符及其優(yōu)先次序n C語言提供語言提供6種關(guān)系運(yùn)算符種關(guān)系運(yùn)算符 參見參見P365o 小于小于o 大于大于o = 大于或等于大于或等于o = 等于等于o != 不等于不等于優(yōu)先級

2、相同(高)優(yōu)先級相同(高)優(yōu)先級相同(低)優(yōu)先級相同(低)說明:說明:關(guān)系運(yùn)算符的優(yōu)先級關(guān)系運(yùn)算符的優(yōu)先級 低于低于 算術(shù)運(yùn)算符算術(shù)運(yùn)算符關(guān)系運(yùn)算符的優(yōu)先級關(guān)系運(yùn)算符的優(yōu)先級 高于高于 賦值運(yùn)算符賦值運(yùn)算符o 5.1.2 關(guān)系表達(dá)式關(guān)系表達(dá)式n 用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式可以是算術(shù)表達(dá)式或用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式可以是算術(shù)表達(dá)式或關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式連接起來的式子,稱關(guān)系表達(dá)式式連接起來的式子,稱關(guān)系表達(dá)式 例:例:ab a+bb+c a=3b=5 abbb的值為的值為“真真,表達(dá)式的值為,表達(dá)式的值為1 關(guān)系表達(dá)式關(guān)系表達(dá)式

3、“ab=c的值為真,表達(dá)式的值為的值為真,表達(dá)式的值為1 關(guān)系表達(dá)式關(guān)系表達(dá)式“b+cb 相當(dāng)于相當(dāng)于d=ab 表達(dá)式的值為表達(dá)式的值為1 f=abc 相當(dāng)于相當(dāng)于f=abc 表達(dá)式的值為表達(dá)式的值為0注意理解注意理解5.2 邏輯運(yùn)算符和邏輯表達(dá)式o 5.2.1 邏輯運(yùn)算符及其優(yōu)先次序邏輯運(yùn)算符及其優(yōu)先次序n C語言提供語言提供3種邏輯運(yùn)算符種邏輯運(yùn)算符1& 邏輯與邏輯與 相當(dāng)于其他語言中的相當(dāng)于其他語言中的AND2| 邏輯或邏輯或 相當(dāng)于其他語言中的相當(dāng)于其他語言中的OR3! 邏輯非邏輯非 相當(dāng)于其他語言中的相當(dāng)于其他語言中的NOTn 例:例:a&b 假設(shè)假設(shè)a,b為真,那么

4、為真,那么a&b為真。為真。 a|b 假設(shè)假設(shè)a,b之一為真,那么之一為真,那么a|b為真。為真。 !a 假設(shè)假設(shè)a為真,那么為真,那么!a為假。為假。優(yōu)先次序:優(yōu)先次序: !非非 - &與與 - | 或或 邏輯運(yùn)算符中的邏輯運(yùn)算符中的“&和和“| 低于關(guān)系運(yùn)算符低于關(guān)系運(yùn)算符 “!高于算術(shù)運(yùn)算符高于算術(shù)運(yùn)算符n舉例舉例o 例例2:數(shù)學(xué)表達(dá)式:數(shù)學(xué)表達(dá)式5x10如何表示如何表示? x5o 例例3:數(shù)學(xué)表達(dá)式:數(shù)學(xué)表達(dá)式x=10如何表示?如何表示? X=10 x=5n 真值表:當(dāng)真值表:當(dāng)a和和b的值為不同組合時(shí),各種邏輯運(yùn)算的值為不同組合時(shí),各種邏輯運(yùn)算所得到的值所得到

5、的值ab!a!ba&ba|b真真假假真真假假假假假假真真真真真真假假假假假假假假假假真真真真假假假假真真真真真真假假真真真真&|o 5.2.2 邏輯表達(dá)式邏輯表達(dá)式n 邏輯表達(dá)式邏輯表達(dá)式o 用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來的式子用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來的式子n 邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量“真真或或“假假 例:設(shè)例:設(shè)a=4,b=5:!a的值為的值為0 a&b的值為的值為1a|b的值為的值為1 !a|b的值為的值為14&0|2的值為的值為1關(guān)于真與假的規(guī)定關(guān)于真與假的規(guī)定n運(yùn)算量運(yùn)算量: 0 : 0 表示

6、表示“假,假, 非非0 0 表示表示“真真n運(yùn)算結(jié)果運(yùn)算結(jié)果: 0 : 0 表示表示“假假 1 1 表示表示“真真char c=b;int i = 3, j = 3;double x = 0.0;表達(dá)式表達(dá)式等價(jià)表達(dá)式等價(jià)表達(dá)式值值x | i & j - 3a = c & c=zx | i & j - 3 0a = c & c b&n=cd當(dāng)當(dāng)a=1,b=2,c=3,d=4,ma=1,b=2,c=3,d=4,m和和n n的原值為的原值為1 1時(shí),由于時(shí),由于“abab的值的值為為0 0,因此,因此m=0m=0,而,而“n=cdn=cd不被執(zhí)行,因此不被執(zhí)

7、行,因此n n的值不是的值不是0 0而而仍保持原值仍保持原值1 1。切記切記! !表達(dá)式表達(dá)式=0 x=2,y=0,z=1n邏輯表達(dá)式求值中的特殊性:在邏輯表達(dá)式的求值過程中,邏輯表達(dá)式求值中的特殊性:在邏輯表達(dá)式的求值過程中,按其操作數(shù)從左至右的計(jì)算順序,當(dāng)某個(gè)操作數(shù)的值可以確按其操作數(shù)從左至右的計(jì)算順序,當(dāng)某個(gè)操作數(shù)的值可以確定整個(gè)邏輯表達(dá)式的值時(shí),其余的操作數(shù)不再計(jì)算定整個(gè)邏輯表達(dá)式的值時(shí),其余的操作數(shù)不再計(jì)算x=y=z=1;+x&-y&+z;-x|+y|+z;表達(dá)式表達(dá)式=1x=1,y=0,z=1x=y=z=1;-x&+y|+z+x|-y&-z表達(dá)式表達(dá)

8、式=1x=0,y=1,z=2表達(dá)式表達(dá)式=1x=1,y=1,z=2 x|-y&-zx|y&-z表達(dá)式表達(dá)式=0 x=0,y=0,z=2表達(dá)式表達(dá)式=1x=0,y=1,z=1 5.3 if 語句o 5.3.1 if語句的三種根本形式語句的三種根本形式1if 表達(dá)式表達(dá)式 語句語句 例:例: ifxy printf“%d,x; 執(zhí)行過程:執(zhí)行過程:表達(dá)式表達(dá)式語句語句真(非真(非0)假假(0)表達(dá)式表達(dá)式語句語句真(非真(非0)假假(0)2 if表達(dá)式表達(dá)式 語句語句1 else 語句語句2 例:例: if xy printf“%d,x; else printf“%d,y;執(zhí)行過程

9、:執(zhí)行過程:表達(dá)式表達(dá)式 語句語句1 語句語句2YN有分號!有分號!3 if表達(dá)式表達(dá)式1語句語句1 else if表達(dá)式表達(dá)式2語句語句2 else if表達(dá)式表達(dá)式3語句語句3 else if表達(dá)式表達(dá)式m語句語句m else 語句語句n 執(zhí)行過程:執(zhí)行過程:n 注意:注意:if后面的表達(dá)式類型可以是邏輯表達(dá)式或關(guān)后面的表達(dá)式類型可以是邏輯表達(dá)式或關(guān)系表達(dá)式,也可是任意的數(shù)值類型包括整型、實(shí)系表達(dá)式,也可是任意的數(shù)值類型包括整型、實(shí)型、字符型等型、字符型等o 例如:試寫出以下語句的輸出結(jié)果例如:試寫出以下語句的輸出結(jié)果if3 printf“ “OK;if a printf“ “%d, a

10、;ifa=5 printf“ “%d, $ ; /假設(shè)運(yùn)行前假設(shè)運(yùn)行前a=0ifa=5 printf“ “%d, $ ; /假設(shè)運(yùn)行前假設(shè)運(yùn)行前a=0 int a=6; 討論討論:假如假如scanf“ “%d,&a; if a%3 printf“ “$; else printf“ “&o 5.3.2 if語句的嵌套語句的嵌套n 含義含義o 在在if語句中又包含一個(gè)或多個(gè)語句中又包含一個(gè)或多個(gè)if語句稱為語句稱為if語句的嵌套語句的嵌套n 形式形式ifif 語句語句1else 語句語句2elseif 語句語句3else 語句語句4內(nèi)嵌內(nèi)嵌ifif內(nèi)嵌內(nèi)嵌ififn if else

11、 配對原那么配對原那么o 缺省缺省 時(shí),時(shí),else總是它上面離它最近的未配對的總是它上面離它最近的未配對的if配配對對 假如假如if和和else的數(shù)目不一樣,可以的數(shù)目不一樣,可以加花括弧來確定配對關(guān)系。加花括弧來確定配對關(guān)系。 if expr1 ifexpr2 statement1 else statement2if (expr1) if (expr2) statement1else statement2 內(nèi)嵌內(nèi)嵌ifif()if()if()else.else.else.考慮:怎樣配對?考慮:怎樣配對?if和和else的數(shù)目一樣時(shí)的數(shù)目一樣時(shí)運(yùn)行結(jié)果運(yùn)行結(jié)果:11, 2運(yùn)行結(jié)果運(yùn)行結(jié)果:3

12、, 3例例A5.1 A5.1 分析以下程序的輸出結(jié)果,熟悉條件語句的嵌套使用方分析以下程序的輸出結(jié)果,熟悉條件語句的嵌套使用方法和法和elseelse子句的配對問題子句的配對問題#include void main 例例5.1 5.1 輸入兩個(gè)輸入兩個(gè)實(shí)數(shù)實(shí)數(shù),按代數(shù)值由小到大的次序輸出這兩個(gè)數(shù)。,按代數(shù)值由小到大的次序輸出這兩個(gè)數(shù)。運(yùn)行結(jié)果:運(yùn)行結(jié)果:輸入輸入交換次序交換次序輸出輸出 printf%5.2f,%5.2f,a,b; ifab t=a;a=b;b=t; float a,b,t; scanf%f,%f,&a,&b;考慮:考慮:1假設(shè)輸入三個(gè)數(shù),按由小到大的次序輸出假

13、設(shè)輸入三個(gè)數(shù),按由小到大的次序輸出 2假設(shè)輸入四個(gè)數(shù),按由小到大的次序輸出假設(shè)輸入四個(gè)數(shù),按由小到大的次序輸出括號不括號不要少!要少!算法算法1: 算法算法2:輸入輸入x 輸入輸入x假設(shè)假設(shè)x0,那么那么y=-1 假設(shè)假設(shè)x0,那么那么y=1 假設(shè)假設(shè)x=0,那那么么y=0輸出輸出y 假設(shè)假設(shè)x0,那么那么y=1 輸出輸出y -1 -1 x0 x0 x0 #includevoid main int x,y; scanf“%d,&x; 程序段程序段 printf“x=%d,y=%dn,x,y; 上例中的程序段有四個(gè),請判斷哪個(gè)是正確的?上例中的程序段有四個(gè),請判斷哪個(gè)是正確的?程序程序1

14、: ifx=0 ifx0 y=1; else y=-1; 程序程序4: ifx=0 ifx0 y=1; else y=0; else y=-1; 程序程序2: y=-1; ifx!=0 ifx0 y=1; else y=0; 注意配對原那么注意配對原那么 -1 (x0) -1 (x0) 1 (x0)o 5.3.3 條件運(yùn)算符條件運(yùn)算符n 格式:格式: d1 ? d2 : d3n 功能功能 首先計(jì)算首先計(jì)算d1表達(dá)式的值:表達(dá)式的值:o 假如假如d1的值為非的值為非0,整個(gè)表達(dá)式的值為,整個(gè)表達(dá)式的值為d2的值的值o 假如假如d1的值為的值為0,整個(gè)表達(dá)式的值為,整個(gè)表達(dá)式的值為d3的值的值o

15、整個(gè)表達(dá)式的類型取決于整個(gè)表達(dá)式的類型取決于d2和和d3中類型高的一個(gè)中類型高的一個(gè)n 舉例舉例 int a=3, b=4; a b ? a : b; /表達(dá)式的值為表達(dá)式的值為4o 用處:可求出兩個(gè)數(shù)中較大者用處:可求出兩個(gè)數(shù)中較大者操作數(shù)操作數(shù)運(yùn)算符運(yùn)算符說明:說明:1 1條件運(yùn)算符優(yōu)先級高于賦值運(yùn)算符條件運(yùn)算符優(yōu)先級高于賦值運(yùn)算符 ,低于關(guān)系運(yùn)算符,低于關(guān)系運(yùn)算符 和算術(shù)運(yùn)算符和算術(shù)運(yùn)算符 2 2條件運(yùn)算符的結(jié)合方向?yàn)闂l件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷笞杂抑磷? 3“表達(dá)式表達(dá)式2 2和和“表達(dá)式表達(dá)式3 3不僅可以是數(shù)值表達(dá)式,還可以不僅可以是數(shù)值表達(dá)式,還可以 是賦值表達(dá)式或函數(shù)表達(dá)式

16、是賦值表達(dá)式或函數(shù)表達(dá)式4 4條件表達(dá)式中,表達(dá)式的類型可以與表達(dá)式和表達(dá)條件表達(dá)式中,表達(dá)式的類型可以與表達(dá)式和表達(dá) 式的類型不同式的類型不同例例A5.2 A5.2 分析以下條件表達(dá)式程序的輸出結(jié)果分析以下條件表達(dá)式程序的輸出結(jié)果o 開關(guān)分支語句開關(guān)分支語句 switch語句語句n 多路分支語句,有時(shí)會(huì)比較便捷多路分支語句,有時(shí)會(huì)比較便捷switch E case E1: 語句組語句組 1; break; case E2: 語句組語句組 2; break; . case En: 語句組語句組 n; break; default: 語句組語句組 ; break; n 一般形式一般形式關(guān)鍵字關(guān)鍵

17、字switch表達(dá)式表達(dá)式語句組語句組1語句組語句組2語句組語句組n語句組語句組.E 1E 2Endefaultcase E 5.4 switch語句n 說明說明oE1,E2,En是整型表達(dá)式是整型表達(dá)式,且值必須互不一樣,通常使用且值必須互不一樣,通常使用int型數(shù)字型數(shù)字和字符組成的表達(dá)式。假設(shè)不為和字符組成的表達(dá)式。假設(shè)不為int型,那么將會(huì)轉(zhuǎn)換為型,那么將會(huì)轉(zhuǎn)換為int型型o語句組由假設(shè)干語句組成,也可為空語句組由假設(shè)干語句組成,也可為空o case后可包含多個(gè)可執(zhí)行語句,且不必加后可包含多個(gè)可執(zhí)行語句,且不必加 o多個(gè)多個(gè)case可共用一組執(zhí)行語句可共用一組執(zhí)行語句oswitch可嵌

18、套可嵌套n 執(zhí)行過程本卷須知執(zhí)行過程本卷須知oE的值依次與的值依次與E1、。、。En比較,當(dāng)發(fā)現(xiàn)某兩個(gè)相等時(shí)便停頓下面的比較,當(dāng)發(fā)現(xiàn)某兩個(gè)相等時(shí)便停頓下面的比較,轉(zhuǎn)去執(zhí)行其后的語句序列比較,轉(zhuǎn)去執(zhí)行其后的語句序列o執(zhí)行語句序列時(shí),從頭開場逐條執(zhí)行,遇到執(zhí)行語句序列時(shí),從頭開場逐條執(zhí)行,遇到break語句時(shí),那么退出語句時(shí),那么退出該開關(guān)語句。假設(shè)未遇到該開關(guān)語句。假設(shè)未遇到break語句,那么繼續(xù)執(zhí)行該語句序列后面語句,那么繼續(xù)執(zhí)行該語句序列后面的語句序列,的語句序列,而不管而不管Ei的值是否與的值是否與E的值相等的值相等o開關(guān)語句的右花括號具有退出該開關(guān)語句的作用開關(guān)語句的右花括號具有退出該

19、開關(guān)語句的作用odefault語句可以省略,也可放在開關(guān)語句花括號內(nèi)的任何位置語句可以省略,也可放在開關(guān)語句花括號內(nèi)的任何位置如:如: case A: case B: case C: printf“score60n; break; .例例: switchscore case 5: printf“Very good!; case 4: printf“Good!; case 3: printf“Pass!; case 2: printf“Fail!; default: printf“data error!; 運(yùn)行結(jié)果:運(yùn)行結(jié)果:score為為5時(shí),輸出:時(shí),輸出:Very good! Good!

20、Pass! Fail! data error!例例A5.3 A5.3 要求按照考試成績的等級打印出百分制分?jǐn)?shù)段要求按照考試成績的等級打印出百分制分?jǐn)?shù)段A A:85-100 :85-100 B B:70-84:70-84C C:60-69:60-69D D:60:60switchgrade case A: printf“85-100 “;break; case B: printf“70-84 “; break; case C: printf“60-69 “; break; case D: printf“60 “; break; default : printf“error“;if grade=

21、=A printf“85-100 “;else if grade= =B printf“70-84 “;else if grade= =C printf“60-69“;else if grade= =D printf“60“;else printf“error“;例例A5.4 A5.4 給出一百分制成績,要求輸出成績給出一百分制成績,要求輸出成績A A, ,B B, ,C C, ,D D,E ,E,90,90分以上為分以上為A A,80808989分為分為B B, 70, 707979分為分為C C, 60, 606969分為分為D D,60,60分以下為分以下為E E switchgrade

22、/10 / switchintgrade/10 case 10: case 9: printf“An;break; case 8: printf“Bn“; break; case 7: printf“Cn“; break; case 6: printf“Dn“; break; case 5: case 4: case 3: case 2: case 1: case 0: printf“En“; break; default:printf“errorn“; 運(yùn)行結(jié)果:a=2,b=1#include void main int x,y,a=0,b=0; scanf“%d,%d,&x,&y; /輸入輸入:1,0 switchx case 1: switchy case 0: a+; break; case 1: b+;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論