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

下載本文檔

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

文檔簡(jiǎn)介

關(guān)系運(yùn)算與邏輯運(yùn)算1第一頁(yè),共三十頁(yè),編輯于2023年,星期日復(fù)合的賦值運(yùn)算符

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

編寫(xiě)一個(gè)判斷一個(gè)數(shù)是否是素?cái)?shù)的函數(shù),若是返回1,否則返回0。14第十四頁(yè),共三十頁(yè),編輯于2023年,星期日格式3if(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3

……elseif(表達(dá)式n)語(yǔ)句nelse語(yǔ)句n+1例:根據(jù)用戶購(gòu)物的總價(jià),選擇不同的折扣率:>=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第十五頁(yè),共三十頁(yè),編輯于2023年,星期日例: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第十六頁(yè),共三十頁(yè),編輯于2023年,星期日注意事項(xiàng):1、在三種形式的if語(yǔ)句中,在if關(guān)鍵字之后均為表達(dá)式。該表達(dá)式通常是邏輯表達(dá)式或關(guān)系表達(dá)式,但也可以是其它表達(dá)式,如賦值表達(dá)式等,甚至也可以是一個(gè)變量。例如:if(a=5)語(yǔ)句;if(b)語(yǔ)句;2、在if語(yǔ)句中,條件判斷表達(dá)式必須用括號(hào)括起來(lái),在語(yǔ)句之后必須加分號(hào)。3、在if語(yǔ)句的三種形式中,所有的語(yǔ)句應(yīng)為單個(gè)語(yǔ)句,如果要想在滿足條件時(shí)執(zhí)行一組(多個(gè))語(yǔ)句,則必須把這一組語(yǔ)句用{}括起來(lái)組成一個(gè)復(fù)合語(yǔ)句。但要注意的是在}之后不能再加分號(hào)。例如:if(a>b){a++;b++;}else{a=0;b=10;}17第十七頁(yè),共三十頁(yè),編輯于2023年,星期日在鍵盤(pán)中輸入已知數(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第十八頁(yè),共三十頁(yè),編輯于2023年,星期日練習(xí):1、輸入某同學(xué)某科考試成績(jī)(0-100之間),并進(jìn)行及格與否的判斷,如果輸入的數(shù)值大于100或小于零輸出“輸入錯(cuò)誤”。2、從鍵盤(pán)輸入兩個(gè)整數(shù),請(qǐng)按從小到大的順序排列。3、從鍵盤(pán)輸入三個(gè)整數(shù),輸出最大和最小的數(shù)。19第十九頁(yè),共三十頁(yè),編輯于2023年,星期日分析:從鍵盤(pán)輸入三個(gè)整數(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第二十頁(yè),共三十頁(yè),編輯于2023年,星期日練習(xí):4、以下程序?qū)斎氲囊粋€(gè)小寫(xiě)字母,將字母循環(huán)后移5個(gè)位置后輸出.如’a’變成’f’,’w’變成’b’.請(qǐng)?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第二十一頁(yè),共三十頁(yè),編輯于2023年,星期日練習(xí):5、輸入一個(gè)字符,如果它是一個(gè)大寫(xiě)字母,則把它變成小寫(xiě),如果是小寫(xiě),則變成大寫(xiě),其他字符不變main(){charch;scanf(“%c”,&ch);if(1)ch=ch+32;elseif(ch>=’a’&&ch<=’z’)(2)(3)printf(“%c”,ch);getch();}22第二十二頁(yè),共三十頁(yè),編輯于2023年,星期日練習(xí)6、輸入三角形的邊長(zhǎng),求三角形面積。(面積=sqrt(s(s-a)(s-b)(s-c)),s=(a+b+c)/2)注意:考慮三角形三邊及三角形自身特點(diǎn)7、在鍵盤(pán)中輸入已知數(shù)a、b、c求一元二次方程ax2+bx+c=0的解。其中分析Δ=b2-4*a*c是否大于或等于零23第二十三頁(yè),共三十頁(yè),編輯于2023年,星期日switch語(yǔ)句C語(yǔ)言還提供了另一種用于多分支選擇的switch語(yǔ)句,其一般形式為:

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

case常量表達(dá)式n:語(yǔ)句n;default:語(yǔ)句n+1;}24第二十四頁(yè),共三十頁(yè),編輯于2023年,星期日例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語(yǔ)句,專(zhuān)用于跳出switch語(yǔ)句25第二十五頁(yè),共三十頁(yè),編輯于2023年,星期日例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);s

溫馨提示

  • 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)論