版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
運算符和表達(dá)式運算符和表達(dá)式概述運算符和運算對象的關(guān)系。單目運算符:-5雙目運算符:a+b三目運算符:a?b:c運算符具有優(yōu)先級和結(jié)合方向。一個運算對象的兩邊有不同的運算符,首先執(zhí)行優(yōu)先級別較高的運算。例:a+b*c如果一個運算對象兩邊的運算符級別相同,則應(yīng)按由左向右的方向。例:a+b+c算術(shù)運算符和算術(shù)表達(dá)式+(加)-(減)*(乘)/(除)%(整除求余)高低算術(shù)運算符屬雙目運算符,結(jié)合方向自左至右。算術(shù)運算符優(yōu)先級:*/%+-關(guān)于%運算符:兩個操作數(shù)為整型,其結(jié)果為余數(shù)5%3=2 5%2=13%5=? 2%5=?運算所得結(jié)果的符號與運算符左側(cè)操作數(shù)的符號相同-4%3=-14%(-3)=11+2=? 4/3=? ?=?1+2=3 4/3=1 ?=01+0.2=? 4.0/3=?1+0.2=1.2 4.0/3=1.333333轉(zhuǎn)換規(guī)律是低類型向高類型轉(zhuǎn)換doublefloat高
longunsigned低
intchar,short各類數(shù)值型數(shù)據(jù)間混合運算一般形式為:(類型名)(表達(dá)式)#include<stdio.h>intmain(void){doublex=3.6,y;inti=(int)x,j;y=i/5;j=i/5;printf(“x=%f,y=%f\n”,x,y);printf(“i=%d,j=%d\n”,i,j);return(0);}運行結(jié)果為:x=3.600000,y=0.000000i=3,j=0強制類型轉(zhuǎn)換運算符能將一個表達(dá)式的值轉(zhuǎn)換成所需的數(shù)據(jù)類型-∞-4–3034+∞-3.53.2向零靠攏原則
算術(shù)運算符和算術(shù)表達(dá)式#include<stdio.h>intmain(void){inta,b;floatc;scanf(“%d,%d,%f”,&a,&b,&c);printf(“a+b=%d\n”,a+b);printf(“a-b=%d\n”,a-b);printf(“a/c=%f\n”,a/c);printf(“a%%c=%d\n”,a%(int)c);return(0);}兩個“%%”表示輸出一個“%”
a+b=5a-b=-1a/c=0.500000a%c=2若輸入為2,3,4.0則輸出為多少?求解一元二次方程10x2+600x+5=0的兩個實根。#include<stdio.h>#include<math.h> intmain(void){inta,b,c; floatroot1,root2; a=10;b=600;c=5; printf("ROOT1=%f,ROOT2=%f\n",root1,root2);return(0);}root1=(-b+sqrt(b*b-4*a*c))/(2*a);root2=(-b-sqrt(b*b-4*a*c))/(2*a);關(guān)系運算符和關(guān)系表達(dá)式C語言提供了六種關(guān)系運算符:
<、>、<=、>=
優(yōu)先級高
==、!=
優(yōu)先級低關(guān)系運算符屬雙目運算符,結(jié)合方向自左至右。關(guān)系運算結(jié)果只能是:0(代表假),1(代表真)例如:intx=3,y=5;x>y的結(jié)果為0,即為“假”。邏輯運算符和邏輯表達(dá)式三種邏輯運算符:&&(邏輯與)、||(邏輯或)雙目運算符 低?。ㄟ壿嫹牵? 單目運算符 高邏輯運算符具有自左至右的結(jié)合性。邏輯運算結(jié)果只能是:0(代表假),1(代表真)C語言中沒有邏輯值,用0代表假,非零值代表真邏輯運算符和邏輯表達(dá)式三種邏輯操作
ab!a!ba&&ba||b
非零非零0011
非零零0101
零非零1001
零零1100邏輯運算符和邏輯表達(dá)式&&:從左向右運算,只要其中某一表達(dá)式的值為“假”,整個表達(dá)式的值為假,其后表達(dá)式不再運算。inta=5,b=5,c=5;!a&&(b=a+c)&&c; ||:從左向右運算,只要其中某一表達(dá)式的值為“真”,整個表達(dá)式的值為真,其后表達(dá)式不再運算。inta=5,b=5,c=5;a||(b=b+1)||(c=a+b); 運行結(jié)果:
1
a1=5,b1=5,c1=4
1
a1=5,b1=7,c1=4#include<stdio.h>intmain(void){inta=5,b=5,c=4;
a||(b=a+c)&&c;
printf("\n%d",a||(b=a+c)&&c);printf("\na1=%d,b1=%d,c1=%d",a,b,c);
a&&(b=b+1)||(c=b+1);printf("\n%d",a&&(b=b+1)||(c=b+1));printf("\na2=%d,b2=%d,c2=%d\n",a,b,c);return(0);}邏輯運算符和邏輯表達(dá)式優(yōu)先級關(guān)系算術(shù)、邏輯和關(guān)系運算符三者間的優(yōu)先級關(guān)系為:
!→算術(shù)運算符→關(guān)系運算符→&&,||
(高)(低)用邏輯運算符將關(guān)系表達(dá)式或任意數(shù)據(jù)類型(除void外)的數(shù)據(jù)連接起來就構(gòu)成了邏輯表達(dá)式。邏輯表達(dá)式的結(jié)果為0或1。注意:C語言中不允許兩個關(guān)系運算符連用,必須用邏輯符連接。例1:表示一個兩位數(shù)x10<=x<=99 ×(x>=10)&&(x<=99)
√例2:表示一個字母ch(注意有大小寫兩種字母)
((ch>=‘a(chǎn)’)&&(ch<=‘z’))||((ch>=‘A’)&&(ch<=‘Z’))賦值運算符和賦值表達(dá)式賦值運算符“=”的作用是將一個數(shù)據(jù)賦給一個變量,賦值運算符的左邊不能是一個表達(dá)式,只能是一個變量。例如:
x+y=3;z=x+y;賦值運算符和賦值表達(dá)式復(fù)合的賦值運算符是在賦值符“=”之前加上其他運算符構(gòu)成的。例如:
a+=b等價于a=a+b
x*=y+z等價于x=x*(y+z)x%=y等價于x=x%yC語言可以使用的10種復(fù)合賦值運算符有:+=、-=、*=、/=、%=<<=、>>=、&=、|=、=賦值運算符和賦值表達(dá)式賦值表達(dá)式的結(jié)合方向是自右至左的例:a+=a*=a=2a=2a=2a*=2a=a*2=2*2=4a+=4a=a+4=4+4=8a的值為8①②③賦值運算符和賦值表達(dá)式#include<stdio.h>intmain(void){intx=2;x+=x-=x*x;/*結(jié)合性是自右至左*/printf(“x=%d\n”,x);return(0);}1.x=x-x*x=-22.x=x+(-2)=-4運行結(jié)果:x=-4自增運算符和自減運算符“++”和“--”運算符都是單目運算符,其運算對象只能是整型變量、實型和指針變量。它們既可以放在運算對象的變量前面,也可以放在運算對象的變量后面。放在前面表示先自增再使用運算對象的變量放在后面表示先使用運算對象的變量再自增自增運算符和自減運算符例如:i=3i=3jj=++i 4 4j=i++43j=--i22j=i--23自增運算符和自減運算符#include<stdio.h>intmain(void){intx=100;printf(“%d,%d,%d,%d\n”,x++,x,--x,x);printf(“%d\n”,x);return(0);}/*printf的輸出表列運算是自右至左*/
運行結(jié)果:99,99,99,100100逗號運算符及其表達(dá)式逗號運算符優(yōu)先級最低,結(jié)合性是自左至右格式:<表達(dá)式1>,<表達(dá)式2>,…<表達(dá)式n>先計算<表達(dá)式1>的值,再計算<表達(dá)式2>的值,……而逗號表達(dá)式值是最后一個<表達(dá)式n>的值。逗號運算符及其表達(dá)式#include<stdio.h>intmain(void){inta,b,c;a=1,b=2,c=3;printf(“%d,%d,%d\n”,a,b,c);printf(“%d,%d,%d\n”,(a,b,c),b,c);a=(c=0,c+5);b=(c=10,c+8);printf(“%d,%d,%d\n”,a,b,c);return(0);}該處a,b,c不是逗號表達(dá)式,是printf函數(shù)的參數(shù)(a,b,c)是逗號表達(dá)式運行結(jié)果:1,2,33,2,35,18,10逗號運算符及其表達(dá)式#include<stdio.h>intmain(void){inta,b=1,x,y;x=(a=3,6*b); y=a=3,6*b; printf("X=%d\tY=%d\n",x,y);return(0);}運行結(jié)果:X=6 Y=3位運算位運算是對計算機硬件存儲器進(jìn)行直接操作的運算符。位運算是對二進(jìn)制位進(jìn)行操作的運算符。位運算的操作對象只能是各種整型(char、int、unsinged、long)數(shù)據(jù)。(1)位與(&)運算 x=01010101 & y=01011010 01010000
即x&y=0x50(2)位或(|)運算 x=01010101 | y=01011010 01011111
即x&y=0x5f(3)位異或(^)運算 x=01010101 ^ y=01011010 00001111
即x^y=0x0f(4)位反(~)運算
~ y=01011010 10100101
即~y=0xa5位運算移位運算(1)左移位(<<) x=01011010<<2 01101000
即x<<2=0x68(2)右移位(>>) x=01011010>>4
00000101
即x>>4=0x05位運算位賦值運算位運算與賦值運算組成復(fù)合的位賦值運算。 &= 位與賦值 a&=b a=a&b |= 位或賦值 a|=b a=a|b ^= 位異或賦值 a^=b a=a^b >>= 右移賦值 a>>=b a=a>>b <<= 左移賦值 a<<=b a=a<<b條件運算符及其表達(dá)式例:鍵入三個整數(shù),輸出最大數(shù)。#include<stdio.h>intmain(void){inta,b,c,max;scanf(“%d,%d,%d”,&a,&b,&c);max=(a>b)?a:b;max=(max>c)?max:c;
printf(“max=%d\n”,max);return(0);}求長度運算符sizeof#include<stdio.h>intmain(void){inta,b,c,d;a=sizeof(d); b=sizeof(float);c=sizeof(char); printf("A=%d,B=%d,C=%d\n",a,b,c);return(0);}運行結(jié)果:A=4,B=4,C=1printf函數(shù)(格式輸出函數(shù))格式:printf(格式控制,輸出表列)功能:首先計算各表達(dá)式的值(自右向左),各表達(dá)式的值按格式控制串的格式,輸出在屏幕上;非格式控制符照原樣輸出。#include<stdio.h>intmain(void){inta=8086;floatb=2000.0521;printf(“a=%3d\n”,a);printf(“a=%5d\n”,a);printf(“a=%10d\n”,a);printf(“b=%7.2f\n”,b);printf(“b=%-10.4f\n”,b);printf(“b=%f\n”,b);printf(“b=%e\n”,b);return(0);}運行結(jié)果:
a=8086a=8086a=8086b=2000.05b=2000.0521_b=2000.052100b=2.000052e+003printf函數(shù)(格式輸出函數(shù))#include<stdio.h>intmain(void){charc1=‘*’;printf(“%c%5c\n”,c1,c1);printf(“%2c%3c\n”,c1,c1);printf(“%3c%c\n”,c1,c1);return(0);}運行結(jié)果:******printf函數(shù)(格式輸出函數(shù))#include<stdio.h>intmain(void){printf(“%-10.5s\n”,”CHINAABC”);printf(“%10.5s\n”,”CHINAABC”);printf(“%5s\n”,”CHINAABC”);/*域?qū)捫?字串照原樣輸出*/return(0);}運行結(jié)果:
CHINACHINACHINAABCscanf函數(shù)(格式輸入函數(shù))格式:scanf(格式控制,地址表列)功能:等待從鍵盤按格式控制串的格式輸入相應(yīng)類型的多個數(shù)據(jù),并將這些數(shù)據(jù)依次賦給相應(yīng)變量;非格式控制符應(yīng)照原樣輸入。
scanf函數(shù)(格式輸入函數(shù))#include<st
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高等教育法規(guī)全真模擬考試試卷B卷含答案
- 2023年貴金屬:鉑資金申請報告
- 河北省保定市歷史初二上學(xué)期期末試題及答案指導(dǎo)(2024-2025學(xué)年)
- 2024年度水庫工程承建商協(xié)議模板
- 2024外匯資金借款協(xié)議參考樣式
- 2024年裝修住宅維護(hù)服務(wù)協(xié)議
- 2024年出口商品協(xié)議格式
- 二手房買賣2024中介服務(wù)協(xié)議樣本
- 2024年度污水站運維專業(yè)服務(wù)協(xié)議
- 2024年度企業(yè)專屬物流配送服務(wù)協(xié)議
- 健康科普宣教課件
- “單腳起跳、雙腳落地”案理分析
- 建筑施工安全生產(chǎn)專項整治三年行動實施方案
- 管卡管件標(biāo)準(zhǔn)2010
- FMPS多維完美主義量表中文版及英文原版
- 砼質(zhì)量缺陷修補方案
- 美國的人才機制
- 電壓和電阻復(fù)習(xí)課件
- 《巴蜀文化簡論》PPT課件.ppt
- 電動自行車火災(zāi)的勘查檢驗技術(shù)及案例分析
- 螺栓檢測報告
評論
0/150
提交評論