




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四章分支結(jié)構(gòu)12目標(biāo)掌握簡(jiǎn)單的條件語(yǔ)句的使用熟練使用多重if結(jié)構(gòu)熟練使用嵌套if結(jié)構(gòu)熟練使用switch結(jié)構(gòu)理解條件運(yùn)算符的用法3結(jié)構(gòu)化程序C語(yǔ)言是一種支持結(jié)構(gòu)化程序設(shè)計(jì)思想的程序設(shè)計(jì)語(yǔ)言。結(jié)構(gòu)化程序設(shè)計(jì)的基本思想之一是“單入口和單出口”的控制結(jié)構(gòu)任何程序只可由順序、選擇和循環(huán)三種控制結(jié)構(gòu)組成每種控制結(jié)構(gòu)都能用僅有一個(gè)入口和一個(gè)出口的流程圖表示4順序結(jié)構(gòu)順序結(jié)構(gòu)就是指程序按照語(yǔ)句出現(xiàn)的先后順序依次執(zhí)行。5示例#include"stdio.h"voidmain(){inti,j,sum;
printf("請(qǐng)輸入i的值:\n");scanf("%d",&i);
printf("請(qǐng)輸入j的值:\n");
scanf("%d",&j);sum=i+j;
printf("i+j=%d\n",sum);}6示例2設(shè)三角形的三邊長(zhǎng)為a,b,c求三角形的面積?提示根據(jù)三條邊求面積的數(shù)學(xué)公式為:area=sqrt(s*(s-a)*(s-b)*(s-c)),其中s為:
s=(a+b+c)/27if語(yǔ)句分支結(jié)構(gòu)中最基本的分支結(jié)構(gòu)是if語(yǔ)句按形式分if語(yǔ)句可以分為單分支雙分支多分支8單分支if語(yǔ)句if(expression)語(yǔ)句;
表達(dá)式(expression)可以是任意的數(shù)值、字符、關(guān)系、邏輯表達(dá)式,以true(非0)表示真,false(0)表示假。語(yǔ)句稱為if語(yǔ)句的內(nèi)嵌語(yǔ)句,可以是一句簡(jiǎn)單語(yǔ)句或是一句復(fù)合語(yǔ)句。9單分支if語(yǔ)句案例:如果你有10萬(wàn)元人民幣,你就買(mǎi)汽車(chē)是否滿10萬(wàn)買(mǎi)汽車(chē)是結(jié)束否#include“stdio.h”voidmain(){ intmoney; printf(“請(qǐng)輸入你所擁有的錢(qián):\n”); scanf(“%d”,&money); if(money>=10) printf(“我買(mǎi)汽車(chē)了\n”);}10已知兩個(gè)數(shù)x和y,比較它們的大小,使最終結(jié)果x中的內(nèi)容大于y。首先將x中的數(shù)值賦值給臨時(shí)變量temp。接著將y中的數(shù)值賦值給變量x。最后將臨時(shí)變量temp中的數(shù)值賦值給變量y,整個(gè)交換過(guò)程完成。#include<stdio.h>voidmain(){ intx,y,temp; printf("\n請(qǐng)輸入兩個(gè)值:"); scanf("%d%d",&x,&y); printf("\n比較前x和y中的內(nèi)容:\n"); printf("x=%d,y=%d\n\n",x,y); if(x<y) //如果x中的值小于y中的值,交換x和y的內(nèi)容
{ temp=x; x=y; y=temp;
} printf("比較后x和y中的內(nèi)容:\n"); printf("x=%d,y=%d\n",x,y);}11if–else語(yǔ)句if(expression)
語(yǔ)句1;else
語(yǔ)句2;12if–else語(yǔ)句案例:如果你有10萬(wàn)元人民幣,你就買(mǎi)汽車(chē),沒(méi)有的話,就買(mǎi)電動(dòng)車(chē)是否滿10萬(wàn)買(mǎi)汽車(chē)是結(jié)束否買(mǎi)電動(dòng)車(chē)#include"stdio.h"voidmain(){ intmoney; printf("請(qǐng)輸入你所擁有的錢(qián):\n"); scanf(“%d”,&money); if(money>=10) printf("我買(mǎi)汽車(chē)了\n"); else printf("我買(mǎi)電動(dòng)車(chē)了\n");}13示例#include<stdio.h>voidmain(){intx,y;printf("inputtwonumbers:");scanf("%d%d",&x,&y);if(x>y)//比較x和y中的內(nèi)容,并選擇相應(yīng)的輸出
printf("x>y\n");else printf("x<y\n");}14if–else–if語(yǔ)句if(expression_1)
語(yǔ)句1;elseif(expression_2)
語(yǔ)句2;elseif(expression_3)
語(yǔ)句3; . . .elseif(expression_n)
語(yǔ)句n;else
語(yǔ)句n+1;15if–else–if語(yǔ)句案例:如果你有10萬(wàn)元人民幣,你就買(mǎi)福特汽車(chē),沒(méi)有10萬(wàn),如果有5萬(wàn)就買(mǎi)奇瑞qq汽車(chē),5萬(wàn)也沒(méi)有的話,買(mǎi)電動(dòng)車(chē)是否滿10萬(wàn)買(mǎi)福特汽車(chē)是結(jié)束否買(mǎi)電動(dòng)車(chē)是否滿5萬(wàn)否買(mǎi)奇瑞qq是#include“stdio.h”voidmain(){ intmoney; printf(“請(qǐng)輸入你所擁有的錢(qián):\n”); scanf(“%d”,&money); if(money>=10) printf(“我買(mǎi)福特汽車(chē)了\n”); elseif(money>=5) printf(“我買(mǎi)qq汽車(chē)了\n”); else printf(“我買(mǎi)電動(dòng)車(chē)了\n”);}16示例#include<stdio.h>voidmain(){intmark; printf("請(qǐng)輸入學(xué)生的百分制成績(jī):"); scanf("%d",&mark); if(mark>=90) //mark>=90時(shí)
printf("優(yōu)!"); elseif(mark>=80) //80<=mark<90時(shí)
printf("良!"); elseif(mark>=70) //70<=mark<80時(shí)
printf("中!"); elseif(mark>=60) //60<=mark<70時(shí)
printf("及格!"); else //mark<60時(shí)
printf("不及格!"); printf("\n");//輸出換行符}17if嵌套if(expression){
語(yǔ)句;if(expression){
語(yǔ)句;}語(yǔ)句;}else{
語(yǔ)句;
if(expression){
語(yǔ)句;
}
語(yǔ)句;}18if嵌套是否滿10萬(wàn)買(mǎi)福特汽車(chē)是結(jié)束否買(mǎi)電動(dòng)車(chē)是否滿5萬(wàn)否買(mǎi)奇瑞qq是家庭資產(chǎn)滿50萬(wàn)買(mǎi)樂(lè)風(fēng)是否案例:如果你有10萬(wàn)元人民幣的情況下,家里的資產(chǎn)大于50萬(wàn),你就買(mǎi)福特汽車(chē),家里資產(chǎn)小于50萬(wàn)的話,就買(mǎi)夏利。沒(méi)有10萬(wàn),如果有5萬(wàn)就買(mǎi)奇瑞qq汽車(chē),5萬(wàn)也沒(méi)有的話,買(mǎi)電動(dòng)車(chē)19#include“stdio.h”voidmain(){intmoney;printf(“請(qǐng)輸入你所擁有的錢(qián):\n”);scanf(“%d”,&money);if(money>=10)if(資產(chǎn)>50)printf(“我買(mǎi)福特汽車(chē)了\n”);else
printf(“我買(mǎi)樂(lè)風(fēng)了\n”);elseif(money>=5)
printf(“我買(mǎi)qq汽車(chē)了\n”);else
printf(“我買(mǎi)電動(dòng)車(chē)了\n”);}20本題中對(duì)三個(gè)數(shù)x、y、z進(jìn)行排序#include<stdio.h>voidmain(){intx,y,z,temp;printf("請(qǐng)輸入x、y、z的值:");scanf("%d%d%d",&x,&y,&z);if(x<y){ //x與y交換,使得x>y temp=x;x=y;y=temp; }if(y<z){ //y與z交換,使得y>z
temp=y;y=z;z=temp; if(x<y)
{ temp=x;x=y;y=temp; }}printf("%d>%d>%d\n",x,y,z);}21switch語(yǔ)句雖然用if-else語(yǔ)句可以實(shí)現(xiàn)多分支選擇,但當(dāng)分支較多時(shí),程序結(jié)構(gòu)依然會(huì)十分復(fù)雜,降低程序的可讀性。為了使語(yǔ)句更為清晰易懂,C語(yǔ)言還提供了另一種用于描述多分支選擇結(jié)構(gòu)的switch語(yǔ)句,該語(yǔ)句又稱為開(kāi)關(guān)語(yǔ)句。switch-case語(yǔ)句是多路判斷語(yǔ)句switch語(yǔ)句計(jì)算條件表達(dá)式并對(duì)照多個(gè)常數(shù)值進(jìn)行檢查22switch(表達(dá)式){case常量1:
語(yǔ)句; break;case常量
2:
語(yǔ)句; break;
default:
語(yǔ)句;}需要判斷的值如果等于常量1遇到break,switch結(jié)束執(zhí)行語(yǔ)句如果等于常量2遇到break,switch結(jié)束執(zhí)行語(yǔ)句如果沒(méi)有找到匹配的值執(zhí)行語(yǔ)句switch結(jié)構(gòu)23#include<stdio.h>voidmain(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a) //根據(jù)變量a的值進(jìn)行判斷
{ case1:printf("Monday\n");//輸出 Monday (星期一)
case2:printf("Tuesday\n"); //輸出 Tuesday (星期二)
case3:printf(“Wednesday\n”);//輸出 Wednesday(星期三)
case4:printf("Thursday\n"); //輸出 Thursday (星期四)
case5:printf("Friday\n");//輸出 Friday (星期五)
case6:printf("Saturday\n"); //輸出 Saturday (星期六)
case7:printf("Sunday\n");//輸出 Sunday (星期日)
default:printf("error\n");//當(dāng)變量a中的內(nèi)容不在數(shù)值1-7之間時(shí),輸出error}}從鍵盤(pán)接收用戶輸入的整型值,并按值顯示出相應(yīng)的星期表示。#include<stdio.h>voidmain(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a) //根據(jù)變量a的值進(jìn)行判斷
{ case1:printf("Monday\n");//輸出 Monday (星期一)
case2:printf("Tuesday\n"); //輸出 Tuesday (星期二)
case3:printf(“Wednesday\n”);//輸出 Wednesday(星期三)
case4:printf("Thursday\n"); //輸出 Thursday (星期四)
case5:printf("Friday\n");//輸出 Friday (星期五)
case6:printf("Saturday\n"); //輸出 Saturday (星期六)
case7:printf("Sunday\n");//輸出 Sunday (星期日)
default:printf("error\n");//當(dāng)變量a中的內(nèi)容不在數(shù)值1-7之間時(shí),輸出error}}從鍵盤(pán)接收用戶輸入的整型值,并按值顯示出相應(yīng)的星期表示。24#include<stdio.h>voidmain(){floata,b;charc;printf("inputexpression:a+(-,*,/)b\n");scanf("%f%c%f"
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 甲醇合成設(shè)備選型與配置方案
- 煤礦紅黃牌考試題及答案
- 2025年度威海機(jī)械工程高級(jí)技工學(xué)校公開(kāi)招聘教師(6人)模擬試卷及答案詳解1套
- 2025國(guó)網(wǎng)物資有限公司第二批高校畢業(yè)生錄用人選的模擬試卷及答案詳解參考
- 建筑垃圾清運(yùn)與處置方案
- 快速凈菜生產(chǎn)與高效配送方案
- 2025年臺(tái)州溫嶺市事業(yè)單位公開(kāi)選聘工作人員8人模擬試卷及答案詳解(全優(yōu))
- 2025年美聲樂(lè)理考試試題及答案
- 2025廣東東莞市水務(wù)局招聘聘用人員2人考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(名校卷)
- 2025年綜采維修鉗工題庫(kù)及答案
- 重慶八中高 2027 屆高二(上)第一次月考語(yǔ)文試卷(含答案)
- 山西中考語(yǔ)文5年(21-25)真題分類匯編-文學(xué)類文本閱讀
- 2025云南紅河紅家眾服經(jīng)營(yíng)管理有限公司社會(huì)招聘工作人員8人筆試模擬試題及答案解析
- 基礎(chǔ)水文數(shù)據(jù)采集與管理項(xiàng)目方案
- 2025關(guān)于信息技術(shù)外包合同
- 河北省金太陽(yáng)2025-2026學(xué)年高三上學(xué)期9月聯(lián)考語(yǔ)文試卷
- 組織工程瓣膜修復(fù)研究-洞察及研究
- 注塑機(jī)操作安全培訓(xùn)課件
- 2.1《整十、整百數(shù)乘一位數(shù)的口算和估算》(課件) -2025-2026學(xué)年三年級(jí)數(shù)學(xué)上冊(cè) 蘇教版
- 艾媒咨詢2025年中國(guó)新式茶飲大數(shù)據(jù)研究及消費(fèi)行為調(diào)查數(shù)據(jù)
- 雷達(dá)式水位計(jì)安裝單元工程質(zhì)量驗(yàn)收評(píng)定表
評(píng)論
0/150
提交評(píng)論