關(guān)系運(yùn)算與邏輯運(yùn)算_第1頁
關(guān)系運(yùn)算與邏輯運(yùn)算_第2頁
關(guān)系運(yùn)算與邏輯運(yùn)算_第3頁
關(guān)系運(yùn)算與邏輯運(yùn)算_第4頁
關(guān)系運(yùn)算與邏輯運(yùn)算_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

關(guān)系運(yùn)算與邏輯運(yùn)算1第1頁,課件共30頁,創(chuàng)作于2023年2月復(fù)合的賦值運(yùn)算符

在賦值符“=”之前加上其它二目運(yùn)算符可構(gòu)成復(fù)合賦值符。如+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。構(gòu)成復(fù)合賦值表達(dá)式的一般形式為:變量雙目運(yùn)算符=表達(dá)式它等效于變量=變量運(yùn)算符表達(dá)式2第2頁,課件共30頁,創(chuàng)作于2023年2月例如:a+=5等價于a=a+5x*=y+7等價于x=x*(y+7)r%=p等價于r=r%p復(fù)合賦值符這種寫法,對初學(xué)者可能不習(xí)慣,但十分有利于編譯處理,能提高編譯效率并產(chǎn)生質(zhì)量較高的目標(biāo)代碼。3第3頁,課件共30頁,創(chuàng)作于2023年2月關(guān)系運(yùn)算符在C語言中有以下關(guān)系運(yùn)算符:<小于<=小于或等于>大于>=大于或等于==等于!=不等于關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。在六個關(guān)系運(yùn)算符中,<,<=,>,>=的優(yōu)先級相同,高于==和!=,==和!=的優(yōu)先級相同。4第4頁,課件共30頁,創(chuàng)作于2023年2月關(guān)系表達(dá)式關(guān)系表達(dá)式的一般形式為:表達(dá)式關(guān)系運(yùn)算符表達(dá)式例如:a+b>c-dx>3/2‘a(chǎn)’+1<c-i-5*j==k+1都是合法的關(guān)系表達(dá)式。由于表達(dá)式也可以又是關(guān)系表達(dá)式。因此也允許出現(xiàn)嵌套的情況。例如:a>(b>c)a!=(c==d)等。5第5頁,課件共30頁,創(chuàng)作于2023年2月關(guān)系表達(dá)式的值是真”和“假”,用“1”和“0”表示。如:5>0的值為“真”,即為1。(a=3)>(b=5)由于3>5不成立,故其值為假,即為0。main(){charc='k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d\n",’a’+5<c,-i-2*j>=k+1);printf("%d,%d\n",1<j<5,x-5.25<=x+y);printf("%d,%d\n",i+j+k==-2*j,k==j==i+5);getch();}在本例中求出了各種關(guān)系運(yùn)算符的值。字符變量是以它對應(yīng)的ASCII碼參與運(yùn)算的?!產(chǎn)’+5<c,a的ASCII值為97+5=102,而c的ascii值為100,顧不成立,值為0.而1<j<5,而j=2,因此條件成立,所以值為0.例:6第6頁,課件共30頁,創(chuàng)作于2023年2月邏輯運(yùn)算符極其優(yōu)先次序C語言中提供了三種邏輯運(yùn)算符:&&與運(yùn)算||或運(yùn)算!非運(yùn)算與運(yùn)算符&&和或運(yùn)算符||均為雙目運(yùn)算符。具有左結(jié)合性。非運(yùn)算符!為單目運(yùn)算符,具有右結(jié)合性。7第7頁,課件共30頁,創(chuàng)作于2023年2月邏輯運(yùn)算符和其它運(yùn)算符優(yōu)先級!(非)→&&(與)→||(或)?。ǚ牵┧阈g(shù)運(yùn)算符關(guān)系運(yùn)算符&&和||賦值運(yùn)算符按照運(yùn)算符的優(yōu)先順序可以得出:a>b&&c>d等價于(a>b)&&(c>d)!b==c||d<a等價于((!b)==c)||(d<a)a+b>c&&x+y<b等價于((a+b)>c)&&((x+y)<b)易混淆8第8頁,課件共30頁,創(chuàng)作于2023年2月選擇結(jié)構(gòu)選擇結(jié)構(gòu)又稱分支結(jié)構(gòu)或者選取結(jié)構(gòu),其執(zhí)行是依據(jù)一下的條件選擇執(zhí)行路徑,而不是嚴(yán)格掃照語句出現(xiàn)的物理順序執(zhí)行的。分支結(jié)構(gòu)的程序設(shè)計(jì)方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇知當(dāng)?shù)姆种дZ句。C語言提供了“if”語句和“switch”語句兩種分支結(jié)構(gòu)控制語句。9第9頁,課件共30頁,創(chuàng)作于2023年2月if語句if語句用于判下所給的條件是否滿足,程序根據(jù)判定的結(jié)果決下所執(zhí)行的操作。C語言的if語句有3種基本格式10第10頁,課件共30頁,創(chuàng)作于2023年2月格式1if(表達(dá)式)表達(dá)式功能:如果“表達(dá)式”為真,則執(zhí)行其后“語句”,否則不執(zhí)行語句。例:main(){inta,s;scanf(“%d”,&a);if(a>0)a++;s=a;printf(“a=%d,s=%d\n”,a,s);getch();}11第11頁,課件共30頁,創(chuàng)作于2023年2月格式2if(表達(dá)式)語句1else語句2功能:如果“表達(dá)式”為真,則執(zhí)行“語句1”;否則執(zhí)行|語句2“。12第12頁,課件共30頁,創(chuàng)作于2023年2月例:輸入某同學(xué)某科考試成績,大于等于60分輸出“及格”,小于60分輸出“不及格”。main(){intk;if(k>=60)printf(“及格\n”);elseprintf(“不及格\n”);getch();}13第13頁,課件共30頁,創(chuàng)作于2023年2月練習(xí):輸入任意大小的三個整數(shù),判斷其中是否有兩個奇數(shù)一個偶數(shù)。若是,則輸出“YES”,不是則輸出“NOT”

編寫一個判斷一個數(shù)是否是素?cái)?shù)的函數(shù),若是返回1,否則返回0。14第14頁,課件共30頁,創(chuàng)作于2023年2月格式3if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2elseif(表達(dá)式3)語句3

……elseif(表達(dá)式n)語句nelse語句n+1例:根據(jù)用戶購物的總價,選擇不同的折扣率:>=1000為七折,>=800為八折,>=500為九折。main(){intcost;floatrate,s;scanf(“%d”,&cost);if(cost>1000)rate=0.7;elseif(cost>800)rate=0.8;elseif(cost>500)rate=0.9;s=cost*rate;printf(“%f\n”,s);getch();}15第15頁,課件共30頁,創(chuàng)作于2023年2月例:main(){charc;printf("inputacharacter:");c=getchar();if(c<32)printf("Thisisacontrolcharacter\n");elseif(c>='0'&&c<='9')printf("Thisisadigit\n");elseif(c>='A'&&c<='Z')printf("Thisisacapitalletter\n");elseif(c>='a'&&c<='z')printf("Thisisasmallletter\n");elseprintf("Thisisanothercharacter\n");getch();}16第16頁,課件共30頁,創(chuàng)作于2023年2月注意事項(xiàng):1、在三種形式的if語句中,在if關(guān)鍵字之后均為表達(dá)式。該表達(dá)式通常是邏輯表達(dá)式或關(guān)系表達(dá)式,但也可以是其它表達(dá)式,如賦值表達(dá)式等,甚至也可以是一個變量。例如:if(a=5)語句;if(b)語句;2、在if語句中,條件判斷表達(dá)式必須用括號括起來,在語句之后必須加分號。3、在if語句的三種形式中,所有的語句應(yīng)為單個語句,如果要想在滿足條件時執(zhí)行一組(多個)語句,則必須把這一組語句用{}括起來組成一個復(fù)合語句。但要注意的是在}之后不能再加分號。例如:if(a>b){a++;b++;}else{a=0;b=10;}17第17頁,課件共30頁,創(chuàng)作于2023年2月在鍵盤中輸入已知數(shù)a、b、c求一元二次方程ax2+bx+c=0的解。其中分析Δ=b2-4*a*c是否大于或等于零#include<math.h>#include<stdio.h>main(){inta,b,c;floatx1,x2;scanf("%d%d%d",&a,&b,&c);if(pow(b,2)-4*a*c<0)printf("inputnumbererror!\n");elseif(pow(b,2)-4*a*c>0){x1=(-b+sqrt(pow(b,2)-4*a*c))/(2*a);x2=(-b-sqrt(pow(b,2)-4*a*c))/(2*a);printf("x1=%f,x2=%f",x1,x2);}else{x1=-b/(2*a);printf("x1=x2=%f",x1);}getch();}18第18頁,課件共30頁,創(chuàng)作于2023年2月練習(xí):1、輸入某同學(xué)某科考試成績(0-100之間),并進(jìn)行及格與否的判斷,如果輸入的數(shù)值大于100或小于零輸出“輸入錯誤”。2、從鍵盤輸入兩個整數(shù),請按從小到大的順序排列。3、從鍵盤輸入三個整數(shù),輸出最大和最小的數(shù)。19第19頁,課件共30頁,創(chuàng)作于2023年2月分析:從鍵盤輸入三個整數(shù),輸出最大和最小的數(shù)。main(){inta,b,c,max,min;printf("inputthreenumbers:");scanf("%d%d%d",&a,&b,&c);if(a>b){max=a;min=b;}else{max=b;min=a;}if(max<c)max=c;elseif(min>c) min=c;printf("max=%d\nmin=%d",max,min);getch();}20第20頁,課件共30頁,創(chuàng)作于2023年2月練習(xí):4、以下程序?qū)斎氲囊粋€小寫字母,將字母循環(huán)后移5個位置后輸出.如’a’變成’f’,’w’變成’b’.請?jiān)?)填入正確內(nèi)容#include<stdio.h>main(){charc;c=getchar();if(c>=’a’&&c<=’u’)(1)elseif(c>=’v’&&c<=’z’)(2)putchar(c);getch();}21第21頁,課件共30頁,創(chuàng)作于2023年2月練習(xí):5、輸入一個字符,如果它是一個大寫字母,則把它變成小寫,如果是小寫,則變成大寫,其他字符不變main(){charch;scanf(“%c”,&ch);if(1)ch=ch+32;elseif(ch>=’a’&&ch<=’z’)(2)(3)printf(“%c”,ch);getch();}22第22頁,課件共30頁,創(chuàng)作于2023年2月練習(xí)6、輸入三角形的邊長,求三角形面積。(面積=sqrt(s(s-a)(s-b)(s-c)),s=(a+b+c)/2)注意:考慮三角形三邊及三角形自身特點(diǎn)7、在鍵盤中輸入已知數(shù)a、b、c求一元二次方程ax2+bx+c=0的解。其中分析Δ=b2-4*a*c是否大于或等于零23第23頁,課件共30頁,創(chuàng)作于2023年2月switch語句C語言還提供了另一種用于多分支選擇的switch語句,其一般形式為:

switch(表達(dá)式){case常量表達(dá)式1:語句1;case常量表達(dá)式2:語句2;

case常量表達(dá)式n:語句n;default:語句n+1;}24第24頁,課件共30頁,創(chuàng)作于2023年2月例1:main(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a){ case1:printf("Monday\n"); case2:printf("Tuesday\n"); case3:printf("Wednesday\n"); case4:printf("Thursday\n"); case5:printf("Friday\n"); case6:printf("Saturday\n"); case7:printf("Sunday\n"); default:printf("error\n");}main(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a){case1:printf("Monday\n");break;case2:printf("Tuesday\n");break;case3:printf("Wednesday\n");break;case4:printf("Thursday\n");break;case5:printf("Friday\n");break;case6:printf("Saturday\n");break;case7:printf("Sunday\n");break;default:printf("error\n");}break語句,專用于跳出switch語句25第25頁,課件共30頁,創(chuàng)作于2023年2月例2:計(jì)算器程序。用戶輸入運(yùn)算數(shù)和四則運(yùn)算符,輸出計(jì)算結(jié)果。main(){floata,b;charc;printf("inputexpression:a+(-,*,/)b\n");scanf("%f%c%f",&a,&c,&b);

溫馨提示

  • 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

提交評論