![C語(yǔ)言流程控制教材課件_第1頁(yè)](http://file4.renrendoc.com/view/8476f525595fb68d34f0f14d161065d5/8476f525595fb68d34f0f14d161065d51.gif)
![C語(yǔ)言流程控制教材課件_第2頁(yè)](http://file4.renrendoc.com/view/8476f525595fb68d34f0f14d161065d5/8476f525595fb68d34f0f14d161065d52.gif)
![C語(yǔ)言流程控制教材課件_第3頁(yè)](http://file4.renrendoc.com/view/8476f525595fb68d34f0f14d161065d5/8476f525595fb68d34f0f14d161065d53.gif)
![C語(yǔ)言流程控制教材課件_第4頁(yè)](http://file4.renrendoc.com/view/8476f525595fb68d34f0f14d161065d5/8476f525595fb68d34f0f14d161065d54.gif)
![C語(yǔ)言流程控制教材課件_第5頁(yè)](http://file4.renrendoc.com/view/8476f525595fb68d34f0f14d161065d5/8476f525595fb68d34f0f14d161065d55.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章C語(yǔ)言流程控制第3章C語(yǔ)言流程控制1本章重點(diǎn)格式化輸入輸出函數(shù)C語(yǔ)言中的順序、分支和循環(huán)程序的設(shè)計(jì)方法本章重點(diǎn)格式化輸入輸出函數(shù)23.1格式化輸入輸出函數(shù)printf()函數(shù)scanf()函數(shù)3.1格式化輸入輸出函數(shù)printf()函數(shù)33.11printf()函數(shù) C標(biāo)準(zhǔn)庫(kù)函數(shù)中提供了一些輸入輸出函數(shù),如前面遇到的printf()函數(shù)和scanf()函數(shù),它們非C關(guān)鍵詞,而是函數(shù)名而已,可以自己編寫輸入輸出函數(shù)。printf()函數(shù)和scanf()函數(shù)在系統(tǒng)文件“stdio.h”中聲明,所以在程序的開始部分要使用編譯預(yù)處理命令“#include<stdio.h>”。3.11printf()函數(shù) C標(biāo)準(zhǔn)庫(kù)函數(shù)中提4
在日常生活中,我們要經(jīng)常將華氏溫度轉(zhuǎn)換成攝氏溫度,其轉(zhuǎn)換公式如下:式中:
c表示攝氏溫度,
f表示華氏溫度。運(yùn)行結(jié)果:如: 在日常生活中,我們要經(jīng)常將華氏溫度轉(zhuǎn)換成攝氏溫度,其轉(zhuǎn)換公5 printf()函數(shù)的作用就是輸出。
對(duì)比:
函數(shù)語(yǔ)句:
printf("fahr=%f,celsius=%f\n",fahr,celsius);
輸出結(jié)果:
fahr=100.000000,celsius=37.777778
得出:雙引號(hào)里,第一個(gè)%f換成了fahr的值,第二個(gè)%f換成了celsius的值,并且以單精度數(shù)據(jù)形式顯示。 printf()函數(shù)的作用就是輸出。6 printf()函數(shù)一般的調(diào)用格式為:
printf("格式控制字符串",輸出參數(shù)1,輸出參數(shù)2,…,輸出參數(shù)n);
“格式控制字符串”是用雙引號(hào)括起來(lái)的字符串,也稱作“轉(zhuǎn)換控制字符串”,包括兩種意思。
printf()函數(shù)一般的調(diào)用格式為:7普通字符
普通字符即需要原樣輸出字符。如:
printf("fahr=%f,celsius=%f\n",fahr,celsius); fahr=100.000000,celsius=37.777778
雙引號(hào)內(nèi),兩個(gè)%f變化除外,其余均無(wú)改變格式說(shuō)明格式說(shuō)明由“%”和格式字符組成,如%d、%f等,它的作用是將輸出的數(shù)據(jù)轉(zhuǎn)換成指定的格式輸出。普通字符格式說(shuō)明8格式說(shuō)明輸出%c%d%e%E%x%u%s%o%G%g%f%%%X一個(gè)字符根據(jù)數(shù)值的不同自動(dòng)選擇%f或%e。用于指數(shù)小于-4或者大于精度根據(jù)數(shù)值的不同自動(dòng)選擇%F或%E。用于指數(shù)小于-4或者大于精度無(wú)符號(hào)八進(jìn)制整數(shù)字符串無(wú)符號(hào)十進(jìn)制整數(shù)使用十六進(jìn)制數(shù)字of的無(wú)符號(hào)十六進(jìn)制整數(shù)使用十六進(jìn)制數(shù)字oF的無(wú)符號(hào)十六進(jìn)制整數(shù)輸出一個(gè)%有符號(hào)十進(jìn)制整數(shù)浮點(diǎn)數(shù)、以指數(shù)的形式輸出(1.2e+02)浮點(diǎn)數(shù)、以指數(shù)的形式輸出(1.2E+02)以小數(shù)點(diǎn)形式輸出浮點(diǎn)數(shù)、十進(jìn)制記數(shù)法格式說(shuō)明輸出%c%d%e%E%x%u%s%o%G%g%f%%9字符說(shuō)明l用于長(zhǎng)整型整數(shù),可加在格式符d、o、x、u前面m(正整數(shù))數(shù)據(jù)最小寬度n(正整數(shù))對(duì)于實(shí)數(shù),表示輸出n位小數(shù);對(duì)于字符串,表示截取的字符個(gè)數(shù)—輸出的數(shù)字或者字符在域內(nèi)向左靠1.對(duì)于%md和%ms,m為指定輸出數(shù)據(jù)的寬度,如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)空格,若大于m,則按實(shí)際位數(shù)輸出。例如: printf("%4d,%4d",a,b)
若a=12,b=12345,則輸出結(jié)果為:??12,12345注意:2.對(duì)于%-ms,如果字符串的長(zhǎng)度小于m,則輸出m列,不足的位數(shù)在右側(cè)補(bǔ)空格。例如: printf(“%-4d,%-4d”,a,b);
若a=12,b=12345;結(jié)果為:a=12??,b=12345。3.對(duì)于%m.s,輸出占m列,但只是取字符串中左端n個(gè)字符,這n個(gè)字符輸出在m列的右側(cè),左端補(bǔ)空格。%-m.s則在右側(cè)補(bǔ)空格,如果n>m,則m自動(dòng)取n值,即保證n個(gè)字符正常輸出。4.對(duì)于%m.nf,指定輸出的數(shù)據(jù)共占m列,其中n位小數(shù)。如果數(shù)值長(zhǎng)度小于m,則左端補(bǔ)空格。%-m.nf與%m.nf一樣,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。字符說(shuō)明l用于長(zhǎng)整型整數(shù),可加在格式符d、o、x、u前面m(103.1.2scanf()函數(shù)
依舊探討華氏溫度轉(zhuǎn)換成攝氏溫度,上一節(jié)中,華氏溫度為一定值,如果根據(jù)用戶來(lái)輸入相應(yīng)的數(shù)據(jù),求攝氏溫度,那該如何進(jìn)行相應(yīng)的輸入呢?3.1.2scanf()函數(shù) 11運(yùn)行結(jié)果:Pleaseinputfahr:140fahr=140.000000,celsius=60.000000scanf()函數(shù)作用,輸入數(shù)值例:運(yùn)行結(jié)果:Pleaseinputfahr:140f12
scanf函數(shù)的作用是輸入數(shù)據(jù),其基本格式為:scanf("格式控制",地址列表)
“格式控制”的含義和printf函數(shù)的格式控制。格式說(shuō)明也是以%開始,以一個(gè)格式字符結(jié)束,中間可以插入一些普通字符
,普通字符同樣按原樣輸出。
13格式說(shuō)明符意義%c輸入單個(gè)字符%d輸入有符號(hào)的十進(jìn)制整數(shù)%f輸入浮點(diǎn)數(shù),可以用小數(shù)或者整數(shù)形式輸入%o輸入無(wú)符號(hào)的八進(jìn)制數(shù)%s輸入字符串,將字符串存放到一個(gè)字符數(shù)組中,輸入時(shí)以非空白字符開始,以第一個(gè)空白字符結(jié)束,字符串以串結(jié)束標(biāo)志'\0'作為其最后一個(gè)字符。%u輸入無(wú)符號(hào)的十進(jìn)制整數(shù)%x,%X輸入無(wú)符號(hào)的十六進(jìn)制整數(shù)%e,%E,%g,%G與%f的作用相同,e,f,g可以互相替換而且大小寫的作用相同。scanf函數(shù)的格式說(shuō)明符字符意義l用于輸入長(zhǎng)整型數(shù)據(jù),可用于%ld、%lo、%lx、%lu以及double型數(shù)據(jù)%lf或%leh用于輸入短整型數(shù)據(jù),可用于%hd、%ho、%hx域?qū)捴付ㄝ斎霐?shù)據(jù)所占的列寬,應(yīng)為一個(gè)正整數(shù)*表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量格式說(shuō)明符意義%c輸入單個(gè)字符%d輸入有符號(hào)的十進(jìn)制整數(shù)%f14如:scanf(”%d”,&i);
輸入?1234,結(jié)果i的值為1234
輸入 1234,結(jié)果i的值為123
輸入 1234,結(jié)果i的值為1234
為了更清楚地了解scanf()函數(shù)的用法,須知以下幾點(diǎn):如:scanf(”%d,%d”,&a,&b)加上“&”,表示變量a和b的地址這個(gè),輸入時(shí),必須加上逗號(hào),才能保證正確如:scanf(”%4d”,&i);
輸入12345,結(jié)果i的值為1234
(因?yàn)橹付ㄓ驅(qū)挒?)
輸入123?45,結(jié)果i的值為123
(因?yàn)橛鲆?jiàn)空白字符)scanf格式控制中的普通字符必須按原樣輸入,地址列表中必須為地址,在變量前加上“取地址運(yùn)算符”讀取數(shù)據(jù)的時(shí)候是以指定域?qū)捇蛘叩谝粋€(gè)空白字符處為終止(最先達(dá)到者)若第一個(gè)或前幾個(gè)連續(xù)為空白字符、制表符和換行符,都將跳過(guò)這些字符注意%s格式說(shuō)明符的用法如:scanf(”%d”,&i); 為了更清楚地了解scan15要點(diǎn)深度解析:
結(jié)合要點(diǎn)1,了解地址的含義
結(jié)合要點(diǎn)2、3,分析多數(shù)據(jù)輸入情況
結(jié)合要點(diǎn)4,掌握%s的用法要點(diǎn)深度解析:163.2程序流程圖
流程圖是用一些圖框來(lái)表示各種操作。用流程圖來(lái)表示算法,直觀形象,易于理解。美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)ANSI規(guī)定了一些常用的流程圖符號(hào)。3.2程序流程圖 17菱形框,是對(duì)一個(gè)給定的條件進(jìn)行判斷,根據(jù)給定的條件是否成立來(lái)決定如何執(zhí)行其后的操作。它有一個(gè)入口,兩個(gè)出口連接點(diǎn),是用于將畫在不同地方的流程線連接起來(lái)。在流程圖中,編號(hào)相同的連接點(diǎn)表示這些點(diǎn)是互相連接在一起的注釋框,不是流程圖中的必要部分,不反應(yīng)流程和操作,只是為了對(duì)流程圖中某些框的操作作必要的補(bǔ)充說(shuō)明,以便于人們更好的理解流程圖菱形框,是對(duì)一個(gè)給定的條件進(jìn)行判斷,根據(jù)給定的條件是否成立來(lái)18
例:求一數(shù)值的絕對(duì)值。
數(shù)學(xué)分析:若此數(shù)值本身就不小于0,就是其本身,反之,為其相反數(shù)。
輸出X輸出-xX滿足條件不滿足條件流程圖表示: 輸出X輸出-xX滿足條件不滿足條件流程圖表示:19三種基本結(jié)構(gòu):1.順序結(jié)構(gòu),流程圖表示如下:
執(zhí)行完A框指定的操作后接著執(zhí)行B框所指定的操作。順序結(jié)構(gòu)是最簡(jiǎn)單的一種基本結(jié)構(gòu)。2.選擇結(jié)構(gòu),流程圖表示如下:
此結(jié)構(gòu)中必須包含一個(gè)判斷框,根據(jù)給定的條件p是否成立來(lái)選擇執(zhí)行A框還是B框中所指定的操作。無(wú)論p條件是否成立,只能執(zhí)行A框或者B框之一,兩者不可能同時(shí)執(zhí)行。A框或者B框有一個(gè)可以是空的,不執(zhí)行任何操作3.循環(huán)結(jié)構(gòu),流程圖表示如下:
當(dāng)(while)型循環(huán)結(jié)構(gòu)。其功能是:當(dāng)給定的條件p1成立時(shí),執(zhí)行A框操作,執(zhí)行完A后,再判斷條件p1是否成立,如果仍然成立,再執(zhí)行A框,如此反復(fù)執(zhí)行A框,直到某一次條件p1不成立為止,此時(shí)不執(zhí)行A框,從b點(diǎn)脫離循環(huán)結(jié)構(gòu)
直到(until)型循環(huán)結(jié)構(gòu)。其功能是:先執(zhí)行A框,然后判斷給定的條件p2是否成立,如果p2條件不成立,則再執(zhí)行A,然后再對(duì)p2條件作判斷,如果p2條件仍然不成立,又執(zhí)行A……如此反復(fù)執(zhí)行A,直到給定的條件p2成立為止,此時(shí)不再執(zhí)行A,從b點(diǎn)脫離循環(huán)結(jié)構(gòu)三種基本結(jié)構(gòu):1.順序結(jié)構(gòu),流程圖表示如下:執(zhí)203.3順序結(jié)構(gòu)程序設(shè)計(jì)算術(shù)運(yùn)算符算術(shù)表達(dá)式賦值表達(dá)式3.3順序結(jié)構(gòu)程序設(shè)計(jì)算術(shù)運(yùn)算符21例:求一元二次方程的兩根。運(yùn)行結(jié)果:從主函數(shù)入口開始執(zhí)行,定義變量,輸入數(shù)值,求解方程的解,這都是按照代碼的一步一步往下實(shí)現(xiàn)的。例:求一元二次方程的兩根。運(yùn)行結(jié)果:從主函數(shù)入223.3.1算術(shù)運(yùn)算符 5種基本運(yùn)算符:1).+(加法或者正直運(yùn)算符)2).?(減法或者負(fù)值運(yùn)算符)3).*(乘法運(yùn)算符)4)./(除法運(yùn)算符)5).%(求余運(yùn)算符)3.3.1算術(shù)運(yùn)算符 5種基本運(yùn)算符:1).+(加法或者23注意:加法和減法運(yùn)算符同于數(shù)學(xué)上乘法在c語(yǔ)言中用“*”,而不用“×”除法在c語(yǔ)言中是“/”,而不用“÷”使用“/”時(shí),若除數(shù)和被除數(shù)都為整數(shù),則商也是整數(shù),若參與運(yùn)算的有負(fù)數(shù),注意:243.3.2算術(shù)表達(dá)式
算術(shù)表達(dá)式即用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來(lái),符合C語(yǔ)法規(guī)則的式子
算術(shù)運(yùn)算時(shí)是按照優(yōu)先級(jí)進(jìn)行的,若優(yōu)先級(jí)相同,則按照結(jié)合方向進(jìn)行計(jì)算,并且每一個(gè)表達(dá)式都會(huì)有一個(gè)確定的值。3.3.2算術(shù)表達(dá)式253.3.3賦值表達(dá)式
由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子稱為賦值表達(dá)式。
其一般形式為:
<變量><賦值運(yùn)算符><表達(dá)式>
計(jì)算過(guò)程是:先計(jì)算賦值運(yùn)算符右側(cè)的“表達(dá)式”的值,然后將這個(gè)值賦值給左邊的變量。多個(gè)賦值表達(dá)式共存則按結(jié)合性“自右而左”進(jìn)行一步一步分別賦值。3.3.3賦值表達(dá)式 由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連26常用的復(fù)合賦值運(yùn)算符a+=y等價(jià)于a=a+yb-=y等價(jià)于b=b-yc*=y等價(jià)于c=c*yd/=y等價(jià)于d=d/ye%=y等價(jià)于e=e%yy可以是常量、變量以及復(fù)雜的表達(dá)式
賦值運(yùn)算符“=”之前加上其他運(yùn)算符,就構(gòu)成復(fù)合賦值運(yùn)算符。常用的復(fù)合賦值運(yùn)算符a+=y等價(jià)于a=a+yb-=y等價(jià)于b27
編寫程序:從鍵盤上輸入三角形的三邊,根據(jù)下面的公式求出三角形的面積area。假設(shè)輸入a、b和c三邊的邊長(zhǎng)能夠組成一個(gè)三角形。程序?yàn)椋壕帉懗绦颍簭逆I盤上輸入三角形的三邊,根據(jù)下面283.4選擇結(jié)構(gòu)程序設(shè)計(jì)關(guān)系運(yùn)算符和關(guān)系表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式if語(yǔ)句與switch3.4選擇結(jié)構(gòu)程序設(shè)計(jì)關(guān)系運(yùn)算符和關(guān)系表達(dá)式29例:一元二次方程根的情況。運(yùn)行結(jié)果:此程序就體現(xiàn)了,根據(jù)不同的情況,有不同的結(jié)果,就達(dá)到了一種選擇的目的。例:一元二次方程根的情況。運(yùn)行結(jié)果:此程序就體303.4.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符運(yùn)算符含義<小于<=小于和等于>大于>=大于或等于==等于!=不等于算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>賦值運(yùn)算符算術(shù)運(yùn)算符:+-*/%關(guān)系運(yùn)算符:><>=<=賦值運(yùn)算符:==!=3.4.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符運(yùn)算符含義<小于<31
關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將兩數(shù)連接起來(lái),進(jìn)行關(guān)系運(yùn)算。
表達(dá)式結(jié)果為邏輯值,即“真”或“假”
若表達(dá)式成立:值為“1”
表達(dá)式不成立:值為“0”。
例:a=2011,b=2010; a==b;
因?yàn)閍,b值不想等,所以表達(dá)式值為0。 關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將兩數(shù)連接起來(lái),進(jìn)行關(guān)系運(yùn)算。323.4.2邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符運(yùn)算符舉例運(yùn)算規(guī)則&&(邏輯與)a&&b若a、b同時(shí)為真,a&&b為真,除此之外都為假|(zhì)|(邏輯或)a||b若a、b之一為真,則a||b為真!(邏輯非)!a若a為真。則!a為假,反之,若a為假,則!a為真優(yōu)先級(jí):
!>算術(shù)運(yùn)算負(fù)>關(guān)系運(yùn)算符>邏輯運(yùn)算符 &&與||為雙目運(yùn)算符,需要兩個(gè)運(yùn)算量!為單目運(yùn)算符,只需要一個(gè)3.4.2邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符運(yùn)算符舉例運(yùn)算規(guī)則33
邏輯表達(dá)式:由邏輯運(yùn)算符連接兩個(gè)數(shù),進(jìn)行邏輯運(yùn)算的式子。
表達(dá)式結(jié)果:“真”“假”
邏輯量:參與邏輯運(yùn)算的量
邏輯值:邏輯量、邏輯表達(dá)式的運(yùn)算結(jié)果
任何非“0”的邏輯量的邏輯值都為真 邏輯表達(dá)式:由邏輯運(yùn)算符連接兩個(gè)數(shù),進(jìn)行邏輯運(yùn)算的34
寫出下面各邏輯表達(dá)式的值。設(shè)a=3,b=4,c=5;1.a+b>c&&b==c2.a||b+c&&b-c3.!(a>b)&&!c||14.!(x=a)&&(y=b)&&05.!(a+b)+c-1&&b+c/21. 02. 13. 14. 05. 1 寫出下面各邏輯表達(dá)式的值。1. 0353.4.3if語(yǔ)句與switch語(yǔ)句 if,英語(yǔ)中其義有“如果”的意思。那么就來(lái)研究C語(yǔ)言中的“如果”。1.if語(yǔ)句
格式:if(表達(dá)式) {
語(yǔ)句組;
}
流程圖:
如果表達(dá)式的值為真,就語(yǔ)句組中的語(yǔ)句;如果不為真,就執(zhí)行語(yǔ)句組后的語(yǔ)句表達(dá)式語(yǔ)句組真假3.4.3if語(yǔ)句與switch語(yǔ)句 if,英語(yǔ)中其362.在if語(yǔ)句中添加else子句
格式:if(表達(dá)式) {
語(yǔ)句組1;
}
else
{
語(yǔ)句組2;
}
如果表達(dá)式的值為真,就執(zhí)行語(yǔ)句組1;如果不為真,就執(zhí)行語(yǔ)句組2。流程圖:
表達(dá)式語(yǔ)句組1語(yǔ)句組2真假2.在if語(yǔ)句中添加else子句流程圖:表達(dá)式語(yǔ)句組1語(yǔ)句373.多重選擇elseif格式:if(表達(dá)式1)
語(yǔ)句組1;
elseif(表達(dá)式2)
語(yǔ)句組2;
elseif(表達(dá)式3)
語(yǔ)句組3; ···
else
語(yǔ)句組n;表達(dá)式1語(yǔ)句組1真假表達(dá)式2表達(dá)式3語(yǔ)句組n語(yǔ)句組3語(yǔ)句組2假假真真流程圖:
當(dāng)表達(dá)式1為真的時(shí)候則執(zhí)行語(yǔ)句組1,否則的話,將判斷表達(dá)式2的真假,表達(dá)式2為真,則執(zhí)行語(yǔ)句組2···依次這樣判斷。3.多重選擇elseif表達(dá)式1語(yǔ)句組1真假表達(dá)式2表達(dá)式384.if語(yǔ)句的嵌套
在if語(yǔ)句的語(yǔ)句組中又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套
如:if(表達(dá)式1)
{ if(表達(dá)式2)
{語(yǔ)句組;}
} if的多重嵌套時(shí),得注意if和else的搭配,寫法要得當(dāng)!
4.if語(yǔ)句的嵌套39if語(yǔ)句實(shí)現(xiàn)多分支時(shí),需要嵌套的if語(yǔ)句層數(shù)較多,程序冗長(zhǎng),可讀性低。因此可用switch語(yǔ)句來(lái)處理多分支情況。
switch(表達(dá)式) {
case常量表達(dá)式1:語(yǔ)句組1;
case
常量表達(dá)式2:語(yǔ)句組2;
…
case
常量表達(dá)式n:語(yǔ)句組n;
default:
語(yǔ)句組n+1; }if語(yǔ)句實(shí)現(xiàn)多分支時(shí),需要嵌套的if語(yǔ)句層數(shù)40switch說(shuō)明:switch括號(hào)內(nèi)的表達(dá)式任意,值和哪個(gè)case后的常量表達(dá)式匹配,就執(zhí)行后面的語(yǔ)句,沒(méi)有匹配的,就執(zhí)行default后面的,default可省略。每個(gè)case后常量表達(dá)式的值必須不一樣,case和default的順序不影響結(jié)果。執(zhí)行完一個(gè)case后,程序流程轉(zhuǎn)移到下一個(gè)case,直到運(yùn)行完全或遇見(jiàn)break語(yǔ)句,并非直接跳出。多個(gè)case可以共用一個(gè)執(zhí)行語(yǔ)句。switch說(shuō)明:switch括號(hào)內(nèi)的表達(dá)式任意,值和哪個(gè)c41例:輸入兩個(gè)實(shí)數(shù),按照代數(shù)值由小到大的順序輸出這兩個(gè)數(shù)。滿足if條件就交換a,b的值例:輸入兩個(gè)實(shí)數(shù),按照代數(shù)值由小到大的順序輸出這兩個(gè)數(shù)。滿足42例:輸入三個(gè)實(shí)數(shù),編程找出其中最大的一個(gè)并輸出探究唯一的三目運(yùn)算符例:輸入三個(gè)實(shí)數(shù),編程找出其中最大的一個(gè)并輸出探究唯一的三目43三目運(yùn)算符
一般形式:
表達(dá)式1?表達(dá)式2:表達(dá)式3
其執(zhí)行順序?yàn)椋合惹蠼獗磉_(dá)式1,若為真(非0),則求解表達(dá)式2,并把表達(dá)式2的值作為整個(gè)條件表達(dá)式的值。若表達(dá)式1為假(0),則求解表達(dá)式3,并把表達(dá)式3的值作為整個(gè)條件表達(dá)式的值。注意點(diǎn):條件運(yùn)算符的優(yōu)先級(jí)別高于賦值運(yùn)算符,但是比關(guān)系運(yùn)算符和算術(shù)運(yùn)算符要低。條件運(yùn)算符的結(jié)合方向?yàn)椤白杂蚁蜃蟆睏l件表達(dá)式中的表達(dá)式2和表達(dá)式3可以是任意的表達(dá)式。表達(dá)式1與表達(dá)式2和表達(dá)式3的類型也可以不同。三目運(yùn)算符 一般形式:注意點(diǎn):條件運(yùn)算符的優(yōu)先級(jí)別高于賦值44編寫程序:編寫一程序,從鍵盤上輸入x的值,根據(jù)上面的函數(shù),求出y的值。語(yǔ)句組中只有一句,花括號(hào)可以省略。編寫程序:編寫一程序,從鍵盤上輸入x的值語(yǔ)句組453.5循環(huán)結(jié)構(gòu)程序設(shè)計(jì)while循環(huán)與自增自減運(yùn)算符do···while語(yǔ)句for語(yǔ)句逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式3.5循環(huán)結(jié)構(gòu)程序設(shè)計(jì)while循環(huán)與自增自減運(yùn)算符463.5.1while循環(huán)與自增自減 while語(yǔ)句用來(lái)實(shí)現(xiàn)“當(dāng)型”循環(huán)結(jié)構(gòu)。
其一般形式:
while(表達(dá)式) {
語(yǔ)句組; }
在語(yǔ)句組中必須包含能改變表達(dá)式的值來(lái)使表達(dá)式的值最終變?yōu)榧?,否則循環(huán)永遠(yuǎn)不會(huì)中止3.5.1while循環(huán)與自增自減 while語(yǔ)句用來(lái)實(shí)47
例:使用while循環(huán)來(lái)求“1+2+3+…+100”的值運(yùn)行結(jié)果:循環(huán)條件i為循環(huán)變量循環(huán)變量增值循環(huán)體 例:使用while循環(huán)來(lái)求“1+2+3+…+100”的值運(yùn)48i=1i≤100sum+=ii++真假流程圖如下:循環(huán)變量初始化i=1判斷表達(dá)式i≤100是否成立成立就執(zhí)行循環(huán)體不成立就執(zhí)行循環(huán)體后面的語(yǔ)句(循環(huán)體未執(zhí)行)執(zhí)行循環(huán)體后,就再?gòu)牡谝徊酵逻M(jìn)行判斷,直至為假就退出循環(huán)循環(huán)體i++使i每次增1sum+=i進(jìn)行累加i=1i≤100sum+=i真假流程圖如下:循環(huán)變量初始化i49
自增運(yùn)算符“++”,其作用使變量的值增1.與其相對(duì)的還有自減運(yùn)算符“--”,其作用使變量的值減1。
自增自減運(yùn)算符為單目運(yùn)算符,所以僅需1個(gè)變量。注意,自增自減只能用于變量,不能用于常量或表達(dá)式
50自增、自減運(yùn)算符的使用有兩種方式:
前綴模式:++變量,--變量。(在使用變量之前,先使變量的值加(減)1)
后綴模式:變量++,變量--。(在使用變量之后,使變量的值加(減)1)
在用自增、自減運(yùn)算符時(shí),易使表達(dá)式產(chǎn)生不正確的地方,盡量不用自增、自減運(yùn)算符的使用有兩種方式:513.5.2do···while語(yǔ)句
do···while循環(huán)先執(zhí)行循環(huán)體語(yǔ)句,然后再判斷while后面的條件是否成立。當(dāng)表達(dá)式為真,則返回重新執(zhí)行循環(huán)體語(yǔ)句,如此反復(fù),直到while后面的表達(dá)式為假才結(jié)束循環(huán)
一般形式為:
do {
循環(huán)體語(yǔ)句組;
}while(表達(dá)式);此處分號(hào)一定不能少3.5.2do···while語(yǔ)句 一般形式為:此處52用while和do···while分別求1到100的累加和while循環(huán)do···while循環(huán)對(duì)比:while循環(huán)先判斷條件,成立則執(zhí)行循環(huán)體,不成立執(zhí)行其后語(yǔ)句;而do···while循環(huán)先執(zhí)行一次循環(huán)體后判斷條件,成立則再執(zhí)行循環(huán)體,不成立,退出循環(huán)。所以do···while至少執(zhí)行一次循環(huán)體用while和do···while分別求1到100的累加和w533.5.3for語(yǔ)句 C語(yǔ)言中的for語(yǔ)句是使用最為靈活的語(yǔ)句,其一般形式如下:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
{
循環(huán)體語(yǔ)句組;
}
當(dāng)循環(huán)體語(yǔ)句組只有一句時(shí),花括號(hào)可以省略。3.5.3for語(yǔ)句 C語(yǔ)言中的for語(yǔ)句是使用最為靈54for循環(huán)的執(zhí)行過(guò)程:求解表達(dá)式1;求解表達(dá)式2,如果為真,則執(zhí)行循環(huán)體語(yǔ)句組,執(zhí)行結(jié)束后轉(zhuǎn)步驟③;如果表達(dá)式的結(jié)果為假,則結(jié)束循環(huán),轉(zhuǎn)步驟⑤;求解表達(dá)式3;轉(zhuǎn)步驟②;循環(huán)結(jié)束,執(zhí)行循環(huán)語(yǔ)句之后的其他語(yǔ)句。for語(yǔ)句的3個(gè)表達(dá)式均可省略,但是里面的分號(hào)“;”不能省略。需要注意的是,省略相應(yīng)的表達(dá)式,就需要在其他地方彌補(bǔ)相應(yīng)表達(dá)式的功能,以保證程序的正常運(yùn)行for循環(huán)的執(zhí)行過(guò)程:求解表達(dá)式1;for語(yǔ)句55例:用for循環(huán)求1到100的累加和。
相比while和do···while,使用for循環(huán),很簡(jiǎn)潔,前提必須弄懂for循環(huán)究竟是如何工作的。例:用for循環(huán)求1到100的累加和。相比w56continue和break 都有表示結(jié)束循環(huán)的意思,但continue是結(jié)束本次循環(huán),break為結(jié)束整個(gè)循環(huán)。ABA中,結(jié)果為sum=5050;B中,結(jié)果為sum=1;因?yàn)锳執(zhí)行了100次,而B僅執(zhí)行了1次。continue和break 都有表示結(jié)束循環(huán)的意思,但c573循環(huán)的比較:while語(yǔ)句、do…while語(yǔ)句和for語(yǔ)句都可以用來(lái)處理同一問(wèn)題,它們之間可以互換while和do···while循環(huán)體中,應(yīng)該包含使循環(huán)變量改變的語(yǔ)句,避免死循環(huán)。for相比相比之下,顯得更靈活、強(qiáng)的。for循環(huán)的變量初始化在表達(dá)式1中,另外二者都在循環(huán)之前。3循環(huán)的比較:while語(yǔ)句、do…while語(yǔ)句和for語(yǔ)583.5.4逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 逗號(hào)表達(dá)式即用逗號(hào)運(yùn)算符將兩個(gè)或兩個(gè)以上的表達(dá)式連接起來(lái)。 一般形式如下:
表達(dá)式1,表達(dá)式2,…,表達(dá)式n
求解過(guò)程為:按照先后順序,依次求解表達(dá)式1,表達(dá)式2,……,最后求解表達(dá)式n。并將最后求解的表達(dá)式n的值作為整個(gè)逗號(hào)表達(dá)式的值。
如:a=3*5,a*2應(yīng)理解成“(a=3*5),(a*2)”而不是“a=(3*5,a*2)”,在逗號(hào)表達(dá)式的子表達(dá)式可以是任意的表達(dá)式,包括逗號(hào)表達(dá)式。如:(a=3*5,a*2),a-4。3.5.4逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 逗號(hào)表達(dá)式即用逗號(hào)運(yùn)算59演講完畢,謝謝觀看!演講完畢,謝謝觀看!60第3章C語(yǔ)言流程控制第3章C語(yǔ)言流程控制61本章重點(diǎn)格式化輸入輸出函數(shù)C語(yǔ)言中的順序、分支和循環(huán)程序的設(shè)計(jì)方法本章重點(diǎn)格式化輸入輸出函數(shù)623.1格式化輸入輸出函數(shù)printf()函數(shù)scanf()函數(shù)3.1格式化輸入輸出函數(shù)printf()函數(shù)633.11printf()函數(shù) C標(biāo)準(zhǔn)庫(kù)函數(shù)中提供了一些輸入輸出函數(shù),如前面遇到的printf()函數(shù)和scanf()函數(shù),它們非C關(guān)鍵詞,而是函數(shù)名而已,可以自己編寫輸入輸出函數(shù)。printf()函數(shù)和scanf()函數(shù)在系統(tǒng)文件“stdio.h”中聲明,所以在程序的開始部分要使用編譯預(yù)處理命令“#include<stdio.h>”。3.11printf()函數(shù) C標(biāo)準(zhǔn)庫(kù)函數(shù)中提64
在日常生活中,我們要經(jīng)常將華氏溫度轉(zhuǎn)換成攝氏溫度,其轉(zhuǎn)換公式如下:式中:
c表示攝氏溫度,
f表示華氏溫度。運(yùn)行結(jié)果:如: 在日常生活中,我們要經(jīng)常將華氏溫度轉(zhuǎn)換成攝氏溫度,其轉(zhuǎn)換公65 printf()函數(shù)的作用就是輸出。
對(duì)比:
函數(shù)語(yǔ)句:
printf("fahr=%f,celsius=%f\n",fahr,celsius);
輸出結(jié)果:
fahr=100.000000,celsius=37.777778
得出:雙引號(hào)里,第一個(gè)%f換成了fahr的值,第二個(gè)%f換成了celsius的值,并且以單精度數(shù)據(jù)形式顯示。 printf()函數(shù)的作用就是輸出。66 printf()函數(shù)一般的調(diào)用格式為:
printf("格式控制字符串",輸出參數(shù)1,輸出參數(shù)2,…,輸出參數(shù)n);
“格式控制字符串”是用雙引號(hào)括起來(lái)的字符串,也稱作“轉(zhuǎn)換控制字符串”,包括兩種意思。
printf()函數(shù)一般的調(diào)用格式為:67普通字符
普通字符即需要原樣輸出字符。如:
printf("fahr=%f,celsius=%f\n",fahr,celsius); fahr=100.000000,celsius=37.777778
雙引號(hào)內(nèi),兩個(gè)%f變化除外,其余均無(wú)改變格式說(shuō)明格式說(shuō)明由“%”和格式字符組成,如%d、%f等,它的作用是將輸出的數(shù)據(jù)轉(zhuǎn)換成指定的格式輸出。普通字符格式說(shuō)明68格式說(shuō)明輸出%c%d%e%E%x%u%s%o%G%g%f%%%X一個(gè)字符根據(jù)數(shù)值的不同自動(dòng)選擇%f或%e。用于指數(shù)小于-4或者大于精度根據(jù)數(shù)值的不同自動(dòng)選擇%F或%E。用于指數(shù)小于-4或者大于精度無(wú)符號(hào)八進(jìn)制整數(shù)字符串無(wú)符號(hào)十進(jìn)制整數(shù)使用十六進(jìn)制數(shù)字of的無(wú)符號(hào)十六進(jìn)制整數(shù)使用十六進(jìn)制數(shù)字oF的無(wú)符號(hào)十六進(jìn)制整數(shù)輸出一個(gè)%有符號(hào)十進(jìn)制整數(shù)浮點(diǎn)數(shù)、以指數(shù)的形式輸出(1.2e+02)浮點(diǎn)數(shù)、以指數(shù)的形式輸出(1.2E+02)以小數(shù)點(diǎn)形式輸出浮點(diǎn)數(shù)、十進(jìn)制記數(shù)法格式說(shuō)明輸出%c%d%e%E%x%u%s%o%G%g%f%%69字符說(shuō)明l用于長(zhǎng)整型整數(shù),可加在格式符d、o、x、u前面m(正整數(shù))數(shù)據(jù)最小寬度n(正整數(shù))對(duì)于實(shí)數(shù),表示輸出n位小數(shù);對(duì)于字符串,表示截取的字符個(gè)數(shù)—輸出的數(shù)字或者字符在域內(nèi)向左靠1.對(duì)于%md和%ms,m為指定輸出數(shù)據(jù)的寬度,如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)空格,若大于m,則按實(shí)際位數(shù)輸出。例如: printf("%4d,%4d",a,b)
若a=12,b=12345,則輸出結(jié)果為:??12,12345注意:2.對(duì)于%-ms,如果字符串的長(zhǎng)度小于m,則輸出m列,不足的位數(shù)在右側(cè)補(bǔ)空格。例如: printf(“%-4d,%-4d”,a,b);
若a=12,b=12345;結(jié)果為:a=12??,b=12345。3.對(duì)于%m.s,輸出占m列,但只是取字符串中左端n個(gè)字符,這n個(gè)字符輸出在m列的右側(cè),左端補(bǔ)空格。%-m.s則在右側(cè)補(bǔ)空格,如果n>m,則m自動(dòng)取n值,即保證n個(gè)字符正常輸出。4.對(duì)于%m.nf,指定輸出的數(shù)據(jù)共占m列,其中n位小數(shù)。如果數(shù)值長(zhǎng)度小于m,則左端補(bǔ)空格。%-m.nf與%m.nf一樣,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。字符說(shuō)明l用于長(zhǎng)整型整數(shù),可加在格式符d、o、x、u前面m(703.1.2scanf()函數(shù)
依舊探討華氏溫度轉(zhuǎn)換成攝氏溫度,上一節(jié)中,華氏溫度為一定值,如果根據(jù)用戶來(lái)輸入相應(yīng)的數(shù)據(jù),求攝氏溫度,那該如何進(jìn)行相應(yīng)的輸入呢?3.1.2scanf()函數(shù) 71運(yùn)行結(jié)果:Pleaseinputfahr:140fahr=140.000000,celsius=60.000000scanf()函數(shù)作用,輸入數(shù)值例:運(yùn)行結(jié)果:Pleaseinputfahr:140f72
scanf函數(shù)的作用是輸入數(shù)據(jù),其基本格式為:scanf("格式控制",地址列表)
“格式控制”的含義和printf函數(shù)的格式控制。格式說(shuō)明也是以%開始,以一個(gè)格式字符結(jié)束,中間可以插入一些普通字符
,普通字符同樣按原樣輸出。
73格式說(shuō)明符意義%c輸入單個(gè)字符%d輸入有符號(hào)的十進(jìn)制整數(shù)%f輸入浮點(diǎn)數(shù),可以用小數(shù)或者整數(shù)形式輸入%o輸入無(wú)符號(hào)的八進(jìn)制數(shù)%s輸入字符串,將字符串存放到一個(gè)字符數(shù)組中,輸入時(shí)以非空白字符開始,以第一個(gè)空白字符結(jié)束,字符串以串結(jié)束標(biāo)志'\0'作為其最后一個(gè)字符。%u輸入無(wú)符號(hào)的十進(jìn)制整數(shù)%x,%X輸入無(wú)符號(hào)的十六進(jìn)制整數(shù)%e,%E,%g,%G與%f的作用相同,e,f,g可以互相替換而且大小寫的作用相同。scanf函數(shù)的格式說(shuō)明符字符意義l用于輸入長(zhǎng)整型數(shù)據(jù),可用于%ld、%lo、%lx、%lu以及double型數(shù)據(jù)%lf或%leh用于輸入短整型數(shù)據(jù),可用于%hd、%ho、%hx域?qū)捴付ㄝ斎霐?shù)據(jù)所占的列寬,應(yīng)為一個(gè)正整數(shù)*表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量格式說(shuō)明符意義%c輸入單個(gè)字符%d輸入有符號(hào)的十進(jìn)制整數(shù)%f74如:scanf(”%d”,&i);
輸入?1234,結(jié)果i的值為1234
輸入 1234,結(jié)果i的值為123
輸入 1234,結(jié)果i的值為1234
為了更清楚地了解scanf()函數(shù)的用法,須知以下幾點(diǎn):如:scanf(”%d,%d”,&a,&b)加上“&”,表示變量a和b的地址這個(gè),輸入時(shí),必須加上逗號(hào),才能保證正確如:scanf(”%4d”,&i);
輸入12345,結(jié)果i的值為1234
(因?yàn)橹付ㄓ驅(qū)挒?)
輸入123?45,結(jié)果i的值為123
(因?yàn)橛鲆?jiàn)空白字符)scanf格式控制中的普通字符必須按原樣輸入,地址列表中必須為地址,在變量前加上“取地址運(yùn)算符”讀取數(shù)據(jù)的時(shí)候是以指定域?qū)捇蛘叩谝粋€(gè)空白字符處為終止(最先達(dá)到者)若第一個(gè)或前幾個(gè)連續(xù)為空白字符、制表符和換行符,都將跳過(guò)這些字符注意%s格式說(shuō)明符的用法如:scanf(”%d”,&i); 為了更清楚地了解scan75要點(diǎn)深度解析:
結(jié)合要點(diǎn)1,了解地址的含義
結(jié)合要點(diǎn)2、3,分析多數(shù)據(jù)輸入情況
結(jié)合要點(diǎn)4,掌握%s的用法要點(diǎn)深度解析:763.2程序流程圖
流程圖是用一些圖框來(lái)表示各種操作。用流程圖來(lái)表示算法,直觀形象,易于理解。美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)ANSI規(guī)定了一些常用的流程圖符號(hào)。3.2程序流程圖 77菱形框,是對(duì)一個(gè)給定的條件進(jìn)行判斷,根據(jù)給定的條件是否成立來(lái)決定如何執(zhí)行其后的操作。它有一個(gè)入口,兩個(gè)出口連接點(diǎn),是用于將畫在不同地方的流程線連接起來(lái)。在流程圖中,編號(hào)相同的連接點(diǎn)表示這些點(diǎn)是互相連接在一起的注釋框,不是流程圖中的必要部分,不反應(yīng)流程和操作,只是為了對(duì)流程圖中某些框的操作作必要的補(bǔ)充說(shuō)明,以便于人們更好的理解流程圖菱形框,是對(duì)一個(gè)給定的條件進(jìn)行判斷,根據(jù)給定的條件是否成立來(lái)78
例:求一數(shù)值的絕對(duì)值。
數(shù)學(xué)分析:若此數(shù)值本身就不小于0,就是其本身,反之,為其相反數(shù)。
輸出X輸出-xX滿足條件不滿足條件流程圖表示: 輸出X輸出-xX滿足條件不滿足條件流程圖表示:79三種基本結(jié)構(gòu):1.順序結(jié)構(gòu),流程圖表示如下:
執(zhí)行完A框指定的操作后接著執(zhí)行B框所指定的操作。順序結(jié)構(gòu)是最簡(jiǎn)單的一種基本結(jié)構(gòu)。2.選擇結(jié)構(gòu),流程圖表示如下:
此結(jié)構(gòu)中必須包含一個(gè)判斷框,根據(jù)給定的條件p是否成立來(lái)選擇執(zhí)行A框還是B框中所指定的操作。無(wú)論p條件是否成立,只能執(zhí)行A框或者B框之一,兩者不可能同時(shí)執(zhí)行。A框或者B框有一個(gè)可以是空的,不執(zhí)行任何操作3.循環(huán)結(jié)構(gòu),流程圖表示如下:
當(dāng)(while)型循環(huán)結(jié)構(gòu)。其功能是:當(dāng)給定的條件p1成立時(shí),執(zhí)行A框操作,執(zhí)行完A后,再判斷條件p1是否成立,如果仍然成立,再執(zhí)行A框,如此反復(fù)執(zhí)行A框,直到某一次條件p1不成立為止,此時(shí)不執(zhí)行A框,從b點(diǎn)脫離循環(huán)結(jié)構(gòu)
直到(until)型循環(huán)結(jié)構(gòu)。其功能是:先執(zhí)行A框,然后判斷給定的條件p2是否成立,如果p2條件不成立,則再執(zhí)行A,然后再對(duì)p2條件作判斷,如果p2條件仍然不成立,又執(zhí)行A……如此反復(fù)執(zhí)行A,直到給定的條件p2成立為止,此時(shí)不再執(zhí)行A,從b點(diǎn)脫離循環(huán)結(jié)構(gòu)三種基本結(jié)構(gòu):1.順序結(jié)構(gòu),流程圖表示如下:執(zhí)803.3順序結(jié)構(gòu)程序設(shè)計(jì)算術(shù)運(yùn)算符算術(shù)表達(dá)式賦值表達(dá)式3.3順序結(jié)構(gòu)程序設(shè)計(jì)算術(shù)運(yùn)算符81例:求一元二次方程的兩根。運(yùn)行結(jié)果:從主函數(shù)入口開始執(zhí)行,定義變量,輸入數(shù)值,求解方程的解,這都是按照代碼的一步一步往下實(shí)現(xiàn)的。例:求一元二次方程的兩根。運(yùn)行結(jié)果:從主函數(shù)入823.3.1算術(shù)運(yùn)算符 5種基本運(yùn)算符:1).+(加法或者正直運(yùn)算符)2).?(減法或者負(fù)值運(yùn)算符)3).*(乘法運(yùn)算符)4)./(除法運(yùn)算符)5).%(求余運(yùn)算符)3.3.1算術(shù)運(yùn)算符 5種基本運(yùn)算符:1).+(加法或者83注意:加法和減法運(yùn)算符同于數(shù)學(xué)上乘法在c語(yǔ)言中用“*”,而不用“×”除法在c語(yǔ)言中是“/”,而不用“÷”使用“/”時(shí),若除數(shù)和被除數(shù)都為整數(shù),則商也是整數(shù),若參與運(yùn)算的有負(fù)數(shù),注意:843.3.2算術(shù)表達(dá)式
算術(shù)表達(dá)式即用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來(lái),符合C語(yǔ)法規(guī)則的式子
算術(shù)運(yùn)算時(shí)是按照優(yōu)先級(jí)進(jìn)行的,若優(yōu)先級(jí)相同,則按照結(jié)合方向進(jìn)行計(jì)算,并且每一個(gè)表達(dá)式都會(huì)有一個(gè)確定的值。3.3.2算術(shù)表達(dá)式853.3.3賦值表達(dá)式
由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子稱為賦值表達(dá)式。
其一般形式為:
<變量><賦值運(yùn)算符><表達(dá)式>
計(jì)算過(guò)程是:先計(jì)算賦值運(yùn)算符右側(cè)的“表達(dá)式”的值,然后將這個(gè)值賦值給左邊的變量。多個(gè)賦值表達(dá)式共存則按結(jié)合性“自右而左”進(jìn)行一步一步分別賦值。3.3.3賦值表達(dá)式 由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連86常用的復(fù)合賦值運(yùn)算符a+=y等價(jià)于a=a+yb-=y等價(jià)于b=b-yc*=y等價(jià)于c=c*yd/=y等價(jià)于d=d/ye%=y等價(jià)于e=e%yy可以是常量、變量以及復(fù)雜的表達(dá)式
賦值運(yùn)算符“=”之前加上其他運(yùn)算符,就構(gòu)成復(fù)合賦值運(yùn)算符。常用的復(fù)合賦值運(yùn)算符a+=y等價(jià)于a=a+yb-=y等價(jià)于b87
編寫程序:從鍵盤上輸入三角形的三邊,根據(jù)下面的公式求出三角形的面積area。假設(shè)輸入a、b和c三邊的邊長(zhǎng)能夠組成一個(gè)三角形。程序?yàn)椋壕帉懗绦颍簭逆I盤上輸入三角形的三邊,根據(jù)下面883.4選擇結(jié)構(gòu)程序設(shè)計(jì)關(guān)系運(yùn)算符和關(guān)系表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式if語(yǔ)句與switch3.4選擇結(jié)構(gòu)程序設(shè)計(jì)關(guān)系運(yùn)算符和關(guān)系表達(dá)式89例:一元二次方程根的情況。運(yùn)行結(jié)果:此程序就體現(xiàn)了,根據(jù)不同的情況,有不同的結(jié)果,就達(dá)到了一種選擇的目的。例:一元二次方程根的情況。運(yùn)行結(jié)果:此程序就體903.4.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符運(yùn)算符含義<小于<=小于和等于>大于>=大于或等于==等于!=不等于算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>賦值運(yùn)算符算術(shù)運(yùn)算符:+-*/%關(guān)系運(yùn)算符:><>=<=賦值運(yùn)算符:==!=3.4.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符運(yùn)算符含義<小于<91
關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將兩數(shù)連接起來(lái),進(jìn)行關(guān)系運(yùn)算。
表達(dá)式結(jié)果為邏輯值,即“真”或“假”
若表達(dá)式成立:值為“1”
表達(dá)式不成立:值為“0”。
例:a=2011,b=2010; a==b;
因?yàn)閍,b值不想等,所以表達(dá)式值為0。 關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將兩數(shù)連接起來(lái),進(jìn)行關(guān)系運(yùn)算。923.4.2邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符運(yùn)算符舉例運(yùn)算規(guī)則&&(邏輯與)a&&b若a、b同時(shí)為真,a&&b為真,除此之外都為假|(zhì)|(邏輯或)a||b若a、b之一為真,則a||b為真!(邏輯非)!a若a為真。則!a為假,反之,若a為假,則!a為真優(yōu)先級(jí):
!>算術(shù)運(yùn)算負(fù)>關(guān)系運(yùn)算符>邏輯運(yùn)算符 &&與||為雙目運(yùn)算符,需要兩個(gè)運(yùn)算量!為單目運(yùn)算符,只需要一個(gè)3.4.2邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符運(yùn)算符舉例運(yùn)算規(guī)則93
邏輯表達(dá)式:由邏輯運(yùn)算符連接兩個(gè)數(shù),進(jìn)行邏輯運(yùn)算的式子。
表達(dá)式結(jié)果:“真”“假”
邏輯量:參與邏輯運(yùn)算的量
邏輯值:邏輯量、邏輯表達(dá)式的運(yùn)算結(jié)果
任何非“0”的邏輯量的邏輯值都為真 邏輯表達(dá)式:由邏輯運(yùn)算符連接兩個(gè)數(shù),進(jìn)行邏輯運(yùn)算的94
寫出下面各邏輯表達(dá)式的值。設(shè)a=3,b=4,c=5;1.a+b>c&&b==c2.a||b+c&&b-c3.!(a>b)&&!c||14.!(x=a)&&(y=b)&&05.!(a+b)+c-1&&b+c/21. 02. 13. 14. 05. 1 寫出下面各邏輯表達(dá)式的值。1. 0953.4.3if語(yǔ)句與switch語(yǔ)句 if,英語(yǔ)中其義有“如果”的意思。那么就來(lái)研究C語(yǔ)言中的“如果”。1.if語(yǔ)句
格式:if(表達(dá)式) {
語(yǔ)句組;
}
流程圖:
如果表達(dá)式的值為真,就語(yǔ)句組中的語(yǔ)句;如果不為真,就執(zhí)行語(yǔ)句組后的語(yǔ)句表達(dá)式語(yǔ)句組真假3.4.3if語(yǔ)句與switch語(yǔ)句 if,英語(yǔ)中其962.在if語(yǔ)句中添加else子句
格式:if(表達(dá)式) {
語(yǔ)句組1;
}
else
{
語(yǔ)句組2;
}
如果表達(dá)式的值為真,就執(zhí)行語(yǔ)句組1;如果不為真,就執(zhí)行語(yǔ)句組2。流程圖:
表達(dá)式語(yǔ)句組1語(yǔ)句組2真假2.在if語(yǔ)句中添加else子句流程圖:表達(dá)式語(yǔ)句組1語(yǔ)句973.多重選擇elseif格式:if(表達(dá)式1)
語(yǔ)句組1;
elseif(表達(dá)式2)
語(yǔ)句組2;
elseif(表達(dá)式3)
語(yǔ)句組3; ···
else
語(yǔ)句組n;表達(dá)式1語(yǔ)句組1真假表達(dá)式2表達(dá)式3語(yǔ)句組n語(yǔ)句組3語(yǔ)句組2假假真真流程圖:
當(dāng)表達(dá)式1為真的時(shí)候則執(zhí)行語(yǔ)句組1,否則的話,將判斷表達(dá)式2的真假,表達(dá)式2為真,則執(zhí)行語(yǔ)句組2···依次這樣判斷。3.多重選擇elseif表達(dá)式1語(yǔ)句組1真假表達(dá)式2表達(dá)式984.if語(yǔ)句的嵌套
在if語(yǔ)句的語(yǔ)句組中又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套
如:if(表達(dá)式1)
{ if(表達(dá)式2)
{語(yǔ)句組;}
} if的多重嵌套時(shí),得注意if和else的搭配,寫法要得當(dāng)!
4.if語(yǔ)句的嵌套99if語(yǔ)句實(shí)現(xiàn)多分支時(shí),需要嵌套的if語(yǔ)句層數(shù)較多,程序冗長(zhǎng),可讀性低。因此可用switch語(yǔ)句來(lái)處理多分支情況。
switch(表達(dá)式) {
case常量表達(dá)式1:語(yǔ)句組1;
case
常量表達(dá)式2:語(yǔ)句組2;
…
case
常量表達(dá)式n:語(yǔ)句組n;
default:
語(yǔ)句組n+1; }if語(yǔ)句實(shí)現(xiàn)多分支時(shí),需要嵌套的if語(yǔ)句層數(shù)100switch說(shuō)明:switch括號(hào)內(nèi)的表達(dá)式任意,值和哪個(gè)case后的常量表達(dá)式匹配,就執(zhí)行后面的語(yǔ)句,沒(méi)有匹配的,就執(zhí)行default后面的,default可省略。每個(gè)case后常量表達(dá)式的值必須不一樣,case和default的順序不影響結(jié)果。執(zhí)行完一個(gè)case后,程序流程轉(zhuǎn)移到下一個(gè)case,直到運(yùn)行完全或遇見(jiàn)break語(yǔ)句,并非直接跳出。多個(gè)case可以共用一個(gè)執(zhí)行語(yǔ)句。switch說(shuō)明:switch括號(hào)內(nèi)的表達(dá)式任意,值和哪個(gè)c101例:輸入兩個(gè)實(shí)數(shù),按照代數(shù)值由小到大的順序輸出這兩個(gè)數(shù)。滿足if條件就交換a,b的值例:輸入兩個(gè)實(shí)數(shù),按照代數(shù)值由小到大的順序輸出這兩個(gè)數(shù)。滿足102例:輸入三個(gè)實(shí)數(shù),編程找出其中最大的一個(gè)并輸出探究唯一的三目運(yùn)算符例:輸入三個(gè)實(shí)數(shù),編程找出其中最大的一個(gè)并輸出探究唯一的三目103三目運(yùn)算符
一般形式:
表達(dá)式1?表達(dá)式2:表達(dá)式3
其執(zhí)行順序?yàn)椋合惹蠼獗磉_(dá)式1,若為真(非0),則求解表達(dá)式2,并把表達(dá)式2的值作為整個(gè)條件表達(dá)式的值。若表達(dá)式1為假(0),則求解表達(dá)式3,并把表達(dá)式3的值作為整個(gè)條件表達(dá)式的值。注意點(diǎn):條件運(yùn)算符的優(yōu)先級(jí)別高于賦值運(yùn)算符,但是比關(guān)系運(yùn)算符和算術(shù)運(yùn)算符要低。條件運(yùn)算符的結(jié)合方向?yàn)椤白杂蚁蜃蟆睏l件表達(dá)式中的表達(dá)式2和表達(dá)式3可以是任意的表達(dá)式。表達(dá)式1與表達(dá)式2和表達(dá)式3的類型也可以不同。三目運(yùn)算符 一般形式:注意點(diǎn):條件運(yùn)算符的優(yōu)先級(jí)別高于賦值104編寫程序:編寫一程序,從鍵盤上輸入x的值,根據(jù)上面的函數(shù),求出y的值。語(yǔ)句組中只有一句,花括號(hào)可以省略。編寫程序:編寫一程序,從鍵盤上輸入x的值語(yǔ)句組1053.5循環(huán)結(jié)構(gòu)程序設(shè)計(jì)while循環(huán)與自增自減運(yùn)算符do···while語(yǔ)句for語(yǔ)句逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式3.5循環(huán)結(jié)構(gòu)程序設(shè)計(jì)while循環(huán)與自增自減運(yùn)算符1063.5.1while循環(huán)與自增自減 while語(yǔ)句用來(lái)實(shí)現(xiàn)“當(dāng)型”循環(huán)結(jié)構(gòu)。
其一般形式:
while(表達(dá)式) {
語(yǔ)句組; }
在語(yǔ)句組中必須包含能改變表達(dá)式的值來(lái)使表達(dá)式的值最終變?yōu)榧?,否則循環(huán)永遠(yuǎn)不會(huì)中止3.5.1while循環(huán)與自增自減 while語(yǔ)句用來(lái)實(shí)107
例:使用while循環(huán)來(lái)求“1+2+3+…+100”的值運(yùn)行結(jié)果:循環(huán)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度海鮮加工與出口貿(mào)易綜合服務(wù)合同
- 2025年度國(guó)際貨物貿(mào)易合同取消函
- 2025年度個(gè)人消費(fèi)電子產(chǎn)品分期購(gòu)銷合同
- 2025年工程機(jī)械租賃及施工進(jìn)度管理合同
- 2025年度健身俱樂(lè)部健身教練健康管理服務(wù)合同
- 2025年度新型城鎮(zhèn)化荒山林地承包經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同模板
- 2025年度凈化車間廢水處理與循環(huán)利用合同
- 2025年國(guó)內(nèi)原油現(xiàn)貨交易合同范本
- 2025年度古建筑修復(fù)工程承包合同示范
- 2025年度房地產(chǎn)抵押貸款合同(專業(yè)版)
- 部編小學(xué)語(yǔ)文(6年級(jí)下冊(cè)第6單元)作業(yè)設(shè)計(jì)
- 洗衣機(jī)事業(yè)部精益降本總結(jié)及規(guī)劃 -美的集團(tuán)制造年會(huì)
- 2015-2022年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文/數(shù)學(xué)/英語(yǔ)筆試參考題庫(kù)含答案解析
- 2023年菏澤醫(yī)學(xué)??茖W(xué)校單招綜合素質(zhì)模擬試題及答案解析
- 鋁合金門窗設(shè)計(jì)說(shuō)明
- 常見(jiàn)食物的嘌呤含量表匯總
- 小學(xué)數(shù)學(xué)-三角形面積計(jì)算公式的推導(dǎo)教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 人教版數(shù)學(xué)八年級(jí)下冊(cè)同步練習(xí)(含答案)
- 2023年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ))試題庫(kù)含答案解析
- 秦暉社會(huì)主義思想史課件
- 積累運(yùn)用表示動(dòng)作的詞語(yǔ)課件
評(píng)論
0/150
提交評(píng)論