版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基本運(yùn)算符和表達(dá)式表達(dá)式算術(shù)運(yùn)算符和表達(dá)式賦值運(yùn)算符不同數(shù)據(jù)類(lèi)型間的轉(zhuǎn)換關(guān)系運(yùn)算符和表達(dá)式邏輯運(yùn)算符和表達(dá)式自增和自減運(yùn)算符逗號(hào)運(yùn)算符和表達(dá)式條件運(yùn)算符和表達(dá)式求字節(jié)運(yùn)算符學(xué)習(xí)重點(diǎn)熟悉幾種常用的運(yùn)算符掌握運(yùn)算符的運(yùn)算規(guī)則3.掌握表達(dá)式求值3.1
表達(dá)式一、表達(dá)式的概念
表達(dá)式是由運(yùn)算符連接常量、變量、函數(shù)所組成的式子。每個(gè)表達(dá)式都有一個(gè)值和類(lèi)型。(a*2)/c
++i
sin(x)+sin(y)5>0&&4>2a=b=c=5二、運(yùn)算符的種類(lèi):據(jù)運(yùn)算對(duì)象的個(gè)數(shù)分有三種:?jiǎn)文?、雙目、三目
①++
①/②
①?②:③C運(yùn)算符算術(shù)運(yùn)算符:(+-*/%++--)關(guān)系運(yùn)算符:(<<===>>=!=)邏輯運(yùn)算符:((!&&||)位運(yùn)算符:(<<>>~|^&)賦值運(yùn)算符:(=及其擴(kuò)展)條件運(yùn)算符:(?:)逗號(hào)運(yùn)算符:(,)指針運(yùn)算符:(*&)求字節(jié)數(shù):(sizeof)強(qiáng)制類(lèi)型轉(zhuǎn)換:(類(lèi)型)分量運(yùn)算符:(.->)下標(biāo)運(yùn)算符:([])其它:(()-)學(xué)習(xí)運(yùn)算符應(yīng)注意:運(yùn)算符功能與運(yùn)算量關(guān)系要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量類(lèi)型運(yùn)算符優(yōu)先級(jí)別結(jié)合方向結(jié)果的類(lèi)型一、算術(shù)運(yùn)算符:
+-*/%結(jié)合方向:從左向右優(yōu)先級(jí):----->*/%----->+-說(shuō)明:“-”可為單目運(yùn)算符時(shí),右結(jié)合性?xún)烧麛?shù)相除,結(jié)果為整數(shù)%要求兩側(cè)均為整型數(shù)據(jù)例5/2=-5/2.0=例5%2=-5%2=1%10=
5%1=5.5%2例5/2=2
-5/2.0=-2.5例5%2=1
-5%2=-11%10=
1
5%1=
05.5%2()3.2算術(shù)運(yùn)算符和表達(dá)式例1:#include”stdio.h”main(){printf("\n\n%d,%d\n",20/7,-20/7);printf("%f,%f\n",20.0/7,-20.0/7);}結(jié)果:2,-22.857143,-2.857143例2:#include”stdio.h”main(){printf("%d\n",100%3);}結(jié)果:13.3
賦值運(yùn)算符一、簡(jiǎn)單賦值運(yùn)算符:=格式:變量=表達(dá)式作用:將一個(gè)數(shù)據(jù)(常量或表達(dá)式)賦給一個(gè)變量
二、復(fù)合賦值運(yùn)算符種類(lèi):+=-=*=/=%=
a+=3a=a+3x*=y+8x=x*(y+8)例a=3;d=func();c=d+2;a+=ba=a+ba-=ba=a-ba*=ba=a*ba/=ba=a/ba%=ba=a%b說(shuō)明:結(jié)合方向:自右向左左側(cè)必須是變量,不能是常量或表達(dá)式優(yōu)先級(jí):比算術(shù)低例3=x-2*y;
a+b=3;
例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表達(dá)式值為5,a,b,c值為5//b=5;a=5//表達(dá)式值11,c=6,a=11//表達(dá)式值10,a=10,b=4,c=6//表達(dá)式值5,a=5,b=10,c=2例:a=12;a+=a-=a*a;//a=-264等價(jià)于a=a+(a=a-(a*a))例:inta=2;a%=4-1;a+=a*=a-=a*=3;
//a=0等價(jià)于a=a+(a=a*(a=a-(a=a*3)))例3:#include”stdio.h”main(){inta,b,c,d,x,y,z;a=100;b=45;c=-19;d=94;x=-2;y=5;z=28;a+=6;b-=x;c*=10;d/=x+y;z%=8;printf("\n%6d%6d%6d%6d%6d\n",a,b,c,d,z);}結(jié)果:???106????47??-190????31?????43.4不同類(lèi)型數(shù)據(jù)間的轉(zhuǎn)換轉(zhuǎn)換有兩種:隱式:計(jì)算機(jī)自動(dòng)進(jìn)行的轉(zhuǎn)換顯式:強(qiáng)制性轉(zhuǎn)換一、隱式轉(zhuǎn)換(4種)運(yùn)算轉(zhuǎn)換------不同類(lèi)型數(shù)據(jù)混合運(yùn)算時(shí)賦值轉(zhuǎn)換------把一個(gè)值賦給與其類(lèi)型不同的變量時(shí)輸出轉(zhuǎn)換------輸出時(shí)轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換------實(shí)參與形參類(lèi)型不一致時(shí)轉(zhuǎn)換(1)運(yùn)算轉(zhuǎn)換:不同類(lèi)型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)轉(zhuǎn)換成同一類(lèi)型
數(shù)據(jù)類(lèi)型的級(jí)別floatlongintbitchar低高unsignedsigned轉(zhuǎn)換規(guī)則:當(dāng)運(yùn)算符兩端的數(shù)據(jù)類(lèi)型不同時(shí),按“向高看齊”的原則,對(duì)較低的類(lèi)型提升。10+‘a(chǎn)’+i*f-d/l例inti;floatd,f;longl;intintfloatfloatfloatfloatfloatfloat(2)賦值轉(zhuǎn)換:自動(dòng)將“=”右邊的類(lèi)型轉(zhuǎn)換為左邊變量的類(lèi)型。實(shí)整,舍棄小數(shù)。例:inti;i=375.986;
i=375intfloat,數(shù)值不變,但以浮點(diǎn)形式存到變量中。例:floatf;f=36;
f=36.000000字符整型,將字符的ASCII碼值放到整型量的低八位中,高八位為0。整型賦予字符型,只把低八位賦予字符變量。例4:#include”stdio.h”main(){inta,b=322,i;floatx,y=8.88;charc1='k',c2;a=y;x=b;i=c1;c2=b;printf("%d,%f,%d,%c",a,x,i,c2);}signedunsigned,原樣照賦例5
#include”stdio.h”main(){unsignedinta;intb=-1;a=b;printf(“%u”,a);}輸出結(jié)果:65535C二、顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)格式:(類(lèi)型名)(表達(dá)式)例(int)(x+y)(int)x+y(float)(3/2)(int)3.6說(shuō)明:強(qiáng)制轉(zhuǎn)換得到所需類(lèi)型的中間變量,原變量類(lèi)型不變例6
#include”stdio.h”
main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}結(jié)果:x=3.600000,i=3精度損失問(wèn)題較高類(lèi)型向較低類(lèi)型轉(zhuǎn)換時(shí)可能發(fā)生例:floatf;f=6/7;問(wèn):f=?
f=0.8571
f=0.0改為:f=6.0/7
或f=6/7.0或f=(float)6/7類(lèi)型轉(zhuǎn)換時(shí),只贊成低高
不贊成高低
只贊成有符號(hào)數(shù)無(wú)符號(hào)數(shù)
不贊成無(wú)符號(hào)數(shù)有符號(hào)數(shù)3.5
關(guān)系運(yùn)算符和表達(dá)式運(yùn)算符:<<=>>===!=結(jié)合方向:自左向右優(yōu)先級(jí)別:<<=>>=
------>==!=與其它比:算術(shù)關(guān)系賦值例c>a+b//c>(a+b)a>b!=c//(a>b)!=ca==b<c//a==(b<c)a=b>c//a=(b>c)關(guān)系表達(dá)式的值:是邏輯值,1(真)0(假)例inta=3,b=2,c=1,d,f;a>b(a>b)==cb+c<ad=a>bf=a>b>c//表達(dá)式值1//表達(dá)式值1//表達(dá)式值0//d=1//f=0注意:例若a=0;b=0.5;x=0.3;
則a<=x<=b的值為
0例5>2>7>8在C中是允許的,值為0例inti=1,j=7,a;a=i+(j%4!=0);
則a=2例‘a(chǎn)’>0結(jié)果為‘A’>100結(jié)果為10例注意區(qū)分“=”與“==”inta=0,b=1;if(a=b)printf(“aequaltob”);elseprintf(“anotequaltob”);例7:#include”stdio.h”main(){intx,y,z;printf(“inputdatax,y:\n”);scanf(“%d%d”,&x,&y);printf(“\n????x????y??x<y?x<=y??x>y?x>=y?x!=y?x==y”);printf(“\n%5d%5d”,x,y);z=x<y;printf(“%5d”,z);z=x<=y;printf(“%5d”,z);
z=x>y;printf(“%5d”,z);
z=x>=y;printf(“%5d”,z);
z=x!=y;printf(“%5d”,z);z=x==y;printf(“%5d”,z);printf(“\n”);}結(jié)果1:inputdatax,y:5?3回車(chē)
x
y
x<y
x<=y
x>y
x>=yx!=y
x==y
5
3
0
0
1
110結(jié)果2:-inputdatax,y:-5?-3回車(chē)
x
y
x<y
x<=y
x>y
x>=yx!=y
x==y
-5
-3
1
1
0
010結(jié)果1:inputdatax,y:4?4回車(chē)
x
y
x<y
x<=y
x>y
x>=yx!=y
x==y
4
4
0
1
0
101ab!a!ba&&ba||b真假真假假假真真3.6
邏輯運(yùn)算符和表達(dá)式運(yùn)算符:!&&||邏輯運(yùn)算真值表
運(yùn)算量:0(假)
非0(真)
表達(dá)式值:0(假)
1(真)
真假假假假假真真假假真真真假真真例a<=x&&x<=b
a>b&&x>ya==b||x==y!a||a>b優(yōu)先級(jí):結(jié)合方向:!:右左&&:左右||:左右//(a<=x)&&(x<=b)
//(a>b)&&(x>y)//(a==b)||(x==y)//(!a)||(a>b)與其它比:?jiǎn)文克阈g(shù)關(guān)系邏輯賦值!&&||例a=4;b=5;!aa&&ba||b!a||b4&&0||25>3&&2||8<4-!0‘c’&&‘d’值為1值為0值為1值為1值為1值為1值為1特性:與表達(dá)式遇假結(jié)束例a=1;b=2;c=3;d=4;m=1;n=1;(m=a>b)&&(n=c>d)求m=?n=?//m=0,n=1例a&&b&&c//只在a為真時(shí),才判別b的值;只在a、b都為真時(shí),才判別c的值或表達(dá)式遇真結(jié)束例a||b||c//只在a為假時(shí),才判別b的值;只在a、b都為假時(shí),才判別c的值例8:#include”stdio.h”main(){intx,y,z;printf(“inputdatax,y:\n”);scanf(“%d%d”,&x,&y);printf(“\n????x????y??????!x????x||y????x&&y”);printf(“\n%5d%5d”,x,y);z=!x;printf(“%8d”,z);z=x||y;printf(“%8d”,z);
z=x&&y;printf(“%8d”,z);printf(“\n”);}結(jié)果1:inputdatax,y:12?8回車(chē)
x
y
!x
x||y
x&&y
12
8
0
1
1
結(jié)果2:inputdatax,y:9?-3回車(chē)
x
y
!x
x||y
x&&y
9
-3
0
1
1
結(jié)果3:inputdatax,y:0?81回車(chē)
x
y
!x
x||y
x&&y
0
8
1
1
0
結(jié)果4:inputdatax,y:-23?0回車(chē)
x
y
!x
x||y
x&&y
-23
0
0
1
10
結(jié)果5:inputdatax,y:0?0回車(chē)
x
y
!x
x||y
x&&y
0
0
1
0
0
3.7
自增、自減運(yùn)算符:++--作用:使變量值加1或減1
i++或++ii=i+1i--或--ii=i-1種類(lèi):前綴:++i,--i
先增1(減1),再使用i值后綴:i++
,i--先使用i值,再增1(減1)例j=3;k=++j;j=3;k=j++;j=3;printf(“%d”,++j);j=3;printf(“%d”,j++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;
//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=4說(shuō)明:不能用于常量和表達(dá)式,如5++,(a+b)++結(jié)合方向:自右向左優(yōu)先級(jí):-++-------->*/%----->+-
例-i++-(i++)i=3;printf(“%d”,-i++);//-3
例inta=5,b;b=a++;printf(“a=%d,b=%d”,a,b);//a=6,b=5例inta=5,b;b=++a;printf(“a=%d,b=%d”,a,b);//a=6,b=6例9:#include”stdio.h”main(){intx,y,z;x=y=8;;z=++x;printf(“\n%3d%3d%3d”,y,z,x);x=y=8;;z=x++;printf(“\n%3d%3d%3d”,y,z,x);x=y=8;;z=--x;printf(“\n%3d%3d%3d”,y,z,x);x=y=8;;z=x--;printf(“\n%3d%3d%3d”,y,z,x);printf(“\n”);}結(jié)果:899
889
877887
3.8
逗號(hào)運(yùn)算符和表達(dá)式形式:表達(dá)式1,表達(dá)式2,……,表達(dá)式n結(jié)合性:從左向右優(yōu)先級(jí):最低表達(dá)式值:等于表達(dá)式n的值用途:常用于循環(huán)for語(yǔ)句中例a=3*5,a*4a=3*5,a*4,a+5例a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);//a=15,表達(dá)式值60//a=15,表達(dá)式值20//1,2,3//3,2,3例10:#include”stdio.h”main(){intx,y=7;floatz=4;x=(y=y+
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 抽象的雕塑美術(shù)教案【3篇】
- 二零二五年度公共設(shè)施建設(shè)項(xiàng)目合同招標(biāo)投標(biāo)指南3篇
- 2025版股權(quán)投資有限合伙合同
- 2024片石采購(gòu)合同之石材企業(yè)資源整合合作協(xié)議3篇
- 2024施工補(bǔ)充協(xié)議書(shū)
- 2024年茶樓消防安全管理合同
- 2024年汽車(chē)租賃抵押擔(dān)保責(zé)任合同3篇
- 2025年度安防產(chǎn)品節(jié)能技術(shù)改造合同3篇
- 2025版互聯(lián)網(wǎng)廣告發(fā)布合同臺(tái)賬管理規(guī)范2篇
- 2024年貸款人質(zhì)押合同
- Part 6 Unit 8 Green Earth 教案-【中職專(zhuān)用】高一英語(yǔ)精研課堂(高教版2021·基礎(chǔ)模塊2)
- 艾森克人格問(wèn)卷(EPQ)(成人)
- 設(shè)備維護(hù)與故障排除項(xiàng)目風(fēng)險(xiǎn)評(píng)估報(bào)告
- (新版)質(zhì)量知識(shí)競(jìng)賽參考題庫(kù)400題(含各題型)
- 幼兒園小班語(yǔ)言《誰(shuí)的耳朵》課件
- 院前急救診療技術(shù)操作規(guī)范
- 患者轉(zhuǎn)診記錄單
- 美好生活“油”此而來(lái)-暨南大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 買(mǎi)賣(mài)合同糾紛案民事判決書(shū)
- 神經(jīng)內(nèi)科應(yīng)急預(yù)案完整版
- 2023零售藥店醫(yī)保培訓(xùn)試題及答案篇
評(píng)論
0/150
提交評(píng)論