版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章C程序的流程控制
第三章C程序的流程控制C語(yǔ)言的結(jié)構(gòu)C語(yǔ)言的三大結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)S1S2S3(a)順序結(jié)構(gòu)
PS1S2真假(b)選擇結(jié)構(gòu)
PS2假真(c)循環(huán)結(jié)構(gòu)
C語(yǔ)言的結(jié)構(gòu)C語(yǔ)言的三大結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)S本章內(nèi)容提要判斷選擇型程序設(shè)計(jì)
3.13.2循環(huán)型程序設(shè)計(jì)
3.3綜合應(yīng)用
3.4本章小結(jié)
3.5思考題
3.6本章內(nèi)容提要判斷選擇型程序設(shè)計(jì)3.13.2循環(huán)型程序設(shè)計(jì)本節(jié)知識(shí)點(diǎn)C語(yǔ)言中的邏輯值1關(guān)系運(yùn)算符與關(guān)系表達(dá)式2邏輯運(yùn)算符與邏輯表達(dá)式3if…else結(jié)構(gòu)的應(yīng)用4if-elseif結(jié)構(gòu)的應(yīng)用5if語(yǔ)句的嵌套應(yīng)用6重點(diǎn)關(guān)系和邏輯運(yùn)算1if語(yǔ)句的應(yīng)用2難點(diǎn)本節(jié)知識(shí)點(diǎn)C語(yǔ)言中的邏輯值1關(guān)系運(yùn)算符與關(guān)系表達(dá)式2邏輯運(yùn)算前面學(xué)過的運(yùn)算符和表達(dá)式?比較?并且?前面學(xué)過的運(yùn)算符和表達(dá)式?比較?并且?判斷是針對(duì)命題的“真”、“假”進(jìn)行的。3.1.1命題的“真”、“假”與C語(yǔ)言中的邏輯值例如,下面一些命題:1、小強(qiáng)是個(gè)大學(xué)生2、今天下雨了3、a≥34、a≥b≥c5、a≥5或c≥4關(guān)系表達(dá)式和邏輯表達(dá)式是C語(yǔ)言中描述命題的兩種基本形式判斷是針對(duì)命題的“真”、“假”進(jìn)行的。3.1.1命題的“關(guān)系運(yùn)算是邏輯運(yùn)算中比較簡(jiǎn)單的一種,“關(guān)系運(yùn)算”就是“比較運(yùn)算”,指對(duì)兩個(gè)表達(dá)式值的大小比較。3.1.2關(guān)系運(yùn)算符C語(yǔ)言中提供有如下6個(gè)關(guān)系運(yùn)算符:
<,<=,
>,>=,==,!=例3.1
a>3inta=5;inta=2;結(jié)果為真(True)結(jié)果為假(False)關(guān)系運(yùn)算是邏輯運(yùn)算中比較簡(jiǎn)單的一種,“關(guān)系運(yùn)算”就是“3.13.1.2關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)、關(guān)系、邏輯、賦值表達(dá)式等)連接起來所構(gòu)成的表達(dá)式,稱為關(guān)系表達(dá)式。例3.2:
c>a+b
a>b==c
a==b<c
a=b>c
等效于c>(a+b)等效于(a>b)==c等效于a==(b<c)等效于a=(b>c)3.1.2關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)1、表達(dá)式5>2>7>8在數(shù)學(xué)上允許否?在C中是否允許?關(guān)系表達(dá)式注意問題:按自左而右的結(jié)合求解:①5>2值為1;②1>7值為0;③0>8的值為0。即整個(gè)關(guān)系表達(dá)式的值為0。1、表達(dá)式5>2>7>8在數(shù)學(xué)上允許否?在C中是否允許?關(guān)系2、由于關(guān)系表達(dá)式的值是整型數(shù)0或1,故也可以將其看成是一種整型表達(dá)式。例如,若有:
inti=1,j=7,a;a=i+(j%4!=0);關(guān)系表達(dá)式注意問題:這種表達(dá)式的含義不易被理解,初學(xué)時(shí)不宜多用2、由于關(guān)系表達(dá)式的值是整型數(shù)0或1,故也可以將其關(guān)系表達(dá)式3、在判定兩個(gè)浮點(diǎn)數(shù)是否相等時(shí),由于存儲(chǔ)上的誤差,會(huì)得出錯(cuò)誤的結(jié)果。例如:
1.0/3.0*3.0==1.0關(guān)系表達(dá)式注意問題:該關(guān)系表達(dá)式的值為0(假),并不為1(真)。所以應(yīng)避免對(duì)兩個(gè)實(shí)數(shù)表達(dá)式作“相等”或“不相等”的判別。上式可改寫為:
fabs(1.0/3.0*3.0-1.0)<1e-5fabs是求絕對(duì)值函數(shù)。只要1.0/3.0*3.0與1.0之間的差小于10-5(或一個(gè)其它的很小的數(shù)),就認(rèn)為1.0/3.0*3.0與1.0相等。3、在判定兩個(gè)浮點(diǎn)數(shù)是否相等時(shí),由于存儲(chǔ)上的誤差,會(huì)關(guān)系表達(dá)4、要表示x在區(qū)間[a,b]中,在數(shù)學(xué)中使用表達(dá)式a≤x≤b可否?在C語(yǔ)言中使用表達(dá)式“a<=x<=b”可否?關(guān)系表達(dá)式注意問題:假設(shè)a=0;b=0.5。若x=0.3上式可改寫為:
a<=x并且x<=b4、要表示x在區(qū)間[a,b]中,在數(shù)學(xué)中使用表達(dá)式a≤x≤b3.1.3邏輯運(yùn)算符與邏輯表達(dá)式ABBAA(a)“與”
(b)“或”
(c)“非”
三個(gè)基本邏輯運(yùn)算
3.1.3邏輯運(yùn)算符與邏輯表達(dá)式ABBAA(a)“與”3.1.3邏輯運(yùn)算符C語(yǔ)言提供三種邏輯運(yùn)算符:1、&&
邏輯與(相當(dāng)日常生活中:而且,并且,只在兩條件同時(shí)成立時(shí)為“真”)2、||
邏輯或(相當(dāng)日常生活中:或,兩個(gè)條件只要有一個(gè)成立時(shí)即為“真”)3、!邏輯非(條件為真,運(yùn)算后為假,條件為假,運(yùn)算后為真)3.1.3邏輯運(yùn)算符C語(yǔ)言提供三種邏輯運(yùn)算符:1、&&3.1.3邏輯表達(dá)式用邏輯運(yùn)算符(邏輯與、邏輯或、邏輯非)將關(guān)系表達(dá)式或邏輯量連接起來構(gòu)成邏輯表達(dá)式。例3.3:
a>b&&x>ya==b||x==y
!a||a>b
等效于(a>b)&&(x>y)等效于(a==b)||(x==y)等效于(!a)||(a>b)3.1.3邏輯表達(dá)式用邏輯運(yùn)算符(邏輯與、邏輯或1、在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符。a&&b&&ca||b||c邏輯表達(dá)式注意問題:例3.4:如果a,b,c,d,m,n分別為:1,2,3,4,1,1分析整個(gè)表達(dá)式(m=a>b)&&(n=c>d)結(jié)果和m,n的結(jié)果。1、在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都被執(zhí)行邏輯2、如果在一個(gè)表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作為數(shù)值運(yùn)算或關(guān)系運(yùn)算的對(duì)象(原值),哪些是作為邏輯運(yùn)算的對(duì)象(邏輯值)。邏輯表達(dá)式注意問題:例3.5:計(jì)算:5>3&&2||8<4-!02、如果在一個(gè)表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作邏輯關(guān)系和邏輯表達(dá)式應(yīng)用掌握C語(yǔ)言的關(guān)系運(yùn)算符和邏輯運(yùn)算符后,可以用一個(gè)邏輯表達(dá)式來表示一個(gè)復(fù)雜的條件。例3.6:判斷某一年是否閏年。閏年的條件是符合下面兩個(gè)條件之一:
1、能被4整除,但不能被100整除;
2、能被4整除,又能被400整除。(year%4==0&&year%100!=0)||year%400==0考慮:判斷非閏年的條件?關(guān)系和邏輯表達(dá)式應(yīng)用掌握C語(yǔ)言的關(guān)系運(yùn)算符和邏輯運(yùn)算3.2if選擇語(yǔ)句的應(yīng)用PS1S2真假選擇結(jié)構(gòu)
3.2if選擇語(yǔ)句的應(yīng)用PS1S2真假選擇結(jié)構(gòu)3.2if選擇語(yǔ)句的應(yīng)用if語(yǔ)句用來判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的幾種操作之一。if語(yǔ)句
單分支結(jié)構(gòu)
雙分支結(jié)構(gòu)
多分支結(jié)構(gòu)if語(yǔ)句的嵌套3.2if選擇語(yǔ)句的應(yīng)用if語(yǔ)句用來判定所給定的條件3.2.1單分支結(jié)構(gòu)if語(yǔ)句格式:if(表達(dá)式)語(yǔ)句;
引例:如果學(xué)生成績(jī)(score)不低于60分,則輸出“合格”3.2.1單分支結(jié)構(gòu)if語(yǔ)句格式:引例:如果學(xué)生成績(jī)3.2.1雙分支結(jié)構(gòu)if語(yǔ)句
格式:if(表達(dá)式)語(yǔ)句1;else語(yǔ)句2;
引例:如果學(xué)生成績(jī)(score)不低于60分,則輸出“合格”,否則輸出“不合格”。3.2.1雙分支結(jié)構(gòu)if語(yǔ)句格式:引例:如果學(xué)生成3.2.2多分支結(jié)構(gòu)if語(yǔ)句
引例:如果學(xué)生成績(jī)(score)不低于90分,則輸出“優(yōu)秀”;如果80≤score<90,則輸出“良好”;如果70≤score<80,則輸出“中等”;如果60≤score<70,則輸出“合格”;如果score<60,則輸出“不合格”。3.2.2多分支結(jié)構(gòu)if語(yǔ)句引例:如果學(xué)生成績(jī)(sc3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析一:單分支結(jié)構(gòu)if(表達(dá)式)語(yǔ)句;特點(diǎn):滿足條件即執(zhí)行語(yǔ)句程序段:if(score>=90)printf(“優(yōu)秀”)if(score>=80&&score<90)printf(“良好”)if(score>=70&&score<80)printf(“中等”)if(score>=60&&score<70)printf(“合格”)if(score<60)printf(“不合格”)缺點(diǎn):條件表達(dá)式復(fù)雜且if語(yǔ)句過多3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析一:if(表達(dá)式)語(yǔ)3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析二:雙分支結(jié)構(gòu)可以實(shí)現(xiàn)不?3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析二:雙分支結(jié)構(gòu)可以實(shí)現(xiàn)3.2.2多分支結(jié)構(gòu)if-elseif語(yǔ)句分析三:多分支結(jié)構(gòu)格式:
if(表達(dá)式1)
語(yǔ)句1;
elseif(表達(dá)式2)
語(yǔ)句2;elseif(表達(dá)式3)
語(yǔ)句3;…elseif(表達(dá)式m)
語(yǔ)句m;else語(yǔ)句m+1;思考--如何寫程序?3.2.2多分支結(jié)構(gòu)if-elseif語(yǔ)句分析三:多有無其他方法?有無其他方法?3.2.3if語(yǔ)句的嵌套應(yīng)用在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。格式為:3.2.3if語(yǔ)句的嵌套應(yīng)用在if語(yǔ)句中又包含一個(gè)或多3.2.3if語(yǔ)句的嵌套應(yīng)用如果學(xué)生成績(jī)(score)不低于90分,則輸出“優(yōu)秀”;如果80≤score<90,則輸出“良好”;如果70≤score<80,則輸出“中等”;如果60≤score<70,則輸出“合格”;如果score<60,則輸出“不合格”。3.2.3if語(yǔ)句的嵌套應(yīng)用如果學(xué)生成績(jī)(score說明:1、三種形式的if語(yǔ)句中的“表達(dá)式”一般為關(guān)系表達(dá)式或邏輯表達(dá)式,但不限于這兩種表達(dá)式。例如:if(‘a(chǎn)’)printf(“%d”,’a’);能運(yùn)行否?
說明:1、三種形式的if語(yǔ)句中的“表達(dá)式”一般為關(guān)系表達(dá)式或說明:2、else子句不能單獨(dú)使用,必須是if語(yǔ)句的一部分,與if配對(duì)使用。例如:if(‘a(chǎn)’)printf(“%c”,’a’);elseprintf(“%c”,’b’);elseprintf(“%c”,’c’);
說明:2、else子句不能單獨(dú)使用,必須是if語(yǔ)句的一部分,說明:3、在if和else后面可以只含一個(gè)內(nèi)嵌的操作語(yǔ)句,也可以有多個(gè)操作語(yǔ)句構(gòu)成的語(yǔ)句塊(復(fù)合語(yǔ)句)。語(yǔ)句塊用{
}括起來。例如:求邊長(zhǎng)分別為a,b,c的三角形面積?
if(a+b>c&&b+c>a&&c+a>b){s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(area);}elseprintf(“itisnotatriangle”);說明:3、在if和else后面可以只含一個(gè)內(nèi)嵌的操作語(yǔ)句,也說明:4、if嵌套語(yǔ)句中,應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系,else總是與它上面的最近的未配對(duì)的if配對(duì)。特別是if/else子句數(shù)目不一樣時(shí)本意實(shí)際說明:4、if嵌套語(yǔ)句中,應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系,說明:5、if嵌套語(yǔ)句解決匹配問題方法(1)利用空語(yǔ)句使if子句數(shù)量與else子句數(shù)量相同。(2)利用{}。將沒有else子句的if語(yǔ)句用{}括起來說明:5、if嵌套語(yǔ)句解決匹配問題方法(1)利用空語(yǔ)句使if思考題一:函數(shù):-1(x<0)y=0(x=0)1(x>0)編一個(gè)程序,輸入x,輸出y。有以下幾個(gè)程序,請(qǐng)判斷哪個(gè)是正確的?思考題一:函數(shù):有以下幾個(gè)程序,請(qǐng)判斷哪個(gè)是正確的?思考題一:程序1:
main()
{
intx,y;
scanf("%d",&x);
if(x<0)y=-1;
elseif(x==0)y=0;
elsey=1;
printf("x=%d,y=%d\n",x,y);}思考題一:程序1:思考題一:程序2:
main()
{
intx,y;
scanf("%d",&x);
if(x>=0)if(x>0)y=1;
else
y=0;
else
y=-1;
printf("x=%d,y=%d\n",x,y);}思考題一:程序2:思考題一:程序3:
main()
{
intx,y;
scanf("%d",&x);
y=-1;
if(x!=0)
if(x>0)
y=1;
elsey=0;
printf("x=%d,y=%d\n",x,y);}思考題一:程序3:思考題一:程序4:
main()
{
intx,y;
scanf("%d",&x);
y=0;
if(x>=0)if(x>0)
y=1;
elsey=-1;
printf("x=%d,y=%d\n",x,y);}思考題一:程序4:思考題二:輸入兩個(gè)實(shí)數(shù),按數(shù)值由小到大的次序輸出這兩個(gè)數(shù)。輸入三個(gè)實(shí)數(shù),按數(shù)值由小到大的次序輸出這三個(gè)數(shù)。思考題二:輸入兩個(gè)實(shí)數(shù),按數(shù)值由小到大的次序輸出這兩個(gè)數(shù)。輸課堂小結(jié):關(guān)系運(yùn)算和邏輯運(yùn)算選擇結(jié)構(gòu)—if語(yǔ)句的應(yīng)用關(guān)系運(yùn)算符:<,<=,>,>=,==,!=邏輯運(yùn)算符:&&,||,!各種運(yùn)算符的優(yōu)先級(jí),表達(dá)式綜合應(yīng)用if語(yǔ)句—單分支if…else語(yǔ)句—雙分支if-elseif語(yǔ)句—多分支if語(yǔ)句的嵌套應(yīng)用if語(yǔ)句的注意問題課堂小結(jié):關(guān)系運(yùn)算和邏輯運(yùn)算選擇結(jié)構(gòu)—if語(yǔ)句的應(yīng)用關(guān)系運(yùn)算ThankyouforcomingThankyouforcoming演講完畢,謝謝觀看!演講完畢,謝謝觀看!
第三章C程序的流程控制
第三章C程序的流程控制C語(yǔ)言的結(jié)構(gòu)C語(yǔ)言的三大結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)S1S2S3(a)順序結(jié)構(gòu)
PS1S2真假(b)選擇結(jié)構(gòu)
PS2假真(c)循環(huán)結(jié)構(gòu)
C語(yǔ)言的結(jié)構(gòu)C語(yǔ)言的三大結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)S本章內(nèi)容提要判斷選擇型程序設(shè)計(jì)
3.13.2循環(huán)型程序設(shè)計(jì)
3.3綜合應(yīng)用
3.4本章小結(jié)
3.5思考題
3.6本章內(nèi)容提要判斷選擇型程序設(shè)計(jì)3.13.2循環(huán)型程序設(shè)計(jì)本節(jié)知識(shí)點(diǎn)C語(yǔ)言中的邏輯值1關(guān)系運(yùn)算符與關(guān)系表達(dá)式2邏輯運(yùn)算符與邏輯表達(dá)式3if…else結(jié)構(gòu)的應(yīng)用4if-elseif結(jié)構(gòu)的應(yīng)用5if語(yǔ)句的嵌套應(yīng)用6重點(diǎn)關(guān)系和邏輯運(yùn)算1if語(yǔ)句的應(yīng)用2難點(diǎn)本節(jié)知識(shí)點(diǎn)C語(yǔ)言中的邏輯值1關(guān)系運(yùn)算符與關(guān)系表達(dá)式2邏輯運(yùn)算前面學(xué)過的運(yùn)算符和表達(dá)式?比較?并且?前面學(xué)過的運(yùn)算符和表達(dá)式?比較?并且?判斷是針對(duì)命題的“真”、“假”進(jìn)行的。3.1.1命題的“真”、“假”與C語(yǔ)言中的邏輯值例如,下面一些命題:1、小強(qiáng)是個(gè)大學(xué)生2、今天下雨了3、a≥34、a≥b≥c5、a≥5或c≥4關(guān)系表達(dá)式和邏輯表達(dá)式是C語(yǔ)言中描述命題的兩種基本形式判斷是針對(duì)命題的“真”、“假”進(jìn)行的。3.1.1命題的“關(guān)系運(yùn)算是邏輯運(yùn)算中比較簡(jiǎn)單的一種,“關(guān)系運(yùn)算”就是“比較運(yùn)算”,指對(duì)兩個(gè)表達(dá)式值的大小比較。3.1.2關(guān)系運(yùn)算符C語(yǔ)言中提供有如下6個(gè)關(guān)系運(yùn)算符:
<,<=,
>,>=,==,!=例3.1
a>3inta=5;inta=2;結(jié)果為真(True)結(jié)果為假(False)關(guān)系運(yùn)算是邏輯運(yùn)算中比較簡(jiǎn)單的一種,“關(guān)系運(yùn)算”就是“3.13.1.2關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)、關(guān)系、邏輯、賦值表達(dá)式等)連接起來所構(gòu)成的表達(dá)式,稱為關(guān)系表達(dá)式。例3.2:
c>a+b
a>b==c
a==b<c
a=b>c
等效于c>(a+b)等效于(a>b)==c等效于a==(b<c)等效于a=(b>c)3.1.2關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)1、表達(dá)式5>2>7>8在數(shù)學(xué)上允許否?在C中是否允許?關(guān)系表達(dá)式注意問題:按自左而右的結(jié)合求解:①5>2值為1;②1>7值為0;③0>8的值為0。即整個(gè)關(guān)系表達(dá)式的值為0。1、表達(dá)式5>2>7>8在數(shù)學(xué)上允許否?在C中是否允許?關(guān)系2、由于關(guān)系表達(dá)式的值是整型數(shù)0或1,故也可以將其看成是一種整型表達(dá)式。例如,若有:
inti=1,j=7,a;a=i+(j%4!=0);關(guān)系表達(dá)式注意問題:這種表達(dá)式的含義不易被理解,初學(xué)時(shí)不宜多用2、由于關(guān)系表達(dá)式的值是整型數(shù)0或1,故也可以將其關(guān)系表達(dá)式3、在判定兩個(gè)浮點(diǎn)數(shù)是否相等時(shí),由于存儲(chǔ)上的誤差,會(huì)得出錯(cuò)誤的結(jié)果。例如:
1.0/3.0*3.0==1.0關(guān)系表達(dá)式注意問題:該關(guān)系表達(dá)式的值為0(假),并不為1(真)。所以應(yīng)避免對(duì)兩個(gè)實(shí)數(shù)表達(dá)式作“相等”或“不相等”的判別。上式可改寫為:
fabs(1.0/3.0*3.0-1.0)<1e-5fabs是求絕對(duì)值函數(shù)。只要1.0/3.0*3.0與1.0之間的差小于10-5(或一個(gè)其它的很小的數(shù)),就認(rèn)為1.0/3.0*3.0與1.0相等。3、在判定兩個(gè)浮點(diǎn)數(shù)是否相等時(shí),由于存儲(chǔ)上的誤差,會(huì)關(guān)系表達(dá)4、要表示x在區(qū)間[a,b]中,在數(shù)學(xué)中使用表達(dá)式a≤x≤b可否?在C語(yǔ)言中使用表達(dá)式“a<=x<=b”可否?關(guān)系表達(dá)式注意問題:假設(shè)a=0;b=0.5。若x=0.3上式可改寫為:
a<=x并且x<=b4、要表示x在區(qū)間[a,b]中,在數(shù)學(xué)中使用表達(dá)式a≤x≤b3.1.3邏輯運(yùn)算符與邏輯表達(dá)式ABBAA(a)“與”
(b)“或”
(c)“非”
三個(gè)基本邏輯運(yùn)算
3.1.3邏輯運(yùn)算符與邏輯表達(dá)式ABBAA(a)“與”3.1.3邏輯運(yùn)算符C語(yǔ)言提供三種邏輯運(yùn)算符:1、&&
邏輯與(相當(dāng)日常生活中:而且,并且,只在兩條件同時(shí)成立時(shí)為“真”)2、||
邏輯或(相當(dāng)日常生活中:或,兩個(gè)條件只要有一個(gè)成立時(shí)即為“真”)3、!邏輯非(條件為真,運(yùn)算后為假,條件為假,運(yùn)算后為真)3.1.3邏輯運(yùn)算符C語(yǔ)言提供三種邏輯運(yùn)算符:1、&&3.1.3邏輯表達(dá)式用邏輯運(yùn)算符(邏輯與、邏輯或、邏輯非)將關(guān)系表達(dá)式或邏輯量連接起來構(gòu)成邏輯表達(dá)式。例3.3:
a>b&&x>ya==b||x==y
!a||a>b
等效于(a>b)&&(x>y)等效于(a==b)||(x==y)等效于(!a)||(a>b)3.1.3邏輯表達(dá)式用邏輯運(yùn)算符(邏輯與、邏輯或1、在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符。a&&b&&ca||b||c邏輯表達(dá)式注意問題:例3.4:如果a,b,c,d,m,n分別為:1,2,3,4,1,1分析整個(gè)表達(dá)式(m=a>b)&&(n=c>d)結(jié)果和m,n的結(jié)果。1、在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都被執(zhí)行邏輯2、如果在一個(gè)表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作為數(shù)值運(yùn)算或關(guān)系運(yùn)算的對(duì)象(原值),哪些是作為邏輯運(yùn)算的對(duì)象(邏輯值)。邏輯表達(dá)式注意問題:例3.5:計(jì)算:5>3&&2||8<4-!02、如果在一個(gè)表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作邏輯關(guān)系和邏輯表達(dá)式應(yīng)用掌握C語(yǔ)言的關(guān)系運(yùn)算符和邏輯運(yùn)算符后,可以用一個(gè)邏輯表達(dá)式來表示一個(gè)復(fù)雜的條件。例3.6:判斷某一年是否閏年。閏年的條件是符合下面兩個(gè)條件之一:
1、能被4整除,但不能被100整除;
2、能被4整除,又能被400整除。(year%4==0&&year%100!=0)||year%400==0考慮:判斷非閏年的條件?關(guān)系和邏輯表達(dá)式應(yīng)用掌握C語(yǔ)言的關(guān)系運(yùn)算符和邏輯運(yùn)算3.2if選擇語(yǔ)句的應(yīng)用PS1S2真假選擇結(jié)構(gòu)
3.2if選擇語(yǔ)句的應(yīng)用PS1S2真假選擇結(jié)構(gòu)3.2if選擇語(yǔ)句的應(yīng)用if語(yǔ)句用來判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的幾種操作之一。if語(yǔ)句
單分支結(jié)構(gòu)
雙分支結(jié)構(gòu)
多分支結(jié)構(gòu)if語(yǔ)句的嵌套3.2if選擇語(yǔ)句的應(yīng)用if語(yǔ)句用來判定所給定的條件3.2.1單分支結(jié)構(gòu)if語(yǔ)句格式:if(表達(dá)式)語(yǔ)句;
引例:如果學(xué)生成績(jī)(score)不低于60分,則輸出“合格”3.2.1單分支結(jié)構(gòu)if語(yǔ)句格式:引例:如果學(xué)生成績(jī)3.2.1雙分支結(jié)構(gòu)if語(yǔ)句
格式:if(表達(dá)式)語(yǔ)句1;else語(yǔ)句2;
引例:如果學(xué)生成績(jī)(score)不低于60分,則輸出“合格”,否則輸出“不合格”。3.2.1雙分支結(jié)構(gòu)if語(yǔ)句格式:引例:如果學(xué)生成3.2.2多分支結(jié)構(gòu)if語(yǔ)句
引例:如果學(xué)生成績(jī)(score)不低于90分,則輸出“優(yōu)秀”;如果80≤score<90,則輸出“良好”;如果70≤score<80,則輸出“中等”;如果60≤score<70,則輸出“合格”;如果score<60,則輸出“不合格”。3.2.2多分支結(jié)構(gòu)if語(yǔ)句引例:如果學(xué)生成績(jī)(sc3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析一:單分支結(jié)構(gòu)if(表達(dá)式)語(yǔ)句;特點(diǎn):滿足條件即執(zhí)行語(yǔ)句程序段:if(score>=90)printf(“優(yōu)秀”)if(score>=80&&score<90)printf(“良好”)if(score>=70&&score<80)printf(“中等”)if(score>=60&&score<70)printf(“合格”)if(score<60)printf(“不合格”)缺點(diǎn):條件表達(dá)式復(fù)雜且if語(yǔ)句過多3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析一:if(表達(dá)式)語(yǔ)3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析二:雙分支結(jié)構(gòu)可以實(shí)現(xiàn)不?3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析二:雙分支結(jié)構(gòu)可以實(shí)現(xiàn)3.2.2多分支結(jié)構(gòu)if-elseif語(yǔ)句分析三:多分支結(jié)構(gòu)格式:
if(表達(dá)式1)
語(yǔ)句1;
elseif(表達(dá)式2)
語(yǔ)句2;elseif(表達(dá)式3)
語(yǔ)句3;…elseif(表達(dá)式m)
語(yǔ)句m;else語(yǔ)句m+1;思考--如何寫程序?3.2.2多分支結(jié)構(gòu)if-elseif語(yǔ)句分析三:多有無其他方法?有無其他方法?3.2.3if語(yǔ)句的嵌套應(yīng)用在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。格式為:3.2.3if語(yǔ)句的嵌套應(yīng)用在if語(yǔ)句中又包含一個(gè)或多3.2.3if語(yǔ)句的嵌套應(yīng)用如果學(xué)生成績(jī)(score)不低于90分,則輸出“優(yōu)秀”;如果80≤score<90,則輸出“良好”;如果70≤score<80,則輸出“中等”;如果60≤score<70,則輸出“合格”;如果score<60,則輸出“不合格”。3.2.3if語(yǔ)句的嵌套應(yīng)用如果學(xué)生成績(jī)(score說明:1、三種形式的if語(yǔ)句中的“表達(dá)式”一般為關(guān)系表達(dá)式或邏輯表達(dá)式,但不限于這兩種表達(dá)式。例如:if(‘a(chǎn)’)printf(“%d”,’a’);能運(yùn)行否?
說明:1、三種形式的if語(yǔ)句中的“表達(dá)式”一般為關(guān)系表達(dá)式或說明:2、else子句不能單獨(dú)使用,必須是if語(yǔ)句的一部分,與if配對(duì)使用。例如:if(‘a(chǎn)’)printf(“%c”,’a’);elseprintf(“%c”,’b’);elseprintf(“%c”,’c’);
說明:2、else子句不能單獨(dú)使用,必須是if語(yǔ)句的一部分,說明:3、在if和else后面可以只含一個(gè)內(nèi)嵌的操作語(yǔ)句,也可以有多個(gè)操作語(yǔ)句構(gòu)成的語(yǔ)句塊(復(fù)合語(yǔ)句)。語(yǔ)句塊用{
}括起來。例如:求邊長(zhǎng)分別為a,b,c的三角形面積?
if(a+b>c&&b+c>a&&c+a>b){s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(area);}elseprintf(“itisnotatriangle”);說明:3、在if和else后面可以只含一個(gè)內(nèi)嵌的操作語(yǔ)句,也說明:4、if嵌套語(yǔ)句中,應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系,else總是與它上面的最近的未配對(duì)的if配對(duì)。特別是if/else子句數(shù)目不一樣時(shí)本意實(shí)際說明:4、if嵌套語(yǔ)句中,應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系,說明:5、if嵌套語(yǔ)句解決匹配問題方法(1)利用空語(yǔ)句使if子句數(shù)量與else子句數(shù)量相同。(2)利用{}。將沒有else子句的if語(yǔ)句用{}括起來說明:5、if嵌套語(yǔ)句解決匹配問題方法(1)利用空語(yǔ)句使if思考題一:函數(shù):-1(x<0)y=0(x=0)1(x>0)編一個(gè)程序,輸入x,輸出y。有以下幾個(gè)程序,請(qǐng)判斷哪個(gè)是正確的?思考題
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年新疆鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試模擬試題含詳細(xì)答案解析
- 2026年廣東生態(tài)工程職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考題庫(kù)含詳細(xì)答案解析
- 2026年度滁州市市直事業(yè)單位公開招聘工作人員65名考試重點(diǎn)試題及答案解析
- 2026年青島求實(shí)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試備考題庫(kù)含詳細(xì)答案解析
- 2026年長(zhǎng)春信息技術(shù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試備考試題含詳細(xì)答案解析
- 2026年寧夏工業(yè)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試模擬試題及答案詳細(xì)解析
- 2026年鶴崗師范高等??茖W(xué)校單招綜合素質(zhì)考試備考題庫(kù)含詳細(xì)答案解析
- 2026年江蘇建筑職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試備考試題含詳細(xì)答案解析
- 2026年長(zhǎng)沙南方職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試參考題庫(kù)含詳細(xì)答案解析
- 2026年河北工藝美術(shù)職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考試題含詳細(xì)答案解析
- 2026黑龍江七臺(tái)河市農(nóng)投百安供熱有限公司招聘16人參考考試試題及答案解析
- web開發(fā)面試題及答案
- 競(jìng)聘培訓(xùn)教學(xué)課件
- 2026年銅陵安徽耀安控股集團(tuán)有限公司公開招聘工作人員2名考試備考題庫(kù)及答案解析
- 建筑物拆除施工監(jiān)測(cè)方案
- 《中國(guó)心力衰竭診斷和治療指南2024》解讀(總)
- 《MSA測(cè)量系統(tǒng)分析》考核試題
- JB-T 14188.1-2022 激光切管機(jī) 第1部分:精度檢驗(yàn)
- XJ4830晶體管圖示儀說明書
- (汪曉贊)運(yùn)動(dòng)教育課程模型
- GB/T 42677-2023鋼管無損檢測(cè)無縫和焊接鋼管表面缺欠的液體滲透檢測(cè)
評(píng)論
0/150
提交評(píng)論