C語言程序設(shè)計教學(xué)課件:基于邏輯的選擇編程_第1頁
C語言程序設(shè)計教學(xué)課件:基于邏輯的選擇編程_第2頁
C語言程序設(shè)計教學(xué)課件:基于邏輯的選擇編程_第3頁
C語言程序設(shè)計教學(xué)課件:基于邏輯的選擇編程_第4頁
C語言程序設(shè)計教學(xué)課件:基于邏輯的選擇編程_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于邏輯的選擇編程大連理工大學(xué)1基本概念邏輯的表達(dá)用if語句和switch語句實(shí)現(xiàn)選擇結(jié)構(gòu)條件運(yùn)算符基本技能編程實(shí)踐2關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符 1.關(guān)系運(yùn)算符 關(guān)系運(yùn)算是進(jìn)行比較大小的運(yùn)算,并產(chǎn)生運(yùn)算結(jié)果1(真)或 0(假)。語言中的關(guān)系運(yùn)算符有種: 、!優(yōu)先次序:前種同級,高于后種(后種同級)關(guān)系運(yùn)算符的結(jié)合性為從左到右;算術(shù)運(yùn)算符 (高)關(guān)系運(yùn)算符賦值運(yùn)算符 (低)注意!3關(guān)系表達(dá)式關(guān)系表達(dá)式的值為邏輯值,“真”或“假”. 注意: 語言沒有邏輯型數(shù)據(jù),關(guān)系表達(dá)式的真、假 是以數(shù)值“”代表“真”,以“”代表“假”。 例:設(shè) a=3, b=2, c=1 ,求下列表達(dá)式的值? cb; (

2、a-b)=1; b+cbc; (自左至右 )4邏輯運(yùn)算符 & (邏輯與) 、 | (邏輯或) 、! (邏輯非)說明:(1)“&”和“| ”是“雙目(元)運(yùn)算符”,它要求有兩個操作數(shù)。(2)“! ”是“單目(元)運(yùn)算符”,只要求有一個運(yùn)算量。(3)優(yōu)先級次序:! & |邏輯運(yùn)算符和邏輯表達(dá)式 a&b a、b均為真, 則a&b為1(真)。 a|b a、b之一為真,則a|b為1(真)。 !a 若a為真,則!a為假。 5運(yùn)算符的優(yōu)先級!(非) (高)算術(shù)運(yùn)算符 關(guān)系運(yùn)算符& 和 |賦值運(yùn)算符 (低)例a+bn+3 a=534(a+b)(n+3)6邏輯表達(dá)式規(guī)定:判斷一個邏輯量為“真、假”的方法:“非”

3、 代表“真”, “”代表“假” 例:寫出1x1&x10 1x3 & 2 | 84!0 值為:“?” b&d 值為:“? ” 例(m=ab) x=a;1. 單選擇if語句 語句零條件非零條件可以是關(guān)系式或邏輯式選擇語句if 語句102. 雙選擇if語句語句格式:if (條件) 語句組1; else 語句組2;功能:當(dāng)條件為非零時執(zhí)行語句組1否則執(zhí)行語句組2。APB非零零11if(a60) printf(“及格n”);else printf(“不及格n”);main() int a; scanf(“%d”,&a); if (a60) printf(“%dn”,a); 輸出不及格的成績例112#in

4、clude main( ) int a,b,max; printf(Input a and b=); scanf(%d%d,&a, &b); /* input number a and b*/ if ( ab ) max=a; /*如果ab,則將a=max */ else max=b; /* 否則, b=max */ printf(The max of a and b is : %dn, max);ab?max=bmax=aYN求a和b兩數(shù)中較大的一個例213 說出下列程序的輸出結(jié)果:main() int a; scanf(%d,&a); if (a50) printf(%d,a); if (

5、a40) printf(%d,a); if (a30) printf(%d,a);程序運(yùn)行: 輸入58, 輸出? 輸入30, 輸出?例314有關(guān)if語句的說明 條件后面不加分號 語句之后有分號 else不是語句,不能單獨(dú)使用 當(dāng)if后有多個執(zhí)行語句時,必須用 將多 個語句括起來,構(gòu)成一個復(fù)合語句,而 之外不必有分號。15if語句的嵌套格式:if(表達(dá)式) if( 表達(dá)式1) 語句11; else 語句12; else if (表達(dá)式2) 語句21; else 語句22;在if語句的“語句1”或“語句2”中又包含著if語句判斷表達(dá)式的值,若為非0,再判斷表達(dá)式1的值,非0執(zhí)行語句11,否則執(zhí)行語

6、句12若表達(dá)式的值為0,再判斷表達(dá)式2的值,非0執(zhí)行語句21,否則執(zhí)行語句22功能:外if內(nèi)嵌if16下列程序段表示的數(shù)學(xué)式? y=-1; if (x!=0) if (x0) y=2*sin(x); else y=0; 程序段表示的數(shù)學(xué)式: 0 (x0)強(qiáng)調(diào):if和else可成對出現(xiàn),也可不成對出現(xiàn),每個else都與距其最近的if配對。17 if 語句的常用格式: if(表達(dá)式1) 語句 1 else if(表達(dá)式2) 語句 2 else if(表達(dá)式3) 語句 3 else if(表達(dá)式m) 語句 m else 語句 n僅執(zhí)行表達(dá)式為真的else if后的內(nèi)嵌語句,若所有的表達(dá)式值都為0,則

7、執(zhí)行最后一個else后的內(nèi)嵌語句.18 已知 編一個程序,輸入一個x的值,輸出y值。程序?yàn)椋?main( ) int x, y; scanf(“%d”,&x); if(x0) y=-1; else if(x= 0) y=0; else y=1; printf(“x=%d, y=%dn”, x, y); 例419switch語句 該語句為開關(guān)語句,適合解決多分支的情況。格式:switch(表達(dá)式) case 常量表達(dá)式:語句序列; case 常量表達(dá)式:語句序列; case 常量表達(dá)式n: 語句序列n; default :語句序列n+1; 說明:執(zhí)行順序如下:switch 語句可以是一條語句,也

8、可以是多條語句。多條語句不必用括號括起來。起語句標(biāo)號的作用,不進(jìn)行條件判斷,在執(zhí)行完某個 case后的語句序列后,將自動轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行??梢允钦?、字符型。20 a. 計算表達(dá)式的值; b. 找到與表達(dá)式的值相同的case常量表達(dá)式,執(zhí)行該case后邊的語句序列,之后依次往下執(zhí)行語句塊。表達(dá)式語句序列1語句序列2語句序列n語句序列n+1 21每個語句序列的最后一條語句后增加break語句,執(zhí)行流程為:表達(dá)式語句序列1語句序列n語句序列n+1語句序列222 根據(jù)考試成績的等級打印出百分制分?jǐn)?shù)段。采用多分支情況程序段: switch( grade ) case A : printf(

9、“85100n”) ; break; case B : printf(“7084n”); break; case C: printf(“6069n”); break; case D :printf(“60n”); break; default : printf(“error ”); 若 grade= A時,輸出結(jié)果為? 當(dāng) grade= B時,輸出結(jié)果為?例523流程圖為: grade輸出 “85100”輸出 “b ? a : b 若 a=3, b=2, 則 max=?說明: (1) 條件運(yùn)算符優(yōu)于賦值運(yùn)算符。 (2) 條件運(yùn)算符的結(jié)合方向?yàn)椤白杂蚁蜃蟆薄?如:當(dāng)a=1,b=2,c=3, d=

10、4 時,表達(dá)式 ab ? a : cd ? c : d , 值為:? 如: 若 x=1,y=0,a=3,b=-3 表達(dá)式 (yx?a:b)&a+b 值為:? 40條件運(yùn)算符27(3) 條件表達(dá)式中的表達(dá)式的類型可以與表達(dá)式和表達(dá)式的類型不同。條件表達(dá)式值的類型為二者中較高的類型。如: xy ? 1.2 : 6 , 當(dāng)xy成立時條件表達(dá)式的值為1.2 ,否則為實(shí)型數(shù)據(jù)6.0。 c=xy ? 1 : s , 當(dāng)xy成立時c=1, 否則c= s。28if ( y0 )x=-y;elsex=y;(y0)?x=-y:x=y;等價等價x = (y=A& chb) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; if(bc) t=b; b=c; c=t; printf(The sorted number is: %d %d %dn, a,b,c); 32基本技能奇偶判斷 z%2=0 數(shù)據(jù)交換 a,b,t t=a;a=b;b=t;獲取數(shù)的每一位數(shù)字 X與y的個位數(shù)字相同 x%10=y%10 如何判斷十位數(shù)上數(shù)字相同?33數(shù)據(jù)區(qū)間的C語言表達(dá) 1=90分的同學(xué)用A表示,60-89分之間的用B表示,60分以下的用C表示。1.程序分析:(ab)?a:b這是條件運(yùn)算符的基本例子。40題目:給一個不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。1. 程序分析:

溫馨提示

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

評論

0/150

提交評論