2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第4章 C世界中的加減乘除——運算符和表達式,C中的運算符和表達式 算術(shù)運算符和表達式 關(guān)系運算符和表達式 邏輯運算符和表達式 條件運算符和表達式 賦值運算符和表達式 自增、自減運算符 逗號運算符和表達式 運算符的優(yōu)先級,4.1 C中的運算符和表達式,4.1.1 運算符4.1.2 表達式4.1.3 優(yōu)先級與結(jié)合性,4.1.1 運算符  用來對數(shù)據(jù)進行運算的符號,就可以

2、稱為運算符?! 。谜Z言中的運算符如下表所示:,4.1.1 運算符  按運算符在表達式中與運算分量的關(guān)系(連接運算分量的個數(shù)),運算符可分為:① 單目運算符,即一元運算符,只需要一個運算分量,  如:-5,!a;② 雙目運算符,即二元運算符,需要兩個運算分量, 如:a+b,x||y;③ 三目運算符,即三元運算符,需要三個運算分量,如:a>b?a:b。,注意:條件運算符(?:)是C語言中唯一的三目運算符。,4.

3、1.2 表達式  C中運算符和數(shù)據(jù)構(gòu)成的式子,就稱為表達式;  表達式運算的結(jié)果就稱為是表達式的值?! 「鶕?jù)運算符的分類,C語言的表達式分為以下8類: 算術(shù)表達式、關(guān)系表達式、邏輯表達式、賦值表達式、條件表達式、逗號表達式、位表達式和其它表達式等。 由以上表達式還可以組成更復(fù)雜的表達式,例如:z=x+(y>=0),4.1.3 優(yōu)先級和結(jié)合性  優(yōu)先級:是指當不同的運算符進行混合運算

4、時,運算順序是根據(jù)運算符的優(yōu)先級而定的,優(yōu)先級高的運算符先運算,優(yōu)先級低的運算符后運算。  結(jié)合性:是指運算符可以和左邊的表達式結(jié)合,也可以與右邊的表達式結(jié)合,即:左結(jié)合性和右結(jié)合性?! ±纾簒+y*z,注意:最典型的右結(jié)合性運算符是賦值運算符,它的結(jié)合性是自右向左,4.2 算術(shù)運算符和表達式,4.2.1 算術(shù)運算符4.2.2 算術(shù)表達式4.2.3 算術(shù)運算符的優(yōu)先級與結(jié)合性4.2.4 應(yīng)用舉例,4.2.1

5、 算術(shù)運算符  基本的算術(shù)運算符有5個,分別是: +:加法運算符或正值運算符 -: 減法運算符或負值運算符 *: 乘法運算符 /: 除法運算符 %:求模運算符或求余運算符  其中,+(正值運算符)和-(負值運算符)是單目運算符,其余均為雙目運算符。,2x,2*x,a/b,4.2.2 算術(shù)表達式  簡單的算術(shù)表達式,例如: 2+3:結(jié)果為:5 2-3:結(jié)果為:-1 2*3:結(jié)果為:6

6、 2/3:結(jié)果為:0 2%3:結(jié)果為: 2  注 意:(1)“%”運算符要求兩側(cè)的運算分量必須為整型數(shù)據(jù);    (2)在C中,乘法運算符為“*”,而不能寫成數(shù)學中的“×”號;除法運算為“/”,而不是“÷”號 。,6.0%4 ×,-6%4,6%-4,-6%-4,4.2.2 算術(shù)表達式  復(fù)雜的算術(shù)表達式,例如:2*(9/3) 結(jié)果為: 610/((12+8)%9

7、) 結(jié)果為:5,4.2.3 算術(shù)運算符的優(yōu)先級和結(jié)合性   在復(fù)雜的算術(shù)表達式中:“()”的優(yōu)先級最高,“*、/、%”運算符的優(yōu)先級高于”+、-”運算符。   算術(shù)運算符中的結(jié)合性均為“左結(jié)合”。,4.2.4 應(yīng)用舉例  【范例4-1】 使用算術(shù)運算符計算結(jié)果。  注意:對于“/”運算符,C語言中規(guī)定: ⑴當它的兩個運算分量均為整數(shù)時,計算結(jié)果也必須為整數(shù)。 ⑵如果兩個運算分量中有一個

8、數(shù)是浮點型時,則結(jié)果也應(yīng)該為浮點型數(shù)據(jù)。例如:99.0/5的結(jié)果為19.8。 ⑶如果兩個運算分量有一個為負值,其結(jié)果隨不同的機器系統(tǒng)而不同,但多數(shù)機器采用“向零取整”的原則。例如:-7/4的結(jié)果為-1;7/-4的結(jié)果為1。,4.2.4 應(yīng)用舉例  【范例4-2】 算術(shù)運算符和表達式的應(yīng)用。,4.3 關(guān)系運算符和表達式,4.3.1 關(guān)系運算符4.3.2 關(guān)系表達式4.3.3 關(guān)系運算符的優(yōu)先級與結(jié)合性

9、4.3.4 應(yīng)用舉例,4.3.1 關(guān)系運算符 C語言提供了6種關(guān)系運算符,分別是:  >(大于)、>=(大于等于)、=”和“<=”不能寫成“≥”和“≤”;⑵ 等于在C中的書寫格式為“==”而不是“=”,注意是兩個“=”連起來寫表示相等的關(guān)系,“=”是后面要講的賦值運算符,注意二者的區(qū)別。,4.3.2 關(guān)系表達式 把兩個C語言表達式連接起來的式子稱為關(guān)系表達式;如:x!=0 ‘a(chǎn)’=

10、=‘A’ a*a+b*b+c*cz) 的結(jié)果為1 ‘a(chǎn)’==‘A’ 的值為0,4.3.3 關(guān)系運算符的優(yōu)先級和結(jié)合性 “>”、“>=”、“b>c 等價于 (a>b)>c 關(guān)系運算符中的結(jié)合性均為“左結(jié)合”。,4.3.4 應(yīng)用舉例 【范例4-3】 輸出程序中表達式的值01 #include02 void main()03 {04

11、 int a,b,c;05 a=b=c=10;/*a,b,c均賦值為10*/06 a=b==c;/*將b==c的結(jié)果賦值變量a*/07 printf(" a=%d,b=%d,c=%d\n",a,b,c);/*分別輸出a,b,c的值*/08 a=b>c>=100;/*將b>c>=100的結(jié)果賦給變量a*/09

12、printf(" a=%d,b=%d,c=%d\n",a,b,c);/*分別輸出a,b,c的值*/10 },4.4 邏輯運算符和表達式,4.4.1 邏輯運算符4.4.2 邏輯表達式4.4.3 邏輯運算符的優(yōu)先級和結(jié)合性4.4.4 應(yīng)用舉例,4.4.1 邏輯運算符 邏輯運算符主要用于邏輯運算;包含了“&&”(邏輯與)、“||”(邏輯或)、“!”(邏輯非)。

13、其中,“!”是單目運算符,而”&&”和 “||” 是雙目運算符。,4.4.2 邏輯表達式 邏輯運算符把各個表達式連接起來組成一個邏輯表達式。例如:a&&b、1||(!x) 邏輯表達式的值只有兩個:0和1。 舉例:當x為0時,x=5的值為多少。若a=4,則 !a 、a&&-5 、4||0 的值分別為多少。,4.4.3 邏輯運算符的優(yōu)先級和結(jié)合性 邏輯非(!)的優(yōu)先級

14、別最高,邏輯與(&&)的優(yōu)先級高于邏輯或(||)邏輯非(!)—>然后是算術(shù)運算符—>關(guān)系運算符—>邏輯與(&&) —>邏輯或(||)舉例:5 > 3 && 2 || !8 < 4-2邏輯運算符是“右結(jié)合”。,4.4.4 應(yīng)用舉例 【范例4-4】 試寫出判斷某數(shù)x是否小于-2且大于等于5的邏輯表達式。當x值為0時,分析程序運行

15、結(jié)果?!痉独?-5】 試判斷給定的某年year是否為閏年。(閏年的條件是符合下面兩個條件之一:①能被4整除,但不能被100整除;②能被400整除。),4.5 條件運算符 條件運算符中由“?”和“:”組成,是C語言中唯一的一個三目運算符;將條件運算符將數(shù)據(jù)連接起來的式子稱為條件表達式。條件表達式的一般構(gòu)成形式是:表達式1?表達式2:表達式 3條件表達式的執(zhí)行過程是:① 先計算表達式1的值;② 若該值不為0,則計算表達

16、式2的值,并將表達式2的值作為整個條件表達式的值;③ 否則,就計算表達式3的值,并將該值作為整個條件表達式的值。例如:(x>=0)?1:-1,4.5 條件運算符 條件運算符的結(jié)合性是“右結(jié)合”。優(yōu)先級別低于算術(shù)運算符、關(guān)系運算符和邏輯運算符 ;例如:a>b?a:c>d?c:d 等價于 a>b?a:(c>d?c:d) 【范例4-6】 條件運算符和表達式的應(yīng)用。,4.6 賦值運算符和表

17、達式,4.6.1 賦值運算符4.6.2 賦值表達式4.6.3 賦值運算符的優(yōu)先級和表達式4.6.4 應(yīng)用舉例,4.6.1 賦值運算符 基本的賦值運算符為:=復(fù)合賦值運算符分別為:+=、-=、*= 、/=、%=、>=、&=、^=、!=,4.6.2 賦值表達式由賦值運算符將一個變量和一個表達式連接起來的式子稱為賦值表達式。賦值表達式的一般格式為:變量=表達式 例如:a=5; x=10

18、+y;對于賦值運算符說明如下:⑴ 賦值運算符“=”與數(shù)學中的等式形式一樣,但含義不同,注意區(qū)別。⑵ 注意“==”與“=”的區(qū)別,==是用來判斷運算符兩邊的數(shù)據(jù)是否相等,而=作用是將右邊表達式的值賦給左邊的變量。 如:a==b<c 與 a=b<c 不同,x=y y=x,4.6.2 賦值表達式賦值表達式的值等于右邊表達式的值,而結(jié)果的類型由左邊變量的類型決定,例如:int i;floa

19、t f;i=1.2*3; f=23;,4.6.2 賦值表達式使用復(fù)合的賦值運算符構(gòu)成的表達式,例如:a+=b+c 等價于 a=a+(b+c)a-=b+c 等價于 a=a-(b+c)a*=b+c 等價于 a=a*(b+c)a/=b+c 等價于 a=a/(b+c)a%=b+c 等價于 a=a%(b+c),注意:① 復(fù)合運算符在書寫時,兩個運算符之間不能有空格,否則就是錯誤的。② 復(fù)合賦值運

20、算符右邊的表達式應(yīng)作為一個整體對待。,4.6.3 賦值運算符的優(yōu)先級和結(jié)合性賦值運算符是“右結(jié)合”,例如:a=b=c=0 賦值運算符的優(yōu)先級比上述運算符的優(yōu)先級都低例如:a=(b=9)*(c=7) 等價于 a=((b=9)*(c=7))y=x==0?1:sin(x)/x 等價于 y=(x==0?1:sin(x)/x)max=a>b?a:b 等價于 max=(a>b?a:b),4.6.4 應(yīng)用

21、舉例,【范例4-7】 分析下面程序的運行結(jié)果。01 #include02 void main()03 {04 int a,b,c;05 a=b=c=1;06 a+=b;/*等價于a=a+b*/07 b+=c;08 c+=a;09 printf(" (1)%d\n",a>b?a:b); /*輸出a,b二者的較大者*/1

22、0 (a>=b>=c)? printf(" AA"):printf(" CC"); /*若a>=b>=c成立則輸出AA,否則輸出CC*/11 printf(" \n a=%d,b=%d,c=%d\n",a,b,c);},4.6.4 應(yīng)用舉例,【范例4-8】 若a=12,試寫出表達式a+=a-=a*=a

23、運算后a的值。,a*=a,,a=a*a =12*12=144,a-=144,,a=a-144 =144-144=0,a+=0,,a=a+0=0+0=0,4.7 自增、自減運算符,自增運算符:++和自減運算符:-- 。有以下幾種形式:++i /*前置運算,相當于i=i+1*/--i /*前置運算,相當于i=i-1*/i++ /*后置運算,相當于i=i+1*/i-- /*后置運算,相當于i=i-1

24、*/注 意:++、--中間不能有空格; 自增自減運算符只能用于變量,是單目運算符; 它們都具有“右結(jié)合性” 。,4.7 自增、自減運算符,若i=0; 則 j=++i; 與 j=i++;一樣嗎?舉例:【范例4-9】 前置加和后置加的區(qū)別。說明:y=i+++j;應(yīng)該如何理解? 在C中,詞法分析遵循“最長匹配”原則。在確保有意義的條件下,從左到右盡可能多地將若干個字符組成一

25、個運算符,所以,上面的表達式就等價于y=(i++)+j。,4.8 逗號運算符和表達式,逗號運算符的功能是把兩個表達式連接起來,使之構(gòu)成一個逗號表達式。逗號運算符在所有運算符中是級別最低的。逗號表達式的一般形式為: 表達式1,表達式2 求解的過程是:先計算表達式1,再計算表達式2,最后整個逗號表達式的值就是表達式2的值 如:x=(i=10,i*5),4.8 逗號運算符和表達式,【范例4-10】 逗號表達式的應(yīng)用。01

26、 #include02 void main()03 {04 int a=2,b=4,c=6,x,y;05 y=(x=a+b),(b+c);06 printf("y=%d,x=%d",y,x);07 },4.8 逗號運算符和表達式,說明:⑴ 逗號表達式一般形式中的表達式1和表達式2 也可以又是逗號表達式。因此可以把逗號表達式擴展為以下形式: 表

27、達式1,表達式2,…表達式n。⑵ 程序中使用逗號表達式,通常是要分別求逗號表達式內(nèi)各表達式的值,并不一定要求整個逗號表達式的值。⑶ 并不是在所有出現(xiàn)逗號的地方都組成逗號表達式。,4.9 運算符的優(yōu)先級,運算符的優(yōu)先級共分為15級,如下表所示:,4.9 運算符的優(yōu)先級,如:x||y&&b+c,等價于:x||(y&&(b+c)),4.10 綜合應(yīng)用——計算函數(shù)的結(jié)果,【范例4-11】 計算如下函數(shù)

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論