VC6-05-0-運(yùn)算符與表達(dá)式_第1頁(yè)
VC6-05-0-運(yùn)算符與表達(dá)式_第2頁(yè)
VC6-05-0-運(yùn)算符與表達(dá)式_第3頁(yè)
VC6-05-0-運(yùn)算符與表達(dá)式_第4頁(yè)
VC6-05-0-運(yùn)算符與表達(dá)式_第5頁(yè)
已閱讀5頁(yè),還剩37頁(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)介

第5章運(yùn)算符與表達(dá)式信息技術(shù)組孫穎北師大附屬杭州中學(xué)前言了解程序中使用的數(shù)據(jù)類型后,還要懂得如何操作這些數(shù)據(jù),所以掌握C語(yǔ)言中各種運(yùn)算符及其表達(dá)式的應(yīng)用是必不可少的。

C語(yǔ)言的主要特點(diǎn)就是擁有豐富的運(yùn)算符和表達(dá)式。本章內(nèi)容是:表達(dá)式的概念,運(yùn)算符及相關(guān)表達(dá)式的使用。其中包括賦值運(yùn)算符、算數(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位邏輯運(yùn)算符、逗號(hào)運(yùn)算符、條件運(yùn)算符及復(fù)合賦值運(yùn)算符。目錄1.表達(dá)式2.賦值運(yùn)算符與賦值表達(dá)式3.算術(shù)運(yùn)算符與表達(dá)式4.關(guān)系運(yùn)算符與表達(dá)式5.邏輯運(yùn)算符與表達(dá)式6.位邏輯運(yùn)算符與表達(dá)式7.逗號(hào)運(yùn)算符與表達(dá)式8.條件運(yùn)算符與表達(dá)式9.復(fù)合賦值運(yùn)算符10.小結(jié)實(shí)戰(zhàn)5.1 表達(dá)式表達(dá)式是C語(yǔ)句的主體。在C語(yǔ)言中,運(yùn)算符、變量和函數(shù)一起組成表達(dá)式,表示各種運(yùn)算功能。根據(jù)表達(dá)式內(nèi)含有操作符的個(gè)數(shù),我們把表達(dá)式分為:簡(jiǎn)單表達(dá)式——只含有一個(gè)操作符復(fù)雜表達(dá)式——含有兩個(gè)或兩個(gè)以上操作符關(guān)于表達(dá)式關(guān)于逗號(hào)逗號(hào)既可以當(dāng)作分隔符,又可以用在表達(dá)式中關(guān)于逗號(hào)1.2.3.4.用于間隔說(shuō)明語(yǔ)句中的變量或函數(shù)中的參數(shù)。逗號(hào)是分隔符將若干獨(dú)立的表達(dá)式連接在一起。逗號(hào)在表達(dá)式中使用逗號(hào)分隔變量:inta,b;使用逗號(hào)分隔參數(shù):Printf(“abc%d”,c);分隔符范例for(i=0,j=100;i<j;i++,j--){k=i+j;}表達(dá)式范例小測(cè)試試一試你的力有4個(gè)int變量,則a=(b=1,c=2,d=3)計(jì)算后,a的值是A.1B.2C.3D.6若有代數(shù)式,則不正確的C語(yǔ)言表達(dá)式是a/b/c*e*3 B.3*a*e/b/cC.3*a*e/b*c D.a*e/c/b*312“=”就是賦值運(yùn)算符。它的功能是為變量賦值。如i=20;就是把常量20這個(gè)值賦給i這個(gè)變量。當(dāng)然,我們也可以把一個(gè)表達(dá)式賦值給某變量,這在我們以前的課里早已經(jīng)實(shí)踐過(guò)了。關(guān)于賦值運(yùn)算符5.2 賦值運(yùn)算符與賦值表達(dá)式5.2 賦值運(yùn)算符與賦值表達(dá)式自動(dòng)類型轉(zhuǎn)換將實(shí)型數(shù)據(jù)賦值給整型變量,小數(shù)部分將被舍棄inta;a=1.23456;printf(“%d”,a);將整型數(shù)據(jù)賦值給實(shí)型變量,會(huì)自動(dòng)添加小數(shù)位floata;a=5;printf(“%f\n”,a);125.2 賦值運(yùn)算符與賦值表達(dá)式注意:?。?!當(dāng)將比較短的數(shù)值類型變量的值賦給比較長(zhǎng)的數(shù)值類型變量數(shù)據(jù)信息不會(huì)丟失反之,數(shù)據(jù)就會(huì)降低級(jí)別表示,當(dāng)超出可表示范圍的時(shí)候數(shù)據(jù)將被截?cái)?2floati=10.1f;intj=i;想一想,編譯器會(huì)做出什么反應(yīng)?5.2 賦值運(yùn)算符與賦值表達(dá)式強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換的一般形式:(類型名)表達(dá)式 floati=10.1f; intj=(int)i;注意,強(qiáng)制或自動(dòng)類型轉(zhuǎn)換都不改變變量的類型無(wú)論是強(qiáng)制類型轉(zhuǎn)換,還是自動(dòng)類型轉(zhuǎn)換,它都只是因本次運(yùn)算需要而對(duì)變量的數(shù)據(jù)長(zhǎng)度作臨時(shí)性轉(zhuǎn)換。在上面的程序中,i仍然是float類型的變量,只是在賦值給j的這個(gè)過(guò)程中,產(chǎn)生了一個(gè)int類型的臨時(shí)變量,它的值等于i的整數(shù)部分,完成本次運(yùn)算后,這個(gè)臨時(shí)變量就消亡了。12floati=10.1f;intj=i;我們可以對(duì)上面這段程序做強(qiáng)制類型轉(zhuǎn)換。小測(cè)試試一試你的力以下符合C語(yǔ)言語(yǔ)法的賦值表達(dá)式是:A.a=1+b+c=a+2B.a=1+b,c=a+2C.a=1+b,c++,d+2D.a=1+b++=c+2a和b為double變量,a=1.2、b=3.4,則(int)a+b/b的值是:4 21.2000002.00000012+ 單目正- 單目負(fù)*

乘法/ 除法% 取模+ 加法- 減法這里需要說(shuō)明的是除法和取模運(yùn)算。除法:7/2=3,-5/3=-1取模:取模運(yùn)算符%的兩側(cè)均為整數(shù),用于計(jì)算兩數(shù)相除的余數(shù)。7%2=1,-8%3=-2注意:?jiǎn)文空\(yùn)算符是冗余的,只與單目負(fù)運(yùn)算符構(gòu)成一對(duì)而存在。單目運(yùn)算符不會(huì)改變?nèi)魏问虑?,例如不?huì)把一個(gè)負(fù)值表達(dá)式改為正。算術(shù)運(yùn)算符5.3 算術(shù)運(yùn)算符與表達(dá)式用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(操作數(shù))連接起來(lái),符合C語(yǔ)言規(guī)則的式子,稱為算術(shù)表達(dá)式。運(yùn)算對(duì)象:常量、變量及函數(shù)等。舉例:a=(3+5)/b;c=d-e+1;k=i*j;注意?。。∪绻?、-、*、/運(yùn)算的兩個(gè)數(shù)中有一個(gè)是實(shí)數(shù),則結(jié)果便為double型。算術(shù)表達(dá)式5.3 算術(shù)運(yùn)算符與表達(dá)式范例:用算術(shù)表達(dá)式計(jì)算攝氏溫度5.3.3 優(yōu)先級(jí)與結(jié)合性具體介紹算術(shù)運(yùn)算符的優(yōu)先級(jí)乘法、除法、取模運(yùn)算的優(yōu)先級(jí)高于加減法提高優(yōu)先級(jí)的方法是給加減法添加括號(hào)()()在運(yùn)算符中具有最高優(yōu)先級(jí)

算術(shù)運(yùn)算符的結(jié)合性優(yōu)先級(jí)相同時(shí),結(jié)合方向?yàn)椤白宰笙蛴摇?2范例:++i

代表i自增1以后再使用i; --i 代表i自減1以后再使用i;i++ 代表先使用i的值再自增1; i-- 代表先使用i的值再自減1。自增++和自減--5.3.4

自增自減運(yùn)算符5.3.4

自增自減運(yùn)算符小試牛刀定義變量a,為其賦初值10,使用printf()函數(shù)顯示-a++兩次上機(jī)演練

上機(jī)演練1 求解二元一次不定方程求解二元一次不定方程ax+by=c的解,其中a、b、c要求從鍵盤中輸入,其中a>0,b>0且a>=b。

上機(jī)演練2

可逆素?cái)?shù)可逆素?cái)?shù)是指將一個(gè)素?cái)?shù)各位數(shù)字的順序倒過(guò)來(lái)構(gòu)成的反序數(shù)仍然是素?cái)?shù)。按以上敘述求所有的4位素?cái)?shù)。用來(lái)判斷操作數(shù)的大小關(guān)系。符號(hào)

功能> 大于>= 大于或等于< 小于<= 小于或等于== 等于!= 不等于關(guān)系運(yùn)算符常用于兩個(gè)值的比較,比較結(jié)果是一個(gè)邏輯值,滿足條件,結(jié)果為真,否則為假。真返回1,假返回0。關(guān)系運(yùn)算又叫比較運(yùn)算5.4 關(guān)系運(yùn)算符與表達(dá)式關(guān)系表達(dá)式中,關(guān)系運(yùn)算符兩側(cè)的表達(dá)式可以是算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式及字符表達(dá)式。比較后,會(huì)返回一個(gè)真值1或假值0。x>y;‘x’>’y’;a+b>b+c;(m=4)<(n=8);(i>j)!=(j<k);注意?。。≡谂袛鄷r(shí),一定要注意等號(hào)運(yùn)算符==的使用,不能和賦值運(yùn)算符=弄混。如右上方的代碼,很多同學(xué)都寫過(guò),原本目的是想判斷Amount變量是否等于100,在等于100的時(shí)候執(zhí)行if條件內(nèi)的復(fù)合語(yǔ)句。但實(shí)際上,這是一個(gè)對(duì)變量Amount賦值100的式子,它的結(jié)果是非0,即為真。因此,這個(gè)if內(nèi)的復(fù)合語(yǔ)句將始終被運(yùn)行,程序?qū)⒂肋h(yuǎn)遇不到else的狀態(tài)。這就是邏輯錯(cuò)誤。關(guān)系運(yùn)算符連接兩個(gè)表達(dá)式、符合C語(yǔ)法規(guī)則的式子:關(guān)系表達(dá)式5.4.2 關(guān)系表達(dá)式關(guān)系運(yùn)算符<、<=、>、>=的優(yōu)先級(jí)相同==和!=的優(yōu)先級(jí)相同前4種運(yùn)算符優(yōu)先級(jí)高于后兩種。它們的結(jié)合性都是從左向右依次結(jié)合??醋筮叺拇a。!=的優(yōu)先級(jí)要高于=這個(gè)賦值運(yùn)算符所以這個(gè)條件判斷最后成了賦值運(yùn)算,結(jié)果將同編程者初始意愿相悖。正確的寫法應(yīng)該是:if((Number=NewNum)!=10)注意??!關(guān)系運(yùn)算符的優(yōu)先級(jí)要低于算術(shù)運(yùn)算符關(guān)系運(yùn)算又叫比較運(yùn)算5.4.3 優(yōu)先級(jí)與結(jié)合性關(guān)系運(yùn)算符的使用:算術(shù)運(yùn)算符關(guān)系運(yùn)算符賦值運(yùn)算符大于大于優(yōu)先級(jí)沿箭頭方向遞減小測(cè)試試一試你的力用1代表真,用0代表假。假設(shè)a=3,b=2,c=1,則下列表達(dá)式值為0的是:A.a+c>bB.d=a>b>cC.a>cD.(a>b)==c有運(yùn)算符>、=、%,將它們按優(yōu)先級(jí)由低到高排列應(yīng)該是:12&& 邏輯與運(yùn)算符:一假必假|(zhì)| 邏輯或運(yùn)算符:一真必真!

邏輯非運(yùn)算符:真假相對(duì)關(guān)于優(yōu)先級(jí):!的優(yōu)先級(jí),大于&&的優(yōu)先級(jí),大于||的優(yōu)先級(jí)綜合運(yùn)算優(yōu)先級(jí):!高于算術(shù)運(yùn)算符高于關(guān)系運(yùn)算符高于&&和||高于賦值運(yùn)算符邏輯運(yùn)算符5.5

邏輯運(yùn)算符與表達(dá)式a=5,b=7,則a&&b的值=1。a=5,b=7,則a||b的值=1。a=5,則!a的值=0。&&運(yùn)算,

第一個(gè)操作數(shù)被判定為假,則系統(tǒng)將不再判定或求解第二個(gè)操作數(shù)。||運(yùn)算,

第一個(gè)操作數(shù)被判定為真,則系統(tǒng)將不再判定或求解第二個(gè)操作數(shù)。一些范例5.5

邏輯運(yùn)算符與表達(dá)式自左向右。結(jié)合性5.5.3

優(yōu)先級(jí)和結(jié)合性上機(jī)演練

上機(jī)演練3

判斷閏年從鍵盤上輸入一個(gè)表示年份的整數(shù),判斷該年份是否是閏年,判斷后的結(jié)果顯示在屏幕上。以前在實(shí)戰(zhàn)里涉及過(guò)閏年的算法,所以這一次不能查網(wǎng)絡(luò),試著自己寫出來(lái)吧。上機(jī)演練

上機(jī)演練4

黑紙與白紙有A、B、C、D、E5個(gè)人,每人額頭上都貼了一張黑色或白色的紙條。5人對(duì)坐,每人都可以看到其他人額頭上的紙的顏色,但都不知道自己額頭上的紙的顏色。5人相互觀察后,A說(shuō):“我看見(jiàn)有3個(gè)人額頭上貼的是白紙,一個(gè)人額頭上貼的是黑紙?!盉說(shuō):“我看見(jiàn)其他4人額頭上貼的都是黑紙?!盋說(shuō):“我看見(jiàn)有一個(gè)人額頭上貼的是白紙,其他3個(gè)人額頭上貼的是黑紙。”D說(shuō):“我看見(jiàn)其他4人額頭上貼的都是白紙?!盓說(shuō):“我不發(fā)表觀點(diǎn)?!爆F(xiàn)在已知額頭貼黑紙的人說(shuō)的都是謊話,額頭貼白紙的人說(shuō)的都是實(shí)話,問(wèn)這5個(gè)人誰(shuí)的額頭上貼的是黑紙,誰(shuí)的額頭上貼的是白紙。& 按位與

雙目| 按位或

雙目

^ 按位異或

雙目~ 取補(bǔ)

單目例如:If(a&b)這個(gè)判斷就是讓a和b按位匹配。位邏輯運(yùn)算是C語(yǔ)言里很特別的一部分,它可以實(shí)現(xiàn)位的設(shè)置、清零、取反、取補(bǔ)操作。它能實(shí)現(xiàn)許多匯編語(yǔ)言才能實(shí)現(xiàn)的功能。程序員用它們來(lái)作為開(kāi)關(guān)標(biāo)志。位邏輯運(yùn)算符5.6

位邏輯運(yùn)算符與表達(dá)式小測(cè)試試一試你的力以下是單目運(yùn)算符的是:A.&B.|C.^D.~在C語(yǔ)言中,&作為雙目運(yùn)算符時(shí)表示的是:12一般形式是:表達(dá)式1,表達(dá)式2,……,表達(dá)式n求解過(guò)程:先求表達(dá)式1,再求表達(dá)式2,一直求解到表達(dá)式n。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式n的值。小范例:K=1+1,2+2,3+3;最后它的值是多少?K=(1+1,2+2,3+3);最后它的值是多少?注意??!逗號(hào)運(yùn)算符的優(yōu)先級(jí)是最低的。逗號(hào)運(yùn)算符又名順序求值運(yùn)算符5.7

逗號(hào)運(yùn)算符與表達(dá)式自左向右。結(jié)合性5.7

逗號(hào)運(yùn)算符與表達(dá)式小測(cè)試試一試你的力在“inta,b,c;”語(yǔ)句中,逗號(hào)的作用是:在聲明變量的時(shí)候,逗號(hào)作為分隔符,用來(lái)分隔聲明變量。這個(gè)時(shí)候,它不是運(yùn)算符。表達(dá)式“a=1,4+5,8”的值是:12結(jié)合方式也是由左向右表示方法:以上語(yǔ)句簡(jiǎn)化后就是條件運(yùn)算符max=(a>b)?a:b;C語(yǔ)言中唯一的三目運(yùn)算符5.8

條件運(yùn)算符與表達(dá)式小測(cè)試試一試你的力假設(shè)變量a=3,b=4,c=5,則表達(dá)式a>3?a+c:b>4?b+c:c它的值是多少?下列運(yùn)算符中,又一個(gè)運(yùn)算符與其他運(yùn)算符不同,它是:12A、=B、&&C、?:D、%如+=、-=、*=、/=、%=、&=等形式:變量雙目運(yùn)算符=表達(dá)式例如:i+=3

溫馨提示

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