




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 ;.第第4章章1 ;. 本章要點(diǎn)本章要點(diǎn)n 關(guān)系表達(dá)式關(guān)系表達(dá)式n邏輯表達(dá)式n選擇結(jié)構(gòu)程序設(shè)計(jì)2 ;.程序程序= =算法算法+ +數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)靈靈魂魂加工對(duì)象加工對(duì)象4.1 關(guān)于算法 3 ;.4.1 關(guān)于算法 4.1.1 算法的概念 廣義地說(shuō),為解決一個(gè)問(wèn)題而采取的方法和步驟,就稱為廣義地說(shuō),為解決一個(gè)問(wèn)題而采取的方法和步驟,就稱為“算法算法”。4 ;.方法方法1:1+2,+3,+4,一直加到,一直加到100 加加99次次方法方法2:100+(1+99)+(2+98)+(49 +51)+50 = 100 + 49100 +50 加加51次次對(duì)同一個(gè)問(wèn)題,可有不同的解題方法和步驟對(duì)同一個(gè)問(wèn)
2、題,可有不同的解題方法和步驟例4.1: 求1001nn5 ;. 例例4.2:求任意兩個(gè)整數(shù)間的最大公約數(shù)。:求任意兩個(gè)整數(shù)間的最大公約數(shù)。mnr被除數(shù)被除數(shù)除數(shù)除數(shù)余數(shù)余數(shù)mnr余數(shù)是否為0mnr 0n即為最大公約數(shù)經(jīng)典算法舉例經(jīng)典算法舉例: :6 ;. 4.1.2 算法 的描述方法可以用不同的方法表示算法,常用的有:可以用不同的方法表示算法,常用的有: 自然語(yǔ)言自然語(yǔ)言 傳統(tǒng)流程圖傳統(tǒng)流程圖 結(jié)構(gòu)化流程圖結(jié)構(gòu)化流程圖 偽代碼偽代碼 PADPAD圖圖傳統(tǒng)流程圖傳統(tǒng)流程圖結(jié)構(gòu)化流程圖結(jié)構(gòu)化流程圖7 ;. 用流程圖表示算法美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)ANSI(American Nation
3、al Standard Institute)ANSI(American National Standard Institute)規(guī)定了規(guī)定了一些常用的流程圖符號(hào):一些常用的流程圖符號(hào):起止框起止框判斷框判斷框處理框處理框輸入輸入/輸出框輸出框注釋框注釋框流向線流向線連接點(diǎn)連接點(diǎn)8 ;.三種基本結(jié)構(gòu)的圖示:三種基本結(jié)構(gòu)的圖示: 順序結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)(while型型) 9 ;. 例例4.3:用流程圖描述用流程圖描述“輾轉(zhuǎn)相除法輾轉(zhuǎn)相除法”求任意兩個(gè)整數(shù)間的最大公約數(shù)。求任意兩個(gè)整數(shù)間的最大公約數(shù)。開始輸入兩個(gè)數(shù)輸入兩個(gè)數(shù)m,n求余數(shù)求余數(shù)r=m%nr是否為是否為0否否m
4、=n, n=r,r=m%n是是輸出最大公約數(shù)輸出最大公約數(shù)n結(jié)束結(jié)束用流程圖表示算法要比用文字描述算法邏輯清晰、易于理解。 10 ;.用N-S流程圖表示算法 1973 1973年美國(guó)學(xué)者年美國(guó)學(xué)者I.NassiI.Nassi和和B.ShneidermanB.Shneiderman提出了一種新的流程圖形式。在這種提出了一種新的流程圖形式。在這種流程圖中,完全去掉了帶箭頭的流程線。全部算法寫在一個(gè)矩形框內(nèi),在該框流程圖中,完全去掉了帶箭頭的流程線。全部算法寫在一個(gè)矩形框內(nèi),在該框內(nèi)還可以包含其它的從屬于它的框,或者說(shuō),由一些基本的框組成一個(gè)大的框。內(nèi)還可以包含其它的從屬于它的框,或者說(shuō),由一些基本
5、的框組成一個(gè)大的框。這種流程圖又稱這種流程圖又稱N-SN-S結(jié)構(gòu)化流程圖結(jié)構(gòu)化流程圖 。11 ;. N-SN-S流程圖用以下的流程圖符號(hào):流程圖用以下的流程圖符號(hào): (1)順序結(jié)構(gòu)順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)選擇結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)12 ;. 例例4.4:用用NS圖描述圖描述“輾轉(zhuǎn)相除法輾轉(zhuǎn)相除法”求任意兩個(gè)整數(shù)間的最大公約數(shù)。求任意兩個(gè)整數(shù)間的最大公約數(shù)。輸入兩個(gè)數(shù)輸入兩個(gè)數(shù)m,n求余數(shù)求余數(shù)r=m%nr是否為是否為0否否m=n, n=r,r=m%n是是輸出最大公約數(shù)輸出最大公約數(shù)n輸入兩個(gè)數(shù)輸入兩個(gè)數(shù)m,n求余數(shù)求余數(shù)r=m%n當(dāng)當(dāng)r!=0m=nn=rr=m%n輸出最大公約數(shù)輸出最大公約數(shù)
6、n13 ;.4.2 條件判斷條件判斷4.2.1 關(guān)系運(yùn)算和關(guān)系表達(dá)式關(guān)系運(yùn)算和關(guān)系表達(dá)式操作數(shù)操作數(shù)關(guān)系運(yùn)算符關(guān)系運(yùn)算符關(guān)系表達(dá)式的關(guān)系表達(dá)式的計(jì)算結(jié)果計(jì)算結(jié)果 = = 邏輯值(真或假)邏輯值(真或假)在在C C語(yǔ)言中,語(yǔ)言中,“0 0”表示表示“假假”,“1 1”表示表示“真真”操作數(shù)操作數(shù)關(guān)系運(yùn)算符用于測(cè)試兩個(gè)操作數(shù)或兩個(gè)表達(dá)式之間的關(guān)系,關(guān)系運(yùn)算符用于測(cè)試兩個(gè)操作數(shù)或兩個(gè)表達(dá)式之間的關(guān)系,其中操作數(shù)可其中操作數(shù)可以是變量、常量或表達(dá)式以是變量、常量或表達(dá)式。14 ;.4.2 條件判斷條件判斷4.2.1 關(guān)系運(yùn)算和關(guān)系表達(dá)式關(guān)系運(yùn)算和關(guān)系表達(dá)式關(guān)系運(yùn)算符關(guān)系運(yùn)算符操作數(shù)操作數(shù)1 1操作數(shù)操
7、作數(shù)2 2關(guān)系運(yùn)算符關(guān)系運(yùn)算符15 ;.優(yōu)先級(jí)與結(jié)合性:優(yōu)先級(jí)與結(jié)合性:優(yōu)先級(jí):優(yōu)先級(jí): (1)在關(guān)系運(yùn)算符中:)在關(guān)系運(yùn)算符中:,=, ,num2的值的值 (2)(num1num2)!=num3的值的值 (3)num1num2num3的值的值 思考題:任意改變思考題:任意改變num1或或num2的值,會(huì)影響整個(gè)表達(dá)式的值嗎?的值,會(huì)影響整個(gè)表達(dá)式的值嗎? (4)(num1num2)+num3 再次強(qiáng)調(diào):再次強(qiáng)調(diào):C語(yǔ)言用整數(shù)語(yǔ)言用整數(shù)“1”表示表示“邏輯真邏輯真”,用整數(shù),用整數(shù)“0”表示表示“邏輯邏輯假假”。所以,關(guān)系表達(dá)式的值還可以參與其它種類的運(yùn)算,例如算術(shù)運(yùn)。所以,關(guān)系表達(dá)式的值還可
8、以參與其它種類的運(yùn)算,例如算術(shù)運(yùn)算、邏輯運(yùn)算等。算、邏輯運(yùn)算等。17 ;.4.2 條件判斷條件判斷4.2.2 邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式運(yùn)算運(yùn)算運(yùn)算符運(yùn)算符表達(dá)式表達(dá)式邏輯邏輯“與與”&operand1 & operand2邏輯邏輯“或或”|operand1 | operand2邏輯邏輯“非非”!operand1 邏輯運(yùn)算符用于連接一個(gè)或多個(gè)條件,判斷這些條件是否成立邏輯運(yùn)算符用于連接一個(gè)或多個(gè)條件,判斷這些條件是否成立邏輯運(yùn)算符的類型為:邏輯運(yùn)算符的類型為:18 ;. 邏輯“與”運(yùn)算符 &所有學(xué)科及格考勤率達(dá)到 75%留級(jí)留級(jí)留級(jí)升級(jí)YesNoNoN
9、oNoYesYesYes19 ;.表達(dá)式表達(dá)式 1 1表達(dá)式表達(dá)式 2 2結(jié)果結(jié)果000010100111邏輯“與”運(yùn)算符 &所有學(xué)科及格考勤率達(dá)到 75%留級(jí)留級(jí)NoNo升級(jí)YesYes留級(jí)NoYes留級(jí)留級(jí)NoYes20 ;.邏輯“或”運(yùn)算符 |無(wú)法支付可支付可支付可支付YesNoNoNoNoYesYesYes購(gòu)物帳單信用卡21 ;.現(xiàn)金信用卡邏輯“或”運(yùn)算符 |表達(dá)式 1表達(dá)式 2結(jié)果000011101111無(wú)法支付NoNo可支付NoYes可支付NoYes可支付YesYes22 ;.邏輯“非”運(yùn)算符 !不帶傘帶傘NoYes天氣 NOT 陰天23 ;.邏輯“非”運(yùn)算符 !表達(dá)式結(jié)果
10、1001天氣 NOT 陰天真真假帶傘操作不帶傘24 ;.邏輯運(yùn)算符總結(jié)所有學(xué)所有學(xué)科科及格及格考勤率達(dá)考勤率達(dá)到到 75%&天氣天氣 NOT 陰天陰天只有當(dāng)兩個(gè)兩個(gè)條件都為真真時(shí)才執(zhí)行操作只要任何任何一個(gè)條件為真真時(shí)就執(zhí)行操作對(duì)原條件取反取反,即:如果原條件為假時(shí)就執(zhí)行操作|!25 ;.邏輯運(yùn)算符的優(yōu)先級(jí)邏輯運(yùn)算符的優(yōu)先級(jí)(1)邏輯非的優(yōu)先級(jí)最高,邏輯與次之,邏輯或最低)邏輯非的優(yōu)先級(jí)最高,邏輯與次之,邏輯或最低 .即:即:?。ǚ牵。ǚ牵?&(與)(與) |(或)(或)(2)與其它種類運(yùn)算符的優(yōu)先關(guān)系)與其它種類運(yùn)算符的優(yōu)先關(guān)系 ! 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 關(guān)系運(yùn)算符關(guān)系運(yùn)算符
11、 & | 賦值運(yùn)算符賦值運(yùn)算符 逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符例例 a=x & xb&xy a=b|x=y !a|ab/ (a=x) & (xb)&(xy)/(a=b)|(x=y)/(!a)|(ab)26 ;.邏輯表達(dá)式的值邏輯表達(dá)式的值例如,假設(shè)例如,假設(shè)num=12,則:,則: !num的值的值 num=1 num31的值的值C C語(yǔ)言中語(yǔ)言中, ,運(yùn)算量運(yùn)算量: : 0 0表示表示“假假”, 非非0 0表示表示“真真”, , 運(yùn)算結(jié)果運(yùn)算結(jié)果: : 0 0表示表示“假假”, 1 1表示表示“真真”, ,邏輯運(yùn)算符01127 ;.(1)邏輯運(yùn)算符兩側(cè)的操作數(shù),
12、除可以是和非的整數(shù)外,也可以是其它任何類型的數(shù)據(jù),如實(shí)型、字符型等。a&b(2) 說(shuō)明說(shuō)明短路特性短路特性邏輯運(yùn)算符28 ;.例例 a&b&c /只在只在a為真時(shí),才判別為真時(shí),才判別b的值;的值; 只在只在a、b都為真時(shí),才判別都為真時(shí),才判別 c的值的值例例 a|b|c /只在只在a為假時(shí),才判別為假時(shí),才判別b的值;的值; 只在只在a、b都為假時(shí),才判別都為假時(shí),才判別 c的值的值例例 a=1;b=2;c=3;d=4;m=1;n=1; (m=ab)&(n=cd)/結(jié)果結(jié)果m=0,n=1例如例如:執(zhí)行以下語(yǔ)句后,執(zhí)行以下語(yǔ)句后,x,y,z的值分別為()的值分
13、別為() int x=0,y=0,z=0; +x|+y&+z; 邏輯運(yùn)算符29 ;.4.3 用用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)4.3.1 if語(yǔ)句的語(yǔ)句的3種形式種形式 用用if語(yǔ)句可以構(gòu)成分支結(jié)構(gòu)。它對(duì)給定的條件進(jìn)行判斷,根據(jù)判斷的結(jié)果語(yǔ)句可以構(gòu)成分支結(jié)構(gòu)。它對(duì)給定的條件進(jìn)行判斷,根據(jù)判斷的結(jié)果(真或假)來(lái)決定執(zhí)行某個(gè)分支程序段。(真或假)來(lái)決定執(zhí)行某個(gè)分支程序段。n1. 單選擇單選擇:v格式:格式:if (expression) statementv執(zhí)行過(guò)程:執(zhí)行過(guò)程:表達(dá)式表達(dá)式真真假假語(yǔ)句語(yǔ)句例:例: if(xy) printf(“%d”, x);30 ;.# inclu
14、de main() int num1, num2, sum; printf(n請(qǐng)輸入兩個(gè)數(shù):); scanf(%d %d, &num1,&num2); sum = num1+ num2 ; if(sum 100) printf(n兩數(shù)的和大于 100 n );簡(jiǎn)單簡(jiǎn)單if語(yǔ)句的示例語(yǔ)句的示例內(nèi)存內(nèi)存num1num2sum5678134請(qǐng)輸入兩個(gè)數(shù):56 78兩數(shù)的和大于 1004.3 用用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)31 ;.l2. 雙選雙選:v格式格式:if (expression) statement1 else statement2v執(zhí)行過(guò)程:執(zhí)行過(guò)程:例:例:i
15、f (xy) printf(%d,x); else printf(%d,y);表達(dá)式表達(dá)式真真假假語(yǔ)句語(yǔ)句1語(yǔ)句語(yǔ)句24.3 用用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)32 ;.4.3 用用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)修改上例# include main() int num1, num2, sum; printf(n請(qǐng)輸入兩個(gè)數(shù):); scanf(%d %d, &num1,&num2); sum = num1+ num2 ; if(sum 100) printf(n兩數(shù)的和大于 100 n ); else printf(“n兩數(shù)的和小于100n”);33 ;.#inclu
16、de main()int num;printf(n請(qǐng)輸入一個(gè)整數(shù):); scanf (%d,&num);if(num % 2) = 0)printf(%d 是一個(gè)偶數(shù)。n,num); elseprintf(%d 是一個(gè)奇數(shù)。n,num);if-else語(yǔ)句的示例語(yǔ)句的示例內(nèi)存內(nèi)存num57請(qǐng)輸入一個(gè)整數(shù):5757 是一個(gè)奇數(shù)。4.3 用用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)34 ;.問(wèn)題描述:?jiǎn)栴}描述: 判定給定的年份是否為閏年。判定給定的年份是否為閏年。提示:閏年的判定規(guī)則為:能被提示:閏年的判定規(guī)則為:能被 4 整除但不能被整除但不能被 100 整除的年份,或能被整除的年份,或能被
17、 400 整除的年份。整除的年份。 #include main() int year; printf(n 請(qǐng)輸入年份:); scanf(%d,&year); if(year % 4 =0 & year % 100 != 0) | (year % 400 = 0) printf(n %d 年是閏年 n , year); else printf(n %d 年不是閏年 n , year);請(qǐng)輸入年份:20052005 年不是閏年4.3 用用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)35 ;.問(wèn)題描述:輸入一個(gè)問(wèn)題描述:輸入一個(gè)5位數(shù),判斷它是不是回文數(shù)。位數(shù),判斷它是不是回文數(shù)。例如:例如
18、:12321是回文數(shù),個(gè)位與萬(wàn)位相同,十位與千位相同。是回文數(shù),個(gè)位與萬(wàn)位相同,十位與千位相同。 #include main()long ge,shi,qian,wan,x;printf(n 請(qǐng)輸入一個(gè)五位整數(shù):);scanf(%ld,&x);wan=x/10000; /分解出萬(wàn)位數(shù)qian=x%10000/1000; /分解出千位數(shù)shi=x%100/10; /分解出十位數(shù)ge=x%10; /分解出個(gè)位數(shù)if (ge=wan & shi=qian) /*個(gè)位等于萬(wàn)位并且十位等于千位*/printf(n 這個(gè)數(shù)是回文數(shù)n);elseprintf(n 這個(gè)數(shù)不是回文數(shù)n);輸出:
19、請(qǐng)輸入一個(gè)五位整數(shù):45654這個(gè)數(shù)是回文數(shù)4.3 用用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)36 ;.如:if(a=b&x=y) printf(“a=b,x=y”); int x=3,y; if (x=5) y=3; if(3) printf(“OK”); if(a) printf(“%d”,a); l說(shuō)明:uif后面的表達(dá)式類型任意uif(x) if(x!=0) if(!x) if(x=0)uif和else后面只含一個(gè)語(yǔ)句,也可以是復(fù)合語(yǔ)句(用括起來(lái))uelse不能作為語(yǔ)句單獨(dú),它必須與if配對(duì)使用 4.3 用用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)37 ;.例例 考慮下面程序的輸出結(jié)
20、果考慮下面程序的輸出結(jié)果: #include main() int x,y; scanf(“%d,%d”,&x,&y); if(xy) x=y; y=x; else x+; y+; printf(“%d,%dn”,x,y);編譯錯(cuò)誤!4.3 用用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)38 ;.if (表達(dá)式1)語(yǔ)句1;else if (表達(dá)式2)語(yǔ)句2;else if (表達(dá)式3)語(yǔ)句3;.else 語(yǔ)句n;3. 階梯式 if-else-if 真真 假 真真假真真 假 4.3 用用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)39 ;.表達(dá)式表達(dá)式1真真假假語(yǔ)句語(yǔ)句1語(yǔ)句語(yǔ)句2表達(dá)式表達(dá)式
21、2表達(dá)式表達(dá)式3語(yǔ)句語(yǔ)句3語(yǔ)句語(yǔ)句4真真假假真真假假4.3 用用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)40 ;.階梯式階梯式 if 結(jié)構(gòu)示例結(jié)構(gòu)示例問(wèn)題描述:?jiǎn)栴}描述:編寫一個(gè)程序,根據(jù)用戶輸入的期末考試成績(jī),輸出相應(yīng)的成績(jī)?cè)u(píng)定信息。編寫一個(gè)程序,根據(jù)用戶輸入的期末考試成績(jī),輸出相應(yīng)的成績(jī)?cè)u(píng)定信息。成績(jī)大于等于成績(jī)大于等于90分輸出分輸出“優(yōu)優(yōu)”;成績(jī)大于等于;成績(jī)大于等于80分小于分小于90分輸出分輸出“良良”;成;成績(jī)大于等于績(jī)大于等于60分小于分小于80分輸出分輸出“中中”;成績(jī)小于;成績(jī)小于60分輸出分輸出“差差”。 4.3 用用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)41 ;.#inclu
22、de main()float grade;printf(n 請(qǐng)輸入期末考試成績(jī): );scanf(%f, &grade);if(grade=90)printf(n 優(yōu));else if (grade=80) & (grade=60) & (grade 0) if (y 1) z = 1;else /*這個(gè) else 部分屬于哪個(gè) if?*/ z = 2; C語(yǔ)言規(guī)定,每個(gè) else 部分總屬于前面最近的那個(gè)缺少對(duì)應(yīng)的 else 部分的 if 語(yǔ)句。提倡使用大括號(hào)括起來(lái)以避免看起來(lái)有二義性。45 ;. 考慮下面程序輸出結(jié)果: main() int x=100,a=10,b
23、=20; int v1=5,v2=0; if(ab) if(b!=15) if(!v1) x=1; else if(v2) x=10; x=-1; printf(“%d”,x); 結(jié)果:結(jié)果:-146 ;.編程設(shè)計(jì)一個(gè)簡(jiǎn)單的猜數(shù)游戲:先由計(jì)算機(jī)編程設(shè)計(jì)一個(gè)簡(jiǎn)單的猜數(shù)游戲:先由計(jì)算機(jī)“想想”一個(gè)數(shù),請(qǐng)人猜。如果人猜對(duì)一個(gè)數(shù),請(qǐng)人猜。如果人猜對(duì),則計(jì)算機(jī)給出提示,則計(jì)算機(jī)給出提示“正確正確”,否則提示,否則提示“錯(cuò)誤錯(cuò)誤”,并告訴人所猜的數(shù)是大還是,并告訴人所猜的數(shù)是大還是小。小。#include #include main() int magic;/*定義計(jì)算機(jī)“想”的數(shù)*/ int guess
24、;/*定義人猜的數(shù)*/ magic=rand(); printf(請(qǐng)輸入你的猜測(cè):); scanf(%d,&guess); if(guessmagic) printf(錯(cuò)誤!你猜的數(shù)大了); else if(guess100) value=y;else value=n;value = num 100 ? y : n;(1)(0)條件表達(dá)式使用使用“if-else”的等同代碼的等同代碼 假設(shè) num = 200 value = num 100;? y : n200value=y50 ;. 優(yōu)先級(jí)優(yōu)先級(jí): 13 條件運(yùn)算符可嵌套條件運(yùn)算符可嵌套 如如 x0?1:(xb?a:cd?c:d a
25、b?a:(cd?c:d) expr1、expr2、expr3類型可不同,表達(dá)式值取較高的類型類型可不同,表達(dá)式值取較高的類型例例 x?a:b /x=0,表達(dá)式值為表達(dá)式值為b; x0,表達(dá)式值為表達(dá)式值為a xy?1:1.5 /xy ,值為值為1.0; xy ,值為值為1.5條件運(yùn)算符51 ;.條件運(yùn)算符示例問(wèn)題描述:?jiǎn)栴}描述:個(gè)人所得稅收取規(guī)定:工資大于個(gè)人所得稅收取規(guī)定:工資大于1000元的部分將扣除元的部分將扣除5的個(gè)人所得稅。小的個(gè)人所得稅。小于于1000元的部分不扣除個(gè)人所得稅。要求用戶輸入基本工資,計(jì)算稅后工資。元的部分不扣除個(gè)人所得稅。要求用戶輸入基本工資,計(jì)算稅后工資。 #in
26、clude void main()double sal;double rate;printf(n 請(qǐng)輸入基本工資:);scanf(%lf,&sal);rate= (sal=1000) ? 0 : 0.05;sal=sal-(sal-1000)*rate;printf(n 稅后工資為:%7.2f n,sal); 請(qǐng)輸入基本工資:1500稅后工資為:1475.0052 ;.printf(“這是邁克爾,身高 180cm,加利福尼亞第 12 大街”);printf(“這是丹尼爾,身高 193cm,現(xiàn)居住地不明,1998 年 12 月 12 日在佛羅里達(dá)被捕”);printf(“這是吉姆,身高
27、175cm,墨西哥州海鷗路弗羅拉公寓,于 2003 年 11 月 1 日在新澤西因搶銀行被捕”);printf(“未發(fā)現(xiàn)匹配項(xiàng)。對(duì)不起!”);停止搜索停止搜索停止搜索停止搜索警察記錄嫌疑犯照片不是這是吉姆,身高 175cm,墨西哥州海鷗路弗羅拉公寓,于 2003 年 11 月 1 日在新澤西因搶銀行被捕不是是4.4 利用利用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)53 ;.switch-case 語(yǔ)句是多路判斷語(yǔ)句語(yǔ)句是多路判斷語(yǔ)句switch 語(yǔ)句計(jì)算條件表達(dá)式并對(duì)照多個(gè)常數(shù)值進(jìn)行檢查語(yǔ)句計(jì)算條件表達(dá)式并對(duì)照多個(gè)常數(shù)值進(jìn)行檢查switch (表達(dá)式) case 常量 1:語(yǔ)句
28、;break; case 常量 2:語(yǔ)句;break;default:語(yǔ)句;計(jì)算表達(dá)式的值如果等于常量1 如果等于常量2 如果沒(méi)有找到匹配的值 4.4 利用利用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)54 ;.閱讀程序,分析結(jié)果閱讀程序,分析結(jié)果 main() int score; scanf(“%d”,&score): switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default
29、 : printf(“data error!”); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:score為為5時(shí),輸出:時(shí),輸出:Very good! Good! Pass! Fail! data error!4.4 利用利用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)55 ;.在使用在使用switch結(jié)構(gòu)時(shí)應(yīng)注意以下幾點(diǎn):結(jié)構(gòu)時(shí)應(yīng)注意以下幾點(diǎn): 在在case后的各常量表達(dá)式的值不能相同,否則會(huì)出現(xiàn)錯(cuò)誤;后的各常量表達(dá)式的值不能相同,否則會(huì)出現(xiàn)錯(cuò)誤; 在在case后,允許有多個(gè)語(yǔ)句,可以不用后,允許有多個(gè)語(yǔ)句,可以不用括起來(lái);括起來(lái); 每個(gè)每個(gè)case語(yǔ)句后都必須有一個(gè)語(yǔ)句后都必須有一個(gè)break語(yǔ)句,
30、否則會(huì)出現(xiàn)錯(cuò)誤;語(yǔ)句,否則會(huì)出現(xiàn)錯(cuò)誤; 各各case和和default子句的先后順序可以變動(dòng),而不會(huì)影響程序執(zhí)行結(jié)子句的先后順序可以變動(dòng),而不會(huì)影響程序執(zhí)行結(jié)果;果; default子句可以省略;子句可以省略;4.4 利用利用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)56 ;.switch 結(jié)構(gòu)示例問(wèn)題描述:?jiǎn)栴}描述:要求用戶輸入一個(gè)字符值并檢查它是否為元音字母。要求用戶輸入一個(gè)字符值并檢查它是否為元音字母。 char in_char;printf(n 請(qǐng)輸入一個(gè)小寫字母: );scanf(%c, &in_char);switch(in_char) case a: pri
31、ntf(n 您輸入的是元音字母 an); break; case e: printf(n 您輸入的是元音字母 en); break; case i: printf(n 您輸入的是元音字母 in); break; case o: printf(n 您輸入的是元音字母 on); break; case u: printf(n 您輸入的是元音字母 un); break; default: printf(n 您輸入的不是元音字母 n); 內(nèi)存內(nèi)存in_chare請(qǐng)輸入一個(gè)小寫字母:e您輸入的是元音字母 e4.4 利用利用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)57 ;.問(wèn)題描述:?jiǎn)栴}描
32、述:要求判別鍵盤輸入字符的類別??梢愿鶕?jù)輸入字符的要求判別鍵盤輸入字符的類別??梢愿鶕?jù)輸入字符的ASCII碼來(lái)判別類型。碼來(lái)判別類型。由由ASCII碼表可知碼表可知ASCII碼值小于碼值小于32的為控制字符。的為控制字符。 在在09之間的為數(shù)字,之間的為數(shù)字,在在AZ之間為大寫字母,之間為大寫字母, 在在az之間為小寫字母,其余則為其它字符。之間為小寫字母,其余則為其它字符。 main()char c;printf(n 請(qǐng)輸入一個(gè)字符: );c=getchar();if(c=0&c=A&c=a&c=z)printf(n 該字符是一個(gè)小寫字母。n);elseprintf(n 該字符是其他字符。n); 內(nèi)存內(nèi)存cE請(qǐng)輸入一個(gè)字符:E該字符是一個(gè)大寫字母58 ;.問(wèn)題描述:?jiǎn)栴}描述:編寫一個(gè)簡(jiǎn)單的計(jì)算器,實(shí)現(xiàn)兩個(gè)整型數(shù)的四則運(yùn)算。編寫一個(gè)簡(jiǎn)單的計(jì)算器,實(shí)現(xiàn)兩個(gè)整型數(shù)的四則運(yùn)算。 main() int a,b;char op; printf(n 輸入操作數(shù)1,運(yùn)算符,操作數(shù)2: ); scanf(%d,%c,%d,&a,&op,&b); swit
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45724-2025遙感衛(wèi)星的星地?cái)?shù)傳鏈路設(shè)計(jì)方法
- GB/T 18501.8100-2025電子和電氣設(shè)備用連接器產(chǎn)品要求第8-100部分:電源連接器2芯、3芯20 A功率加2芯信號(hào)塑料外殼屏蔽密封連接器詳細(xì)規(guī)范
- 應(yīng)用電子技術(shù)專業(yè)教學(xué)標(biāo)準(zhǔn)(高等職業(yè)教育??疲?025修訂
- 2024年中國(guó)耐堿膠布市場(chǎng)調(diào)查報(bào)告
- 內(nèi)科疾病診療精要
- 2025年中國(guó)酒類奢侈品行業(yè)市場(chǎng)調(diào)查研究及投資前景預(yù)測(cè)報(bào)告
- 2025年中國(guó)船用雷達(dá)行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃報(bào)告
- 2025年中國(guó)礦用壓縮分離設(shè)備行業(yè)市場(chǎng)深度分析及投資策略咨詢報(bào)告
- 稅務(wù)師老師講課課件下載
- 2023-2029年中國(guó)貴州省大數(shù)據(jù)行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- GB/T 6438-2007飼料中粗灰分的測(cè)定
- GB/T 12668.501-2013調(diào)速電氣傳動(dòng)系統(tǒng)第5-1部分:安全要求電氣、熱和能量
- GB 2759-2015食品安全國(guó)家標(biāo)準(zhǔn)冷凍飲品和制作料
- 全國(guó)高中生物優(yōu)質(zhì)課一等獎(jiǎng)《袁隆平與雜交水稻》教學(xué)設(shè)計(jì)
- 高校輔導(dǎo)員手冊(cè)
- 國(guó)開電大 社會(huì)統(tǒng)計(jì)學(xué) 形考任務(wù)2答案
- 五年級(jí)英語(yǔ)質(zhì)量調(diào)研卷答題卡
- 二年級(jí)下冊(cè)語(yǔ)文試題 河南省商丘市永城市 第二學(xué)期二年級(jí)語(yǔ)文期末試題(圖片版無(wú)答案)部編版
- 工業(yè)機(jī)器人技術(shù)與智能制造
- 建筑工程聯(lián)營(yíng)合作協(xié)議(合同)
- 最新版焊接工藝評(píng)定格式標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論