版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章表達(dá)式3.1表達(dá)式基礎(chǔ)3.2算術(shù)表達(dá)式3.3賦值表達(dá)式3.4邏輯表達(dá)式3.5位運(yùn)算表達(dá)式3.6其它表達(dá)式習(xí)題三第3章表達(dá)式3.1表達(dá)式基礎(chǔ)13.1表達(dá)式基礎(chǔ)3.1.1表達(dá)式的組成1.運(yùn)算符運(yùn)算符又稱操作符,是一個(gè)符號(hào),它指示在一個(gè)或多個(gè)操作數(shù)上完成某種運(yùn)算操作或動(dòng)作。C語(yǔ)言中,將除了輸入、輸出及程序流程控制操作以外的所有基本操作都作為運(yùn)算處理,如賦值運(yùn)算“=”、逗號(hào)運(yùn)算“,”、括號(hào)運(yùn)算“(?)”。C語(yǔ)言的運(yùn)算符按完成的運(yùn)算操作可分為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符與其它運(yùn)算符等,按參與運(yùn)算符的操作數(shù)個(gè)數(shù)可分為單目運(yùn)算符、雙目運(yùn)算符與三目運(yùn)算符。3.1表達(dá)式基礎(chǔ)3.1.1表達(dá)式的組成12
(1)算術(shù)運(yùn)算符:+、?、*、/、%、++、??
(2)關(guān)系運(yùn)算符:<、<=、==、!=、>、>=。
(3)邏輯運(yùn)算符:!、&&、||。
(4)位運(yùn)算符:<<、>>、~、|、^、&。
(5)賦值運(yùn)算符:=、+=、?=、*=、/=、%=。
(6)條件運(yùn)算符:?:。
(7)逗號(hào)運(yùn)算符:,。(8)指針運(yùn)算符:*、&。
(9)求字節(jié)數(shù)運(yùn)算符:sizeof。
(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:(類型)。(11)其它運(yùn)算符;·?、→、(?)、[]等。(1)算術(shù)運(yùn)算符:+、?、*、/、%、++、??32.操作數(shù)操作數(shù)是運(yùn)算符的操作對(duì)象,可以是常量、變量、函數(shù)與表達(dá)式。常量、變量、函數(shù)本身就是簡(jiǎn)單表達(dá)式,從一般意義上講,C語(yǔ)言中所有操作數(shù)都是表達(dá)式。復(fù)雜表達(dá)式由運(yùn)算符連接簡(jiǎn)單表達(dá)式形成。2.操作數(shù)43.1.2表達(dá)式的書(shū)寫(xiě)C語(yǔ)言的表達(dá)式雖然來(lái)源于數(shù)學(xué)表達(dá)式,是數(shù)學(xué)表達(dá)式在計(jì)算機(jī)中的表示,但在書(shū)寫(xiě)時(shí)應(yīng)該注意遵循C語(yǔ)言表達(dá)式書(shū)寫(xiě)的原則:(1)C語(yǔ)言的表達(dá)式只能采用線性的形式書(shū)寫(xiě)。例如:①應(yīng)寫(xiě)成1/3+i+j*j*j。②應(yīng)寫(xiě)成(a+b)/(c+d)*e+f。3.1.2表達(dá)式的書(shū)寫(xiě)5(2)C語(yǔ)言的表達(dá)式只能使用C語(yǔ)言中合法的運(yùn)算符和操作數(shù),對(duì)有些操作必須調(diào)用庫(kù)函數(shù)完成,而且運(yùn)算符不能省略。例如:①πr2應(yīng)寫(xiě)成3.14159*r*r。②應(yīng)寫(xiě)成0.5*a*b*sin(alph)。③|x-y|應(yīng)寫(xiě)成fabs(x-y)。④y+2X應(yīng)寫(xiě)成y+pow(2,x)。(2)C語(yǔ)言的表達(dá)式只能使用C語(yǔ)言中合法的運(yùn)63.1.3表達(dá)式的分類C語(yǔ)言表達(dá)式種類很多,有多種分類方法。我們一般依據(jù)運(yùn)算的特征將表達(dá)式分為:①算術(shù)表達(dá)式,如a+b*2.0-3.0/5.0。②關(guān)系表達(dá)式,如x>=y,關(guān)系表達(dá)式可以認(rèn)為是邏輯表達(dá)式的特殊情況。③邏輯表達(dá)式,如(x>=2)&&(x<=8)。④賦值表達(dá)式,如a=b=c=1。⑤條件表達(dá)式,如(a>b)?a:b。⑥逗號(hào)表達(dá)式,如a=2,b=a*a,c=sqrt(b)。3.1.3表達(dá)式的分類71.運(yùn)算的優(yōu)先級(jí)運(yùn)算的優(yōu)先級(jí)是指運(yùn)算執(zhí)行的先后順序。C語(yǔ)言將運(yùn)算的優(yōu)先級(jí)劃分為15級(jí),第1級(jí)優(yōu)先級(jí)最高,第15級(jí)優(yōu)先級(jí)最低。初等運(yùn)算(?)、[?]、→、·的優(yōu)先級(jí)最高;單目運(yùn)算!、~、++、??、?、(類型)、*、&、sizeof的優(yōu)先級(jí)次高;算術(shù)運(yùn)算+、?、*、/、%再次之;然后是關(guān)系運(yùn)算<、<=、==、!=、>、>=;再然后是邏輯運(yùn)算&&、||,條件運(yùn)算式?:,賦值運(yùn)算=、+=、?=、*=、/=、%=;1.運(yùn)算的優(yōu)先級(jí)8逗號(hào)運(yùn)算優(yōu)先級(jí)最低;位運(yùn)算優(yōu)先級(jí)比較分散。可將優(yōu)先級(jí)順序簡(jiǎn)單記憶為算術(shù)、關(guān)系和邏輯,移位、位邏輯在中間。請(qǐng)參閱附錄B。表達(dá)式求值時(shí)按運(yùn)算的優(yōu)先級(jí)別從高到低順序進(jìn)行,優(yōu)先級(jí)相同的運(yùn)算順序由運(yùn)算的結(jié)合性規(guī)定。通過(guò)圓括號(hào)運(yùn)算可以改變運(yùn)算的優(yōu)先順序,先圓括號(hào)內(nèi),后圓括號(hào)外。逗號(hào)運(yùn)算優(yōu)先級(jí)最低;92.運(yùn)算符的結(jié)合性運(yùn)算符的結(jié)合性是指,優(yōu)先級(jí)相同的運(yùn)算從左到右進(jìn)行(左結(jié)合性)還是從右至左進(jìn)行(右結(jié)合性),左結(jié)合性是人們習(xí)慣的計(jì)算順序。C語(yǔ)言中,只有單目運(yùn)算(!、~、++、--、-、*、&)、條件運(yùn)算(?:)、賦值運(yùn)算(=、+=、-=、*=、/=、%=)的結(jié)合性是右結(jié)合,其余運(yùn)算為左結(jié)合。2.運(yùn)算符的結(jié)合性103.類型轉(zhuǎn)換一般地,相應(yīng)的運(yùn)算只有相應(yīng)類型的數(shù)據(jù)才能進(jìn)行,不同類型數(shù)據(jù)進(jìn)行運(yùn)算時(shí),要進(jìn)行類型轉(zhuǎn)換。類型轉(zhuǎn)換有自動(dòng)轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換兩種方式。1)自動(dòng)轉(zhuǎn)換自動(dòng)轉(zhuǎn)換(又稱隱含轉(zhuǎn)換)由系統(tǒng)自動(dòng)完成,轉(zhuǎn)換的規(guī)則如圖3-1所示。3.類型轉(zhuǎn)換11圖3-1中,橫向箭頭方向表示必定要進(jìn)行的轉(zhuǎn)換,即short型、char型數(shù)據(jù)必定先轉(zhuǎn)換成int型,float型數(shù)據(jù)必定先轉(zhuǎn)換為double型,再進(jìn)行運(yùn)算??v向箭頭方向表示類型自動(dòng)轉(zhuǎn)換的方向,請(qǐng)注意轉(zhuǎn)換的方向是由低向高轉(zhuǎn)換的,int型最低,double型最高。int型與unsigned型數(shù)據(jù)進(jìn)行運(yùn)算,int型轉(zhuǎn)換成unsigned型;int型與long型數(shù)據(jù)進(jìn)行運(yùn)算,int型轉(zhuǎn)換成long型;int型與double型數(shù)據(jù)進(jìn)行運(yùn)算,int型轉(zhuǎn)換成double型。其它類推。這種轉(zhuǎn)換是一種保值映射,在轉(zhuǎn)換中數(shù)據(jù)的精度不受損失。圖3-1中,橫向箭頭方向表示必定要進(jìn)行的轉(zhuǎn)換,即12圖3-1類型自動(dòng)轉(zhuǎn)換規(guī)則圖3-1類型自動(dòng)轉(zhuǎn)換規(guī)則132)強(qiáng)制轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換通過(guò)類型轉(zhuǎn)換運(yùn)算完成。格式:(類型名)(表達(dá)式)強(qiáng)制轉(zhuǎn)換將表達(dá)式的類型強(qiáng)制轉(zhuǎn)換成類型名指定的類型。例如x、y為float,則(int)(x+y)將實(shí)型表達(dá)式x+y強(qiáng)制轉(zhuǎn)換成整型。值得注意的是,強(qiáng)制類型轉(zhuǎn)換在將高類型轉(zhuǎn)換為低類型時(shí),數(shù)據(jù)精度會(huì)有損失,是一種不安全的轉(zhuǎn)換。同時(shí)強(qiáng)制類型轉(zhuǎn)換是一次性的、暫時(shí)性的,并不能永久改變所轉(zhuǎn)換表達(dá)式的類型。例如a為int,則(double)?a為雙精度型,a依然為整型。2)強(qiáng)制轉(zhuǎn)換14例3–1表達(dá)式計(jì)算。(1)floatx=2.5,y=4.7;inta=7;計(jì)算x+a%3*(int)(x+y)%2/4⑦①④③②⑤⑥①a%3等于1。②x+y等于7.2。③(int)(x+y)等于7。④a%3*(int)(x+y)等于7。⑤a%3*(int)(x+y)%2等于1。⑥a%3*(int)(x+y)%2/4等于0。⑦x+a%3*(int)(x+y)%2/4等于2.5+0,結(jié)果為2.5。例3–1表達(dá)式計(jì)算。15(2)inta=2,b=3;floatx=3.5,y=2.5;計(jì)算(float)(a+b)/2+(int)x%(int)y②①③⑦④⑥⑤①a+b等于5。②(float)(a+b)等于5.0,強(qiáng)制轉(zhuǎn)換成float型。③(float)(a+b)/2等于5.0/2.0,結(jié)果為2.5。④(int)x等于3,強(qiáng)制轉(zhuǎn)換成int型。⑤(int)y等于2,強(qiáng)制轉(zhuǎn)換成int型。⑥(int)x%(int)y等于1。⑦(float)(a+b)/2+(int)x%(int)y等于2.5+1.0,結(jié)果為3.5(雙精度型)。(2)inta=2,b=3;floatx=3.16(3)inti=3;floatf=1.0;doubled=2.3;計(jì)算10+′a′+i*f-d①③②④①′a′轉(zhuǎn)換成97,10+′a′等于107。②i,f轉(zhuǎn)換成雙精度型,i*f等于3.0。③107轉(zhuǎn)換成雙精度型,10+′a′+i*f等于110.0。④10+′a′+i*f-d等于107.7。(3)inti=3;floatf=1.0;do173.2算術(shù)表達(dá)式1.自增運(yùn)算自增運(yùn)算符:++。自增運(yùn)算是單目運(yùn)算,操作數(shù)只能是整型變量,有前置、后置兩種方式:++i,在使用i之前,先使i的值增加1,俗稱先增后用。i++,先使用i的值,然后使i的值增加1,俗稱先用后增。3.2算術(shù)表達(dá)式1.自增運(yùn)算18例如:i=1999;j=++i;/*先將i的值增1,變?yōu)?000后賦給j,j的值也為2000*/j=i++;/*先將i的值賦給j,j的值為1999。然后將i的值增1,變?yōu)?000*/自增運(yùn)算的優(yōu)先級(jí)處于第2級(jí),具右結(jié)合性。例如:192.自減運(yùn)算自減運(yùn)算符:--自減運(yùn)算與自增運(yùn)算一樣也是單目運(yùn)算,操作數(shù)也只能是整型變量。同樣有前置、后置兩種方式:--i,在使用i之前,先使i的值減1,俗稱先減后用。i--,先使用i的值,然后使i的值減1,俗稱先用后減。2.自減運(yùn)算20如:i=2000;j=--i;/*先減,將i的值減1,變?yōu)?999。后使用,j的值也為1999*/j=i--;/*先使用,j的值為2000。后減,將i的值減1,i的值變?yōu)?999*/自減運(yùn)算的優(yōu)先級(jí)、結(jié)合性同自增運(yùn)算。如:i=2000;21請(qǐng)?zhí)貏e注意:(1)自增、自減運(yùn)算只能用于變量,不能用于常量或表達(dá)式。(2)自增、自減運(yùn)算比等價(jià)的賦值語(yǔ)句生成的目標(biāo)代碼更高效。(3)自增、自減運(yùn)算常用于循環(huán)語(yǔ)句中,使循環(huán)控制變量自動(dòng)加或減1;還可用于指針變量,使指針指向下一個(gè)或上一個(gè)地址。請(qǐng)?zhí)貏e注意:22(4)表達(dá)式中包含有自增、自減運(yùn)算時(shí),特別容易出錯(cuò),務(wù)請(qǐng)小心。例如,i=1,(++i)+(++i)+(++i)的值為多少呢?可能計(jì)算出是9(=2+3+4),其實(shí)這是錯(cuò)誤的。實(shí)際上計(jì)算時(shí)先對(duì)整個(gè)表達(dá)式掃描,i先自增3次,由1→2→3→4,因此計(jì)算結(jié)果應(yīng)為12(=4+4+4)。(i++)+(i++)+(i++)的值又是多少呢?分析同上,應(yīng)為3,當(dāng)然表達(dá)式計(jì)算完成后i的值同樣改變?yōu)?。(4)表達(dá)式中包含有自增、自減運(yùn)算時(shí),特別容易出錯(cuò)233.運(yùn)算符的組合問(wèn)題C語(yǔ)言的運(yùn)算符一般為一個(gè)字符,有的由兩個(gè)字符組成。在表達(dá)式中出現(xiàn)多個(gè)字符時(shí)如何組合呢?C編譯系統(tǒng)在處理時(shí),原則上盡可能自左至右將若干字符組合成一個(gè)運(yùn)算符。如將i+++j解釋為(i++)+j,而不是i+(++j)。如要表示i+(++j),必須加括號(hào)。標(biāo)識(shí)符、關(guān)鍵字也按同樣的原則進(jìn)行處理。3.運(yùn)算符的組合問(wèn)題24例3–2自增自減運(yùn)算。/*程序3-2,自增自減運(yùn)算*/#include″stdio.h″main(){inti,j;i=j=5;printf(″i++=%d,j--=%d\n″,i++,j--);printf(″++i=%d,--j=%d\n″,++i,--j);printf(″i++=%d,j--=%d\n″,i++,j--);printf(″++i=%d,--j=%d\n″,++i,--j);printf(″i=%d,j=%d\n″,i,j);}例3–2自增自減運(yùn)算。25運(yùn)行結(jié)果: i++=5,j??=5 ++i=7,??j=3 i++=7,j??=3 ++i=9,??j=1 i=9,j=1運(yùn)行結(jié)果:263.3賦值表達(dá)式3.3.1賦值運(yùn)算賦值運(yùn)算符:=。賦值運(yùn)算是雙目運(yùn)算,一個(gè)操作數(shù)為變量,另一個(gè)操作數(shù)為表達(dá)式。賦值運(yùn)算符左邊的操作數(shù)只能是變量,右邊可以是表達(dá)式。進(jìn)行賦值運(yùn)算時(shí)先計(jì)算右邊表達(dá)式的值,然后將右邊表達(dá)式的值賦給左邊變量,即送給左邊變量對(duì)應(yīng)的存儲(chǔ)單元,并以此作為整個(gè)賦值表達(dá)式的值。例如i為int,i=3+5%2,則先計(jì)算右邊表達(dá)式3+5%2的值,得到4,然后將4賦給左邊變量i。3.3賦值表達(dá)式3.3.1賦值運(yùn)算賦值27說(shuō)明:(1)賦值運(yùn)算的優(yōu)先級(jí)為第14級(jí),具有右結(jié)合性。(2)賦值運(yùn)算中的表達(dá)式最簡(jiǎn)單的形式是一個(gè)常量,這時(shí)變量得到一個(gè)初值。例如: inti;floatx;charch; i=100;x=12.345;ch='A';說(shuō)明:28(3)賦值運(yùn)算中的表達(dá)式又可以是賦值表達(dá)式,如此可輾轉(zhuǎn)賦值。例如: intx,y,z;x=y=z=0.0,相當(dāng)于x=(y=(z=0.0)),即x、y、z都得到值0.0。?③②?①(4)賦值運(yùn)算符“=”不同于數(shù)學(xué)中的等號(hào)。例如,i=i+1在數(shù)學(xué)中絕對(duì)不成立,但在C語(yǔ)言中肯定成立,其含義是將i的當(dāng)前值加上1再賦給i。(3)賦值運(yùn)算中的表達(dá)式又可以是賦值表達(dá)式,如此可293.3.2賦值類型轉(zhuǎn)換在進(jìn)行賦值運(yùn)算時(shí),一般要求賦值運(yùn)算符兩側(cè)操作數(shù)的類型相同或相容。如果賦值運(yùn)算符兩側(cè)操作數(shù)的類型不一致,要進(jìn)行類型轉(zhuǎn)換。賦值運(yùn)算時(shí)的類型轉(zhuǎn)換以賦值運(yùn)算左邊操作數(shù)的類型為主體進(jìn)行。(1)將實(shí)型數(shù)據(jù)賦給整型變量時(shí),舍棄實(shí)數(shù)的小數(shù)部分。例如i為int,若有i=1.23,則i的值為1。(2)將整型數(shù)據(jù)賦給單、雙精度型變量時(shí),數(shù)值大小不變,但以浮點(diǎn)形式存儲(chǔ)到變量中。3.3.2賦值類型轉(zhuǎn)換30(3)字符型數(shù)據(jù)賦給整型變量時(shí),由于字符數(shù)據(jù)只占一個(gè)字節(jié),而整型變量為2個(gè)字節(jié),因此將字符型數(shù)據(jù)放在整型變量的低8位中,而對(duì)整型變量的高8位要進(jìn)行擴(kuò)充。(4)將基本整型數(shù)據(jù)賦給長(zhǎng)整型變量時(shí),基本整型數(shù)據(jù)放在長(zhǎng)整型變量的低16位,高16位用符號(hào)位擴(kuò)充。反之,將長(zhǎng)整型數(shù)據(jù)賦給基本整型變量時(shí),只將長(zhǎng)整型數(shù)據(jù)的低16位送給基本整型變量。(3)字符型數(shù)據(jù)賦給整型變量時(shí),由于字符數(shù)據(jù)只占31①inti=-1;longintj;j=i;i的二進(jìn)制形式:0000000000000001j的二進(jìn)制形式:00000000000000000000000000000001②inti=?1;?longintj;?j=i;i的二進(jìn)制形式:1111111111111111j的二進(jìn)制形式:11111111111111111111111111111111①inti=-1;32③longinti=?1;?intj;?j=i;i的二進(jìn)制形式:11111111111111111111111111111111j的二進(jìn)制形式:1111111111111111③longinti=?1;33(5)將無(wú)符號(hào)整型數(shù)據(jù)賦給長(zhǎng)整型變量時(shí),不存在符號(hào)位擴(kuò)展的問(wèn)題,只需將高位補(bǔ)0即可。將無(wú)符號(hào)整型數(shù)據(jù)賦給一個(gè)占字節(jié)數(shù)相同的整型變量時(shí),將無(wú)符號(hào)整型數(shù)據(jù)原樣送整型變量中,并將最高位當(dāng)作符號(hào)位,如果數(shù)據(jù)超出相應(yīng)的整型范圍,將產(chǎn)生數(shù)據(jù)錯(cuò)誤。如果將整型數(shù)據(jù)賦給占字節(jié)數(shù)相同的無(wú)符號(hào)整型變量時(shí),也是原樣照賦,最高位作數(shù)值處理。(5)將無(wú)符號(hào)整型數(shù)據(jù)賦給長(zhǎng)整型變量時(shí),不34例如:①unsignedinti=65535;?intj;?j=i;/*j的值為?1*/②inti=?1;?unsignedintj;??j=i;/*j的值為65535*/例如:353.3.3復(fù)合賦值運(yùn)算在基本賦值運(yùn)算符“=”之前加上任一雙目算術(shù)運(yùn)算符及位運(yùn)算符可構(gòu)成復(fù)合賦值運(yùn)算符,又稱帶運(yùn)算的賦值運(yùn)算符。算術(shù)復(fù)合賦值運(yùn)算符:+=、-=、*=、/=、%=位復(fù)合賦值運(yùn)算符:&=、|=、^=、>>=、<<=一般形式:變量☆=表達(dá)式等價(jià)于:變量=變量☆表達(dá)式☆代表任一雙目算術(shù)運(yùn)算符或位運(yùn)算符。復(fù)合賦值運(yùn)算先進(jìn)行所帶運(yùn)算,再進(jìn)行賦值運(yùn)算。復(fù)合賦值運(yùn)算的優(yōu)先級(jí)同賦值運(yùn)算。3.3.3復(fù)合賦值運(yùn)算在基本賦值運(yùn)算符36例如:①inta=3;a+=2等價(jià)于a=a+2,結(jié)果為5。②floatx=1.2,y=2.1;y*=x+3.4等價(jià)于y=y*(x+3.4),結(jié)果為9.66。③inta=3,b=2;b/=a+=1等價(jià)于b=b/(a=a+1),結(jié)果為0。例如:37例3-3賦值運(yùn)算。 /*程序3-3,賦值運(yùn)算*/ #include"stdio.h" main(?) {inti,j;floatx,y; i=j=1; x=y=1.1;printf("i=%d,j=%d\n",i,j);例3-3賦值運(yùn)算。38x=i+j;y+=1;printf("x=%4.2f,y=%4.2f\n",x,y);i=i+++j;x=2*x+y;printf("i=%d,x=%4.2f\n",i,x);}運(yùn)行結(jié)果: i=1,j=1 x=2.00,y=2.10i=3,x=6.10x=i+j;39printf(″x=%4.2f,y=%4.2f\n″,x,y);i=i+++j;x=2*x+y;printf(″i=%d,x=%4.2f\n″,i,x);}運(yùn)行結(jié)果:i=1,j=1x=2.00,y=2.10i=2,x=6.10printf(″x=%4.2f,y=%4.2f\n″,x403.4邏輯表達(dá)式3.4.1關(guān)系表達(dá)式關(guān)系表達(dá)式是邏輯表達(dá)式中的一種特殊情況,關(guān)系表達(dá)式由關(guān)系運(yùn)算符和操作數(shù)組成,關(guān)系運(yùn)算用于完成數(shù)的比較運(yùn)算。關(guān)系運(yùn)算有<、<=、==、!=、>、>=,<、<=、>、>=的優(yōu)先級(jí)相同,==、!=的優(yōu)先級(jí)相同,前者的優(yōu)先級(jí)高于后者。關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算,高于邏輯運(yùn)算&&、||,也高于賦值運(yùn)算。3.4邏輯表達(dá)式3.4.1關(guān)系表達(dá)式413.4.2邏輯表達(dá)式邏輯表達(dá)式由邏輯運(yùn)算符和操作數(shù)組成,邏輯表達(dá)式用于程序設(shè)計(jì)中的條件描述。邏輯表達(dá)式中操作數(shù)可以是邏輯量和關(guān)系表達(dá)式。C語(yǔ)言有!、&&、‖三種邏輯運(yùn)算,運(yùn)算規(guī)則在上章已作介紹。!運(yùn)算的優(yōu)先級(jí)高于算術(shù)運(yùn)算,&&運(yùn)算的優(yōu)先級(jí)高于‖運(yùn)算,&&、‖運(yùn)算的優(yōu)先級(jí)低于關(guān)系運(yùn)算,高于賦值運(yùn)算。3.4.2邏輯表達(dá)式42在計(jì)算邏輯表達(dá)式時(shí)務(wù)請(qǐng)注意:&&和‖是一種短路運(yùn)算。所謂短路運(yùn)算,是指在計(jì)算的過(guò)程中,只要表達(dá)式的值能確定,便不再計(jì)算下去。邏輯與運(yùn)算時(shí),計(jì)算到某個(gè)操作數(shù)為假,可以確定整個(gè)表達(dá)式的值為假時(shí),剩余的表達(dá)式部分便不再計(jì)算。邏輯或運(yùn)算時(shí),計(jì)算到某個(gè)操作數(shù)為真,可以確定整個(gè)表達(dá)式的值為真時(shí),剩余的表達(dá)式部分便不再計(jì)算。在計(jì)算邏輯表達(dá)式時(shí)務(wù)請(qǐng)注意:43例如:①e1&&e2&&e3,若e1為0,可確定表達(dá)式的值為0,則不再計(jì)算e2、e3。②e1‖e2‖e3,若e1為真,則可確定表達(dá)式的值為真,也不再計(jì)算e2、e3。例如:44例3—4用邏輯表達(dá)式描述下列條件:(1)x是3的倍數(shù)。x%3==0(2)x是偶數(shù)。x%2==0(3)x是3的倍數(shù)且x是偶數(shù)。(x%3==0)&&(x%2==0)(4)100<x<200。(x>100)&&(x<200)例3—4用邏輯表達(dá)式描述下列條件:45(5)x等于2或8。(x==2)||(x==8)(6)三位數(shù)x是回文數(shù):x/100==x%10(7)a、b、c為三邊,它們構(gòu)成等邊三角形的條件:(a==b)&&(b==c)(8)某年是閏年:((year%4==0)&&(year%100!=0))‖(year%400==0)(5)x等于2或8。463.5位運(yùn)算表達(dá)式3.5.1位邏輯運(yùn)算1.按位取反運(yùn)算運(yùn)算符:~。按位取反運(yùn)算用來(lái)對(duì)一個(gè)二進(jìn)制數(shù)按位取反,即0位變1,1位變0。例如,計(jì)算~25。25的二進(jìn)制表示為:0000000000011001。按位取反的結(jié)果為:1111111111100110,即?26。3.5位運(yùn)算表達(dá)式3.5.1位邏輯運(yùn)算47~運(yùn)算常用于產(chǎn)生一些特殊的數(shù)。如高8位全1、低8位全0的數(shù)0xFF00,按位取反后變?yōu)?x00FF。~1,在16位與32位的系統(tǒng)中,都代表只有最低位為0的整數(shù)。~運(yùn)算是位運(yùn)算中惟一的單目運(yùn)算,也是惟一具有右結(jié)合性的位運(yùn)算?!\(yùn)算常用于產(chǎn)生一些特殊的數(shù)。如高8位全1、低8位全482.按位與運(yùn)算運(yùn)算符:&。按位與運(yùn)算的規(guī)則是操作數(shù)的對(duì)應(yīng)位為1,則該位的運(yùn)算結(jié)果為1,否則為0。例如,計(jì)算0x29&0x37。0x29與0x37的二進(jìn)制表示為:0000000000101001與0000000000110111。按位與的結(jié)果為:00000000000100001,即0x21。按位與運(yùn)算的主要用途是清零及取數(shù)的某些位或保留數(shù)的某些位。2.按位與運(yùn)算49例如:①a&0,將a清0。②a&0xFF00,取數(shù)a的高8位,低8位清0。③a&0x00FF,取數(shù)a的低8位,高8位清0。例如:503.按位或運(yùn)算運(yùn)算符:|按位或運(yùn)算的規(guī)則是操作數(shù)的對(duì)應(yīng)位都為0,則該位的運(yùn)算結(jié)果為0,否則為1。例如:0x29|0x37,0x29與0x37的二進(jìn)制表示為:0000000000101001與0000000000110111按位或結(jié)果為:0000000000111111,即等于0x3f。利用|運(yùn)算可將數(shù)的部分位或所有位置1。3.按位或運(yùn)算51例如:a|0x000F,a的低4位全置1,其它位保留。a|0xFFFF,a的每一位全置1。例如:524.按位異或運(yùn)算運(yùn)算符:^按位異或運(yùn)算的規(guī)則是操作數(shù)的對(duì)應(yīng)位相同,則該位的運(yùn)算結(jié)果為0,否則為1。例如:0x29^0x37,0x29與0x37的二進(jìn)制表示為:0000000000101001與0000000000110111按位異或結(jié)果為:0000000000011110,即等于0x1e。利用^運(yùn)算將數(shù)的特定位翻轉(zhuǎn),保留原值,不用臨時(shí)變量交換兩個(gè)變量的值。4.按位異或運(yùn)算53例如:(1)a^0x00FF,將數(shù)a的低8位翻轉(zhuǎn),高8位不變。(2)a^0,保留數(shù)a的原值。(3)a=a^b,b=b^a,a=a^b,不用臨時(shí)變量交換a,b的值。位邏輯運(yùn)算自身的優(yōu)先級(jí)由高到低依次是~、&、|、^,在整個(gè)運(yùn)算體系中~運(yùn)算的優(yōu)先級(jí)位于第二級(jí),&、|、^運(yùn)算低于關(guān)系運(yùn)算,高于邏輯運(yùn)算。位邏輯運(yùn)算意義與邏輯運(yùn)算一樣,但位邏輯運(yùn)算對(duì)二進(jìn)制位而言,且必須對(duì)數(shù)的所有二進(jìn)制位進(jìn)行,而且操作數(shù)只能為整數(shù)。如果參與運(yùn)算的數(shù)據(jù)長(zhǎng)度不同,將對(duì)短的數(shù)據(jù)先進(jìn)行高位符號(hào)擴(kuò)展后再進(jìn)行位運(yùn)算。例如:543.5.2移位運(yùn)算1.左移位運(yùn)算運(yùn)算符:<<左移位運(yùn)算的左操作數(shù)是要進(jìn)行移位的整數(shù),右操作數(shù)是要移的位數(shù)。左移位運(yùn)算規(guī)則是高位左移后溢出,舍棄,空出的低位補(bǔ)0。例如,計(jì)算15<<2。15的二進(jìn)制表示為:0000000000001111。左移2位結(jié)果為:0000000000111100,等于60。左移一位相當(dāng)于該數(shù)乘以2,左移兩位相當(dāng)于該數(shù)乘以4(22)。使用左移位運(yùn)算可以快速實(shí)現(xiàn)乘2運(yùn)算。3.5.2移位運(yùn)算1.左移位運(yùn)算552.右移位運(yùn)算運(yùn)算符:>>。右移位運(yùn)算規(guī)則是低位右移后被舍棄,空出的左邊高位對(duì)無(wú)符號(hào)數(shù)移入0,對(duì)有符號(hào)數(shù),如果是正數(shù),則空出的左邊高位移入0,如果是負(fù)數(shù),則左邊移入0還是1,要取決于所用的編譯系統(tǒng),有的移入0(邏輯右移),有的移入1(算術(shù)右移)。例如,15>>2,右移2位,等于0000000000000011,即3。2.右移位運(yùn)算56右移一位相當(dāng)于將該數(shù)除以2,右移兩位相當(dāng)于將該數(shù)除以4(22)。使用右移位運(yùn)算可以快速實(shí)現(xiàn)除2運(yùn)算。移位運(yùn)算的優(yōu)先級(jí)低于算術(shù)運(yùn)算,高于關(guān)系運(yùn)算。所有位運(yùn)算也可與賦值運(yùn)算組合成復(fù)合賦值運(yùn)算:&=、|=、^=、<<=、>>=,請(qǐng)參閱賦值運(yùn)算。右移一位相當(dāng)于將該數(shù)除以2,右移兩位相當(dāng)于將該數(shù)除57例3—5取一個(gè)整數(shù)a的從右端開(kāi)始的4~7位。/*程序3—5,取一個(gè)整數(shù)a的從右端開(kāi)始的4~7位*/#include″stdio.h″main(){unsigneda,b,c,d;scanf(″%o″,&a);/*八進(jìn)制形式輸入*/b=a>>4;/*a右移4位*/c=~(~0<<4);/*得到一低4位全為1,其余位為0的數(shù)*/d=b&c;/*取b的0~3位,即得到a的4~7位*/printf(″a=%o,a(4~7)=%o″,a,d);}輸入數(shù)據(jù):331運(yùn)行結(jié)果:a=331,a(4~7)=15例3—5取一個(gè)整數(shù)a的從右端開(kāi)始的4~7位。583.6其它表達(dá)式3.6.1條件表達(dá)式條件表達(dá)式由條件運(yùn)算符和操作數(shù)組成,用以將條件語(yǔ)句以表達(dá)式的形式出現(xiàn),完成選擇判斷處理。條件運(yùn)算符由“?”和“:”組成。條件運(yùn)算是三目運(yùn)算,有三個(gè)操作數(shù),一般形式如下:表達(dá)式1?表達(dá)式2:表達(dá)式33.6其它表達(dá)式3.6.1條件表達(dá)式59表達(dá)式1必須為邏輯表達(dá)式,是條件運(yùn)算的條件。如表達(dá)式1為真,則計(jì)算表達(dá)式2,并以此作為整個(gè)表達(dá)式的值;如表達(dá)式1為假,則計(jì)算表達(dá)式3,并以此作為整個(gè)表達(dá)式的值。例如:①a>b?a:b表示若a大于b,則表達(dá)式的值為a;若a小于b,則表達(dá)式的值為b。實(shí)際上是求a、b的最大值。②a>0?a:?a表示若a大于0,則表達(dá)式的值為a;若a小于等于0,則表達(dá)式的值為?a。實(shí)際上是求a的絕對(duì)值。條件運(yùn)算的優(yōu)先級(jí)為倒數(shù)第三級(jí),高于賦值運(yùn)算和逗號(hào)運(yùn)算,低于邏輯運(yùn)算,具有右結(jié)合性。如a>b?a:c>d?c:d,相當(dāng)于a>b?a:(c>d?c:d)。表達(dá)式1必須為邏輯表達(dá)式,是條件運(yùn)算的條件。如60例3—6判斷整數(shù)的正負(fù)。/*程序3—6,判斷整數(shù)的正負(fù)*/#include″stdio.h″main(){intx;scanf(″%d″,″&x″);x>0?printf(″%s″,″正數(shù)″):printf(″%c″,″負(fù)數(shù)″);}例3—6判斷整數(shù)的正負(fù)。613.6.2逗號(hào)表達(dá)式逗號(hào)表達(dá)式由逗號(hào)運(yùn)算符和操作數(shù)組成,用以將多個(gè)表達(dá)式連接成一個(gè)表達(dá)式。逗號(hào)運(yùn)算符:,。逗號(hào)運(yùn)算是雙目運(yùn)算。其簡(jiǎn)單形式為:表達(dá)式1,表達(dá)式2逗號(hào)運(yùn)算的規(guī)則為先計(jì)算表達(dá)式1,再計(jì)算表達(dá)式2,并以此作為整個(gè)表達(dá)式的值。例如,計(jì)算a=2,a*6的值。先計(jì)算表達(dá)式a=2,再計(jì)算表達(dá)式a*6,并以此作為整個(gè)表達(dá)式的值,因此該表達(dá)式的值為12。3.6.2逗號(hào)表達(dá)式62逗號(hào)運(yùn)算的優(yōu)先級(jí)最低,具有左結(jié)合性。逗號(hào)表達(dá)式的更一般使用形式為:表達(dá)式1,表達(dá)式2,表達(dá)式3,…,表達(dá)式n這時(shí)的運(yùn)算規(guī)則是先計(jì)算表達(dá)式1,再計(jì)算表達(dá)式2,再計(jì)算表達(dá)式3,…,再計(jì)算表達(dá)式n的值,并以此作為整個(gè)表達(dá)式的值。所以逗號(hào)運(yùn)算又稱為順序求值運(yùn)算。例如:x=a=3,6*x,6*a,a+x的值為6。逗號(hào)運(yùn)算的優(yōu)先級(jí)最低,具有左結(jié)合性。633.6.3其它運(yùn)算
1.取地址運(yùn)算運(yùn)算符:&取地址運(yùn)算是單目運(yùn)算,操作數(shù)只能是變量,得到變量的地址。C語(yǔ)言程序設(shè)計(jì)中許多場(chǎng)合要使用到地址數(shù)據(jù)。如輸入函數(shù)scanf(),輸入?yún)?shù)就要求是地址表,將讀入的數(shù)據(jù)送變量對(duì)應(yīng)的存儲(chǔ)單元中。取地址運(yùn)算的優(yōu)先級(jí)次高。C語(yǔ)言還提供一個(gè)指針運(yùn)算“*”,用于取存儲(chǔ)單元的內(nèi)容.3.6.3其它運(yùn)算1.取地址運(yùn)算642.求字節(jié)數(shù)運(yùn)算運(yùn)算符:sizeof求字節(jié)數(shù)運(yùn)算是單目運(yùn)算,操作數(shù)可以是類型名,也可以是變量、表達(dá)式,用以求得相應(yīng)類型或數(shù)據(jù)所占的字節(jié)數(shù)。此運(yùn)算的優(yōu)先級(jí)與取地址運(yùn)算優(yōu)先級(jí)相同。2.求字節(jié)數(shù)運(yùn)算65例3-7計(jì)算各種類型數(shù)據(jù)的存儲(chǔ)字節(jié)數(shù)。/*程序3-7,計(jì)算各種類型數(shù)據(jù)的存儲(chǔ)字節(jié)數(shù)*/#include"stdio.h"main(?){clrscr(?);printf("sizeof(int)=%dbyte\n",sizeof(int));printf("sizeof(longint)=%dbyte\n",sizeof(longint));printf("sizeof(shortint)=%dbyte\n",sizeof(shortint));printf("sizeof(unsignedint)=%dbyte\n",sizeof(unsignedint));printf("sizeof(unsignedlongint)=%dbyte\n",sizeof(unsignedlongint));printf("sizeof(float)=%dbyte\n",sizeof(float));printf("sizeof(double)=%dbyte\n",sizeof(double));printf("sizeof(char)=%dbyte\n",sizeof(char));}例3-7計(jì)算各種類型數(shù)據(jù)的存儲(chǔ)字節(jié)數(shù)。663.括號(hào)運(yùn)算在其它語(yǔ)言中括號(hào)是某些語(yǔ)法成分的描述方式,C語(yǔ)言將括號(hào)亦作為運(yùn)算處理。(1)圓括號(hào)運(yùn)算():用于改變運(yùn)算的優(yōu)先級(jí),還用于將函數(shù)的參數(shù)與函數(shù)名相分離。(2)中括號(hào)運(yùn)算[]:又稱下標(biāo)運(yùn)算,用來(lái)得到數(shù)組的分量下標(biāo)變量。括號(hào)運(yùn)算的優(yōu)先級(jí)處于最高一級(jí)。3.括號(hào)運(yùn)算67習(xí)題三1.簡(jiǎn)述C語(yǔ)言表達(dá)式的書(shū)寫(xiě)原則。2.簡(jiǎn)述C語(yǔ)言運(yùn)算的優(yōu)先級(jí)與結(jié)合性。3.簡(jiǎn)述表達(dá)式計(jì)算時(shí)數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換規(guī)則。4.簡(jiǎn)述表達(dá)式計(jì)算時(shí)數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換方法。
習(xí)題三1.簡(jiǎn)述C語(yǔ)言表達(dá)式的書(shū)寫(xiě)原則。685.將下列數(shù)學(xué)表達(dá)式書(shū)寫(xiě)成C語(yǔ)言表達(dá)式。(1)ax2+bx+c (2)(3) (4)(5)?ln(x++sin2x+cos3x) (6)πr2h1+πr2h25.將下列數(shù)學(xué)表達(dá)式書(shū)寫(xiě)成C語(yǔ)言表達(dá)式。696.將下列條件用C語(yǔ)言邏輯表達(dá)式描述。(1)i是j的倍數(shù)。(2)?k是奇數(shù)且是3的倍數(shù)。(3)點(diǎn)(x+y)在以原點(diǎn)為圓心,r為半徑的圓上。(4)C語(yǔ)言考試成績(jī)cj高于60分,低于70分。(5)三個(gè)數(shù)x、y、z互不相等。(6)以a、b、c為三邊構(gòu)成三角形的條件。(7)方程ax2+bx+c=0有實(shí)根。(8)四位的整數(shù)x是回文數(shù)。
6.將下列條件用C語(yǔ)言邏輯表達(dá)式描述。707.已知變量有如下的定義: floatx=20.5; inty=12,z=8;計(jì)算下列表達(dá)式的值。(1)?(int)x+y+z (2)?x+y%3%2(3)?y%=z%=5 (4)?x*(y+=z)(5)?y+=y-=y*=y (6)?x+y+z,x+y,x(7)?x*=y,x/=y,y (8)?z=++y+(++y)+(++y)
7.已知變量有如下的定義:718.已知變量有如下的定義:inta=3,b=4,c=5;計(jì)算下列表達(dá)式的值。(1)a+b>c&&b==c (2)?a‖b+c&&b?c(3)!(a>b)&&!c‖4 (4)?!(x=a)&&(y=b)(5)!(a+b)+c?1&&b+c/2 (6)?a+b&&b+c‖c+a
8.已知變量有如下的定義:729.已知變量有如下的定義:inta=12;計(jì)算下列表達(dá)式的值。(1)?~a (2)?a&0xF0F0(3)?a|0xF0F0 (4)?a^0xFF00
9.已知變量有如下的定義:7310.閱讀下面的程序,給出程序的運(yùn)行結(jié)果。#include"stdio.h"main(?){intx,y,z;x=2;y=x+2;printf("x=%d,y=%d\n",x,y);x*=y=z=4;printf("x=%d,y=%d,z=%d\n",x,y);x=y==z;printf("x=%d,y=%d\n",x,y);}
10.閱讀下面的程序,給出程序的運(yùn)行結(jié)果。7411.編寫(xiě)程序,求三個(gè)數(shù)的和、積以及平均值。12.a(chǎn)=5,b=10,編寫(xiě)程序計(jì)算(a+b)/(a-b)的值。13.a(chǎn)=b=1,編寫(xiě)程序計(jì)算a==b、++a<++b和a&&b的值。14.x=3,y=4,z=5,編寫(xiě)程序計(jì)算以下表達(dá)式的值:11.編寫(xiě)程序,求三個(gè)數(shù)的和、積以及平均值。7515.a(chǎn)=1,b=2,c=1,編寫(xiě)程序計(jì)算以下表達(dá)式的值:(1)(-b+)/2a。(2)(-b-)/2a。16.i=12,編寫(xiě)程序驗(yàn)證:(1)i*4與i<<2結(jié)果相同。(2)i/4與i>>2結(jié)果相同。
15.a(chǎn)=1,b=2,c=1,編寫(xiě)程序計(jì)算以下表達(dá)式的值:76第3章表達(dá)式3.1表達(dá)式基礎(chǔ)3.2算術(shù)表達(dá)式3.3賦值表達(dá)式3.4邏輯表達(dá)式3.5位運(yùn)算表達(dá)式3.6其它表達(dá)式習(xí)題三第3章表達(dá)式3.1表達(dá)式基礎(chǔ)773.1表達(dá)式基礎(chǔ)3.1.1表達(dá)式的組成1.運(yùn)算符運(yùn)算符又稱操作符,是一個(gè)符號(hào),它指示在一個(gè)或多個(gè)操作數(shù)上完成某種運(yùn)算操作或動(dòng)作。C語(yǔ)言中,將除了輸入、輸出及程序流程控制操作以外的所有基本操作都作為運(yùn)算處理,如賦值運(yùn)算“=”、逗號(hào)運(yùn)算“,”、括號(hào)運(yùn)算“(?)”。C語(yǔ)言的運(yùn)算符按完成的運(yùn)算操作可分為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符與其它運(yùn)算符等,按參與運(yùn)算符的操作數(shù)個(gè)數(shù)可分為單目運(yùn)算符、雙目運(yùn)算符與三目運(yùn)算符。3.1表達(dá)式基礎(chǔ)3.1.1表達(dá)式的組成178
(1)算術(shù)運(yùn)算符:+、?、*、/、%、++、??
(2)關(guān)系運(yùn)算符:<、<=、==、!=、>、>=。
(3)邏輯運(yùn)算符:!、&&、||。
(4)位運(yùn)算符:<<、>>、~、|、^、&。
(5)賦值運(yùn)算符:=、+=、?=、*=、/=、%=。
(6)條件運(yùn)算符:?:。
(7)逗號(hào)運(yùn)算符:,。(8)指針運(yùn)算符:*、&。
(9)求字節(jié)數(shù)運(yùn)算符:sizeof。
(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:(類型)。(11)其它運(yùn)算符;·?、→、(?)、[]等。(1)算術(shù)運(yùn)算符:+、?、*、/、%、++、??792.操作數(shù)操作數(shù)是運(yùn)算符的操作對(duì)象,可以是常量、變量、函數(shù)與表達(dá)式。常量、變量、函數(shù)本身就是簡(jiǎn)單表達(dá)式,從一般意義上講,C語(yǔ)言中所有操作數(shù)都是表達(dá)式。復(fù)雜表達(dá)式由運(yùn)算符連接簡(jiǎn)單表達(dá)式形成。2.操作數(shù)803.1.2表達(dá)式的書(shū)寫(xiě)C語(yǔ)言的表達(dá)式雖然來(lái)源于數(shù)學(xué)表達(dá)式,是數(shù)學(xué)表達(dá)式在計(jì)算機(jī)中的表示,但在書(shū)寫(xiě)時(shí)應(yīng)該注意遵循C語(yǔ)言表達(dá)式書(shū)寫(xiě)的原則:(1)C語(yǔ)言的表達(dá)式只能采用線性的形式書(shū)寫(xiě)。例如:①應(yīng)寫(xiě)成1/3+i+j*j*j。②應(yīng)寫(xiě)成(a+b)/(c+d)*e+f。3.1.2表達(dá)式的書(shū)寫(xiě)81(2)C語(yǔ)言的表達(dá)式只能使用C語(yǔ)言中合法的運(yùn)算符和操作數(shù),對(duì)有些操作必須調(diào)用庫(kù)函數(shù)完成,而且運(yùn)算符不能省略。例如:①πr2應(yīng)寫(xiě)成3.14159*r*r。②應(yīng)寫(xiě)成0.5*a*b*sin(alph)。③|x-y|應(yīng)寫(xiě)成fabs(x-y)。④y+2X應(yīng)寫(xiě)成y+pow(2,x)。(2)C語(yǔ)言的表達(dá)式只能使用C語(yǔ)言中合法的運(yùn)823.1.3表達(dá)式的分類C語(yǔ)言表達(dá)式種類很多,有多種分類方法。我們一般依據(jù)運(yùn)算的特征將表達(dá)式分為:①算術(shù)表達(dá)式,如a+b*2.0-3.0/5.0。②關(guān)系表達(dá)式,如x>=y,關(guān)系表達(dá)式可以認(rèn)為是邏輯表達(dá)式的特殊情況。③邏輯表達(dá)式,如(x>=2)&&(x<=8)。④賦值表達(dá)式,如a=b=c=1。⑤條件表達(dá)式,如(a>b)?a:b。⑥逗號(hào)表達(dá)式,如a=2,b=a*a,c=sqrt(b)。3.1.3表達(dá)式的分類831.運(yùn)算的優(yōu)先級(jí)運(yùn)算的優(yōu)先級(jí)是指運(yùn)算執(zhí)行的先后順序。C語(yǔ)言將運(yùn)算的優(yōu)先級(jí)劃分為15級(jí),第1級(jí)優(yōu)先級(jí)最高,第15級(jí)優(yōu)先級(jí)最低。初等運(yùn)算(?)、[?]、→、·的優(yōu)先級(jí)最高;單目運(yùn)算!、~、++、??、?、(類型)、*、&、sizeof的優(yōu)先級(jí)次高;算術(shù)運(yùn)算+、?、*、/、%再次之;然后是關(guān)系運(yùn)算<、<=、==、!=、>、>=;再然后是邏輯運(yùn)算&&、||,條件運(yùn)算式?:,賦值運(yùn)算=、+=、?=、*=、/=、%=;1.運(yùn)算的優(yōu)先級(jí)84逗號(hào)運(yùn)算優(yōu)先級(jí)最低;位運(yùn)算優(yōu)先級(jí)比較分散??蓪?yōu)先級(jí)順序簡(jiǎn)單記憶為算術(shù)、關(guān)系和邏輯,移位、位邏輯在中間。請(qǐng)參閱附錄B。表達(dá)式求值時(shí)按運(yùn)算的優(yōu)先級(jí)別從高到低順序進(jìn)行,優(yōu)先級(jí)相同的運(yùn)算順序由運(yùn)算的結(jié)合性規(guī)定。通過(guò)圓括號(hào)運(yùn)算可以改變運(yùn)算的優(yōu)先順序,先圓括號(hào)內(nèi),后圓括號(hào)外。逗號(hào)運(yùn)算優(yōu)先級(jí)最低;852.運(yùn)算符的結(jié)合性運(yùn)算符的結(jié)合性是指,優(yōu)先級(jí)相同的運(yùn)算從左到右進(jìn)行(左結(jié)合性)還是從右至左進(jìn)行(右結(jié)合性),左結(jié)合性是人們習(xí)慣的計(jì)算順序。C語(yǔ)言中,只有單目運(yùn)算(!、~、++、--、-、*、&)、條件運(yùn)算(?:)、賦值運(yùn)算(=、+=、-=、*=、/=、%=)的結(jié)合性是右結(jié)合,其余運(yùn)算為左結(jié)合。2.運(yùn)算符的結(jié)合性863.類型轉(zhuǎn)換一般地,相應(yīng)的運(yùn)算只有相應(yīng)類型的數(shù)據(jù)才能進(jìn)行,不同類型數(shù)據(jù)進(jìn)行運(yùn)算時(shí),要進(jìn)行類型轉(zhuǎn)換。類型轉(zhuǎn)換有自動(dòng)轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換兩種方式。1)自動(dòng)轉(zhuǎn)換自動(dòng)轉(zhuǎn)換(又稱隱含轉(zhuǎn)換)由系統(tǒng)自動(dòng)完成,轉(zhuǎn)換的規(guī)則如圖3-1所示。3.類型轉(zhuǎn)換87圖3-1中,橫向箭頭方向表示必定要進(jìn)行的轉(zhuǎn)換,即short型、char型數(shù)據(jù)必定先轉(zhuǎn)換成int型,float型數(shù)據(jù)必定先轉(zhuǎn)換為double型,再進(jìn)行運(yùn)算。縱向箭頭方向表示類型自動(dòng)轉(zhuǎn)換的方向,請(qǐng)注意轉(zhuǎn)換的方向是由低向高轉(zhuǎn)換的,int型最低,double型最高。int型與unsigned型數(shù)據(jù)進(jìn)行運(yùn)算,int型轉(zhuǎn)換成unsigned型;int型與long型數(shù)據(jù)進(jìn)行運(yùn)算,int型轉(zhuǎn)換成long型;int型與double型數(shù)據(jù)進(jìn)行運(yùn)算,int型轉(zhuǎn)換成double型。其它類推。這種轉(zhuǎn)換是一種保值映射,在轉(zhuǎn)換中數(shù)據(jù)的精度不受損失。圖3-1中,橫向箭頭方向表示必定要進(jìn)行的轉(zhuǎn)換,即88圖3-1類型自動(dòng)轉(zhuǎn)換規(guī)則圖3-1類型自動(dòng)轉(zhuǎn)換規(guī)則892)強(qiáng)制轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換通過(guò)類型轉(zhuǎn)換運(yùn)算完成。格式:(類型名)(表達(dá)式)強(qiáng)制轉(zhuǎn)換將表達(dá)式的類型強(qiáng)制轉(zhuǎn)換成類型名指定的類型。例如x、y為float,則(int)(x+y)將實(shí)型表達(dá)式x+y強(qiáng)制轉(zhuǎn)換成整型。值得注意的是,強(qiáng)制類型轉(zhuǎn)換在將高類型轉(zhuǎn)換為低類型時(shí),數(shù)據(jù)精度會(huì)有損失,是一種不安全的轉(zhuǎn)換。同時(shí)強(qiáng)制類型轉(zhuǎn)換是一次性的、暫時(shí)性的,并不能永久改變所轉(zhuǎn)換表達(dá)式的類型。例如a為int,則(double)?a為雙精度型,a依然為整型。2)強(qiáng)制轉(zhuǎn)換90例3–1表達(dá)式計(jì)算。(1)floatx=2.5,y=4.7;inta=7;計(jì)算x+a%3*(int)(x+y)%2/4⑦①④③②⑤⑥①a%3等于1。②x+y等于7.2。③(int)(x+y)等于7。④a%3*(int)(x+y)等于7。⑤a%3*(int)(x+y)%2等于1。⑥a%3*(int)(x+y)%2/4等于0。⑦x+a%3*(int)(x+y)%2/4等于2.5+0,結(jié)果為2.5。例3–1表達(dá)式計(jì)算。91(2)inta=2,b=3;floatx=3.5,y=2.5;計(jì)算(float)(a+b)/2+(int)x%(int)y②①③⑦④⑥⑤①a+b等于5。②(float)(a+b)等于5.0,強(qiáng)制轉(zhuǎn)換成float型。③(float)(a+b)/2等于5.0/2.0,結(jié)果為2.5。④(int)x等于3,強(qiáng)制轉(zhuǎn)換成int型。⑤(int)y等于2,強(qiáng)制轉(zhuǎn)換成int型。⑥(int)x%(int)y等于1。⑦(float)(a+b)/2+(int)x%(int)y等于2.5+1.0,結(jié)果為3.5(雙精度型)。(2)inta=2,b=3;floatx=3.92(3)inti=3;floatf=1.0;doubled=2.3;計(jì)算10+′a′+i*f-d①③②④①′a′轉(zhuǎn)換成97,10+′a′等于107。②i,f轉(zhuǎn)換成雙精度型,i*f等于3.0。③107轉(zhuǎn)換成雙精度型,10+′a′+i*f等于110.0。④10+′a′+i*f-d等于107.7。(3)inti=3;floatf=1.0;do933.2算術(shù)表達(dá)式1.自增運(yùn)算自增運(yùn)算符:++。自增運(yùn)算是單目運(yùn)算,操作數(shù)只能是整型變量,有前置、后置兩種方式:++i,在使用i之前,先使i的值增加1,俗稱先增后用。i++,先使用i的值,然后使i的值增加1,俗稱先用后增。3.2算術(shù)表達(dá)式1.自增運(yùn)算94例如:i=1999;j=++i;/*先將i的值增1,變?yōu)?000后賦給j,j的值也為2000*/j=i++;/*先將i的值賦給j,j的值為1999。然后將i的值增1,變?yōu)?000*/自增運(yùn)算的優(yōu)先級(jí)處于第2級(jí),具右結(jié)合性。例如:952.自減運(yùn)算自減運(yùn)算符:--自減運(yùn)算與自增運(yùn)算一樣也是單目運(yùn)算,操作數(shù)也只能是整型變量。同樣有前置、后置兩種方式:--i,在使用i之前,先使i的值減1,俗稱先減后用。i--,先使用i的值,然后使i的值減1,俗稱先用后減。2.自減運(yùn)算96如:i=2000;j=--i;/*先減,將i的值減1,變?yōu)?999。后使用,j的值也為1999*/j=i--;/*先使用,j的值為2000。后減,將i的值減1,i的值變?yōu)?999*/自減運(yùn)算的優(yōu)先級(jí)、結(jié)合性同自增運(yùn)算。如:i=2000;97請(qǐng)?zhí)貏e注意:(1)自增、自減運(yùn)算只能用于變量,不能用于常量或表達(dá)式。(2)自增、自減運(yùn)算比等價(jià)的賦值語(yǔ)句生成的目標(biāo)代碼更高效。(3)自增、自減運(yùn)算常用于循環(huán)語(yǔ)句中,使循環(huán)控制變量自動(dòng)加或減1;還可用于指針變量,使指針指向下一個(gè)或上一個(gè)地址。請(qǐng)?zhí)貏e注意:98(4)表達(dá)式中包含有自增、自減運(yùn)算時(shí),特別容易出錯(cuò),務(wù)請(qǐng)小心。例如,i=1,(++i)+(++i)+(++i)的值為多少呢?可能計(jì)算出是9(=2+3+4),其實(shí)這是錯(cuò)誤的。實(shí)際上計(jì)算時(shí)先對(duì)整個(gè)表達(dá)式掃描,i先自增3次,由1→2→3→4,因此計(jì)算結(jié)果應(yīng)為12(=4+4+4)。(i++)+(i++)+(i++)的值又是多少呢?分析同上,應(yīng)為3,當(dāng)然表達(dá)式計(jì)算完成后i的值同樣改變?yōu)?。(4)表達(dá)式中包含有自增、自減運(yùn)算時(shí),特別容易出錯(cuò)993.運(yùn)算符的組合問(wèn)題C語(yǔ)言的運(yùn)算符一般為一個(gè)字符,有的由兩個(gè)字符組成。在表達(dá)式中出現(xiàn)多個(gè)字符時(shí)如何組合呢?C編譯系統(tǒng)在處理時(shí),原則上盡可能自左至右將若干字符組合成一個(gè)運(yùn)算符。如將i+++j解釋為(i++)+j,而不是i+(++j)。如要表示i+(++j),必須加括號(hào)。標(biāo)識(shí)符、關(guān)鍵字也按同樣的原則進(jìn)行處理。3.運(yùn)算符的組合問(wèn)題100例3–2自增自減運(yùn)算。/*程序3-2,自增自減運(yùn)算*/#include″stdio.h″main(){inti,j;i=j=5;printf(″i++=%d,j--=%d\n″,i++,j--);printf(″++i=%d,--j=%d\n″,++i,--j);printf(″i++=%d,j--=%d\n″,i++,j--);printf(″++i=%d,--j=%d\n″,++i,--j);printf(″i=%d,j=%d\n″,i,j);}例3–2自增自減運(yùn)算。101運(yùn)行結(jié)果: i++=5,j??=5 ++i=7,??j=3 i++=7,j??=3 ++i=9,??j=1 i=9,j=1運(yùn)行結(jié)果:1023.3賦值表達(dá)式3.3.1賦值運(yùn)算賦值運(yùn)算符:=。賦值運(yùn)算是雙目運(yùn)算,一個(gè)操作數(shù)為變量,另一個(gè)操作數(shù)為表達(dá)式。賦值運(yùn)算符左邊的操作數(shù)只能是變量,右邊可以是表達(dá)式。進(jìn)行賦值運(yùn)算時(shí)先計(jì)算右邊表達(dá)式的值,然后將右邊表達(dá)式的值賦給左邊變量,即送給左邊變量對(duì)應(yīng)的存儲(chǔ)單元,并以此作為整個(gè)賦值表達(dá)式的值。例如i為int,i=3+5%2,則先計(jì)算右邊表達(dá)式3+5%2的值,得到4,然后將4賦給左邊變量i。3.3賦值表達(dá)式3.3.1賦值運(yùn)算賦值103說(shuō)明:(1)賦值運(yùn)算的優(yōu)先級(jí)為第14級(jí),具有右結(jié)合性。(2)賦值運(yùn)算中的表達(dá)式最簡(jiǎn)單的形式是一個(gè)常量,這時(shí)變量得到一個(gè)初值。例如: inti;floatx;charch; i=100;x=12.345;ch='A';說(shuō)明:104(3)賦值運(yùn)算中的表達(dá)式又可以是賦值表達(dá)式,如此可輾轉(zhuǎn)賦值。例如: intx,y,z;x=y=z=0.0,相當(dāng)于x=(y=(z=0.0)),即x、y、z都得到值0.0。?③②?①(4)賦值運(yùn)算符“=”不同于數(shù)學(xué)中的等號(hào)。例如,i=i+1在數(shù)學(xué)中絕對(duì)不成立,但在C語(yǔ)言中肯定成立,其含義是將i的當(dāng)前值加上1再賦給i。(3)賦值運(yùn)算中的表達(dá)式又可以是賦值表達(dá)式,如此可1053.3.2賦值類型轉(zhuǎn)換在進(jìn)行賦值運(yùn)算時(shí),一般要求賦值運(yùn)算符兩側(cè)操作數(shù)的類型相同或相容。如果賦值運(yùn)算符兩側(cè)操作數(shù)的類型不一致,要進(jìn)行類型轉(zhuǎn)換。賦值運(yùn)算時(shí)的類型轉(zhuǎn)換以賦值運(yùn)算左邊操作數(shù)的類型為主體進(jìn)行。(1)將實(shí)型數(shù)據(jù)賦給整型變量時(shí),舍棄實(shí)數(shù)的小數(shù)部分。例如i為int,若有i=1.23,則i的值為1。(2)將整型數(shù)據(jù)賦給單、雙精度型變量時(shí),數(shù)值大小不變,但以浮點(diǎn)形式存儲(chǔ)到變量中。3.3.2賦值類型轉(zhuǎn)換106(3)字符型數(shù)據(jù)賦給整型變量時(shí),由于字符數(shù)據(jù)只占一個(gè)字節(jié),而整型變量為2個(gè)字節(jié),因此將字符型數(shù)據(jù)放在整型變量的低8位中,而對(duì)整型變量的高8位要進(jìn)行擴(kuò)充。(4)將基本整型數(shù)據(jù)賦給長(zhǎng)整型變量時(shí),基本整型數(shù)據(jù)放在長(zhǎng)整型變量的低16位,高16位用符號(hào)位擴(kuò)充。反之,將長(zhǎng)整型數(shù)據(jù)賦給基本整型變量時(shí),只將長(zhǎng)整型數(shù)據(jù)的低16位送給基本整型變量。(3)字符型數(shù)據(jù)賦給整型變量時(shí),由于字符數(shù)據(jù)只占107①inti=-1;longintj;j=i;i的二進(jìn)制形式:0000000000000001j的二進(jìn)制形式:00000000000000000000000000000001②inti=?1;?longintj;?j=i;i的二進(jìn)制形式:1111111111111111j的二進(jìn)制形式:11111111111111111111111111111111①inti=-1;108③longinti=?1;?intj;?j=i;i的二進(jìn)制形式:11111111111111111111111111111111j的二進(jìn)制形式:1111111111111111③longinti=?1;109(5)將無(wú)符號(hào)整型數(shù)據(jù)賦給長(zhǎng)整型變量時(shí),不存在符號(hào)位擴(kuò)展的問(wèn)題,只需將高位補(bǔ)0即可。將無(wú)符號(hào)整型數(shù)據(jù)賦給一個(gè)占字節(jié)數(shù)相同的整型變量時(shí),將無(wú)符號(hào)整型數(shù)據(jù)原樣送整型變量中,并將最高位當(dāng)作符號(hào)位,如果數(shù)據(jù)超出相應(yīng)的整型范圍,將產(chǎn)生數(shù)據(jù)錯(cuò)誤。如果將整型數(shù)據(jù)賦給占字節(jié)數(shù)相同的無(wú)符號(hào)整型變量時(shí),也是原樣照賦,最高位作數(shù)值處理。(5)將無(wú)符號(hào)整型數(shù)據(jù)賦給長(zhǎng)整型變量時(shí),不110例如:①unsignedinti=65535;?intj;?j=i;/*j的值為?1*/②inti=?1;?unsignedintj;??j=i;/*j的值為65535*/例如:1113.3.3復(fù)合賦值運(yùn)算在基本賦值運(yùn)算符“=”之前加上任一雙目算術(shù)運(yùn)算符及位運(yùn)算符可構(gòu)成復(fù)合賦值運(yùn)算符,又稱帶運(yùn)算的賦值運(yùn)算符。算術(shù)復(fù)合賦值運(yùn)算符:+=、-=、*=、/=、%=位復(fù)合賦值運(yùn)算符:&=、|=、^=、>>=、<<=一般形式:變量☆=表達(dá)式等價(jià)于:變量=變量☆表達(dá)式☆代表任一雙目算術(shù)運(yùn)算符或位運(yùn)算符。復(fù)合賦值運(yùn)算先進(jìn)行所帶運(yùn)算,再進(jìn)行賦值運(yùn)算。復(fù)合賦值運(yùn)算的優(yōu)先級(jí)同賦值運(yùn)算。3.3.3復(fù)合賦值運(yùn)算在基本賦值運(yùn)算符112例如:①inta=3;a+=2等價(jià)于a=a+2,結(jié)果為5。②floatx=1.2,y=2.1;y*=x+3.4等價(jià)于y=y*(x+3.4),結(jié)果為9.66。③inta=3,b=2;b/=a+=1等價(jià)于b=b/(a=a+1),結(jié)果為0。例如:113例3-3賦值運(yùn)算。 /*程序3-3,賦值運(yùn)算*/ #include"stdio.h" main(?) {inti,j;floatx,y; i=j=1; x=y=1.1;printf("i=%d,j=%d\n",i,j);例3-3賦值運(yùn)算。114x=i+j;y+=1;printf("x=%4.2f,y=%4.2f\n",x,y);i=i+++j;x=2*x+y;printf("i=%d,x=%4.2f\n",i,x);}運(yùn)行結(jié)果: i=1,j=1 x=2.00,y=2.10i=3,x=6.10x=i+j;115printf(″x=%4.2f,y=%4.2f\n″,x,y);i=i+++j;x=2*x+y;printf(″i=%d,x=%4.2f\n″,i,x);}運(yùn)行結(jié)果:i=1,j=1x=2.00,y=2.10i=2,x=6.10printf(″x=%4.2f,y=%4.2f\n″,x1163.4邏輯表達(dá)式3.4.1關(guān)系表達(dá)式關(guān)系表達(dá)式是邏輯表達(dá)式中的一種特殊情況,關(guān)系表達(dá)式由關(guān)系運(yùn)算符和操作數(shù)組成,關(guān)系運(yùn)算用于完成數(shù)的比較運(yùn)算。關(guān)系運(yùn)算有<、<=、==、!=、>、>=,<、<=、>、>=的優(yōu)先級(jí)相同,==、!=的優(yōu)先級(jí)相同,前者的優(yōu)先級(jí)高于后者。關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算,高于邏輯運(yùn)算&&、||,也高于賦值運(yùn)算。3.4邏輯表達(dá)式3.4.1關(guān)系表達(dá)式1173.4.2邏輯表達(dá)式邏輯表達(dá)式由邏輯運(yùn)算符和操作數(shù)組成,邏輯表達(dá)式用于程序設(shè)計(jì)中的條件描述。邏輯表達(dá)式中操作數(shù)可以是邏輯量和關(guān)系表達(dá)式。C語(yǔ)言有!、&&、‖三種邏輯運(yùn)算,運(yùn)算規(guī)則在上章已作介紹。!運(yùn)算的優(yōu)先級(jí)高于算術(shù)運(yùn)算,&&運(yùn)算的優(yōu)先級(jí)高于‖運(yùn)算,&&、‖運(yùn)算的優(yōu)先級(jí)低于關(guān)系運(yùn)算,高于賦值運(yùn)算。3.4.2邏輯表達(dá)式118在計(jì)算邏輯表達(dá)式時(shí)務(wù)請(qǐng)注意:&&和‖是一種短路運(yùn)算。所謂短路運(yùn)算,是指在計(jì)算的過(guò)程中,只要表達(dá)式的值能確定,便不再計(jì)算下去。邏輯與運(yùn)算時(shí),計(jì)算到某個(gè)操作數(shù)為假,可以確定整個(gè)表達(dá)式的值為假時(shí),剩余的表達(dá)式部分便不再計(jì)算。邏輯或運(yùn)算時(shí),計(jì)算到某個(gè)操作數(shù)為真,可以確定整個(gè)表達(dá)式的值為真時(shí),剩余的表達(dá)式部分便不再計(jì)算。在計(jì)算邏輯表達(dá)式時(shí)務(wù)請(qǐng)注意:119例如:①e1&&e2&&e3,若e1為0,可確定表達(dá)式的值為0,則不再計(jì)算e2、e3。②e1‖e2‖e3,若e1為真,則可確定表達(dá)式的值為真,也不再計(jì)算e2、e3。例如:120例3—4用邏輯表達(dá)式描述下列條件:(1)x是3的倍數(shù)。x%3==0(2)x是偶數(shù)。x%2==0(3)x是3的倍數(shù)且x是偶數(shù)。(x%3==0)&&(x%2==0)(4)100<x<200。(x>100)&&(x<200)例3—4用邏輯表達(dá)式描述下列條件:121(5)x等于2或8。(x==2)||(x==8)(6)三位數(shù)x是回文數(shù):x/100==x%10(7)a、b、c為三邊,它們構(gòu)成等邊三角形的條件:(a==b)&&(b==c)(8)某年是閏年:((year%4==0)&&(year%100!=0))‖(year%400==0)(5)x等于2或8。1223.5位運(yùn)算表達(dá)式3.5.1位邏輯運(yùn)算1.按位取反運(yùn)算運(yùn)算符:~。按位取反運(yùn)算用來(lái)對(duì)一個(gè)二進(jìn)制數(shù)按位取反,即0位變1,1位變0。例如,計(jì)算~25。25的二進(jìn)制表示為:0000000000011001。按位取反的結(jié)果為:1111111111100110,即?26。3.5位運(yùn)算表達(dá)式3.5.1位邏輯運(yùn)算123~運(yùn)算常用于產(chǎn)生一些特殊的數(shù)。如高8位全1、低8位全0的數(shù)0xFF00,按位取反后變?yōu)?x00FF?!?,在16位與32位的系統(tǒng)中,都代表只有最低位為0的整數(shù)?!\(yùn)算是位運(yùn)算中惟一的單目運(yùn)算,也是惟一具有右結(jié)合性的位運(yùn)算?!\(yùn)算常用于產(chǎn)生一些特殊的數(shù)。如高8位全1、低8位全1242.按位與運(yùn)算運(yùn)算符:&。按位與運(yùn)算的規(guī)則是操作數(shù)的對(duì)應(yīng)位為1,則該位的運(yùn)算結(jié)果為1,否則為0。例如,計(jì)算0x29&0x37。0x29與0x37的二進(jìn)制表示為:0000000000101001與0000000000110111。按位與的結(jié)果為:00000000000100001,即0x21。按位與運(yùn)算的主要用途是清零及取數(shù)的某些位或保留數(shù)的某些位。2.按位與運(yùn)算125例如:①a&0,將a清0。②a&0xFF00,取數(shù)a的高8位,低8位清0。③a&0x00FF,取數(shù)a的低8位,高8位清0。例如:1263.按位或運(yùn)算運(yùn)算符:|按位或運(yùn)算的規(guī)則是操作數(shù)的對(duì)應(yīng)位都為0,則該位的運(yùn)算結(jié)果為0,否則為1。例如:0x29|0x37,0x29與0x37的二進(jìn)制表示為:0000000000101001與0000000000110111按位或結(jié)果為:0000000000111111,即等于0x3f。利用|運(yùn)算可將數(shù)的部分位或所有位置1。3.按位或運(yùn)算127例如:a|0x000F,a的低4位全置1,其它位保留。a|0xFFF
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 武漢市光谷星辰幼兒園2026年春季招聘工作人員的備考題庫(kù)及參考答案詳解1套
- 2025年龍巖市上杭縣廬豐畬族鄉(xiāng)衛(wèi)生院招聘一體化鄉(xiāng)村醫(yī)生的備考題庫(kù)完整答案詳解
- 2025年國(guó)婦嬰招聘?jìng)淇碱}庫(kù)參考答案詳解
- 2025年初中語(yǔ)文、初中數(shù)學(xué)、初中物理、高中物理教師招聘?jìng)淇碱}庫(kù)及一套完整答案詳解
- 2025年太倉(cāng)市濱江投資發(fā)展集團(tuán)有限公司及下屬子公司公開(kāi)招聘?jìng)淇碱}庫(kù)及答案詳解參考
- 安徽省領(lǐng)航水下工程技術(shù)研發(fā)有限公司2025年度第三批次招聘?jìng)淇碱}庫(kù)(二次)及一套完整答案詳解
- 2025年樂(lè)清市健康醫(yī)療管理集團(tuán)有限公司及下屬子公司公開(kāi)招聘?jìng)淇碱}庫(kù)及完整答案詳解1套
- 2025年天津中醫(yī)藥大學(xué)第一附屬醫(yī)院招聘?jìng)淇碱}庫(kù)含答案詳解
- 傳播學(xué)試題及答案
- 2025年拱北海關(guān)公開(kāi)招聘協(xié)管員備考題庫(kù)及完整答案詳解1套
- 2026屆八省聯(lián)考(T8聯(lián)考)2026屆高三年級(jí)12月檢測(cè)訓(xùn)練地理試卷(含答案詳解)
- 2025民生銀行總行資產(chǎn)經(jīng)營(yíng)管理部社會(huì)招聘筆試題庫(kù)帶答案解析
- T∕CCSAS 061-2025 特殊作業(yè)監(jiān)護(hù)人員履責(zé)管理要求
- 2026年上海工程技術(shù)大學(xué)單招職業(yè)傾向性測(cè)試題庫(kù)參考答案詳解
- 鄭州市鄭州外國(guó)語(yǔ)中學(xué)等4校2022-2023學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題【帶答案】
- 人體形態(tài)學(xué)(山東聯(lián)盟)智慧樹(shù)知到期末考試答案章節(jié)答案2024年青島濱海學(xué)院
- 《辦公用房租賃合同》范本標(biāo)準(zhǔn)版可打印
- 人機(jī)環(huán)管安全管理措施
- 大慶一中、六十九中初四上學(xué)期期末質(zhì)量檢測(cè)物理試題
- 小學(xué)生一、二、三年級(jí)家庭獎(jiǎng)罰制度表
- 2022年12月華中科技大學(xué)科學(xué)技術(shù)發(fā)展院基地辦招聘1名社會(huì)用工筆試參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論