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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

選擇結構程序設計(一)說明內容1.關系運算符和關系表達式2.邏輯運算符和邏輯表達式3.條件運算符及條件表達式4.IF語句5.IF語句的嵌套生活中的“十字路口”也屬于選擇結構類型。舉例說明實例講解說明舉例說明通過講解,向if語句過渡通過與前面引入的例子重點說明其格式結合實例說明其注意事項通過圖例說明嵌套的匹配關系。對比實例,詳細細化注意事項通過實例,說明分支程序設計的思想,鞏固前面所講的內容。重點1.關系運算符和關系表達式2.邏輯運算符和邏輯表達式3.條件運算符及條件表達式4.IF語句的格式使用5.IF語句的嵌套難點復雜條件的表示;IF語句的正確使用。問題提出通過前面的順序結構程序設計的介紹,我們都知道順序結構程序設計按照自上而下的流程的順序執(zhí)行,但是在實際生活中,僅順序結構是無法滿足用戶要求的,并不是所有的程序都是自上而下的順序執(zhí)行,而是根據條件有選擇的執(zhí)行。這就是我們將要學習的分支結構程序設計。詳細內容一、導入討論導入:請教學生翻譯下面的英語句子?a.IfsheisnotinClass1thenshewillbeinClass2.?b.IfitdoesnotrainthenI'llgotopark,elseI'llgotothemovie.??????創(chuàng)造情景,使學生感覺新鮮和自信,學生可以翻譯的準確無誤。此過程中,教師引導學生注意if、then、else三個詞的使用。學生歸納:條件語句的一般形式:格式1:if條件then語句組格式2:if條件then語句組1else語句組2二、if中的條件表示1.關系運算符和關系表達式在程序中經常需要比較兩個量的大小關系,以決定程序下一步的工作。比較兩個量的運算符稱為關系運算符。(1).關系運算符:操作符作用>大于>=大于等于<小于<=小于等于==等于!=不等于關系運算符都是雙目運算符,用于兩個運算對象比較。注意:不能將“<=”寫成“=<”,也不能將“>=”寫成“=>”。(2).關系表達式:用關系運算符將兩個運算對象連接起來的式子稱為關系表達式。運算對象可以是常量,可以是變量,也可是表達式。如:3>2b*b-4*a*c>=1e-6x==ya%b!=0關系表達式的值:C語言規(guī)定用數值0代表關系運算結果為“假”,用數值1代表關系運算結果為“真”。關系表達式值的數據類型為整型。設有定義inta=3,b=2,c=1;則:a>b的值為1c==a的值為0(3).優(yōu)先級和結合方向>、>=、<和<=的優(yōu)先級相同;==和!=的優(yōu)先級相同,兩組運算符優(yōu)先級從高到低的順序是:>>=<<===!=關系運算符的優(yōu)先級低于算術運算符。如:a+b>c+d等價于(a+b)>(c+d)關系運算符的結合方向都為左結合。如:a>b>c等價于(a>b)>c2、邏輯運算符和邏輯表達式(1).邏輯運算符&&邏輯與||邏輯或!邏輯非(2).邏輯表達式用邏輯運算符將關系表達式或邏輯量連接起來的式子就是邏輯表達式。運算對象一般為關系表達式或邏輯量(常量或變量)。如;x>10||x<100x==y&&a!=b5&&b如:3>2&&4>3的結果為真 3<4||4>5結果為真 !(3>2)的結果為假邏輯表達式的值:用數值0代表邏輯運算結果為“假”,用數值1代表邏輯運算結果為“真”。在判斷一個量(常量或變量)是“真”還是“假”時,C語言規(guī)定以0代表“假”,以非0代表“真”。3<4&&4>5的結果為03<4||4>5結果為1!(3>2)的結果為0(3).優(yōu)先級和結合方向三個邏輯運算符優(yōu)先級從高到低的順序為:!&&||!的優(yōu)先級高于算術運算符。&&和||的優(yōu)先級低于關系運算符。如:3>2+1&&4<2+1等價于(3>(2+1))&&(4<(2+1))&&和||的結合方向為左結合,!的結合方向為右結合。如:a>b&&c>d&&e>f等價于((a>b)&&(c>d))&&(e>f)!!!(a>b)等價于!(!(!(a>b)))3、條件運算符及條件表達式(1).條件運算符?:C語言中唯一的一個三目運算符。(2).條件表達式條件表達式的一般形式為: 表達式1?表達式2:表達式3其中,表達式i(1≤i≤3)的類型任意,表達式1一般為關系表達式或邏輯表達式,表達式2和表達式3一般為同類型表達式。條件表達式的求解過程是:先求解表達式1,若表達式1的值不為0,則求解表達式2,表達式2的值就是條件表達式的值;若表達式1的值為0,則求解表達式3,表達式3的值就是條件表達式的值。如: 3>2?3+2:3*2表達式的值為5’a’>’b’?3!=0:7==8表達式的值為0(3).優(yōu)先級和結合方向條件運算符的優(yōu)先級高于賦值運算符,但低于邏輯運算符、關系運算符和算術運算符。如:3>2?3+2:3*2等價于(3>2)?(3+2):(3*2)’a’>’b’?3!=0:7==8等價于(’a’>’b’)?(3!=0):(7==8)條件運算符的結合方向為右結合。如:注意:·條件表達式中的表達式2和表達式3只有一個被求解?!け磉_式1的類型可與表達式2和表達式3的類型不同。三、分支結構表示——IF語句在C中條件語句的一般形式為:if(表達式)語句1;else語句2;執(zhí)行過程如下:如果表達式的值為非0(TURE)即真,則執(zhí)行語句1,執(zhí)行完語句1從語句2后開始繼續(xù)向下執(zhí)行;如果表達式的值為0(FALSE)即假,則跳過語句1而執(zhí)行語句2。然后程序繼續(xù)往下執(zhí)行。所謂表達式是指關系表達式和邏輯表達式的結合式,關于表達式前面已作過介紹,這是不再重復。表達式表達式真(非0)假(0)語句1語句2注意:1.如果語句1或語句2有多于一條語句要執(zhí)行時,必須使用"{"和"}"把這些語句包括在其中,此時條件語句形式為:if(表達式)???{語句體1;}else{語句體2;}2.分支程序的三種形式(1)單分支:例1輸入一個整型數,輸出該數的絕對值。main(){inta,;scanf("%d",&a);if(a<=0)a=-a;printf("%d\n",a);}(2)上述是雙分支例2輸入兩個整型數,將平方值較大者輸出。main(){inta,b,max;scanf("%d%d",&a,&b);if(a*a>b*b)max=a;elsemax=b;printf("%5d\n",max);}(3)多分支if語句是雙分支if語句的一個擴充,其格式為:例3輸入一個百分制成績,輸出其對應的等級。(90~100為A,80~99為B,70~79為C,60~69為D,0~59為E)main(){intx;chary;scanf("%d",&x);if(x>=90)y=’A’;elseif(x>=80)y=’B’;elseif(x>=70)y=’C’; elseif(x>=60)y=’D’; elsey=’E’;printf("y=%c\n",y);}四.If嵌套格式if語句可以嵌套,即在一個if語句中又可以包含一個或多個if語句,一般形式為: if(表達式1) if(表達式2)語句1 else語句2 else if(表達式3)語句3 else語句4注意:在缺省花括號的情況下,if和else的配對關系是:從最內層開始,else總是與它上面最近的并且沒有和其他else配對的if配對。程序員應該養(yǎng)成良好的編程習慣,從書寫格式上,注意if和else的層次關系,反映if與else的配對關系。以便提高程序的維護和理解。如下if與else的配對舉例。例4已知函數y=編寫程序,輸入x,輸出y值。main(){floatx;inty;scanf("%f",&x);if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;printf("x=%fy=%d\n",x,y);}使用if語句時應注意以下幾點:①if后面圓括號內的表達式可以為任意類型,但一般為關系表達式或邏輯表達式。②if和else后面的語句可以是任意語句。③if(x)與if(x!=0)等價。④if(!x)與if(x==0)等價。五、舉例說明例5:讀入一個整數,判斷其能否被3整除。#include<stdio.h>main(){inta;printf("Enteraninteger“);scan("%d",&a);/*輸入一個整數*/if(a%3==0)/*判斷能否被3整除并輸出相應信息*/printf("%d能被3整除\n”,a);elseprintf("%d不能被3整除\n”,a);}例6從鍵盤輸入三個數,求出絕對值最大者并顯示輸出。分析:可將輸入的三個數存放于變量a,b,c中,先用a和b比較(絕對值比較),將大數存放于臨時變量max中,再用max和c比較,再將大數存放于max中,這樣進行比較之后得到的max一定為a,b,c中絕對值最大的數。程序如下:#include<stdio.h>#include〈math.h〉main(){floata,b,c;floatmax;printf(“Enter3numbers\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(c);printf("Max=%f\n",max);}例7輸入三個整數,按大小順序輸出程序如下:#include<stdio.h>main(){inta,b,c,temp;scanf(“%d,

溫馨提示

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

評論

0/150

提交評論