



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、clrscr(); /* 清屏 */選擇結(jié)構(gòu)一、單分支選擇語句1. 格式if(表達(dá)式 ) 語句2. 功能當(dāng)表達(dá)式的值為 非 0(真、條件成立 )時,執(zhí)行“語句”。否則執(zhí)行 if 之后的下一句。3. 說明( 1)表達(dá)式 可以是 任意類型的表達(dá)式(結(jié)果是數(shù)值型),但通常是關(guān)系或邏輯表達(dá)式 。也可以是數(shù)值型的常量或變量(它們是最簡單的表達(dá)式) 。( 2)“語句”可以是 以分號結(jié)束的 單個語句,也可以是 一個復(fù)合語句 。不可以是多個語句。4. 舉例例 1、任意讀入兩個整數(shù), 然后輸出其中的較大者。main()int x,y;scanf("%d%d",&x,&y);i
2、f(x>y)printf("%dn",x);if(y>=x)printf("%dn",y);二、雙分支 if 語句【格式】if(表達(dá)式 )語句 1else語句 2【功能】【說明】1.“語句 1”和“語句 2”可以分別是以分號結(jié)束的 單個語句,也可以分別是 一個復(fù)合語句。都不可以是多個語句。2. else子句不可以獨(dú)立存在。改寫上例:任意讀入 2 個整數(shù),輸出較大數(shù)。main()int x,y;scanf("%d%d",&x,&y);if(x>y)printf("%dn",x);el
3、se/* 暗含兩種情況: <和=*/printf("%dn",y);例如:任意讀入 2 個整數(shù),按 從小到大的順序輸出這 2 個數(shù)?!痉?1】main()int x,y;scanf("%d%d",&x,&y);if(x<y)printf("%d,%dn",x,y);elseprintf("%d,%dn",y,x);【法 2:借助第三數(shù),完成兩數(shù)的交換 】讓 x 中放較小數(shù), y 中放較大數(shù)。main()int x,y;int t; /* 中間變量 */scanf("%d%d&q
4、uot;,&x,&y);if(x>y)t=x; x=y; y=t;printf("%d,%dn",x,y);【基本算法一:兩數(shù)交換,借助第三數(shù)】t=x; x=y; y=t;【思考:本題改成“任意讀入 3 數(shù),從小到大輸出”】三、多分支 if 語句【格式】if(表達(dá)式 1)語句 1else if(表達(dá)式 2)語句 2else if(表達(dá)式 3)語句 3else語句 n+1【功能】【注意】 else和 if 之間有空格 。最后的 else子句可以省?!九e例】例 1、批發(fā)鉛筆,批發(fā)量 x,100x300,打 7 折;300x500,打 5 折;500x100
5、0,打 4.5 折;x=1000,打 4 折。其余不打折。求顧客應(yīng)付款。(1 元/支)【法 1:多分支選擇語句】main()int x;float cost;scanf("%d",&x);if(x>=1000)cost=1*x*0.4;else if(x>=500)cost=1*x*0.45;else if(x>=300)cost=1*x*0.5;else if(x>=100)cost=1*x*0.7;elsecost=1*x;printf("cost=%fn",cost);% m.nf(m、n 是正整數(shù),通常 m>
6、n,m 表示整個實(shí)數(shù)所占顯示寬度,包含小數(shù)點(diǎn),實(shí)數(shù)寬度不夠時,左補(bǔ)空格;n 表示小數(shù)點(diǎn)右邊的位數(shù)。 )例如: printf("% 6.2fn",3.14159);UU3.14(U 代表空格)又如: printf("% 3.4fn",3.14159);3.1416【注意 】 %m.nf 的 格式可 以省寫成 “% .nf”,即可將 m 省略。% -m.nf(若數(shù)寬度不夠,則 右補(bǔ)空格)% .nf(m 可以省,滿足小數(shù)點(diǎn)后保留 n位,該實(shí)數(shù)實(shí)際需要占多少位,就占多少位。)關(guān)于整數(shù):%md: 輸出的整數(shù)若位數(shù)不足 m 位,左補(bǔ)空格。% -md: 輸出的整數(shù)若位
7、數(shù)不足 m 位,右補(bǔ)空格。例:任意讀入一個年份,判斷其是否為閏年。(能被 400 整除,或能被4 整除且不能被 100 整除的,就是閏年)四、if 語句的嵌套(if 語句中含有另一個 if 語句)例 1:鉛筆打折的改寫。main()int x;float cost;scanf("%d",&x);if(x<100)cost=1*x;elseif(x<300)cost=1*x*0.7;elseif(x<500)cost=x*1*0.5;elseif(x<1000)cost=1*x*0.45;elsecost=1*x*0.4;printf(&quo
8、t;cost=%.2fn",cost);【注意】( 1)外選擇語句必須 完整地包含內(nèi)選擇語句,請 縮進(jìn)書寫。( 2)else總是和前面最近的一個沒有配對且有資格配對的 if 配對。例 2、任意讀入一個字符,判斷其是否為 數(shù)字字符 ,若是,進(jìn)一步判斷其是否為 5,是就輸出該字符及其 ASCII 碼值;若不是數(shù)字字符,就輸出“Is not digit!”?!痉ㄒ唬豪?ASCII 值判斷】#include<stdio.h>main()char c;c=getchar();if(c>='0'&&c<='9' )if(c
9、='5')printf("%c,%dn",c,c); elseputs("Is not digit!n");【用 取消內(nèi) if 的配對資格!】【法二:利用系統(tǒng)函數(shù) isdigit 判斷數(shù)字字符】用系統(tǒng)函數(shù)(庫函數(shù)):isdigit(字符型數(shù)據(jù) )含義是判斷“字符型數(shù)據(jù)”是否為數(shù)字字符。(是,則函數(shù)返回值為 非 0;否則為 0),使用時一定要加頭文件 “ctype.h”。#include <stdio.h>#include <ctype.h>main()char x;scanf("%c",&
10、;x);if(isdigit(x)!=0) /* 邏輯等價(jià)于 isdigit(x)*/ if(x='5')printf("%c:%dn",x,x); elseprintf("Is not digit!n");【將光標(biāo)移到系統(tǒng)函數(shù)名下方,然后按 Ctrl+F1 ,彈出對應(yīng)頭文件名。按 Esc鍵回到藍(lán)色編輯環(huán)境?!俊窘Y(jié)論】( 1)用擴(kuò)住某單分支 if 語句,可以取消其與 else的配對資格?。?)兩組邏輯等價(jià) 式:變量 a 格式 a 取值邏輯等價(jià)式a0或非 0a!=0!a0 或非0a=0【解釋:】數(shù)值數(shù)據(jù) aa!=00(假)假非 0(真) 真
11、所謂“邏輯等價(jià)”就是,當(dāng) 某式子 的結(jié)果被當(dāng)做邏輯值用時,其邏輯等價(jià)式的真值與該式子完全一致。五、多分支 switch語句switch()case1:語句塊 1;break;case2:語句塊 2;break;case3:語句塊 2;break;default: 語句 n+1;【說明】( 1)switch后的表達(dá)式通常是整型或字符型表達(dá)式(常量、變量) ;( 2)case后的常量必須是整型或字符型。( 3)“break;”語句 只能出現(xiàn)在 switch或循環(huán)語句中。作用是跳出所在語句結(jié)構(gòu)。( 4)“語句塊 1; 語句塊 n+1;” 可以是若干個語句, 不必構(gòu)成一個復(fù)合語句。( 5)defaul
12、t 分支可以省略?!竟δ堋坷?1:改寫鉛筆。#include<stdio.h>main()int x;float cost;scanf("%d",&x);switch(x/100)case 0: cost=1*x; break;case 1:case 2: cost=1*x*0.7;break; case 3:case 4: cost=1*x*0.5;break;case 5: case 6: case 7: case 8: case 9: cost=1*x*0.45; break; default:cost=1*x*0.4;printf("%
13、.2fn",cost);【而以下也正確】#include<stdio.h>main()int x;float cost;scanf("%d",&x);switch(x/100)case 1:case 2: cost=1*x*0.7;break;default:cost=1*x*0.4;break; case 3:case 4: cost=1*x*0.5;break; case 5:case 6:case 7:case 8: case 9: cost=1*x*0.45; break;case 0: cost=1*x;printf("%.2fn",cost);【注意】( 1)各分支位置可以不分先后( 不好!應(yīng)試的)。但依然只有最后一個分支可以不加 break;語句!。( 2)兩個(或以上)相鄰分支的操作一樣,可將對應(yīng)語句寫在最后一個分支上
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 批發(fā)業(yè)務(wù)中的版權(quán)合作與版權(quán)輸出考核試卷
- 其他調(diào)味品發(fā)酵制品制造考核試卷
- 智能照明在博物館展品照明中的應(yīng)用考核試卷
- 企業(yè)知識管理與知識分享考核試卷
- 年金保險(xiǎn)投資渠道選擇考核試卷
- 有機(jī)肥料在育苗中的應(yīng)用考核試卷
- 冰球場冰面修整與保養(yǎng)考核試卷
- 智能無人機(jī)飛行控制系統(tǒng)考核試卷
- 小學(xué)生簡單律動課件圖片
- 廣州鋪位租賃合同范本
- 售后服務(wù)部部門組織架構(gòu)
- 2024年江蘇食品藥品職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 《實(shí)變函數(shù)》電子教案
- 旅游景觀文化與賞析 知到智慧樹網(wǎng)課答案
- 2024-貸款受托支付合同模板
- 柴油發(fā)電機(jī)基礎(chǔ)知識教案
- 2024年蘇州衛(wèi)生職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 十萬個為什么測試題及答案四年級
- 攝影基礎(chǔ)基本知識講座
- JTG 5110-2023 公路養(yǎng)護(hù)技術(shù)標(biāo)準(zhǔn)
- 2022年蘇州工業(yè)職業(yè)技術(shù)學(xué)院單招數(shù)學(xué)模擬試題(附答案解析)
評論
0/150
提交評論