版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
CH5選擇結(jié)構(gòu)的程序設(shè)計(jì)☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆CH4作業(yè):書(shū)(P80)34568911(1214學(xué)過(guò)switch以后做)§4.1關(guān)系運(yùn)算符與關(guān)系表達(dá)式一、關(guān)系運(yùn)算符2.關(guān)系運(yùn)算符:3.優(yōu)先級(jí):算術(shù)運(yùn)算符與關(guān)系運(yùn)算符的優(yōu)先級(jí)哪個(gè)高?與賦值運(yùn)算符相比呢?即比較運(yùn)算a>3若a為5,則成立,結(jié)果為“真”否則不成立,結(jié)果為“假”<、<=、>=、>、==、!=高低?4.結(jié)合率:左結(jié)合1.關(guān)系運(yùn)算:算術(shù)運(yùn)算符高于關(guān)系運(yùn)算符關(guān)系運(yùn)算符高于賦值運(yùn)算符§4.1關(guān)系運(yùn)算符與關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)、字符等)連接起來(lái)的有意義的式子如: x!=0 65=='A' a*a+b*b<y*y關(guān)系表達(dá)式的值: 真 假 非0 0 二、關(guān)系表達(dá)式設(shè)a=3,b=2,c=1,給出以下表達(dá)式的值:
a>b a>b==c b+c<a d=a>b a>b!=b運(yùn)算結(jié)果用1表示"真"運(yùn)算時(shí)將非0判斷為"真"§4.2邏輯運(yùn)算符與邏輯表達(dá)式一、邏輯運(yùn)算符3.優(yōu)先級(jí)與結(jié)合率1.邏輯運(yùn)算2.邏輯運(yùn)算符對(duì)邏輯值的運(yùn)算與、或、非、異或……與、或、非&&||!&& 真 假真 真 假假 假 假|(zhì)| 真 假真 真 真假 真 假&&||!!(非)算術(shù)運(yùn)算符關(guān)系運(yùn)算符&&和||賦值運(yùn)算符例如: a>b&&b>c相當(dāng)于(a>b)&&(b>c) a!=b&&c相當(dāng)于(a!=b)&&(c!=0) (!a)||(a>b)相當(dāng)于
!a||a>b
5>3&&2||!8<4-2
相當(dāng)于((5>3)&&2)||((!8)<(4-2))高低是用邏輯運(yùn)算符將表達(dá)式連接起來(lái)的有意義的式子如果在執(zhí)行某個(gè)運(yùn)算后整個(gè)表達(dá)式的值已經(jīng)能夠確定,則其他運(yùn)算符不再執(zhí)行a&&b&&c若a為0a||b||c
當(dāng)a非0時(shí)§4.2邏輯運(yùn)算符與邏輯表達(dá)式二、邏輯表達(dá)式例如: a>b&&b>c (a>b)&&(b>c) a!=b&&c (a!=b)&&(c!=0) (!a)||(a>b) !a||a>b
5>3&&2||!8<4-2設(shè)a=3,b=2,c=1真真真真判斷某年是否閏年?閏年:年份能被4整除,但不能被100整除;或能被400整除year%4==0&&year%100!=0||year%400==0由數(shù)學(xué)式寫(xiě)出C語(yǔ)句表達(dá)式:
|x|>2 x1+a并yb的定義域(x>=2||x<=1)&&x!=0(x-1)*(x-2)>=0&&x!=0
(x-1)(x-2)f(x)= xx>2||x<-2abs(x)>2x<=1+a&&y<=bif(a>0)printf("Aispositive.\n");P真假AB§4.3if語(yǔ)句一、if語(yǔ)句的格式1、條件執(zhí)行if(P)A條件邏輯表達(dá)式語(yǔ)句2、分支選擇if(P)AelseB條件邏輯表達(dá)式語(yǔ)句A語(yǔ)句Bif(x>y){ z=y; y=x; x=z;}if(a>0)printf("Aispositive.\n");elseprintf("Aisnotpositive.\n");A或B都只能是單一語(yǔ)句,可以是復(fù)合語(yǔ)句else部分不能獨(dú)立存在,它必定是if語(yǔ)句的一部分分析:①輸入x②判斷x值是否為0③根據(jù)x值,計(jì)算y值④輸出y值問(wèn)題:如何實(shí)現(xiàn)②?③涉及選擇不同的計(jì)算公式,如何解決?#include<stdio.h>#include<math.h>voidmain(){ floatx,y;
printf("Enterx:");
scanf("%f",&x); if(x!=0.0) y=sin(x)/x; else y=1;
printf("x=%5.2f\ty=%7.4f\n",x,y);}例4.1計(jì)算函數(shù)值:sin(x)/x x=01 x=0y=輸入xx為0?
y=1y=sin(x)/x輸出y真假 if(x!=0.0) y=sin(x)/x; else y=1; if(x!=0.0) y=sin(x)/x; else y=1; if(x!=0.0) y=sin(x)/x; else y=1;關(guān)系運(yùn)算選擇結(jié)構(gòu)#include<stdio.h>void
main(){floatx,y;
printf("enterx:");
scanf("%f",&x);y=1;if(x!=0)y=(x*5+1)/x;
printf("x=%5.1fy=%5.1f\n",x,y);}例5.2對(duì)于任意x,求函數(shù)值y=f(x)x·5+1x1y=x=0x=0#include<stdio.h>void
main(){floatx,y;
printf("enterx:");
scanf("%f",&x);if(x==0)y=1;elsey=(x*5+1)/x;
printf("x=%5.1fy=%5.1f\n",x,y);}輸入xx等于0?是 否y=1y=(x*5+1)/x輸出結(jié)果例4.3輸入一個(gè)整數(shù)a,判斷它是偶數(shù)還是奇數(shù)?#include<stdio.h>voidmain(){ inta;
printf("inputanumber:");
scanf("%d",&a); if(a%2==0)
printf("%disaneven\n",a); else
printf("%disanodd\n",a);}如何判斷?%例4.4任給a,b,c三個(gè)數(shù),按從大到小的順序輸出。
abt85
8
5
8分析:1)對(duì)于任意兩個(gè)數(shù)a,b:若a>b,則輸出a,b否則輸出b,a2)對(duì)于三個(gè)數(shù),有6中可能:a>b>c a>c>b b>a>c b>c>ac>a>b c>b>a3)使用交換法:①若a<b,則交換a和b②若a<c,則交換a和c
結(jié)果a最大③若b<c,則交換b和c
結(jié)果a>b>c交換方法:設(shè)a=8,b=5a=b;b=a;結(jié)果a=5,b=5t=a;a=b;b=t;t=aa=bb=t例4.4任給a,b,c三個(gè)數(shù),按從大到小的順序輸出。#include<stdio.h>void
main(){ inta,b,c,t;
printf("inputa,b,c:");
scanf("%d,%d,%d",&a,&b,&c); if(a<b){t=a;a=b;b=t;} if(a<c){t=a;a=c;c=t;} if(b<c){t=b;b=c;c=t;}
printf("%d%d%d\n",a,b,c);}輸入a、b、c是a<b?否
a與b
交換a<c?是否
a與c
交換是b<c?否
c與b
交換輸出a、b、c§4.3if語(yǔ)句一、if語(yǔ)句的格式3、多分支選擇(elseif語(yǔ)句)if(P1)S1elseif(P2)S2┆elseif(Pn)SnelseSn+1
例4.5:評(píng)價(jià)學(xué)生成績(jī)(百分制)score≥90 優(yōu)秀score≥80 良好score≥70 中score≥60 及格score<60 不及格
P1真假S1P2
真假
S2
Pn
真假
SnSn+1例4.5:評(píng)價(jià)學(xué)生的成績(jī)(百分制)score≥90 優(yōu)秀score≥80 良好score≥70 中score≥60 及格score<60 不及格
P1真假S1P2
真假
S2
Pn
真假
SnSn+1#include<stdio.h>voidmain(){intscore;
printf("inputascore:");
scanf("%d",&score);if(score>=90) printf("優(yōu)秀\n");elseif(score>=80)printf("良好\n");elseif(score>=70)printf("中\(zhòng)n");elseif(score>=60)printf("及格\n");elseprintf("不及格\n");}例4.6設(shè)平面上一點(diǎn)M,其坐標(biāo)為(x,y),若M落在圓心在坐標(biāo)原點(diǎn)的單位圓上,則置key=1,落在圓外置key=2,落在圓內(nèi)置key=0。#include<math.h>#include<stdio.h>void
main(){ floatx,y,r; intkey;
printf("inputx,y:");
scanf("%f,%f",&x,&y); r=sqrt(x*x+y*y); if(r>1) key=2; elseif(r==1) key=1; else key=0;
printf("(%.1f,%.1f):%d\n",x,y,key);}分析:①求點(diǎn)M到原點(diǎn)的距離r②比較r和單位圓半徑的大小輸入x、yr=x2+y2r>1?
是否
r=1?key=2是否
key=1key=0輸出keyxy01M(x,y)rif(P1) if(P2)A elseBelse if(P3)C elseDP1真假P2P3真真假假ABCD§4.3if語(yǔ)句二、if語(yǔ)句的嵌套例4.7求平面上一點(diǎn)M(x,y)所在的相限。#include<stdio.h>void
main(){ floatx,y;
printf("inputx,y:");
scanf("%f,%f",&x,&y); if(x>0) if(y>0)printf("在第一相限\n"); elseprintf("在第四相限\n"); else if(y>0)printf("在第二相限\n"); elseprintf("在第三相限\n");}if(P1) if(P2)A elseBelse if(P3)C elseD§4.3if語(yǔ)句二、if語(yǔ)句的嵌套if(P1)Aelse if(P3)C elseDif(P1) if(P2)A elseBelseCif(P1) if(P2)Aelse if(P3)C elseDif(P1) if(P2)AelseC其它形式P1?P2?else應(yīng)與最近的if匹配if(P1){ if(P2)A}elseCif(P1){if(P2)A}else if(P3)C elseD例4.8判定某年是否閏年。閏年:年份year能能被400整除或被4整除,但不能被100整除;#include<stdio.h>void
main(){intyear,leap;
printf("Whichyear?");
scanf("%d",&year);if(year%400==0)leap=1;else if(year%4==0) if(year%100==0) leap=0; elseleap=1; elseleap=0;if(leap==1)
printf("%d年是閏年\n",year);else
printf("%d年不是閏年\n",year);}例4.8判定某年是否閏年。#include<stdio.h>void
main(){ intyear,leap;
printf("Whichyear?");
scanf("%d",&year); if(year%400==0)leap=1; else if(year%4==0) if(year%100==0) leap=0; elseleap=1; elseleap=0; if(leap==0)
printf("%d年是閏年\n",year); else
printf("%d年不是閏年\n",year);}
if(year%400==0)leap=1; else if(year%4==0) if(year%100==0) leap=0; elseleap=1; elseleap=0;if((year%4==0&&year%100!=0)||(year%400==0))leap=1;elseleap=0;閏年:年份year能被4整除,但不能被100整除;或能被400整除形式:e1?e2:e3執(zhí)行過(guò)程:①計(jì)算e1②若e1值為真,計(jì)算并返回e2的值;否則,計(jì)算并返回e3的值如: y=x==0?1:sin(x)/x等價(jià)于:if(x==0)y=1; elsey=sin(x)/x;結(jié)合方向:右結(jié)合優(yōu)先級(jí):高于賦值運(yùn)算,低于算術(shù)、關(guān)系、邏輯運(yùn)算§4.4條件運(yùn)算符與條件表達(dá)式右結(jié)合:a>b?a:b=c>b?c:b相當(dāng)于
a>b?a:(b=c>b?c:b)例4.9讀程序,分析程序的功能找出a、b兩個(gè)數(shù)中的最大數(shù)#include<stdio.h>voidmain(){ inta,b,max;
printf("Entertwonumber:");
scanf("%d,%d",&a,&b); max=a>b?a:b;
printf("Themaxis%d\n",max);}printf("Themaxis%d\n",a>b?a:b);printf("Themaxis%d\n",max=a>b?a:b);#include<stdio.h>void
main(){ charch;
printf(“Pleaseinputaletter(a-zorA-Z):”);
ch=getchar();
ch=(ch>='A'&&ch<='Z')?ch+32:ch;
putchar(ch);
putchar('\n');}例4.10讀程序,分析程序的功能ch=(ch>=65&&ch<=90)?ch+32:ch;結(jié)論:任意輸入一個(gè)字符,如果是大寫(xiě)字母,將其轉(zhuǎn)換成小寫(xiě)字母ch
為大寫(xiě)字母?ch=(ch>='A'&&ch<='Z')?ch+('a'-'A'):ch;亦稱多分支選擇語(yǔ)句。與if語(yǔ)句相比,程序結(jié)構(gòu)清晰、易讀。一、語(yǔ)句格式其中:表達(dá)式P一般為整型或字符型(整型)常量Ci的類型必須與表達(dá)式P
一致1.計(jì)算表達(dá)式P的值2.若與常量Ci
的值一致,則從語(yǔ)句Si
開(kāi)始執(zhí)行,直到遇到break
語(yǔ)句或switch語(yǔ)句的“}”3.若與任何常量的值均不一致,則從default開(kāi)始執(zhí)行;若無(wú)default語(yǔ)句,則直接執(zhí)行“}”后的程序注意:常量Ci
僅起標(biāo)號(hào)作用常量Ci
的值必須惟一的,沒(méi)有先后次序多個(gè)case語(yǔ)句可共用一組執(zhí)行語(yǔ)句
default可以省略,也可以出現(xiàn)在其他位置二、執(zhí)行過(guò)程§4.5switch語(yǔ)句switch(P){ caseC1:S1 caseC2:S2 …. caseCn:Sn [default:Sn+1]}例4.11用switch語(yǔ)句重做例4.5(評(píng)價(jià)學(xué)生成績(jī))#include<stdio.h>void
main(){intscore;
printf("inputascore:");
scanf("%d",&score);
switch(score/10){case10:case9:printf("優(yōu)\n");break;case8:printf("良\n");break;case7:printf("中\(zhòng)n");break;case6:printf("及格\n");break;default:printf("不及格\n");}}#include<stdio.h>main(){intscore;
printf("inputascore:");
scanf("%d",&score);
if(score>=90)printf("優(yōu)");elseif(score>=80)printf("良");elseif(score>=70)printf("中");elseif(score>=60)printf("及格");elseprintf("不及格\n");}例4.12運(yùn)輸公司對(duì)用戶計(jì)算運(yùn)費(fèi)。收費(fèi)標(biāo)準(zhǔn)隨距離s變化如下:
s<250km 不折扣
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年建筑工程合同法規(guī)培訓(xùn)教材
- 2024學(xué)校與教師簽訂的年度考核與績(jī)效激勵(lì)聘用合同3篇
- 2024年度高端地產(chǎn)項(xiàng)目居間代理服務(wù)合同3篇
- 2024醫(yī)療器械生產(chǎn)許可官方審查合同范本3篇
- 2024年辦公樓物業(yè)租賃安全生產(chǎn)全面保障協(xié)議3篇
- 2024年智能交通戰(zhàn)略聯(lián)盟合作協(xié)議書(shū)3篇
- 2024年度企業(yè)并購(gòu)代辦股權(quán)轉(zhuǎn)讓委托協(xié)議書(shū)6篇
- 2024年園林苗木出口貿(mào)易與境外市場(chǎng)拓展合同3篇
- 2024年度功能飲料市場(chǎng)拓展與銷(xiāo)售支持合同3篇
- 新疆警察學(xué)院《公司治理》2023-2024學(xué)年第一學(xué)期期末試卷
- 引上管的設(shè)計(jì)及安裝要求
- 一年級(jí)美術(shù)(上冊(cè))課件-《認(rèn)識(shí)美術(shù)工具》教學(xué)課件
- GB∕T 32218-2015 真空技術(shù) 真空系統(tǒng)漏率測(cè)試方法
- 醫(yī)院建筑設(shè)計(jì)重點(diǎn)、難點(diǎn)分析及應(yīng)對(duì)措施
- 大壩樞紐工程截流施工方案
- 行政強(qiáng)制法講座-PPT課件
- 風(fēng)冷螺桿熱泵機(jī)組招標(biāo)技術(shù)要求
- 火力發(fā)電廠典型事故案例匯編
- (完整版)弱電工程安全技術(shù)交底
- 盤(pán)點(diǎn)票表格模板
- 報(bào)價(jià)單模板 Microsoft Excel 工作表
評(píng)論
0/150
提交評(píng)論