c語言程序設(shè)計(jì)與項(xiàng)目實(shí)踐課程_第1頁(yè)
c語言程序設(shè)計(jì)與項(xiàng)目實(shí)踐課程_第2頁(yè)
c語言程序設(shè)計(jì)與項(xiàng)目實(shí)踐課程_第3頁(yè)
c語言程序設(shè)計(jì)與項(xiàng)目實(shí)踐課程_第4頁(yè)
c語言程序設(shè)計(jì)與項(xiàng)目實(shí)踐課程_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章運(yùn)算符和表達(dá)式本章的學(xué)習(xí)重點(diǎn) ◆ 運(yùn)算符與表達(dá)式的分類 ◆ 算術(shù)運(yùn)算符與算術(shù)表達(dá)式 ◆ 邏輯運(yùn)算符與邏輯表達(dá)式 ◆ 關(guān)系運(yùn)算符與關(guān)系表達(dá)式 ◆ 位運(yùn)算符 ◆ 條件運(yùn)算符 ◆ 強(qiáng)制類型轉(zhuǎn)換

3.1運(yùn)算符與表達(dá)式的分類運(yùn)算符的分類:可按照操作對(duì)象數(shù)目分類,例如一元運(yùn)算符、二元運(yùn)算符和三元運(yùn)算符等,也可按照功能分類,例如算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符等。表達(dá)式的分類:主要按照運(yùn)算符的不同功能進(jìn)行分類,例如算術(shù)表達(dá)式、邏輯表達(dá)式、關(guān)系表達(dá)式等。3.1.1運(yùn)算符的分類按照操作對(duì)象的多少,運(yùn)算符主要可分為一元運(yùn)算符、二元運(yùn)算符和三元運(yùn)算符。例如負(fù)號(hào)(-)為一元運(yùn)算符,加號(hào)(+)為二元運(yùn)算符等。除了這些基本運(yùn)算符之外,C語言還支持復(fù)合運(yùn)算符以及sizeof運(yùn)算符等。按照功能分類,運(yùn)算符可分為:算術(shù)運(yùn)算符、賦值運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符、條件運(yùn)算符、位運(yùn)算符、取字節(jié)數(shù)運(yùn)算符等。

3.1.1運(yùn)算符的分類表3-1運(yùn)算符分類

一元運(yùn)算符二元運(yùn)算符三元運(yùn)算符符號(hào)功能描述符號(hào)功能描述符號(hào)功能描述+-正負(fù)號(hào)-減號(hào)?:條件運(yùn)算符++自增運(yùn)算符+加號(hào)--自減運(yùn)算符*乘號(hào)!非運(yùn)算符/除號(hào)~取反運(yùn)算符%求余運(yùn)算符*指針運(yùn)算符<<左移運(yùn)算符>>右移運(yùn)算符&&與運(yùn)算符||或運(yùn)算符^異或運(yùn)算符>大于號(hào)<小于號(hào)>=大于等于<=小于等于!=不等于==等于=賦值運(yùn)算符&位與運(yùn)算符|位或運(yùn)算符3.1.2表達(dá)式的分類表達(dá)式是一種有值的語法結(jié)構(gòu),它一般由運(yùn)算符將變量、常量或函數(shù)返回值結(jié)合而成。表達(dá)式按照運(yùn)算符的不同進(jìn)行分類,主要有:算術(shù)表達(dá)式、邏輯表達(dá)式和關(guān)系表達(dá)式等。

1.算術(shù)表達(dá)式一般由算術(shù)運(yùn)算符和控制運(yùn)算優(yōu)先級(jí)的括號(hào)連接而成,例如:3.14159*r,(a+b)/c+d*m.其中,符號(hào)’*’表示算術(shù)運(yùn)算“乘”,’/’表示算術(shù)運(yùn)算“除”。

2.賦值表達(dá)式一般由賦值運(yùn)算符、算術(shù)運(yùn)算符和操作對(duì)象組合而成。一般表達(dá)形式為:變量=表達(dá)式或數(shù)值或者變量1=變量2=變量3=表達(dá)式或數(shù)值。

3.1.2表達(dá)式的分類3.邏輯表達(dá)式一般由邏輯運(yùn)算符和操作對(duì)象組合而成,例如:a&&b,c||d&&m,!x等。

4.關(guān)系表達(dá)式一般由關(guān)系運(yùn)算符和操作對(duì)象組合而成,例如:a>b,c<=d,m==n等。

5.逗號(hào)表達(dá)式逗號(hào)表達(dá)式由其他表達(dá)式和逗號(hào)運(yùn)算符組成,例如:a=12,b=100,c=a+b6.復(fù)合表達(dá)式復(fù)合表達(dá)式是幾種簡(jiǎn)單表達(dá)式的組合,是比較復(fù)雜的表達(dá)式,例如:num=12+b+(c=35/(d=7))3.2運(yùn)算符的優(yōu)先級(jí)與結(jié)合性當(dāng)不同的運(yùn)算符放在一個(gè)表達(dá)式中進(jìn)行混合運(yùn)算時(shí),運(yùn)算順序是根據(jù)運(yùn)算符的優(yōu)先級(jí)而定的,優(yōu)先級(jí)高的運(yùn)算符先運(yùn)算,優(yōu)先級(jí)低的運(yùn)算符后運(yùn)算。在同一表達(dá)式中,如果各運(yùn)算符有相同的優(yōu)先級(jí),運(yùn)算順序是從左向右,還是從右向左,是由運(yùn)算符的結(jié)合性決定的。所謂結(jié)合性是指運(yùn)算符可以和左邊的表達(dá)式結(jié)合,也可以和右邊的表達(dá)式結(jié)合。3.2運(yùn)算符的優(yōu)先級(jí)與結(jié)合性表3-2運(yùn)算符優(yōu)先級(jí)與結(jié)合性優(yōu)先級(jí)運(yùn)算符解釋結(jié)合方式最高()[]->.括號(hào)(函數(shù)等),數(shù)組,兩種結(jié)構(gòu)成員訪問由左向右!~++--+-非,按位取反,自增,自減,正負(fù)號(hào)由右向左*&(類型)sizeof解引用(指針),取地址,類型轉(zhuǎn)換,字節(jié)大小*/%乘,除,模除由左向右+-加,減由左向右<<>>左移,右移由左向右<<=>=>小于,小于等于,大于等于,大于由左向右==!=等于,不等于由左向右&按位與由左向右^按位異或由左向右|按位或由左向右&&邏輯與由左向右||邏輯或由左向右?:條件由右向左=+=-=*=/=賦值由右向左&=^=|=<<=>>=最低,逗號(hào)(順序)由左向右3.2運(yùn)算符的優(yōu)先級(jí)與結(jié)合性范例3.1PriorityAndCombine.c這里使用多運(yùn)算符的表達(dá)式演示不同優(yōu)先級(jí)的運(yùn)算符組合運(yùn)算所產(chǎn)生的結(jié)果。程序定義變量a,b,c,并使用復(fù)合賦值運(yùn)算符+=驗(yàn)證復(fù)合賦值運(yùn)算符的功能。

分析:查看代碼:由于賦值是自右至左的右結(jié)合性,因此先計(jì)算賦值號(hào)右邊的表達(dá)式a+c*10,結(jié)果為210,然后將結(jié)果賦給b。3.3賦值運(yùn)算符與賦值表達(dá)式C語言規(guī)定,任何變量都要先定義后使用,并且在引用其數(shù)值前一定要進(jìn)行賦值操作,而此時(shí)就需要用到賦值運(yùn)算符“=”。1.簡(jiǎn)單賦值表達(dá)式賦值表達(dá)式使用賦值號(hào)表示,賦值號(hào)左邊的對(duì)象叫做左值(l-value),賦值號(hào)左邊只能是變量。a+=5等價(jià)于a=a+5若a=20,執(zhí)行后a+=5后,a的值變?yōu)?53.3賦賦值運(yùn)算符符與賦值表表達(dá)式范例3.2(LvalueAndRvalue.c)將將int型型變量的值值賦給short型型變量,查查看賦值后后的結(jié)果。。為表述方方便,程序序使用十六六進(jìn)制值0x12345,接接收變量為為short型。2.連續(xù)賦賦值表達(dá)式式有時(shí)需要對(duì)對(duì)幾個(gè)變量量賦予同一一個(gè)值,這這時(shí)可以使使用連續(xù)賦賦值表達(dá)式式,例如::inti,j,k;i=j=k=10;由于賦值運(yùn)運(yùn)算符是右右結(jié)合性,,因此程序序執(zhí)行順序序?yàn)椋簁=10j=ki=j3.3賦賦值運(yùn)算符符與賦值表表達(dá)式3.復(fù)合賦賦值表達(dá)式式復(fù)合賦值表表達(dá)式由賦賦值運(yùn)算符符、算術(shù)運(yùn)運(yùn)算符或邏邏輯運(yùn)算符符以及操作作對(duì)象構(gòu)成成。例如,,表達(dá)式a+=10,它它等價(jià)于::a=a+10。范例3.3(DAssignmentOperator.c)使使用復(fù)合賦賦值運(yùn)算符符進(jìn)行算術(shù)術(shù)和賦值操操作。程序序使用*=和+=分分別對(duì)變量量m和n作作賦值運(yùn)算算,驗(yàn)證在在同一表達(dá)達(dá)式中兩者者之間的關(guān)關(guān)系。注意:在工工程應(yīng)用中中,應(yīng)盡量量避免使用用這些簡(jiǎn)化化的復(fù)合賦賦值運(yùn)算符符,原因有有兩點(diǎn):一一是編碼時(shí)時(shí)容易出錯(cuò)錯(cuò),二是不不便于其他他程序員閱閱讀。3.4算算術(shù)運(yùn)算符符與算術(shù)表表達(dá)式C語言除了了提供簡(jiǎn)單單的加減乘乘除四則運(yùn)運(yùn)算符外,,還提供了了模除(%)、自增增(++))和自減((--)等等幾種特殊殊的算術(shù)運(yùn)運(yùn)算符。模除運(yùn)算符符(%)用用于求兩個(gè)個(gè)整數(shù)相除除的余數(shù)。。自增(++)自減((--)運(yùn)運(yùn)算符是C語言所特特有的運(yùn)算算符,在工工程中應(yīng)用用非常頻繁繁。只能能用于單個(gè)個(gè)變量。3.4.1算術(shù)術(shù)運(yùn)算符與與數(shù)據(jù)類型型C語言中,,除運(yùn)算符符用’/’’代替,乘乘運(yùn)算符用用’*’代代替,并且且’*’不不能省略((如x*y不能省略略為xy))。范例3.4(ComputeOperatorType.c)程程序使用輸輸出函數(shù)printf驗(yàn)證兩兩種不同數(shù)數(shù)據(jù)類型進(jìn)進(jìn)行算術(shù)除除操作的結(jié)結(jié)果,分析析浮點(diǎn)型數(shù)數(shù)據(jù)作算術(shù)術(shù)運(yùn)算的精精度。C語言中,,兩個(gè)整型型量作算術(shù)術(shù)運(yùn)算,其其結(jié)果仍為為整型,例例如,算式式:1/2的值取商商中的整數(shù)數(shù)部分0。。注意:0不不能作為除除數(shù),否則則程序運(yùn)行行時(shí)將崩潰潰。3.4.1算術(shù)術(shù)運(yùn)算符與與數(shù)據(jù)類型型實(shí)訓(xùn)3.1——計(jì)算算圓柱體體體積有一長(zhǎng)為50cm,,寬為30cm的長(zhǎng)長(zhǎng)方形紙張張,編寫程程序,計(jì)算算將該紙張張卷成圓筒筒時(shí)的體積積,要求精精確到小數(shù)數(shù)點(diǎn)后6位位,圓周率率取3.141592。紙張卷成圓圓筒的方法法有兩種,,一種是以以長(zhǎng)50cm作高,,寬30cm作底,,另一種是是以寬30cm作高高,長(zhǎng)50cm作底底。這里使使用第二種種方案。使用周長(zhǎng)50cm計(jì)計(jì)算半徑r,實(shí)現(xiàn)語語句:r=50.0/(2*pi);根據(jù)數(shù)學(xué)公公式:V=S*H,,計(jì)算體積積V=pi*r*r*h,其中h=30。。采用數(shù)據(jù)類類型double型型以滿足精精度要求。。3.4.2模除除運(yùn)算符模除運(yùn)算符符(%)::用于求兩兩個(gè)整數(shù)相相除的余數(shù)數(shù)。模除運(yùn)運(yùn)算只能用用于整數(shù)間間求余運(yùn)算算,不可用用于浮點(diǎn)數(shù)數(shù)。并且0不能作為為除數(shù)。例例如:7%3結(jié)果為為1,而7.5%5將使程序序編譯出錯(cuò)錯(cuò)。C語言規(guī)定定,%兩邊邊都為正整整數(shù),結(jié)果果為正整數(shù)數(shù)或零;%兩邊都是是負(fù)整數(shù),,結(jié)果為負(fù)負(fù)整數(shù)數(shù)或或零。%左左邊的操作作數(shù)是正整整數(shù),結(jié)果果為正整數(shù)數(shù)或零;%左邊的操操作數(shù)是負(fù)負(fù)整數(shù),結(jié)結(jié)果為負(fù)整整數(shù)或零,,例如:17%4=117%-4=1-17%4=-1-17%-4=-13.4.2模除除運(yùn)算符范例3.4(Months2Year.c)鍵鍵盤輸入總總月數(shù),使使用%運(yùn)算算符和/運(yùn)運(yùn)算符將輸輸入的月數(shù)數(shù)換算成年年數(shù)和月數(shù)數(shù)的形式,,如25個(gè)個(gè)月,表示示2年零1個(gè)月。模除運(yùn)算,,例如m%n,可以以使用公式式m–(m/n)*n代代替,例如如算式中-17%4,可以使使用算式::-17%4=-17––(-17/4)*4=-1注意:/和和%的區(qū)別別,5/33=1,55%3=223.4.3自增增自減運(yùn)算算符自增(++)自減((--)運(yùn)運(yùn)算符:只能用于變變量,不能能用于表達(dá)達(dá)式或其他他C語言對(duì)對(duì)象。下面面的操作均均錯(cuò)誤:(b+c)++;--(m-1);范例3.5SelfAddSelfReduce.c程程序定義4個(gè)變量a,b,c,d。對(duì)對(duì)部分變量量執(zhí)行自增增自減操作作,驗(yàn)證左左運(yùn)算和右右運(yùn)算的區(qū)區(qū)別,并進(jìn)進(jìn)一步分析析自增自減減運(yùn)算符與與算術(shù)運(yùn)算算符的優(yōu)先先級(jí)。范例3.5SelfAddSelfReduce2.c定定義變量量a,分別別執(zhí)行單次次和多次自自增運(yùn)算,,輸出結(jié)果果,分析同同一表達(dá)式式中兩次和和三次自增增操作中左左運(yùn)算和右右運(yùn)算的差差別。3.5關(guān)關(guān)系運(yùn)算算符與關(guān)系系表達(dá)式關(guān)系表達(dá)式式的值:真真(1)和和假(0))。例如:表達(dá)達(dá)式10>3的值為為1,即為為真,而表表達(dá)式-1>0的值值為0,即即為假。范例3.6RelationOperater.c程序序分析關(guān)系系運(yùn)算符的的優(yōu)先級(jí),,驗(yàn)證在同同一表達(dá)式式中有算術(shù)術(shù)運(yùn)算符和和關(guān)系運(yùn)算算符時(shí)程序序執(zhí)行順序序,分析關(guān)關(guān)系運(yùn)算符符的結(jié)合性性,分析關(guān)關(guān)系表達(dá)式式的真和假假。注意:判斷斷兩個(gè)對(duì)象象是否相等等,使用運(yùn)運(yùn)算符==或!=,,一定與賦賦值運(yùn)算符符=區(qū)分開開來。3.6邏邏輯運(yùn)算算符與邏輯輯表達(dá)式C語言中提提供了三種種邏輯運(yùn)算算符:邏輯與(&&)、邏邏輯或(||)和邏邏輯非(!)。前兩種為雙雙目運(yùn)算符符,具有左左結(jié)合性。。后一種為為單目運(yùn)算算符,具有有右結(jié)合性性。邏輯表達(dá)式式的值:““真(1))”和“假假(0)””兩種。邏邏輯表達(dá)式式中總是將將0作為假假,非0作作為真。邏輯表達(dá)式式的一般形形式為:操作對(duì)象1邏輯運(yùn)運(yùn)算符操操作對(duì)象23.6.1邏輯輯與(&&)邏輯與運(yùn)算算(&&)):參與運(yùn)算的的兩個(gè)操作作對(duì)象都為為真(非0)時(shí),結(jié)結(jié)果為真((1),否否則為假((0)。例例如,表達(dá)達(dá)式-4<10&&3!=0的結(jié)結(jié)果為真。。具有自左至至右的結(jié)合合性,當(dāng)運(yùn)運(yùn)算符左邊邊為假時(shí),,表達(dá)式為為假,而不不再判斷運(yùn)運(yùn)算符右邊邊是否為真真或假。例例如,表達(dá)達(dá)式0>2&&3!=5,由于表表達(dá)式0>2為假,,因此便不不再判斷表表達(dá)式3!=5,而而直接認(rèn)為為原表達(dá)式式為假(0)。范例3.7LogicAndOperater.c程序序分析邏輯輯與運(yùn)算符符的優(yōu)先級(jí)級(jí)與結(jié)合性性,并分析析邏輯與表表達(dá)式執(zhí)行行過程中對(duì)對(duì)兩側(cè)表達(dá)達(dá)式執(zhí)行順順序的影響響。3.6.2邏輯輯或(||)邏輯或運(yùn)運(yùn)算(||)::參與運(yùn)算算的兩個(gè)個(gè)操作對(duì)對(duì)象只要要有一個(gè)個(gè)為真((非0)),結(jié)果果即為真真(1)),否則則為假((0)。。例如,,表達(dá)式式-4<10||3==0,表表達(dá)式中中||優(yōu)優(yōu)先級(jí)低低于關(guān)系系運(yùn)算符符<和==,所所以表達(dá)達(dá)式等價(jià)價(jià)于(-4<10)||(3==0),表表達(dá)式-4<10為真真,因此此原表達(dá)達(dá)式的結(jié)結(jié)果為真真。C語言規(guī)規(guī)定,當(dāng)當(dāng)運(yùn)算符符左邊為為真(非非0)時(shí)時(shí),即判判斷表達(dá)達(dá)式為真真(1)),而不不再判斷斷運(yùn)算符符右邊是是否為真真或假。。例如,,表達(dá)式式2||3!=5,由于于常量2為真((非0)),因此此便不再再判斷表表達(dá)式3!=5,而直直接認(rèn)為為原表達(dá)達(dá)式為真真(1))。范例3.8LogicOrOperater.c程程序分別別設(shè)置邏邏輯與表表達(dá)式和和邏輯或或表達(dá)式式。在范范例3.7基礎(chǔ)礎(chǔ)上進(jìn)一一步分析析邏輯與與表達(dá)式式的執(zhí)行行順序,,分析邏邏輯或的的執(zhí)行順順序,并并與邏輯輯與表達(dá)達(dá)式進(jìn)行行比較。。分析產(chǎn)產(chǎn)生的結(jié)結(jié)果。3.6.3邏邏輯非非(?。┻壿嫹沁\(yùn)運(yùn)算(!):一元運(yùn)算算符,該該運(yùn)算符符只能放放在操作作對(duì)象左左邊。當(dāng)當(dāng)操作對(duì)對(duì)象為真真(非0)時(shí),,結(jié)果為為假(0),操操作對(duì)象象為假((0)時(shí)時(shí),結(jié)果果為真。。范例3.9LogicNoneOperator.c程序序分析邏邏輯非表表達(dá)式的的真和假假,驗(yàn)證證當(dāng)變量量a為非非0時(shí),,!a的的含義,,并分析析復(fù)合邏邏輯運(yùn)算算時(shí)表達(dá)達(dá)式的執(zhí)執(zhí)行順序序與結(jié)果果。實(shí)訓(xùn)3.2———判斷閏閏年CalculateLeapYear.c年數(shù)中分分為平年年或閏年年,編寫寫程序,,判斷輸輸入年數(shù)數(shù)是閏年年還是平平年,閏閏年輸出出為1,,平年輸輸出為0。閏年判斷公式式:((year%4==0)&&(year%100!=0))||(year%400==0)。需求分析:需求1:輸入入年數(shù)需求2:使用用邏輯運(yùn)算符符判斷輸入的的年數(shù)是否為為閏年3.7位位運(yùn)算符位運(yùn)算:對(duì)操作對(duì)象中中的比特位((bit)進(jìn)進(jìn)行移位、重重置以及邏輯輯判斷等操作作。位運(yùn)算只能用用于字符型((char))或整型(int,short,long等),不能能用于float、double、、void或或其他復(fù)雜類類表3-4位位運(yùn)算符運(yùn)算符意義表達(dá)式運(yùn)算功能~按位取反~aa按位取反<<按位左移b<<2b左移2位>>按位右移c>>3c右移3位&按位與a&ba和b按位與^按位異或a^ba和b按位異或|按位或a|ba和b按位或3.7位位運(yùn)算符1.按位與((&)規(guī)則:每個(gè)操操作對(duì)象對(duì)應(yīng)應(yīng)位都為1時(shí)時(shí),結(jié)果才為為1,否則為為0。例如::3&5的計(jì)計(jì)算方法為::先轉(zhuǎn)化為二二進(jìn)制,然后后按位進(jìn)行與與操作。00000011& 00000101-------------結(jié)結(jié)果為100000001應(yīng)用:按位與(&))主要用于將將某個(gè)操作對(duì)對(duì)象的某些位位置零,例如如,將int型變量a的的第3、5、、7、12位位置零,方法法為將a和二二進(jìn)制數(shù)1110111101011111作位與與操作,表達(dá)達(dá)式為:a&0xEF5F。3.7位位運(yùn)算符范例3.10LogicBitAnd.c使用位&操作作取變量a的的低10bit位,其余余位置零,并并使用十六進(jìn)進(jìn)制打印結(jié)果果。方法為使使變量a與另另一常量作&,該常量低低10位為1,其余位為為0。2.按位或((|)規(guī)則:有一個(gè)個(gè)操作對(duì)象對(duì)對(duì)應(yīng)位為1時(shí)時(shí),結(jié)果即為為1,當(dāng)兩個(gè)個(gè)操作對(duì)象對(duì)對(duì)應(yīng)位都為為為0時(shí),結(jié)果果才為0。例例如:3|5的計(jì)算方法法為:先轉(zhuǎn)化化為二進(jìn)制,,然后按位進(jìn)進(jìn)行或操作。。00000011| 00000101------------- 結(jié)果果為7000001113.7位位運(yùn)算符3.按位異或或(^)規(guī)則:操作對(duì)對(duì)象對(duì)應(yīng)位相相同時(shí)為1,,不同時(shí)為0。例如3^5的計(jì)算方方法為:先轉(zhuǎn)轉(zhuǎn)化為二進(jìn)制制,然后按位位進(jìn)行異或操操作。00000011^ 00000101------------- 結(jié)果果為0xF9,十進(jìn)制數(shù)數(shù)24911111001用途:按位異或(^)主要用于于將操作對(duì)象象的的某些位位翻轉(zhuǎn)(原來來為1的位變變?yōu)?,為0的變?yōu)?),其余各位位不變。實(shí)訓(xùn)3.3———交換兩變變量的值ExchangeTwoVariable.c編寫程序,不不使用其他中中間變量,交交換兩個(gè)整型型變量a和b的值。使用用按位異或((^)交換兩兩變量的值。。使用異或操操作置位兩變變量對(duì)應(yīng)位不不同的位置,,并依次交叉叉操作,達(dá)到到兩值交換的的功能,本例例主要使用一一個(gè)變量存儲(chǔ)儲(chǔ)了兩個(gè)變量量信息的特性性。需求分析:需求1:交換換兩個(gè)變量的的值需求2:不使使用中間變量量實(shí)現(xiàn):使用按位異或或(^)運(yùn)算算符,完成操操作,方法為為:首先將變變量a和b作作異或操作,,將結(jié)果賦給給a,然后將將b與a作異異或操作,并并將結(jié)果賦給給b,重復(fù)第第一步操作,,完成。3.7位位運(yùn)算符4.按位取反反(~)按位取反操作作是將操作對(duì)對(duì)象各位翻轉(zhuǎn)轉(zhuǎn),即原來為為1的位變成成0,原來為為0的位變成成1。例如::1111111100010011~ ---------------------------0000000011101100用途:按位取反操作作主要用于間間接地構(gòu)造一一個(gè)數(shù),以增增強(qiáng)程序的可可移植性。3.7位位運(yùn)算符5.按位左移移(<<)操作:使操作作對(duì)象的各位位左移,低位位補(bǔ)0,高位位溢出。其中中,操作對(duì)象象和左移位數(shù)數(shù)只能是整型型或字符型。。6.按位右移移(>>)操作使操作對(duì)對(duì)象的各位右右移,高位補(bǔ)補(bǔ)0,低位舍舍棄。與左移移類似,操作作對(duì)象和右移移位數(shù)只能是是整型或字符符型。3.8條條件運(yùn)算符條件運(yùn)算符::C語言中唯一一一個(gè)三元運(yùn)運(yùn)算符(三目目運(yùn)算符),,其一般表達(dá)達(dá)形式為:(表達(dá)式1))?表達(dá)式2:表達(dá)式3規(guī)則:若表達(dá)達(dá)式1的值為為真(非0)),則表達(dá)式式的值為表達(dá)達(dá)式2,否則則為表達(dá)式3。例如:(a>b)??a+b:a-b當(dāng)a=10,,b=5,c=2時(shí),該該表達(dá)式的執(zhí)執(zhí)行過程如下下:首先計(jì)算表達(dá)達(dá)式a>b是是否為真,經(jīng)經(jīng)運(yùn)算為真,,因此,表達(dá)達(dá)式的值為a+b,即為為15。實(shí)訓(xùn)3.4———分段函數(shù)數(shù)計(jì)算MulitPartFunction.c鍵盤盤輸輸入入變變量量x的的值值,,使使用用條條件件運(yùn)運(yùn)算算符符判判斷斷函函數(shù)數(shù)y的的值值,,并并輸輸出出x和和y的的值值。。編編寫寫程程序序,,實(shí)實(shí)現(xiàn)現(xiàn)分分段段函函數(shù)數(shù)::需求求分分析析::需求求1::鍵鍵盤盤輸輸入入變變量量x的的值值需求求2::使使用用條條件件運(yùn)運(yùn)算算符符判判斷斷變變量量x的的值值,,并并確確定定y的的值值思路路::判斷斷鍵鍵盤盤輸輸入入的的變變量量x的的值值,,若若x<-10,,則則y的的值值為為-10,,若若-10<x<10,,則則y的的值值即即為為x的的值值,,若若x>10,,則則y的的值值為為10。。3.9sizeof運(yùn)運(yùn)算算符符sizeof運(yùn)運(yùn)算算符符::又稱稱為為取取內(nèi)內(nèi)存存字字節(jié)節(jié)運(yùn)運(yùn)算算符符,,C語語言言最最特特殊殊的的運(yùn)運(yùn)算算符符之之一一,,用用于于計(jì)計(jì)算算操操作作對(duì)對(duì)象象在在內(nèi)內(nèi)存存中中所所占占的的字字節(jié)節(jié)數(shù)數(shù)。。例例如如::inta=10,b=0;b=sizeof(a);b用用于于存存儲(chǔ)儲(chǔ)變變量量a在在內(nèi)內(nèi)存存中中所所占占字字節(jié)節(jié)數(shù)數(shù),,使使用用sizeof獲獲取取a的的內(nèi)內(nèi)存存字字節(jié)節(jié)數(shù)數(shù)。。范例例3.11SizeofUseful.c使使用用sizeof運(yùn)運(yùn)算算符符分分別別獲獲取取charshortintlongfloatdouble等等幾幾種種基基本本數(shù)數(shù)據(jù)據(jù)類類型型的的內(nèi)內(nèi)存存字字節(jié)節(jié)數(shù)數(shù),,獲獲取取實(shí)實(shí)型型常常量量1.0以以及及字字符符常常量量’’a’’的的內(nèi)內(nèi)存存字字節(jié)節(jié)數(shù)數(shù),,獲獲取取強(qiáng)強(qiáng)制制類類型型轉(zhuǎn)轉(zhuǎn)換換之之后后的的字字符符常常量量’’a’’的的內(nèi)內(nèi)存存字字節(jié)節(jié)數(shù)數(shù)。。3.10強(qiáng)強(qiáng)制制類類型型轉(zhuǎn)轉(zhuǎn)換換功能能::將表表達(dá)達(dá)式式的的運(yùn)運(yùn)算算結(jié)結(jié)果果強(qiáng)強(qiáng)制制轉(zhuǎn)轉(zhuǎn)換換成成類類型型說說明明符符所所表表示示的的類類型型。。其其中中,,類類型型說說明明符符必必須須使使用用括括號(hào)號(hào)括括起起來來。。例例如如::(int)m表表示示把把m轉(zhuǎn)轉(zhuǎn)換換為為整整型型,,(double)(a*b+c)表表示示把把表表達(dá)達(dá)式式a*b+c的的值值轉(zhuǎn)轉(zhuǎn)換換為為雙雙精精度度浮浮點(diǎn)點(diǎn)型型。。注意意::第一一,,類類型型說說明明符符必必須須加加括括號(hào)號(hào);;第二二,,表表達(dá)達(dá)式式應(yīng)應(yīng)該該加加括括號(hào)號(hào),,若若表表達(dá)達(dá)式式僅僅為為單單個(gè)個(gè)變變量量可可以以不不加加;;第三三,,強(qiáng)強(qiáng)制制類類型型轉(zhuǎn)轉(zhuǎn)換換不不改改變變被被轉(zhuǎn)轉(zhuǎn)換換對(duì)對(duì)象象,,僅僅僅僅為為本本次次運(yùn)運(yùn)算算所所需需而而進(jìn)進(jìn)行行的的操操作作。。3.10強(qiáng)強(qiáng)制制類類型型轉(zhuǎn)轉(zhuǎn)換換范例例3.11CalcVandS.c計(jì)計(jì)算算半半徑徑r,,高高h(yuǎn)的的圓圓柱柱形形桶桶的的體體積積V和和表表面面積積S,取取圓圓周周率率為為3.14,,要要求求計(jì)計(jì)算算結(jié)結(jié)果果為為整整型型并并輸輸出出,,體體積積V四四舍舍五五入入,,表表面面積積S僅僅取取整整數(shù)數(shù)部部分分。。9、靜靜夜夜四四無無鄰鄰,,荒荒居居舊舊業(yè)業(yè)貧貧。。。。2022/12/202022/12/20Tuesday,December20,202210、雨中黃葉樹樹,燈下白頭頭人。。2022/12/202022/12/202022/12/2012/20/20225:50:19PM11、以我獨(dú)獨(dú)沈久,,愧君相相見頻。。。2022/12/202022/12/202022/12/20Dec-2220-Dec-2212、故人人江海海別,,幾度度隔山山川。。。2022/12/202022/12/202022/12/20Tuesday,December20,202213、乍見翻翻疑夢(mèng),,相悲各各問年。。。2022/12/202022/12/202022/12/202022/12/2012/20/202214、他鄉(xiāng)生生白發(fā),,舊國(guó)見見青山。。。20十十二月20222022/12/202022/12/202022/12/2015、比不了得得就不比,,得不到的的就不要。。。。十二月222022/12/202022/12/202022/12/2012/20/202216、行動(dòng)出成成果,工作作出財(cái)富。。。2022/12/202022/12/2020December202217、做做前前,,能能夠夠環(huán)環(huán)視視四四周周;;做做時(shí)時(shí),,你你只只能能或或者者最最好好沿沿著著以以腳腳為為起起點(diǎn)點(diǎn)的的射射線線向向前前。。。。2022/12/202022/12/202022/12/202022/12/209、沒有有失敗敗,只只有暫暫時(shí)停停止成成功!!。2022/12/202022/12/20Tuesday,December20,202210、很多多事情情努力力了未未必有有結(jié)果果,但但是不不努力力卻什什么改改變也也沒有有。。。2022/12/202022/12/202022/12/2012/20/20225:50:19PM11、成功就是是日復(fù)一日日那一點(diǎn)點(diǎn)點(diǎn)小小努力力的積累。。。2022/12/202022/12/202022/12/20Dec-2220-Dec-2212、世間成成事,不不求其絕絕對(duì)圓滿滿,留一一份不足足,可得得無限完完美。。。2022/12/202022/12/202022/12/20Tuesday,December20,202213、不不知知香香積積寺寺,,數(shù)數(shù)里

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論