版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.1 選擇結(jié)構(gòu)程序設(shè)計(jì)4.2 if語句的基本形式和N-S圖4.3 switch語句 4.4 選擇結(jié)構(gòu)程序設(shè)計(jì)綜合應(yīng)用第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)2/44本章要點(diǎn)本章要點(diǎn)選擇結(jié)構(gòu)的特點(diǎn)選擇結(jié)構(gòu)程序設(shè)計(jì)的一般方法if語句和switch語句的使用方法第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)3/444.1 選擇結(jié)構(gòu)概述 結(jié)構(gòu)化程序設(shè)計(jì)中的選擇結(jié)構(gòu),與日常生活中的“選擇結(jié)構(gòu)”一樣,也是根據(jù)一個(gè)判斷條件來決定執(zhí)行哪一個(gè)分支,選擇某個(gè)分支執(zhí)行后其他分支不再執(zhí)行,選擇結(jié)構(gòu)的特點(diǎn)是根據(jù)判斷條件,有選擇地執(zhí)行其中一個(gè)分支,要且只要執(zhí)行其中一個(gè)分支。 對(duì)于選擇結(jié)構(gòu)程序設(shè)計(jì),首先要確定選擇的條件,然后找出判斷條
2、件有多少種可能,即該條件有多少種情況(值),最后再確定每種可能情況所要進(jìn)行的處理。選擇結(jié)構(gòu)程序就是根據(jù)條件,選擇程序若干個(gè)流向中的一個(gè),因此也叫分支結(jié)構(gòu)。 C語言選擇結(jié)構(gòu)中的“條件”實(shí)際上是一個(gè)表達(dá)式,它可以是算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式等,所有可以求值的表達(dá)式都是允許的。程序執(zhí)行的流向是根據(jù)表達(dá)式的值是0還是非0來決定的。非0代表?xiàng)l件成立,0代表?xiàng)l件不成立,所以條件只有兩個(gè)狀態(tài),程序執(zhí)行的流向也只可能有兩種選擇。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4/444.2 if語句 在C語言中,提供了if語句和switch語句來實(shí)現(xiàn)選擇結(jié)構(gòu)程序設(shè)計(jì)。if語句可以構(gòu)成分支結(jié)構(gòu)。它根據(jù)給定的條件進(jìn)行判斷,以決定
3、執(zhí)行某個(gè)分支程序段。if語句有三種書寫形式。同時(shí),在一個(gè)if語句中還可以包含另一個(gè)if語句,稱為if語句的嵌套。4.2.1 單分支選擇if語句 單分支選擇if語句的一般格式: if(條件表達(dá)式) 語句 說明:第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)5/44 (1) 其中()中的條件表達(dá)式一般為邏輯表達(dá)式或關(guān)系表達(dá)式,但也可以是算術(shù)表達(dá)式、賦值表達(dá)式或字符表達(dá)式,甚至可以是一個(gè)變量,這正是C語言靈活性的具體表現(xiàn)。需要特別注意的是,條件表達(dá)式外邊的括號(hào)不能省。 (2)條件表達(dá)式后面的語句,可以是簡單語句,也可以是復(fù)合語句,但只能是一個(gè)語句。如果包含多個(gè)簡單語句,則一定要用大括號(hào)括起來組成復(fù)合語句,否則得不到預(yù)期值
4、。比較以下兩段程序的輸出結(jié)果(見表4-1)。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)6/44(3) if語句的簡單形式只能處理一種可能情況(不滿足條件時(shí)不處理)。(4) 執(zhí)行過程:首先計(jì)算條件表達(dá)式的值,如果條件表達(dá)式的值為真(非零),則執(zhí)行其后的語句;否則不執(zhí)行其后的語句。執(zhí)行過程的N-S圖4.1所示。圖4.1 if語句的N-S圖條件成立不成立語句第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)7/44 【例4-1】 輸入三角形的三邊,如果構(gòu)成三角形則求三角形的面積。 三角形的判斷條件是任意兩邊之和應(yīng)大于第三邊。已知三角形的三邊長求面積的計(jì)算公式為: 分析: 任意兩邊之和大于第三邊,有三種組合,而且這三種組合必須同時(shí)成立。所以,判
5、斷三邊長是否構(gòu)成三角形可用以下判斷條件: a+bc&b+ca&a+cbareas(sa)(sb)(sc)abcs2第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)8/44 程序代碼:include /*求平方根函數(shù)sqrt包含在math.h頭文件中*/main() float a,b,c,area,s; scanf(%f,%f,%f,&a,&b,&c); if(a+bc&b+ca&a+cb) /*任意兩邊之和大于第三邊*/ /*包含多個(gè)簡單語句時(shí),一定要加構(gòu)成復(fù)語句*/ s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); pr
6、intf(The area=%.2f,area); 思考:如果去掉構(gòu)成復(fù)合語句的大括號(hào),程序運(yùn)行結(jié)果如何?第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)9/444.2.2 雙分支選擇if語句 雙分支選擇if語句的一般格式:if(條件表達(dá)式) 語句1; else 語句2; 說明: (1)其中,條件表達(dá)式和語句的要求,與if語句簡單形式的條件表達(dá)式和語句的要求相同。 (2)if語句的標(biāo)準(zhǔn)形式能處理有兩種可能的情況,它與if語句簡單形式相比,多了一個(gè)else(否則)部分,這部分用來處理?xiàng)l件不成立時(shí)所要進(jìn)行的操作。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)10/44 (3)執(zhí)行過程:先計(jì)算后面圓括號(hào)中條件表達(dá)式的值,若結(jié)果為真,執(zhí)行語句1而
7、不執(zhí)行語句2,否則執(zhí)行語句2而不執(zhí)行語句1,即在此類型結(jié)構(gòu)中,只執(zhí)行語句1和語句2兩者中的一個(gè)。執(zhí)行過程的N-S圖如圖4.2所示。圖4.2 if語句的標(biāo)準(zhǔn)形式的N-S圖(4)語句1和語句2后面都必須有分號(hào)“;”。條件成立不成立語句1語句2第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)11/44【例4-2】 輸入三角形的三邊,如果構(gòu)成三角形則求三角形的面積,否則提示數(shù)據(jù)錯(cuò)誤。includemain() float a,b,c,area,s; scanf(%f%f%f,&a,&b,&c); if(a+bc&b+ca&a+cb) s=(a+b+c)/2; area=sqrt(s*(
8、s-a)*(s-b)*(s-c); printf(The area=%.2f,area); else printf(data error!n); 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)12/444.2.3 多分支選擇if語句塊if語句形式的一般格式:if(表達(dá)式1) 語句1; else if(條件表達(dá)式2)語句2; else if(條件表達(dá)式3)語句3; else if(條件表達(dá)式n)語句n; else 語句n+1; 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)13/44說明:(1) 其中,條件表達(dá)式和語句的要求,與單分支選擇if語句的條件表達(dá)式和語句的要求相同。(2) 多分支選擇if語句中,有多個(gè)條件,能處理有多種可能的情況
9、。(3) 執(zhí)行過程:首先判斷條件表達(dá)式1的值,如果條件表達(dá)式1的值為真,則執(zhí)行完其后的語句,然后結(jié)束if語句,繼續(xù)執(zhí)行if語句的后繼語句。如果條件表達(dá)式1的值為假,則繼續(xù)判斷條件表達(dá)式2的值,如果條件表達(dá)式2的值為真,則執(zhí)行完其后的語句,然后結(jié)束if語句,繼續(xù)執(zhí)行if語句的后繼語句。如果條件表達(dá)式2的值為假,則繼續(xù)判斷條件表達(dá)式3,依此類推,直到找到條件表達(dá)式的值為真或判斷完所有條件表達(dá)式。當(dāng)所有條件表達(dá)式的值均為假,如果有else部分則執(zhí)行else后的語句,否則不執(zhí)行任何操作,結(jié)束整個(gè)if語句。執(zhí)行的N-S圖如圖4.3所示。 對(duì)于這種多條件的if語句,最關(guān)鍵的問題是如何科學(xué)合理地確定各個(gè)條件
10、表達(dá)式。一個(gè)簡單的方法,是先將所有情況劃分為兩個(gè)情況,一個(gè)是非常簡單且不能再分的情況,另一個(gè)是較復(fù)雜的情況,然后按同樣的方法將較復(fù)雜的情況再進(jìn)行分解,直到每個(gè)情況都是非常簡單不能再分為止。 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)14/44 在具體劃分時(shí),可將肯定情況作為簡單情況,如例4-3,也可以將否定情況作為簡單情況,如例4-4,一般建議將肯定情況作為簡單情況處理,可方便程序代碼的編寫。 圖4.3 多分支選擇if語句形式的N-S圖表達(dá)式1表達(dá)式2表達(dá)式3語句1語句2語句3語句n語句n+1表達(dá)式n成立成立成立成立不成立不成立不成立不成立第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)15/44【例4-3】 編寫程序判斷一個(gè)數(shù)的符號(hào)
11、,1表示正數(shù),0表示0,-1表示負(fù)數(shù),即當(dāng)x0時(shí),y=1;當(dāng)x=0時(shí),y=0;當(dāng)x0,當(dāng)x為正數(shù)即條件成立時(shí),是一個(gè)簡單條件,可以直接確定y=1;當(dāng)條件不成立時(shí),y還有兩個(gè)可能值,需要進(jìn)一步劃分,可再設(shè)置條件2為x=0,當(dāng)條件2成立時(shí),y的值為0,當(dāng)條件2不成立時(shí),y的值為-1。本例的判斷條件劃分如圖4.4所示,本例屬于將否定情況繼續(xù)劃分。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)16/44程序代碼:main()int x,y;scanf(%d,&x);if(x0)y=1;else if(x=0) y=0;elsey=-1;printf(y=%dn,y); 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)17/444.2.4
12、if語句的嵌套 在一個(gè)if語句中又包含一個(gè)或多個(gè)if語句時(shí),稱為if語句的嵌套。在C語言中允許多層嵌套。if語句的嵌套形式比較多,使用比較靈活,較難掌握。 if語句簡單嵌套形式的一般格式為: if(表達(dá)式)if(表達(dá)式1) 語句1else 語句2elseif(表達(dá)式2) 語句3else 語句4第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)18/44說明:(1) 在嵌套的if語句中,經(jīng)常會(huì)出現(xiàn)多個(gè)if和多個(gè)else重疊的情況,要特別注意if和else的配套問題,else要和對(duì)應(yīng)的if語句匹配,每一個(gè)else和離它(向前)最近且尚未匹配的if相匹配,有時(shí)if可以沒有相配對(duì)的else,但建議每個(gè)if都配一個(gè)else。(2
13、) 內(nèi)嵌的if語句,可以放在外層if語句的if子句中,也可放在else子句中,還可在兩個(gè)地方同時(shí)嵌套if語句。(3) 在嵌套的多個(gè)條件中,應(yīng)盡量將求值為真概率最大的條件,放在前面優(yōu)先判斷,這樣可以提高if語句的效率。(4) 在內(nèi)嵌的if語句中,還可以嵌套別的if語句。(5) 執(zhí)行過程:首先判斷表達(dá)式,如果其值為真,則執(zhí)行條件表達(dá)式的if子句;如果if子句中又嵌套有另外的if語句,則繼續(xù)判斷條件表達(dá)式1,如果條件表達(dá)式1的值為真則執(zhí)行該內(nèi)嵌if語句的if子句即語句1,如果條件表達(dá)式1的值為假且該內(nèi)嵌if語句配有else子句,則執(zhí)行該else子句即語句2,若沒有則不執(zhí)行任何操作,結(jié)束if子句的內(nèi)嵌
14、if語句返回外層的if語句;如果條件表達(dá)式 的值為假,則執(zhí)行外層if語句的else子句,如果else子句中又嵌套有另外的if語句,則繼續(xù)判斷條件表達(dá)式2,如果條件表達(dá)式2的值為真,則執(zhí)行該內(nèi)嵌if語句的if子句即語句3,如果條件表達(dá)式2的值為假且該內(nèi)嵌if語句配有else子句,則執(zhí)行該else子句即語句4,若沒有則不執(zhí)行任何操作,結(jié)束if子句的內(nèi)嵌if語句返回外層的if語句。具體過程如圖4.6所示。 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)19/44【例4-6】 將例4-2改用嵌套的if語句來實(shí)現(xiàn)。main()int x,y;scanf(%d,&x);if(x0)y=1;圖4.6 if語句簡嵌套形式的
15、N-S圖表達(dá)式表達(dá)式1表達(dá)式2成立成立成立不成立不成立不成立語句1語句2語句3語句4第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)20/44else /*此時(shí)x=0,它與外層的if語句匹配*/if(x=0)y=0;else /*此時(shí)xb)?a:b ; 條件運(yùn)算符的結(jié)合方向是自右至左,它的運(yùn)算優(yōu)先級(jí)低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,但高于賦值運(yùn)算符。條件運(yùn)算符相當(dāng)于一個(gè)標(biāo)準(zhǔn)形式的if 語句。例如:max=(ab)?a:b;可轉(zhuǎn)換為:if(ab) max=a;else max=b;用條件運(yùn)算符實(shí)現(xiàn)選擇結(jié)構(gòu)書寫簡潔,執(zhí)行效率高。 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)22/444.3 switch語句switch語句的一般格式:switch
16、(表達(dá)式) case 判斷值1: 語句(組)1 break;case 判斷值2: 語句(組)2 break; case 判斷值n: 語句(組) n; break;default : 語句(組) n+1 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)23/44說明:(1) 執(zhí)行過程:首先計(jì)算表達(dá)式的值,并用其結(jié)果值與其后各case語句的判斷值逐個(gè)比較。當(dāng)其與某個(gè)case子句的判斷值相同時(shí),則執(zhí)行case后的語句組。執(zhí)行完該case子句后所有語句后,如果沒有break語句,則不再進(jìn)行判斷,繼續(xù)逐個(gè)執(zhí)行后繼的各個(gè)case子句對(duì)應(yīng)的語句組,直至遇到break語句或執(zhí)行完switch語句的最后一個(gè)語句組;如果有break語句
17、則直接結(jié)束switch語句的執(zhí)行,轉(zhuǎn)去執(zhí)行switch語句后的語句。如果表達(dá)式的值與所有case后的判斷值均不相同時(shí),則執(zhí)行default子句下的語句組。(2) swicth語句后的條件表達(dá)式一定要用圓括號(hào)括起來,且其取值必須是整型或字符型,同時(shí)swicth的各個(gè)case子句(包括default子句)必須包含在一對(duì)大括號(hào)之中。(3) 每個(gè)判斷值是一個(gè)常數(shù)值,而不是一個(gè)范圍,這點(diǎn)與if語句的條件有很大的區(qū)別。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)24/44(4) 每個(gè)case后的判斷值應(yīng)互異。(5)各個(gè)case子句和default子句的放置位置不限,它們的出現(xiàn)順序不會(huì)影響程序執(zhí)行的結(jié)果。(6)break語句用
18、來結(jié)束switch語句的執(zhí)行。它一般位于各個(gè)case 語句組的最后,確保每個(gè)case子句執(zhí)行完后,不用執(zhí)行別的case子句對(duì)應(yīng)的語句組。有時(shí)部分case語句組后不用break語句,則說明它要與其后的case子句共用一組執(zhí)行語句,即多個(gè)case共用同一語句組。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)25/44 【例4-10】 將例4-5反過來轉(zhuǎn)換,即輸入一個(gè)整型成績分?jǐn)?shù),顯示它的等級(jí),轉(zhuǎn)換規(guī)則:90100為A等,8089為B等,7079為C等,6069為D等,059為 E等。 分析: case子句后的判斷值只能為單個(gè)值,101個(gè)整型成績值要對(duì)應(yīng)一百多個(gè)case子句,程序很長,而且重復(fù)太多效率低。所以得先將分?jǐn)?shù)值
19、進(jìn)行適當(dāng)處理。 仔細(xì)觀察B等的成績,將成績除以(整除)10后它們的商相等,因此可以先將成績除以(整除)10。 經(jīng)轉(zhuǎn)換后,10、9對(duì)應(yīng)A等,8對(duì)應(yīng)B等,7對(duì)應(yīng)C等,6對(duì)應(yīng)D等,05對(duì)應(yīng)E等。 注意,轉(zhuǎn)換后值10,它可能是正確成績值100分對(duì)應(yīng)的值,也可能是101109這段錯(cuò)誤分?jǐn)?shù)對(duì)應(yīng)值,在程序設(shè)計(jì)時(shí),要將這兩種情況區(qū)分開來,本例采用先進(jìn)行分?jǐn)?shù)有效性判斷,再進(jìn)行等級(jí)判斷的解決辦法。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)26/44程序代碼:main()char grade;int score,temp;scanf(%d,&score);if(score100 |scoregrade:%cn, score,
20、 grade);第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)28/444.4 選擇結(jié)構(gòu)程序設(shè)計(jì)綜合應(yīng)用【例4-11】 輸入3個(gè)整數(shù),按從小到大的順序輸出。 分析: 可以先比較前兩個(gè)數(shù)x和y的大小,將小數(shù)放在變量x中,大數(shù)放在變量y中,前兩個(gè)數(shù)排序結(jié)束;然后再比較y和z的大小,同樣將這兩個(gè)數(shù)中的小數(shù)放在變量y中,大數(shù)放在變量z中,后兩個(gè)數(shù)排序結(jié)束;至此,可以肯定3個(gè)數(shù)中最大值已存放在變量z中,說明3個(gè)數(shù)中最大值的位置已確定,余下來的工作只要確定前兩個(gè)數(shù)的排列位置,需要再次比較變量x和y的大小,將小數(shù)放在變量x中,大數(shù)放在變量y中,完成整個(gè)排序過程。 注意:很多初學(xué)者認(rèn)為第三次比較應(yīng)該是比較變量x和z,而不是比較變量
21、x和y,因?yàn)樽兞縳和y已經(jīng)比較過。雖然第一次比較后,變量y的值大于變量x的值,但當(dāng)變量y和z比較后,變量y中存放的是y和z中的最小值,它可能是變量y原來的值,也可能是變量z原來的值,即此時(shí)的變量y可能是一個(gè)新值,需要再與變量x比較。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)29/44例如:若x=3,y=2,z=1,比較過程如下:(1)比較x和y,將小數(shù)放在變量x中,大數(shù)放在變量y中,完成操作后:x=2,y=3;(2)比較y和z,將小數(shù)放在變量y中,大數(shù)放在變量z中,完成操作后:y=1,z=3;此時(shí),x=2,y=1,顯然要再次交換變量x和y的值。(3)比較x和y,將小數(shù)放在變量x中,大數(shù)放在變量y中,完成操作后:
22、x=1,y=2;程序代碼:main()int x,y,z,temp;scanf(%d,%d,%d,&x,&y,&z);if(xy)第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)30/44temp=x;x=y; y=temp; if(yz)temp=y;y=z; z=temp;if(xy) /*注意此條件表達(dá)式*/temp=x;x=y;y=temp;printf(%d,%d,%d,a,b,c);第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)31/44 【例4-13】 設(shè)計(jì)一個(gè)猜拳游戲,用1表示石頭,2表示布,3表示剪刀,計(jì)算機(jī)內(nèi)定一個(gè)拳值,讓用戶來猜,如果猜對(duì)則顯示“你真棒”,如果猜錯(cuò)則將計(jì)算機(jī)和用戶所出的拳都顯示
23、出來,讓用戶輸?shù)眯姆诜?。分析:?jì)算機(jī)內(nèi)定一個(gè)拳值,可直接給存放計(jì)算機(jī)拳值的變量x賦一個(gè)拳值編號(hào),如2(表示布)。用戶出拳可由用戶從鍵盤輸入一個(gè)代表拳值的編號(hào)給變量y,然后比較兩個(gè)變量的值,如果相同則用戶猜對(duì),否則用戶猜錯(cuò)。main()int x=2,y; /*計(jì)算機(jī)內(nèi)定出拳為布*/printf(請(qǐng)出拳!提示:1表示石頭,2表示布,3表示剪刀。n);scanf(%d,&x); /*用戶輸入拳值*/if(x=y)第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)32/44printf(你真棒!n);else if(xy)printf(猜錯(cuò)!計(jì)算機(jī)出拳:布,你出拳:石頭。請(qǐng)繼續(xù)努力n)elseprintf(猜錯(cuò)!計(jì)
24、算機(jī)出拳:布,你出拳:剪刀。請(qǐng)繼續(xù)努力n)思考:本游戲設(shè)計(jì)得過于簡單,沒有一點(diǎn)靈活性,有興趣的同學(xué)可以進(jìn)一步完善本程序。 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)33/44 【例4-14】 已知1986年是虎年,你能猜出2035年出生的人屬哪個(gè)生肖嗎?1923年出生的人又屬哪個(gè)生肖?請(qǐng)編寫一個(gè)程序,輸入一個(gè)人的出生年份,查找出他所屬的生肖。分析: 人的出生年份可能有成千上萬個(gè)值,而生肖只有12個(gè),說明很多年份的生肖是相同的,那么相同生肖的年份有哪些特點(diǎn)呢?1986年是虎年,按照常識(shí),1974年、1998年等都是虎年,即每隔12年又是虎年,所以虎年的特點(diǎn)是年份除以12的余數(shù)相等且都為6。同樣我們可以得出其他生肖
25、的特點(diǎn)。程序代碼:#includemain()int year,x;第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)34/44int year,x;scanf(%d,&year);if(year0)/*只處理出生年份大于0的情況*/x=year%12;switch(x)case 0:printf(猴n);break;case 1:printf(雞n);break;case 2:printf(狗n);break;第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)35/44 case 3:printf(豬n);break;case 4:printf(鼠n);break;case 5:printf(牛n);break;case 6:prin
26、tf(虎n);break;case 7:printf(兔n);break;第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)36/44 case 8:printf(龍n);break;case 9:printf(蛇n);break;case 10:printf(馬n);break;case 11:printf(羊n);elseprintf(請(qǐng)輸入一個(gè)大于0的年份n);第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)37/441下面程序段輸出的結(jié)果是( ) (2013.7單選題) main() int x=5,y; if(x0)y=1; if(x= =0)y=0; y=1; printf(%d,y);A.-5 B-1 C0D.12若執(zhí)行下列程序
27、時(shí),從鍵盤輸入數(shù)據(jù)3和4,則程序的輸出結(jié)果是( )(2013.7單選題) main() int a,b,s; scanf(%d%d,&a,&b); s=a; if(aa+b) if(ab)m=a; else m=b; else if(ba) m=a; else m=b; printf(m= %dn,m); return 0;請(qǐng)簡述程序的功能。(2013.7簡答題4分)答:輸入三個(gè)數(shù),如果最后一個(gè)數(shù)比前兩個(gè)數(shù)之和要大,則輸出前兩個(gè)數(shù)中較大的數(shù);如果最后一個(gè)數(shù)等于或者小于前兩個(gè)數(shù)之和,則輸出前兩個(gè)數(shù)中較小的數(shù)。 DB第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)38/444當(dāng)輸入2時(shí),請(qǐng)寫出下面程序的運(yùn)
28、行結(jié)果。(2013.7閱讀分析題5分)# include stdio.hint main(void) int x,y=1; scanf( %d , &x) ; switch(x) case 1: y= y+1; printf( y= % dn , y) ; case 2: y= y+2 ; printf( y= % dn , y) ; default : y= y+5 ; printf( y= % dn ,y) ; return 0;y=3y=8第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)39/445.下面程序段執(zhí)行的結(jié)果是( )(2013.4單選題)main() int x=1,y;if(x=0) y=
29、0;else y=1;printf(“x=%d,y=%dn”,x,y);A.x=0,y=0 B.x=1,y=0 C.x=0,y=1 D.x=1,y=16當(dāng)a=1,b=3,c=5,d=4時(shí),執(zhí)行下面程序段后,x的值是( )(2013.4單選題) if(ab) if(cd) x=1; else if(ac) x=2; else x=3;else x=4;A.1 B.2 C.3 D.47簡述if(表達(dá)式)語句1 else 語句2 的執(zhí)行過程。(2013.4簡答題4分)DB答:當(dāng)表達(dá)式的值為非(或滿足,或?yàn)檎妫﹫?zhí)行語句,然后執(zhí)行結(jié)構(gòu)的后續(xù)語句;如果表達(dá)式的值為,或不滿足,或?yàn)榧伲﹫?zhí)行語句,然后執(zhí)行結(jié)構(gòu)
30、的后續(xù)語句。 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)40/448閱讀下面程序,當(dāng)程序運(yùn)行后從鍵盤上輸入一個(gè)*號(hào),寫出執(zhí)行結(jié)果(2013.4閱讀分析題5分)#includemain() char ch; ch=getchar(); switch(ch); case +:printf(“+n”);break; case *:printf(“*n”); default:printf(“n”); case -:printf(“-“);break; case /:printf(“end”); * * * *第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)41/449下列程序段執(zhí)行后的輸出結(jié)果為 (2012.7單選題)int i =-1;if(i=0) printf(* * * * n);else printf (%n); ( )A. * * * * cB. % % % %C.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 志愿者制度培訓(xùn)課件
- 人力資源培訓(xùn)評(píng)估制度
- 消防常態(tài)化培訓(xùn)制度
- 組織員工培訓(xùn)管理制度
- gsp培訓(xùn)管理制度
- 護(hù)理人員分層級(jí)培訓(xùn)制度
- 培訓(xùn)考核發(fā)證管理制度
- 游樂場所人員培訓(xùn)制度
- 籃球教學(xué)培訓(xùn)制度及流程
- 山西焦煤培訓(xùn)管理制度
- 商超信息系統(tǒng)操作規(guī)定
- 如何做好一名護(hù)理帶教老師
- 房地產(chǎn)項(xiàng)目回款策略與現(xiàn)金流管理
- 花溪區(qū)高坡苗族鄉(xiāng)國土空間總體規(guī)劃 (2021-2035)
- 非連續(xù)性文本閱讀(中考試題20篇)-2024年中考語文重難點(diǎn)復(fù)習(xí)攻略(解析版)
- 專題13 三角函數(shù)中的最值模型之胡不歸模型(原卷版)
- 門診藥房西藥管理制度
- 新能源汽車生產(chǎn)代工合同
- 2025年中煤科工集團(tuán)重慶研究院有限公司招聘筆試參考題庫含答案解析
- 消防救援預(yù)防職務(wù)犯罪
- 一體化泵站安裝施工方案
評(píng)論
0/150
提交評(píng)論