《幻燈片C語(yǔ)言程序設(shè)計(jì)視頻教程ppt課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《幻燈片C語(yǔ)言程序設(shè)計(jì)視頻教程ppt課件(33頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、C程序設(shè)計(jì),講師:徐紅波 Email:,第5章 選擇結(jié)構(gòu)程序設(shè)計(jì),選擇結(jié)構(gòu)是三種基本結(jié)構(gòu)之一。在大多數(shù)程序中都會(huì)包含選擇結(jié)構(gòu)。它的作用是,根據(jù)所指定的條件是否滿足,決定從給定的兩組操作選擇其一。在本章中介紹如何用C語(yǔ)言實(shí)現(xiàn)選擇結(jié)構(gòu)。 在C語(yǔ)言中選擇結(jié)構(gòu)用if語(yǔ)句實(shí)現(xiàn)。if語(yǔ)句最常用的形式如下: if (關(guān)系表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2 例如: if (x0) y=1; else y=-1; 其中x0是一個(gè)關(guān)系表達(dá)式?!啊笔且粋€(gè)關(guān)系運(yùn)算符。,5.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式,關(guān)系運(yùn)算是邏輯運(yùn)算中比較簡(jiǎn)單的一種。“關(guān)系運(yùn)算” 就是“比較運(yùn)算”。將兩個(gè)值進(jìn)行比較,判斷其比較的結(jié)果是否符合給定的
2、條件。例如a3是一個(gè)關(guān)系表達(dá)式。,5.1.1 關(guān)系運(yùn)算符及其優(yōu)先次序,C語(yǔ)言提供6種關(guān)系運(yùn)算符: = == != 關(guān)于優(yōu)先次序: (1)前4種關(guān)系運(yùn)算符的優(yōu)先級(jí)別相同,后兩種也相同。前4種高于后2種。 (2)關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符。 (3)關(guān)系運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符。,5.1.2 關(guān)系表達(dá)式,用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(可以是算術(shù)表達(dá)式或關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式、字符表達(dá)式)連接起來(lái)的式子,稱(chēng)關(guān)系表達(dá)式。 關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”。C語(yǔ)言沒(méi)有邏輯型數(shù)據(jù),以1代表“真”,以0代表“假”,5.2 邏輯運(yùn)算符和邏輯表達(dá)式,用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量
3、連接起來(lái)的式子就是邏輯表達(dá)式。,5.2.1 邏輯運(yùn)算符及其優(yōu)先次序,C語(yǔ)言提供三種邏輯運(yùn)算符: (1),,2、if (表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2 例如: if (xy) printf(“%d”, x); else printf(“%d”, y);,,3、 if (表達(dá)式1) 語(yǔ)句1 else if (表達(dá)式2) 語(yǔ)句2 else if (表達(dá)式3) 語(yǔ)句3 else if (表達(dá)式m) 語(yǔ)句m else 語(yǔ)句n,說(shuō)明:,(1)三種形式的if語(yǔ)句中在if后面都有“表達(dá)式”,一般為邏輯表達(dá)式或關(guān)系表達(dá)式。 (2)第二、第三種形式的if語(yǔ)句中,在每個(gè)else前面有一個(gè)分號(hào),整個(gè)語(yǔ)句結(jié)束處有一
4、個(gè)分號(hào)。 (3)在if和else后面可以只含一個(gè)內(nèi)嵌的操作語(yǔ)句,也可以有多個(gè)操作語(yǔ)句,此時(shí)用花括號(hào)將幾個(gè)語(yǔ)句括起來(lái)成為一個(gè)復(fù)合語(yǔ)句。,5.1輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大的順序輸出這兩個(gè)數(shù),#include void main() float a, b, t; scanf(“%f,%f”, ,例5.2輸入3個(gè)數(shù)a、b、c,要求按由小到大的順序輸出,#include void main() float a, b, c, t; scanf(“%f,%f,%f”, ,5.3.2 if語(yǔ)句的嵌套,在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱(chēng)為if語(yǔ)句的嵌套。一般形式如下: if() if() 語(yǔ)句1 els
5、e 語(yǔ)句2 else if() 語(yǔ)句3 else 語(yǔ)句4,例5.3編程,輸入x值,輸出y值,函數(shù):-1 (x0),#include void main() int x, y; scanf(“%d”, ,5.3.3 條件運(yùn)算符,若在if語(yǔ)句中,當(dāng)被判別的表達(dá)式的值為“真”或“假”時(shí),都執(zhí)行一個(gè)賦值語(yǔ)句且向同一個(gè)變量賦值時(shí),可以用一個(gè)條件運(yùn)算符來(lái)處理。 條件運(yùn)算符要求有3個(gè)操作對(duì)象,稱(chēng)三目(元)運(yùn)算符。 條件表達(dá)式的一般形式為 表達(dá)式1?表達(dá)式2:表達(dá)式3,說(shuō)明:,(1)條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式1,若為非0則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0,則求
6、解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。 (2)條件運(yùn)算符優(yōu)先于賦值運(yùn)算符。 (3)條件運(yùn)算符的結(jié)合方向?yàn)樽杂抑磷蟆?(4)表達(dá)式不僅可以是數(shù)值表達(dá)式,還可以是賦值表達(dá)式或函數(shù)表達(dá)式。 (5)條件表達(dá)式中,表達(dá)式1的類(lèi)型可以與表達(dá)式2和表達(dá)式3的類(lèi)型不同。,例5.4輸入一個(gè)字母,判別它是否大寫(xiě)字母,如果是,將它轉(zhuǎn)換成小寫(xiě)字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符,#include void main() char ch; scanf(“%c”, ,5.4 switch語(yǔ)句,switch語(yǔ)句是多分支選擇語(yǔ)句。一般形式: switch(表達(dá)式) case 常量表達(dá)式1: 語(yǔ)句1
7、 case 常量表達(dá)式2: 語(yǔ)句2 case 常量表達(dá)式n: 語(yǔ)句n default: 語(yǔ)句n+1; ,說(shuō)明:,(1)switch后面括號(hào)內(nèi)的表達(dá)式,ANSI標(biāo)準(zhǔn)允許它為任何類(lèi)型。 (2)當(dāng)表達(dá)式的值與某一個(gè)case后面的常量表達(dá)式的值相等時(shí),就執(zhí)行此case后面的語(yǔ)句,若所有的case中的常量表達(dá)式的值都沒(méi)有與表達(dá)式的值匹配的,就執(zhí)行default后面的語(yǔ)句。 (3)每一個(gè)case的常量表達(dá)式的值必須互不相同;否則就會(huì)出現(xiàn)相互矛盾的現(xiàn)象。 (4)各個(gè)case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果。 (5)執(zhí)行完一個(gè)case后面的語(yǔ)句后,流程控制轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行。 (
8、6)多個(gè)case可以共用一組執(zhí)行語(yǔ)句。,5.5 程序舉例例5.5寫(xiě)程序,判斷某一年是否閏年,例5.6求ax2+bx+c=0方程的解,(1)a=0 (2)b2-4ac=0 (3)b2-4ac0 (4)b2-4ac<0,例5.7運(yùn)輸公司對(duì)用戶(hù)計(jì)算運(yùn)費(fèi),路程越遠(yuǎn),每噸每千米運(yùn)費(fèi)越低。 標(biāo)準(zhǔn)如下:s<250沒(méi)有折扣250s<500 2%折扣500s<1000 5%折扣 1000s<2000 8%折扣20003<3000 10%折扣3000s 15%折扣 設(shè)每噸每千米貨物的基本運(yùn)費(fèi)為p,貨物重為w,距離為s,折扣為d,則總運(yùn)費(fèi)f的計(jì)算公式為 f=p*w*s(1-d),習(xí)題,5.3 寫(xiě)出下面各邏輯表達(dá)式的
9、值。設(shè)a=3,b=4,c=5。 (1)a+bc && b==c (2)a||b+c && b-c (3)!(ab) && ! c||1 (4)!(x=a) && (y=b) && 0 (5)!(a+b)+c-1 && b+c/2 5.4 有3個(gè)整數(shù)a、b、c,由鍵盤(pán)輸入,輸出其中最大的數(shù)。,,5.5 有一個(gè)函數(shù): x x<1 y= 2x-1 1x<10 3x-11 10 x 5.6 給出一百分制成績(jī),要求輸出成績(jī)等級(jí)A、B、C、D、E。90分以上為A,8089分為B,7079分為C,6069分為D,60分以下為E。 5.9 輸入4個(gè)整數(shù),要求按由小到大的順序輸出。,,5.10 有4個(gè)圓塔,圓心分別為(2,2)、(-2,2)、(-2,-2)、(2,-2),圓半徑為1。這4個(gè)塔的高度為10m,塔以外無(wú)建筑物。今輸入任意點(diǎn)的坐標(biāo),求該點(diǎn)的建筑高度(塔外的高度為零)。,此課件下載可自行編輯修改,供參考! 感謝您的支持,我們努力做得更好!,