




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
會(huì)計(jì)學(xué)1C語(yǔ)言程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)關(guān)系運(yùn)算符<小于<=小于或等于 > 大于 優(yōu)先級(jí)高(6)>=大于或等于==等于 優(yōu)先級(jí)低(7)!=不等于 第1頁(yè)/共34頁(yè)關(guān)系表達(dá)式比較兩個(gè)運(yùn)算數(shù),表達(dá)式成立則值為
1(true),否則值為0(false): x>y //未知
x+5>x //1(true) x+5<x //0(false) x+5==x //0(false) x+5>=x //1(true)第2頁(yè)/共34頁(yè)關(guān)系運(yùn)算符與算術(shù)運(yùn)算符算術(shù)運(yùn)算符的優(yōu)先級(jí)是3(乘除余)和4(加減)以下兩個(gè)表達(dá)式的值是多少?
10+(20<25),(7>10)*100以下四個(gè)表達(dá)式,如果要加括號(hào),并且不能改變?cè)瓉?lái)的優(yōu)先次序,應(yīng)該怎么加?
10+20<25, x*y>z
z==x>y,z!=x<y第3頁(yè)/共34頁(yè)關(guān)系運(yùn)算符的結(jié)合方向關(guān)系運(yùn)算符的結(jié)合方向是自左至右設(shè)x、y、z的值分別是5、3、1,那么關(guān)系表達(dá)式x>y>z的值是多少?如果它們的值分別是1、3、5呢?數(shù)學(xué)書(shū)上x(chóng)>y>z的意思是x大于y,y大于z,這個(gè)意思用C語(yǔ)言來(lái)表達(dá),應(yīng)該是:
x>y&&y>z第4頁(yè)/共34頁(yè)關(guān)系運(yùn)算符和賦值運(yùn)算符重溫:賦值運(yùn)算符的優(yōu)先級(jí)低(14)x=y>z等價(jià)于下面哪個(gè)表達(dá)式?
(x=y)>z x=(y>z)若x,y,z的初值分別是5,3,1,下面表達(dá)式的值是多少?
x=y>z 第5頁(yè)/共34頁(yè)邏輯值表
第一行是標(biāo)題。以第二行為例,讀法是: 若a真b真,則非a和非b均假,a&&b為真,a||b亦為真。 邏輯表達(dá)式求值是自左至右的,一旦發(fā)現(xiàn)已經(jīng)可以根據(jù)一個(gè)運(yùn)算數(shù)求值,就不會(huì)再對(duì)第二個(gè)運(yùn)算數(shù)求值。例如,在a&&b中,如果已知a假,則整個(gè)邏輯表達(dá)式為假,不必再考慮b的值第6頁(yè)/共34頁(yè)邏輯運(yùn)算符的優(yōu)先級(jí)和結(jié)合方向邏輯反的結(jié)合方向是自右至左,其他邏輯運(yùn)算符的結(jié)合方向均為自左至右邏輯非!,優(yōu)先級(jí)2算術(shù)運(yùn)算符,優(yōu)先級(jí)3和4關(guān)系運(yùn)算符,優(yōu)先級(jí)6和7邏輯與&&,優(yōu)先級(jí)11邏輯或||,優(yōu)先級(jí)12賦值運(yùn)算符,優(yōu)先級(jí)14第7頁(yè)/共34頁(yè)表達(dá)式求值
假定以下變量a,b,c,d的值分別是0,1,2,3,變量x和y的值未知,請(qǐng)對(duì)下列表達(dá)式求值:x<=y&&10<12x>=y&&x!=xa>b||3>1a<b||x>x-1a&&b||c&&da&&(b||c)&&d第8頁(yè)/共34頁(yè)表達(dá)式求值
假定a,b,c的值分別是3,4,5a+b>c&&b==c((a+b)>c)&&(b==c)a||b+c&&b–c!(a>b)&&!c||1!(x=a)&&(y=b)&&0!(a+b)+c–1&&b+c/2第9頁(yè)/共34頁(yè)練習(xí)寫(xiě)一些表達(dá)式判斷是否“及格”(60分及格)判斷是否“英文字母”判斷是否“小寫(xiě)英文字母或阿拉伯?dāng)?shù)字”判斷是否“能被4整除”判斷是否“能被4整除但不能被100整除”判斷是否“閏年”第10頁(yè)/共34頁(yè)形式1:if(e)s;是否執(zhí)行s,取決于e的值sample:輸入’g’,‘0’,兩個(gè)printf語(yǔ)句的執(zhí)行情況如何?
#include<ctype.h> if(isletter(ch))/*判斷ch是否字母*/ printf(“%cisaletter\n”,ch); printf(“thankyou.\n”);第11頁(yè)/共34頁(yè)形式2:if(e)s1;elses2;e的值非0,執(zhí)行s1,否則執(zhí)行s2sample:輸入’g’,‘0’,兩個(gè)printf語(yǔ)句的執(zhí)行情況如何?
if(isletter(ch)) printf(“%cisaletter\n”,ch); else printf(“%cisnotaletter\n”,ch);第12頁(yè)/共34頁(yè)s可以是一個(gè)復(fù)合語(yǔ)句sample:三個(gè)變量的排序(升序)
if(a>b){tmp=a;a=b;b=tmp;} if(a>c){tmp=a;a=c;c=tmp;} if(b>c){tmp=b;b=c;c=tmp;}第13頁(yè)/共34頁(yè)形式3:多分枝的if語(yǔ)句注意下面語(yǔ)句的邏輯關(guān)系:
if(n>500)cost=0.15; elseif(n>300)cost=0.10; elseif(n>100)cost=0.075; elseif(n>50)cost=0.05; elseconst=0.0;例如,第二行相當(dāng)于說(shuō):
if(n<=500&&n>300)cost=0.10;如果按n值從小到大的順序來(lái)寫(xiě)多分枝的if語(yǔ)句,應(yīng)該怎么寫(xiě)?第14頁(yè)/共34頁(yè)形式4:嵌套的if語(yǔ)句if(e)s1;elses2中,s1或s2本身又是一個(gè)if語(yǔ)句形式3也是嵌套的if語(yǔ)句,但它總是在s2中嵌套
if(e) if(e1)s1; elses2; else if(e2)s3; elses4;第15頁(yè)/共34頁(yè)寫(xiě)法1if(x<0)y=-1;if(x==0)y=0;if(x>0)y=1;
語(yǔ)法、邏輯都沒(méi)有錯(cuò),運(yùn)行也正確,但效率低第16頁(yè)/共34頁(yè)寫(xiě)法2和寫(xiě)法3if(x<0)y=-1;else if(x==0)y=0; elsey=1;if(x>=0) if(x>0)y=1; elsey=0;elsey=-1;第17頁(yè)/共34頁(yè)if與else的匹配原則就近匹配: 嵌套的if語(yǔ)句中,else總是跟離它最近的上一個(gè)尚無(wú)匹配的if匹配,不管縮進(jìn)形式是怎樣的:if(e) if(e1)s1;elses2;/*跟②匹配*/else /*跟①匹配*/if(e2)s3;elses4;/*跟⑤匹配*/第18頁(yè)/共34頁(yè)寫(xiě)法4和寫(xiě)法5y=-1;if(x!=0) if(x>0)y=1;elsey=0;y=0;if(x>=0) if(x>0)y=1;elsey=-1;第19頁(yè)/共34頁(yè)條件表達(dá)式e1?e2:e3其中,?:是一個(gè)條件運(yùn)算符,三目的,優(yōu)先級(jí)為13(高于賦值運(yùn)算符),結(jié)合方向是自右至左條件表達(dá)式的值是這樣計(jì)算的:先對(duì)e1求值如果e1的值非0,則條件表達(dá)式的值為e2否則,條件表達(dá)式的值為e3第20頁(yè)/共34頁(yè)條件表達(dá)式的應(yīng)用用于二分枝的選擇結(jié)構(gòu),例如:
if(ch<128)return0; elsereturn1;
可寫(xiě)成以條件表達(dá)式為賓語(yǔ)的返回語(yǔ)句:
returnch<128?0:1;下面這個(gè)if語(yǔ)句如何改寫(xiě)為以條件表達(dá)式為右值的賦值語(yǔ)句?
if(score>=60)grade=‘Y’; elsegrade=‘N’;第21頁(yè)/共34頁(yè)條件表達(dá)式的應(yīng)用條件運(yùn)算符是自右至左結(jié)合的,例如:
y=x==0?0:x>0?1:-1相當(dāng)于 y=x==0?0:(x>0?1:-1)因此,條件表達(dá)式也可以用于多分枝選擇不過(guò),為了容易理解,一般應(yīng)該用if語(yǔ)句來(lái)表達(dá)第22頁(yè)/共34頁(yè)switch語(yǔ)句多分枝選擇:
switch(grade){
case
‘A’:printf(“85~100”\n”); break;
case
‘B’:printf(“70~84\n”); break;
case
‘C’:printf(“60~69”\n”); break;
case
‘D’:printf(“<60\n”); break;
default:printf(“error\n”); }第23頁(yè)/共34頁(yè)switch語(yǔ)句與多分枝if語(yǔ)句的關(guān)系一般來(lái)說(shuō),能用switch語(yǔ)句的也能用多分枝if語(yǔ)句來(lái)表達(dá),例如:
if(grade==‘A’)printf(“85~100”\n”); elseif(grade==‘B’)printf(“70~84\n”); elseif(grade==‘C’)printf(“60~69”\n”); elseif(grade==‘D’)printf(“<60\n”); elseprintf(“error\n”);第24頁(yè)/共34頁(yè)switch語(yǔ)句的語(yǔ)法每個(gè)標(biāo)號(hào)語(yǔ)句都是一個(gè)入口依次檢查每個(gè)case語(yǔ)句,看是否有合適的入口;若每個(gè)case語(yǔ)句都不合適,則從default語(yǔ)句進(jìn)入;若無(wú)default語(yǔ)句,則無(wú)法進(jìn)入一旦找到了合適的入口,便執(zhí)行此后的所有語(yǔ)句,除非遇到return語(yǔ)句或break語(yǔ)句因此,break語(yǔ)句很重要,應(yīng)在每個(gè)case后都加break,除非有理由不加第25頁(yè)/共34頁(yè)幾個(gè)case共享一個(gè)動(dòng)作如果幾個(gè)case的動(dòng)作相同,可以只寫(xiě)一次,例如:
switch(month){//求一個(gè)月有幾天
case2:if(is_leap_year(year))days=29;elsedays=28; break; case4: case6: case9: case11:days=30;break; default:days=31; }第26頁(yè)/共34頁(yè)例5.5判斷某一年是否閏年輸入:年份數(shù)字(大于0)輸出:打印“是閏年”或“不是閏年” 教材提供了三種寫(xiě)法,請(qǐng)比較優(yōu)劣:嵌套的if語(yǔ)句多分枝的if語(yǔ)句二分枝的if語(yǔ)句第27頁(yè)/共34頁(yè)求三個(gè)數(shù)中的最大者if(a>b)if(a>c)returna;elsereturnc;elseif(b>c)returnb;elsereturnc;intm=a;if(b>m)m=b;if(c>m)m=c;returnm;
你喜歡哪種寫(xiě)法?第28頁(yè)/共34頁(yè)例5.6求一元二次方程的根輸入:系數(shù)a,b,c過(guò)程和輸出:a==0:不是一元二次方程disc=b*b–4*a*c;if(disc絕對(duì)值近乎0)打印兩個(gè)相等實(shí)根if(disc絕對(duì)值大于0)打印兩個(gè)不等實(shí)根else打印兩個(gè)共軛復(fù)根第29
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來(lái)辦公軟件發(fā)展趨勢(shì)調(diào)研報(bào)告
- 二手房包銷合同
- 農(nóng)副產(chǎn)品購(gòu)銷合同兩
- 2025年江西貨運(yùn)從業(yè)資格證恢復(fù)考試題
- 《不同價(jià)態(tài)含硫物質(zhì)的轉(zhuǎn)化》作業(yè)設(shè)計(jì)方案
- 2023年高考全國(guó)乙卷數(shù)學(xué)(文)真題(解析版)
- 《藥物化學(xué)》課程標(biāo)準(zhǔn)
- 建房拆除改造合同范本
- 制砂機(jī)購(gòu)買合同范例
- 中俄出口合同范例
- 2025年《地陪導(dǎo)游服務(wù)程序》公開(kāi)課標(biāo)準(zhǔn)教案
- 過(guò)敏性休克完整版本
- 2024年益陽(yáng)醫(yī)學(xué)高等專科學(xué)校單招職業(yè)適應(yīng)性測(cè)試題庫(kù)及答案解析
- 樓頂發(fā)光字采購(gòu)安裝投標(biāo)方案
- 福建省危險(xiǎn)化學(xué)品企業(yè)安全標(biāo)準(zhǔn)化(三級(jí))考核評(píng)分標(biāo)準(zhǔn)指導(dǎo)意見(jiàn)(試行)
- 上海市長(zhǎng)寧區(qū)2022年高考英語(yǔ)一模試卷(含答案)
- 城鎮(zhèn)詳細(xì)設(shè)計(jì)控制性詳細(xì)規(guī)劃
- 智能垃圾桶系統(tǒng)的設(shè)計(jì)論文
- 質(zhì)量管理體系過(guò)程識(shí)別矩陣圖及與條款對(duì)照表
- 2021年度錨索張拉機(jī)具及錨桿拉力計(jì)技術(shù)規(guī)格書(shū)
- 2022年人力資源管理師課程表
評(píng)論
0/150
提交評(píng)論