版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)大連軟件職業(yè)學(xué)院3.1算術(shù)運(yùn)算單目運(yùn)算符:只作用于一個(gè)運(yùn)算對象的運(yùn)算符;
雙目運(yùn)算符:作用于兩個(gè)運(yùn)算對象的運(yùn)算符。
一元運(yùn)算符:++,--,+,-二元運(yùn)算符:+,-,*,/,%(注意對運(yùn)算對象的要求)1.求余運(yùn)算A只能用來求兩個(gè)整數(shù)(int型或char型)的余數(shù);B會求a%b的值;eg:14%(-6)=?-14%6=?
余數(shù)符號一除了求余運(yùn)算符外,其余運(yùn)算符均既可整數(shù)運(yùn)算,又可作浮點(diǎn)數(shù)運(yùn)算。求余運(yùn)算符僅可作整數(shù)運(yùn)算。二兩個(gè)整數(shù)相除的運(yùn)算結(jié)果為一個(gè)整數(shù)。eg:13/5三加減運(yùn)算符可以作字符運(yùn)算。eg:’a’+1算術(shù)運(yùn)算符在使用中注意事項(xiàng)優(yōu)先級和結(jié)合性規(guī)則A不同級別:在算術(shù)運(yùn)算符中,其優(yōu)先級別從高到低依次為:()(括號最優(yōu)先)+,-,++,--(一元運(yùn)算符)*,/,%(二元運(yùn)算符)+,-(二元運(yùn)算符)B同一級別:按它們的結(jié)合性確定其優(yōu)先次序.返回2.增1和減1運(yùn)算–––也稱自加和自減運(yùn)算;A.用法:++或--可以寫在變量之前稱為前綴,寫在變量之后稱為后綴。eg:++i表示i=i+1--i表示i=i-1i++i--
注意:++或--只能對變量施加運(yùn)算,不能對常量或表達(dá)式施加運(yùn)算。Eg:5++或者(a+b)++或者++(a+b)都是錯(cuò)誤的。前綴和后綴的區(qū)別.程序+-.cj=++i;j=i++;※小結(jié):++i先運(yùn)算,后取值;i++先取值,后運(yùn)算。++i,--i在使用i之前,先使i的值加(減)1;i++,i--在使用i之后,使i的值加(減)1;
inti=3,j=3;printf(“%d,%d\n”,++i,j++);運(yùn)行結(jié)果:運(yùn)行后的i,j
4,34,4思考:1)intx=10,y=7;y=++x-y+2;printf(“%d%d\n”,y,x);顯示什么?Ex.c注意一:最長符號原則:由于C語言的運(yùn)算符可由多個(gè)符號組成,如:++,->,&&,||,->*……那么i+++j是(i++)+j還是i+(++j)?
“最長符號原則”規(guī)定:從左算起的多個(gè)符號若符合C語言規(guī)定的法定符號,一律不得拆分。注意:盡量避免這樣有歧義的寫法.注意二:Eg:inti=3;printf(“%d,%d”,i,i++);盡量避免這樣的寫法inti=3,j;j=i++;printf(“%d,%d”,i,j);后置運(yùn)算符到底后到哪?inti=3,j;j=i+++i++;printf(“%d,%d\n”,i,j);
運(yùn)行后i,j的值:5,6因?yàn)閕++要等到加之后做,故j=6,i由3增到5。結(jié)論:后置運(yùn)算要”后”到本語句的其它動作之后。表達(dá)式:表達(dá)式是一種使用常量、變量和函數(shù)以及運(yùn)算符組合起來的有確定值及類型的算式。算術(shù)表達(dá)式inta=1,b=2;a*b+5b/a+a%ba+++b--3.1.3關(guān)系運(yùn)算和邏輯運(yùn)算一.關(guān)系運(yùn)算符1.六種關(guān)系運(yùn)算符><>=<===!=結(jié)合性:都是從左到右同一優(yōu)先級同一優(yōu)先級
二.關(guān)系表達(dá)式用六個(gè)關(guān)系運(yùn)算符中的一個(gè)連接兩個(gè)算術(shù)表達(dá)式或賦值表達(dá)式,就構(gòu)成了關(guān)系表達(dá)式.Eg:a+b>=c-dx==y注意和“=”區(qū)分!!score>90等注意:1.C語言不提供邏輯型數(shù)據(jù),而是整數(shù)1表示真,用整數(shù)0表示假。
判斷:eg:0>942!=4242==42100!=50
四.邏輯運(yùn)算符1.邏輯運(yùn)算符的種類:
!邏輯非&&邏輯與‖邏輯或2.邏輯運(yùn)算必須連接邏輯量,運(yùn)算的結(jié)果也是邏輯量,即結(jié)果只能是0或1。C語言中真與假的規(guī)定非0為真,0為假;運(yùn)算結(jié)果為真時(shí)用1表示;運(yùn)算結(jié)果為假時(shí)用0表示。特別注意:所有非“0”整數(shù)都認(rèn)為是邏輯“真”,整數(shù)“0”則認(rèn)為是邏輯“假”。例如25&&-3其值得10||356其值得1!(-23)其值得03.運(yùn)算符的優(yōu)先級和結(jié)合性!(非)算術(shù)運(yùn)算符關(guān)系運(yùn)算符&&和‖賦值運(yùn)算符關(guān)系運(yùn)算符和邏輯運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符,因此,x+y>=a+b與(x+y)>=(a+b)等價(jià)低高“短路”現(xiàn)象:1.在計(jì)算形如(表達(dá)式1)&&(表達(dá)式2)&&……的邏輯表達(dá)式時(shí),只要有一個(gè)表達(dá)式的值為假,那么整個(gè)表達(dá)式的值就為假。因此,C語言規(guī)定在計(jì)算過程中先計(jì)算表達(dá)式1,如果其值是邏輯真或非0,就接著計(jì)算表達(dá)式2,如果第一個(gè)表達(dá)式為邏輯假,則可以判定整個(gè)表達(dá)式的值為邏輯假,其后的表達(dá)式不被計(jì)算。2.在計(jì)算形如(表達(dá)式1)‖(表達(dá)式2)‖……,先計(jì)算表達(dá)式1,如果其值為邏輯“假”或0,就接著計(jì)算表達(dá)式2,如果第一個(gè)為邏輯真的表達(dá)式就可判定整個(gè)表達(dá)式為邏輯真,其后的表達(dá)式將不被計(jì)算。Eg:main(){inta=1,b=2,c=3,d=4,m=2,n=2;(m=a>b)&&(n=c>d);printf(“%d%d\n”,m,n);}思考??
數(shù)值在計(jì)算機(jī)中的表示
1.二進(jìn)制位與字節(jié)
計(jì)算機(jī)系統(tǒng)的內(nèi)存儲器,是由許多稱為字節(jié)的單元組成的,1個(gè)字節(jié)由8個(gè)二進(jìn)制位(bit)構(gòu)成,每位的取值為0/1。最右端的那1位稱為“最低位”,編號為0;最左端的那1位稱為“最高位”,而且從最低位到最高位順序,依次編號。下圖是1個(gè)字節(jié)各二進(jìn)制位的編號。
2.數(shù)值的原碼表示數(shù)值的原碼表示是,將最高位用作符號位(0表示正數(shù),1表示負(fù)數(shù)),其余各位代表數(shù)值本身的絕對值(以二進(jìn)制形式表示)的表示形式。為簡化描述起見,本節(jié)約定用1個(gè)字節(jié)表示1個(gè)整數(shù)。
76543210例如,+9的原碼是00001001└→符號位上的0表示正數(shù)-9的原碼是10001001。└→符號位上的1表示負(fù)數(shù)3.數(shù)值的反碼表示數(shù)值的反碼表示分兩種情況:(1)正數(shù)的反碼:與原碼相同。例如,+9的反碼是00001001。(2)負(fù)數(shù)的反碼:符號位為1,其余各位為該數(shù)絕對值的原碼按位取反(1變0、0變1)。例如,-9的反碼:因?yàn)槭秦?fù)數(shù),則符號位為“1”;其余7位為-9的絕對值+9的原碼0001001按位取反為1110110,所以-9的反碼是11110110。4.數(shù)值的補(bǔ)碼表示數(shù)值的補(bǔ)碼表示也分兩種情況:(1)正數(shù)的補(bǔ)碼:與原碼相同。例如,+9的補(bǔ)碼是00001001。(2)負(fù)數(shù)的補(bǔ)碼:符號位為1,其余位為該數(shù)絕對值的原碼按位取反;然后整個(gè)數(shù)加1。例如,-9的補(bǔ)碼:因?yàn)槭秦?fù)數(shù),則符號位為“1”;其余7位為-9的絕對值+9的原碼0001001按位取反為1110110;再加1,所以-9的補(bǔ)碼是11110111。5.數(shù)值在計(jì)算機(jī)中的表示──補(bǔ)碼在計(jì)算機(jī)系統(tǒng)中,數(shù)值一律用補(bǔ)碼表示(存儲),原因在于:使用補(bǔ)碼,可以將符號位和其它位統(tǒng)一處理;同時(shí),減法也可按加法來處理。3.15位操作位操作是對字節(jié)或字節(jié)內(nèi)部的二進(jìn)制位進(jìn)行測試、設(shè)置、移位或邏輯運(yùn)算。位操作分為兩類:一類是邏輯位運(yùn)算;另一類是移位運(yùn)算。1邏輯位運(yùn)算1.邏輯位運(yùn)算符邏輯位運(yùn)算用來對某一個(gè)或某一對二進(jìn)制位進(jìn)行操作。其中:~表示按位取反&表示按位與︱表示按位或^表示按位異或pqp&qp^qp|q~p000001010111100110111010按位與按位異或按位或按位取反思考:10&&2=?10&2=?10^2=?2移位運(yùn)算移位運(yùn)算計(jì)算實(shí)現(xiàn)操作數(shù)字中所有的二進(jìn)制位按指定的位數(shù)順序向左或向右移位.移位運(yùn)算包括左移位和右移位。移位運(yùn)算的一般格式為v<<nv>>n其中,v是操作數(shù),可以是變量,也可以是表達(dá)式;n必須是正整數(shù),表示要移動的位數(shù)。(1)左移位運(yùn)算假設(shè)有變量a,左移位運(yùn)算a<<n,表示將a的各個(gè)二進(jìn)制位順序左移n位,右端空出的位補(bǔ)0,移出左端之外的位則舍棄。例如,設(shè)a=25,則a<<3為200:
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐a│0│0│0│0│0│0│0│0│0│0│0│1│1│0│0│1│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐a<<3│0│0│0│0│0│0│0│0│1│1│0│0│1│0│0│0│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘左移位相當(dāng)于乘2運(yùn)算左移舍棄,右補(bǔ)空格.(2)右移位運(yùn)算假設(shè)有變量a,右移位運(yùn)算a>>n,表示將a的各個(gè)二進(jìn)制位順序右移n位,移出右端之外的位被舍棄,左端空出的位則補(bǔ)0或補(bǔ)1,這取決于具體的機(jī)器和被移位的數(shù)是有符號數(shù)還是無符號數(shù)。(1)對無符號數(shù)進(jìn)行右移時(shí),左端空出的位一律補(bǔ)0;(2)對用補(bǔ)碼表示的有符號數(shù)進(jìn)行右移時(shí),有的機(jī)器采取邏輯右移,有的機(jī)器則采取算術(shù)右移。邏輯右移:不管是正數(shù)還是負(fù)數(shù),左端空位一律補(bǔ)0;算術(shù)右移:正數(shù)右移,左端的空位全部補(bǔ)0;負(fù)數(shù)右移,左端的空位全部補(bǔ)1(即符號位)。例如,設(shè)a=-32768(補(bǔ)碼表示),則有:┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐a│1│0│0│0│0│0│0│0│0│0│0│0│0│0│0│0│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐a>>2│0│0│1│0│0│0│0│0│0│0│0│0│0│0│0│0│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘邏輯右移2位后,其值為8192。┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐a>>2│1│1│1│0│0│0│0│0│0│0│0│0│0│0│0│0│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘算術(shù)右移2位后,其值為-8192。算術(shù)右移相當(dāng)于除2運(yùn)算。3.1.6賦值運(yùn)算賦值表達(dá)式的形式:v=eEg:a=10其中:“=”稱為賦值符號或賦值運(yùn)算符號;“=”右邊的e是一個(gè)表達(dá)式或常量;左邊的v是一個(gè)變量或數(shù)組元素.賦值表達(dá)式的功能是計(jì)算e的值并存放在v中.賦值表達(dá)式的末尾加上分號就是賦值語句.一.賦值運(yùn)算符C語言提供了兩種賦值運(yùn)算符:
簡單賦值運(yùn)算符;復(fù)合賦值運(yùn)算符.1.簡單賦值運(yùn)算符即“=”,它必須連接兩個(gè)運(yùn)算量,其左邊只能是變量或數(shù)組元素,右邊可以是任何表達(dá)式.Eg:判斷正誤?x=y(tǒng)+2;x=x+1;y+2=x,5=x;2.復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符有10種,它們由賦值號“=”和另外一個(gè)二元(雙目)運(yùn)算符組成,具有計(jì)算和賦值雙重功能.復(fù)合賦值運(yùn)算的一般格式為:
變量雙目運(yùn)算符=表達(dá)式└──┬──┘復(fù)合賦值運(yùn)算符它等價(jià)于:變量=變量雙目運(yùn)算符(表達(dá)式)。當(dāng)表達(dá)式為簡單表達(dá)式時(shí),表達(dá)式外的一對圓括號才可缺省,否則可能出錯(cuò)。例如,x+=3 /*等價(jià)于x=x+3*/y*=x+6 /*等價(jià)于y=y*(x+6),而不是y=y*x+6*/
注意:一.使用復(fù)合賦值運(yùn)算符連接兩個(gè)運(yùn)算量時(shí),要把右邊的運(yùn)算量視為一個(gè)整體。例如x*=y+5表示x=x*(y+5)而不是x=x*y+5。二.優(yōu)先級:所有的賦值運(yùn)算符都處于同一優(yōu)先級,且優(yōu)先級很低,僅比逗號運(yùn)算符高而比其他所有的運(yùn)算符都低.
結(jié)合性:從右到左。賦值運(yùn)算要求類型兼容教材3.4節(jié)類型轉(zhuǎn)換問題由低到高——自動轉(zhuǎn)換由高到低——強(qiáng)制轉(zhuǎn)換(類型說明符)〈表達(dá)式〉eg:inta=3;doubleb;b=a;自動類型轉(zhuǎn)換低高doublefloatlongunsignedintchar,short低高①橫向箭頭表示必定的轉(zhuǎn)換(兩個(gè)float型的數(shù)據(jù)運(yùn)算,也先都化成double型除非各自后綴f。)②縱向箭頭表示當(dāng)運(yùn)算對象類型不同時(shí)的轉(zhuǎn)換方向。強(qiáng)制轉(zhuǎn)換舉例#include<stdio.h>voidmain(){ inta=5; floatb=(float)3.9; doubled; d=b; a=(int)b; printf("%d\t%.2lf\n",a,d);}其他運(yùn)算符1三目運(yùn)算符d1?d2:d3例如:分析如下程序結(jié)果inta=3,b=5;a>b?a:b3數(shù)據(jù)長度運(yùn)算符sizeof((類型說明符)/(變量名))Eg:分析以下表達(dá)式值分別為多少?inta,b[20];sizeof(a);sizeof(int);sizeof(b);sizeof(b[1]);4逗號運(yùn)算符一.逗號表達(dá)式的形式d1,d2,d3,d41.Eg:3+5,6+83*5,a*4,a+52.表達(dá)式1,
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州市中鐵七局集團(tuán)第五工程有限公司2026屆高校畢業(yè)生招聘30人備考題庫完整答案詳解
- 2025年青島市市南區(qū)城市發(fā)展有限公司及全資子公司公開招聘備考題庫及參考答案詳解
- 成都市龍江路小學(xué)新都校區(qū)面向社會公開招聘人員控制數(shù)教師20人備考題庫及一套答案詳解
- 2025年茂名市茂南區(qū)現(xiàn)場公開招聘急需緊缺人才6人備考題庫及答案詳解1套
- 外研版九年級下冊英語備課組匯報(bào)課件
- 贛江新區(qū)人民醫(yī)院2025年心血管內(nèi)科醫(yī)師崗招聘備考題庫(第二批)及一套完整答案詳解
- 統(tǒng)編版語文八年級上冊第六單元課外古詩詞誦讀《采桑子輕舟短棹西湖好》課件
- 閔行區(qū)馬橋文來外國語小學(xué)2025學(xué)年編外教師招聘備考題庫完整參考答案詳解
- 2025年江蘇科技大學(xué)公開招聘工作人員97人備考題庫(三)含答案詳解
- 2025年舟山市嵊泗縣融媒體中心公開招聘短視頻制作人員或文字記者和技術(shù)人員的備考題庫及參考答案詳解1套
- 小學(xué)階段人工智能在激發(fā)學(xué)生學(xué)習(xí)動機(jī)中的應(yīng)用研究教學(xué)研究課題報(bào)告
- 2025年山西大地環(huán)境投資控股有限公司社會招聘116人備考題庫及完整答案詳解一套
- 2025年植物標(biāo)本采集合同協(xié)議
- 2025湖北武漢市蔡甸區(qū)總工會招聘工會協(xié)理員4人筆試試題附答案解析
- 2025年秋季學(xué)期國家開放大學(xué)《人文英語4》期末機(jī)考精準(zhǔn)復(fù)習(xí)題庫
- DB32T 4660-2024 政務(wù)服務(wù)差評處置工作規(guī)范
- 胸腔手術(shù)術(shù)后并發(fā)癥
- 2024-2025學(xué)年七年級生物上冊 第二單元第三、四章 單元測試卷(人教版)
- JT∕T 900-2023 汽車售后維修服務(wù)客戶滿意度評價(jià)方法
- GB/Z 3480.22-2024直齒輪和斜齒輪承載能力計(jì)算第22部分:微點(diǎn)蝕承載能力計(jì)算
- 醫(yī)療耗材配送服務(wù)方案
評論
0/150
提交評論