《C語(yǔ)言程序設(shè)計(jì)》教案第三章程序的控制結(jié)構(gòu)—選擇結(jié)構(gòu)if_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》教案第三章程序的控制結(jié)構(gòu)—選擇結(jié)構(gòu)if_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》教案第三章程序的控制結(jié)構(gòu)—選擇結(jié)構(gòu)if_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》教案第三章程序的控制結(jié)構(gòu)—選擇結(jié)構(gòu)if_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》教案第三章程序的控制結(jié)構(gòu)—選擇結(jié)構(gòu)if_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余3頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)習(xí)好資料歡迎下載C語(yǔ)言程序設(shè)計(jì)課程教案表授課題目課時(shí)安排1第一章程序的控制結(jié)構(gòu)(3)選擇結(jié)構(gòu)if授課時(shí)間教學(xué)目的和要求1 .掌握:條件表達(dá)式、if語(yǔ)句2 .熟悉:關(guān)系運(yùn)算符和關(guān)系表達(dá)式、邏輯運(yùn)算符和邏輯表達(dá)式教學(xué)內(nèi)容1 .基本內(nèi)容:(1)關(guān)系運(yùn)算符和關(guān)系表達(dá)式(2)邏輯運(yùn)算符和邏輯表達(dá)式(3)條件語(yǔ)句2 .重點(diǎn):條件語(yǔ)句講課進(jìn)程和時(shí)間分配引子(15分鐘)關(guān)系運(yùn)算就是比較運(yùn)算,即將兩個(gè)數(shù)據(jù)進(jìn)行比較,判定兩個(gè)數(shù)據(jù)是否符合給定的關(guān)系。a > b a = = b a ! = b1、關(guān)系運(yùn)算符和關(guān)系表達(dá)式(1)關(guān)系運(yùn)算符及其優(yōu)先次序1)關(guān)系運(yùn)算符C語(yǔ)言中關(guān)系運(yùn)算符為二目運(yùn)算符,共有6種:>

2、 小于關(guān)系運(yùn)算符> =小于等于> 大于> =大于等于=等于)!二不等于關(guān)系操作數(shù)可以是數(shù)值類型數(shù)據(jù)和字符型數(shù)據(jù)。2)關(guān)系運(yùn)算符的優(yōu)先級(jí)<、<=、> 和 >=為同一級(jí),=和!=為同一級(jí)。且前4個(gè)高于后2個(gè);結(jié)合方向 均為自左至右。關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符,但高于賦值運(yùn)算符。例如:a+b > b+c 等效于(a+b)>(b+c)。(2+a)=(b-a) 等效于 2+a = b-a。(2)關(guān)系表達(dá)式1)關(guān)系表達(dá)式的概念是指用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)進(jìn)行關(guān)系運(yùn)算的式子。例如:a + b > b + c比較兩個(gè)算術(shù)表達(dá)式的值a &

3、lt;= 2 * b比較變量和算術(shù)表達(dá)式的值a' < 'b'比較兩個(gè)字符的 ASCII碼值2)關(guān)系表達(dá)式的值 一邏輯值(真”或 假”)由于C語(yǔ)言沒(méi)有邏輯型數(shù)據(jù),所以,用整數(shù)“1 ”表示 邏輯真”,用整數(shù)“昧示 邏輯假”例如,假設(shè)a=3, b=4, c=5則:a>b的值為0 (假)。(a>b)!=c的值為1 (真)。(a<b)+c 的值為 6, 因?yàn)?a<b的值為 1, 1+5=6。注意:C語(yǔ)言用整數(shù)1”表示 邏輯真”,用整數(shù)0”表示 邏輯假”。所以,關(guān)系表達(dá)式的值,還可以參與其它種類的運(yùn)算,例如算術(shù)運(yùn)算、邏輯運(yùn)算等。3)關(guān)系運(yùn)算符的結(jié)合律C

4、語(yǔ)言規(guī)定關(guān)系表達(dá)式采取左結(jié)合律。表達(dá)式中出現(xiàn)優(yōu)先級(jí)別為同一級(jí)別的運(yùn)算符時(shí),則按從左到右結(jié)合方向處理。例如:int a=2,b=3,c=1 ;a>b<c 值:1先計(jì)算a>b,值是0 ,再計(jì)算0<c,值是16>3<2 值:1先計(jì)算6>3,值是1 ,再計(jì)算1<2,值為12、邏輯運(yùn)算符和邏輯表達(dá)式(1 )邏輯運(yùn)算符C語(yǔ)言提供3種邏輯運(yùn)算符:&& 邏輯與(相當(dāng)于“同時(shí)”)|邏輯或(相當(dāng)于“或者”)!邏輯非(相當(dāng)于“否定”)其中,&窗口 |為雙目運(yùn)算符,且結(jié)合方向?yàn)樽宰笾劣遥?!為單目運(yùn)算符,僅對(duì)其右邊的操作 數(shù)進(jìn)行邏輯求反運(yùn)算。1)

5、邏輯非!邏輯非是一元運(yùn)算符。操作數(shù)值為0,邏輯非運(yùn)算的結(jié)果為1(邏輯真);當(dāng)操作數(shù)值為非0時(shí),邏輯非運(yùn)算的結(jié)果為 0。例如:int a=5,b=3;!a結(jié)果:0!(a < b)結(jié)果:1。因?yàn)閍 < b 的值為02)邏輯與&&邏輯與是二元運(yùn)算,只有參加邏輯與運(yùn)算的兩個(gè)操作數(shù)值均為非0(邏輯真)時(shí),結(jié)果才為真。例如:int a = 5,b = 3;a && b值:1(a < b) && (a > 0)值:0,因?yàn)閍<b的值為0。3)邏輯或|邏輯或也是二元運(yùn)算,只要兩個(gè)操作數(shù)中有一個(gè)為非0(邏輯真),結(jié)果就為1。例如:in

6、t a=5,b=3a | b值:1(a < b) | (a > 0)值:1因?yàn)閍 > 0 的值為1。(2)邏輯運(yùn)算符優(yōu)先級(jí)C語(yǔ)言邏輯運(yùn)算符的優(yōu)先級(jí)規(guī)定如下:1)優(yōu)先級(jí)順序?yàn)?! 一&&- |2)與其他種類運(yùn)算符的優(yōu)先關(guān)系:高A !(非)算術(shù)運(yùn)算符關(guān)系運(yùn)算符&& 和 1|低賦值運(yùn)算符例如:! a && b > 5 計(jì)算順序:(!a)&&(b> 5) a = = b | a < c計(jì)算順序:a = = ( b | (a<c)(3)邏輯表達(dá)式1 )邏輯表達(dá)式的概念所謂邏輯表達(dá)式是指,用邏輯運(yùn)算符

7、將1個(gè)或多個(gè)表達(dá)式連接起來(lái),進(jìn)行邏輯運(yùn)算的式子。在C語(yǔ)言中,可以用邏輯表達(dá)式表示多個(gè)條件的組合。例如:!(a > b)對(duì)關(guān)系表達(dá)式的值取非,(a > b) &&(b > c)(a > b ) && (b > c ) | ( b = 0)2)邏輯量的真假判定C語(yǔ)言用整數(shù)“1 ”表示“邏輯真”,用“ 0”表示“邏輯假”。但在判斷一個(gè)表達(dá)式或變 量的“真”或“假”時(shí),如果為0,則判定為“邏輯假”;如果為非0,則判定為“邏輯真”。3 )邏輯運(yùn)算符的結(jié)合性C語(yǔ)言邏輯運(yùn)算符采用左結(jié)合律。表達(dá)式中出現(xiàn)優(yōu)先級(jí)別為同一級(jí)別的運(yùn)算符時(shí),按從左到右的結(jié)合

8、方向處理。例如:a && b && c 計(jì)算順序?yàn)椋?a&& b)&& c 。3、條件語(yǔ)句(25分鐘)(1) if語(yǔ)句的三種格式引子:例如計(jì)算分段函數(shù)y= / 3-X (X<0)L 2x (x>=0)計(jì)算x<0 ,如果結(jié)果為1:計(jì)算:y=3-x;否則,計(jì)算:y=2 * x;需要根據(jù)x的值進(jìn)行流程選擇(分支)。首先先判斷表達(dá)式的值若為非0則執(zhí)行下面的語(yǔ)句若為0則跳過(guò)該語(yǔ)句1)單分支選擇語(yǔ)句般形式:i f (表達(dá)式)語(yǔ)句假(0)表達(dá)式真(非0)語(yǔ)句例:main() float x , y;scanf( "

9、%f " , &x);y = 2 * x ;if ( x < 0 )printf( "y= %6.2f ” , y );如果x<0為真,則打印y的值,否則跳過(guò)printf( "y= %6.2f ”直蹲執(zhí)行下面的語(yǔ)句。練習(xí):運(yùn)行下面程序時(shí),若從鍵盤輸入k4<CR>,則程序的輸出結(jié)果是main()int a,b,s;scanf("%d,%d,&a,&b);s=a;if(s<b) s=b;s=s*s;printf( " %d ,s);A、14 B、16 C、18 D、202)雙分支選擇語(yǔ)句if(表

10、達(dá)式)語(yǔ)句1else 語(yǔ)句2例:輸入兩個(gè)數(shù),比較其大小,將較大的數(shù)輸出 流程分析:? (1)輸入兩個(gè)數(shù)據(jù)a,b ;? (2)如果a>b則輸出a ;否則,輸出b。#include <stdio.h>main()float a, b;scanf( "f, %f ”,&a, &b); if (a>b) printf ("%f" , a );else printf ("%f" , b );練習(xí):下面程序的輸出結(jié)果是main() int x=2,y=-1,z=2;if(y<0) z=0else z+=1;pr

11、intf("r% d,z);3)多分支選擇語(yǔ)句一般形式:if(表達(dá)式)語(yǔ)句1else if (表達(dá)式)語(yǔ)句2 else 寫一個(gè)程序完成下列功能:1輸入一個(gè)分?jǐn)?shù) score2 score<60輸出E3 60<=score<70輸出D4 75<=score<80輸出C5 80<=score<90輸出B5 90<=score輸出 Amain() int score;scanf(" %d' , &score);if ( score<60) printf(" %c' ,' E');

12、else if ( score <70) printf(" %c' ,' D');else if (score <80)printf(" %c' ,' C');else if (score <90)printf( " %c' ,' B');else printf(" %c' ,'A');說(shuō)明:if語(yǔ)句中的表達(dá)式一般為關(guān)系或邏輯表達(dá)式,也可以為任何數(shù)值類型的表達(dá)式。 執(zhí)行語(yǔ)句可以是一條簡(jiǎn)單語(yǔ)句、空語(yǔ)句或復(fù)合語(yǔ)句,也可以嵌套其它流程控制語(yǔ)句。4)

13、復(fù)雜條件選擇問(wèn)題:輸入兩個(gè)字符chi和ch2,如果 ch1= 'Z'且 ch2=如',則輸出"You are right !"main() char ch1,ch2;ch1=getchar();ch2=getchar();if ( chi =&&ch2= ' B')printf( "You are right! ");練習(xí):以下不正確的語(yǔ)句為A、if(x>y);B、if(x>y) x+; y+; C、if(x=y)&&(x!=0)x+=y;D、if(x!=y) scanf

14、(" %d' ,&x);else scanf( " %d' ,&y);運(yùn)行下面程序時(shí),若從鍵盤輸入字母"b;則輸入結(jié)果是main() char c;c=getchar();if (c>=,a,&&c<=,u,) c=c+4;else if (c>=' v' &&c<= -2z; ) c=celse printf("input ernor!);putchar(c);A) g B)w C)f D) d5) if語(yǔ)句的嵌套一個(gè)if又包含一個(gè)或多個(gè)if語(yǔ)句,稱

15、為if語(yǔ)句的嵌套。在if語(yǔ)句中可以根據(jù)需要,用if語(yǔ)句的三種形式進(jìn)行互相嵌套。一般形式如下:if ()內(nèi)嵌ifif ()語(yǔ)句 1else 語(yǔ)句 2>elseif ()語(yǔ)句 3else 語(yǔ)句 4if ()if ()語(yǔ)句 1elseif ()語(yǔ)句 2else 語(yǔ)句 3>說(shuō)明:if與else的配對(duì)關(guān)系,從最內(nèi)層開(kāi)始,else總是與離它最近的未曾配對(duì)的if配對(duì)。if與else的個(gè)數(shù)最好相同,從內(nèi)層到外層一一對(duì)應(yīng),以避免出錯(cuò)。如果if與else的個(gè)數(shù)不相同,可以用花括號(hào)來(lái)確定配對(duì)關(guān)系。例如:if ()if ()語(yǔ)句 1else語(yǔ)句2>這時(shí)限定了內(nèi)嵌if語(yǔ)句的范圍,因此 else與第一個(gè)

16、if配對(duì)。例 4.3 對(duì)下面的函數(shù)編程,要求輸入一個(gè)x值,輸出對(duì)應(yīng)的 y值-1(x<0)y=0(x=0)1(x>0)方法 1: main ()int x , y;scanf C %d " , &x );if (x<0) y=-1;else if (x= =0 ) y=0;else y=1;printf (" x=%d , y=%dn ”, x, y);方法 2: main ()int x , y;scanf C %d " , &x );y=-1;if (x= =0) y=0;else if (x>0) y=1;printf

17、(" x=%d , y=%dn ”, x, y);練習(xí):運(yùn)行下面程序,若從鍵盤輸入“3和”5;則程序的輸出結(jié)果是main() int x,y;scanf("%d,%cT ,&x,&y);if(x=y) printf( "x=y" ); else if(x>y) printf("x>y” );else printf("x<y" );A) 3<5B) 5>3C) x>y執(zhí)行下列程序的輸出結(jié)果是 main() int a=258;if(a>=100) if(a>=1000) printf(D) x<y“%d is greater than n”,a);else printf( " %d is 100 tor999,a); else if(a<10) printf( " %d is less than' 10a);print

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論