c語言選擇結(jié)構(gòu)程序設(shè)計教案設(shè)計_第1頁
c語言選擇結(jié)構(gòu)程序設(shè)計教案設(shè)計_第2頁
c語言選擇結(jié)構(gòu)程序設(shè)計教案設(shè)計_第3頁
c語言選擇結(jié)構(gòu)程序設(shè)計教案設(shè)計_第4頁
c語言選擇結(jié)構(gòu)程序設(shè)計教案設(shè)計_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、實用文案選擇結(jié)構(gòu)程序設(shè)計(一)說明1.關(guān)系運算符和關(guān)系表達式2.邏輯運算符和邏輯表達式內(nèi)容3.條件運算符及條件表達式4. IF語句5. IF語句的嵌套1.關(guān)系運算符和關(guān)系表達式2.邏輯運算符和邏輯表達式重點3.條件運算符及條件表達式4. IF語句的格式使用5. IF語句的嵌套難點復雜條件的表示;IF語句的正確使用。通過前面的順序結(jié)構(gòu)程序設(shè)計的介紹,我們都知道順序結(jié)構(gòu)程序問題 提出設(shè)計按照自上而下的流程的順序執(zhí)行,但是在實際生活中,僅順序結(jié) 構(gòu)是無法滿足用戶耍求的,并不是所有的程序都是自上而下的順序執(zhí) 行,而是根據(jù)條件有選擇的執(zhí)行。這就是我們將要學習的分支結(jié)構(gòu)程序設(shè)計。一、導入討論導入:請教學生

2、翻譯下面的英語句子a. If_ she is not in Classithen she will be in Class2.b. If it does not rainthen I'll go to park,else I'll go生活中的“十to the movie.創(chuàng)造情景,使學生感覺新鮮和自信,學生可以翻字路口”也屬 于選擇結(jié)構(gòu) 回。譯的準確無誤。此過程中,教師引導學生注意if 、then、else三個詞的使用。詳細學生歸納:條件語句的一般形式:內(nèi)容格式1: if條件then語句組格式2: if 條件then 語句組1 else 語句組2二、if中的條件表示1.關(guān)系運

3、算符和關(guān)系表達式在程序中經(jīng)常需要比較兩個量的大小關(guān)系,以決定程序下一舉例說明的,作。比較兩個量的運算符稱為關(guān)系運算符。(1).關(guān)系運算符:操作符作用>>=<小于<=小于等于=T!=不等于關(guān)系運算符都是雙目運算符,用于兩個運算對象比較。注意:不能將“ <="寫成“=<”,也不能將“ >=”寫成“=>”。(2) .關(guān)系表送式:用關(guān)系運算符將兩個運算對象連接起來的式子稱為關(guān)系表達式。運算對象可以是常量,可以是變量,也可是表達式。如:3>2b*b-4*a*c>=1e-6 x= =y a%b!=0關(guān)系表達式的值:C語言規(guī)定用數(shù)值0代表

4、關(guān)系運算結(jié)果為“假”,用數(shù)值1代表關(guān)系運算結(jié)果為“真”。關(guān)系表達式值的數(shù)據(jù)類 型為整型。設(shè)后定義 int a=3,b=2,c=1;則:a>b的值為1c= =a 的值為0(3) .優(yōu)先級和結(jié)合方向>、>=、<和 < =的優(yōu)先級相同;=和!=的優(yōu)先級相同,兩組 運算符優(yōu)先級從高到低的順序是:> >=< <=!= .關(guān)系運算符的優(yōu)先級彳氐于算術(shù)運算符。如:a+b>c+d 等價于(a+b)>(c+d)關(guān)系運算符的結(jié)合方向都為左結(jié)合。如:a>b>c 等價于(a>b)>c2、邏輯運算符和邏輯表達式(1) .邏輯運算符

5、&&邏輯與|邏輯或!邏輯非(2) .邏輯表送式用邏輯運算符將關(guān)系表達式或邏輯量連接起來的式子就是邏輯 表達式。運算對象一般為關(guān)系表達式或邏輯量(常量或變量)。如;x>10|x<100 x= =y&&a!=b5&&b如:3>2&&4>3的結(jié)果為真實例講解說 明舉例說明3<4|4>5 結(jié)果為真!(3>2)的結(jié)果為假邏輯表達式的值:用數(shù)值0代表邏輯運算結(jié)果為“假”,用數(shù)值1 代表邏輯運算結(jié)果為“真”。在判個量(常量或變量)是“真” 還是“假”時,C語言規(guī)定以0代表“假”,以非0代表“真”。3&l

6、t;4&&4>5的結(jié)果為03<4|4>5 結(jié)果為1!(3>2) 的結(jié)果為0(3) .優(yōu)先級和結(jié)合方向三個邏輯運算符優(yōu)先級從高到低的順序為:! &&| !的優(yōu)先級高于算術(shù)運算符。&&F口 |的優(yōu)先級低于關(guān)系運算符。如:3>2+1&&4<2+1 等價于(3>(2+1)&&(4<(2+1)&&F口 |的結(jié)合方向為左結(jié)合,!的結(jié)合方向為右結(jié)合。如: a>b&&c>d&&e>f 等價于(a>b)&&

7、amp;(c>d)&&(e>f) !(a>b)等價于!(!(!(a>b)3、條件運算符及條件表達式(1) .條件運算符?:C語言中唯一的一個三目運算符。(2) .條件表達式條件表達式的一般形式為:表達式 1 ?表達式 2: 表達式 3其中,表達式i (1 wiW3)的類型任意,表達式 1 一般為關(guān)系表 達式或逵輯表達式,表達式2和表達式3 般為同類里表達式。條件表送式的求解過程是:先求解表送式1,若表送式1的值不為0,則求解表達 式2,表達式2的值就是條件表達式的值;若表達式1的值為0,則求解表達式 3,表達式3的值就是條件表達 式的值。如:3>2

8、?3+2:3*2表達式的值為 5'a' >' b' ?3!=0:7= =8 表達式的值為0(3) .優(yōu)先級和結(jié)合方向條件運算符的優(yōu)先級高于賦值運算符,但低于邏輯運算符、關(guān)系通過講解,向 if語句過渡通過與前面 引入的例子 重點說明其 格式運算符和算術(shù)運算符。如:3>2?3+2:3*2 等價于(3>2)?(3+2):(3*2)'a' >' b' ?3!=0:7= =8 等價于('a' >' b' )?(3!=0):(7=8)條件運算符的結(jié)合方向為右結(jié)合。如:注意:條件表達

9、式中的表達式2和表達式3只有一個被求解。,表達式1的類型可與表達式 2和表達式3的類型不同。三、分支結(jié)構(gòu)表示一一IF語句在C中條件語句的一般形式為:if(表達式)語句1;else語句2;執(zhí)行過程如下:如果表達式的值為非0(TURE)即真,則執(zhí)行語句1,執(zhí)行完語句1從語句2后開始繼續(xù)向下執(zhí)行;如果表達式的值為 0(FALSE)即假, 則跳過語句1而執(zhí)行語句2。然后程序繼續(xù)往下執(zhí)行。所謂表達式是 指關(guān)系表達式和邏輯表達式的結(jié)合式,關(guān)于表達式前面已作過介紹 ,這是不再重復。語句1語句2結(jié)合實例說1 明其注意事J項注意:1 .如果語句1或語句2有多于一條語句要執(zhí)行時,必須使用""和

10、""把這些語句包括在其中,此時條件語句形式為:if(表達式)語句體1;else語句體2;2 .分支程序的三種形式(1)單分支:例1輸入一個整型數(shù),輸出該數(shù)的絕對值。main() int a,;scanf("%d",&a);if(a<=0)a=-a;printf("%dn",a);(2)上述是雙分支例2輸入兩個整型數(shù),將平方值較大者輸出。main() int a,b,max;scanf("%d%d",&a,&b);if(a*a>b*b)max=a;elsemax=b;printf(

11、"%5dn",max);(3)多分支if語句是雙分支if語句的一個擴充,其格式為:例3輸入一個百分制成績,輸出其對應的等級。(90100為A,8099 為 B, 7079 為 C, 6069 為 D, 059 為 E)main() int x; char y;scanf("%d",&x);if(x>=90) y= ' A'else if(x>=80) y=' B'else if(x>=70) y=' C ;else if(x>=60) y= ' D'else y= &

12、#39; E'printf("y=%cn",y);四. If嵌套格式if語句可以嵌套,即在一個if語句中又可以包含一個或多個if語句,一W式為:if(表達式1)if(表達式2)語句1通過圖例說 明嵌套的匹 配關(guān)系。標準文檔else語句2 elseif(表達式3)語句3else 語句4注意:在缺省花括號的情況下,if和else的配對關(guān)系是:從最內(nèi)層開始,else總是與它上面最近的并且沒有和其他else配對的if配對。程序員應該養(yǎng)成良好的編程習慣,從書寫格式上,注意if和else的層次關(guān)系,反映if與else的配對關(guān)系。以便提高程序的維護和理 解。如下if與else的配

13、對舉例。加一個大括號使dse和第一 個if配對,應用了復合語句 可以實現(xiàn)上例的功能.通過實例,說 明分支程序 設(shè)計的思想, 鞏固前面所 講的內(nèi)容。printf ();例4已知函數(shù)-1 (x :二 0)y=10(x = 0)J(x > 0)編寫程序,輸入x,輸出y值。 main() float x; int y;scanf("%f",&x);if(x>=0)if(x>0) y=1;else y=0;else y=-1;printf("x=%f y=%dn",x,y);使用if語句時應注意以下幾點:if后面圓括號內(nèi)的表達式可以為任意

14、類型,但一般為關(guān)系表 達式或邏輯表達式。if和else后面的語句可以是任意語句。 if(x)與if(x!=0) 等價。 if(!x)與if(x= =0) 等價。五、舉例說明例5:讀入一個整數(shù),判斷其能否被3整除。#include <stdio.h> main()int a ;printf("Enter an integer“);scan("%d",&a) ;/*輸入一個整數(shù)*/if (a%3= =0)/*判斷能否被3整除并輸出相應信息*/printf("%d 能被 3 整除 n ” ,a);elseprintf("%d 不能

15、被 3 整除 n ",a);例6從鍵盤輸入三個數(shù),求出絕對值最大者并顯示輸出。分析:可將輸入的三個數(shù)存放于變量a,b,c中,先用a和b比較(絕對值比較),將大數(shù)存放于臨時變量max中,再用max和c比較,再將大數(shù)存放于 max中,這樣進行比較之后得到的max一定為a,b,c中絕對值最大的數(shù)。程序如下:#include <stdio.h>#include math.h >main () float a ,b ,c ;float max ;printf( " Enter 3 numbers n”);scanf ("%f , %f , %f ",&a,&b,&c);if (abs(a) > abs (b) max=abs(a);elsemax=abs(b);if (max < abs (c)max=abs;printf("Max=%fn",max);例7輸入三個整數(shù),按大小順序輸出程序如下:#include <stdio.h>main() int a,b,c,temp ;scanf("%d,%d,%d ,&a,&b,&c);if (

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論