版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章C語(yǔ)言程序的運(yùn)算符和表達(dá)式
C語(yǔ)言程序設(shè)計(jì)本章介紹算術(shù)運(yùn)算符和算術(shù)表達(dá)式、賦值運(yùn)算符和賦值表達(dá)式及與賦值相關(guān)的運(yùn)算符(復(fù)合的賦值運(yùn)算符、自增1、自減1運(yùn)算符)以及其他運(yùn)算符,從而進(jìn)一步提高順序結(jié)構(gòu)程序的設(shè)計(jì)能力。主要內(nèi)容
12賦值運(yùn)算符、復(fù)合的賦值運(yùn)算符3自增1(自減1)運(yùn)算符、類(lèi)型轉(zhuǎn)換4算術(shù)運(yùn)算符和算術(shù)表達(dá)式逗號(hào)運(yùn)算符、容量運(yùn)算符問(wèn)題:從鍵盤(pán)輸入a、b變量的值,求a/b和a%b的值。例2_1求a/b和a%b的值#include"stdio.h"main(){inta,b;scanf("%d%d",&a,&b);printf("%d\n",a/b);printf("%d\n",a%b);}2.1計(jì)算a/b和a%b的值程序運(yùn)行結(jié)果:3
503
運(yùn)算符與表達(dá)式
1.運(yùn)算符的功能:即它對(duì)數(shù)據(jù)做什么操作2.運(yùn)算符對(duì)運(yùn)算對(duì)象有一定的限制3.表達(dá)式值的類(lèi)型算術(shù)運(yùn)算符有:?jiǎn)文窟\(yùn)算符:-(負(fù))、+(正),右結(jié)合雙目運(yùn)算符:+、-、*、/(整數(shù)相除結(jié)果取整)、%(取余)優(yōu)先級(jí):先乘除(含取余),后加減,括號(hào)優(yōu)先結(jié)合性:同級(jí)從左至右
a*b/c-1.55+3*2
a/b/c*(3-d)
要求%兩側(cè)均為整形數(shù)據(jù)2.2算術(shù)運(yùn)算符用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來(lái)的、符合C語(yǔ)法規(guī)則的式子。例如:25.0/425/4等于6,25.0/4.0等于6.255/10等于0,5.0/10.0等于0.54%9等于4(%只能對(duì)整型數(shù)據(jù)操作)-15%4等于-3乘號(hào)不能省略,且要根據(jù)運(yùn)算順序書(shū)寫(xiě),如:數(shù)學(xué)表達(dá)式
a(b2+4ac) (a+b)÷cdC表達(dá)式a*(b*b+4*a*c)(a+b)/c/d或(a+b)/(c*d)算術(shù)表達(dá)式#include"stdio.h"main(){
inti=3;floatr=2.0;printf("%d\n",2*-i);printf(“%f\n”,r/i);printf("%d\n",r/i);printf("%d",2%3);}程序執(zhí)行結(jié)果:-60.66666721845i=r/i:02算術(shù)運(yùn)算舉例8
實(shí)戰(zhàn)演練
1.編程序計(jì)算數(shù)學(xué)表達(dá)式:b2-4ac,a,b,c的值從鍵盤(pán)輸入。2.編程序計(jì)算298秒是幾分幾秒。提示:設(shè)intx=298;再定義兩個(gè)變量存放分(m)、秒(s)值;則:m=x/60;s=x%60。3.從鍵盤(pán)輸入一個(gè)三位數(shù),求各位數(shù)字之和。例如,輸入的三位數(shù)為358,則輸出結(jié)果為3+5+8=16。提示:題目的關(guān)鍵是要求出該數(shù)的個(gè)、十、百位上的數(shù)字,可利用C語(yǔ)言整數(shù)相除,結(jié)果仍為整數(shù)的特點(diǎn)。若設(shè)該數(shù)為data,它的個(gè)、十、百位為g、s、b,則b=data/100;s=(data-b*100)/10;g=data%10C提供了6個(gè)用于位操作的運(yùn)算符。這些運(yùn)算符只能作用于整數(shù)分量,即有符號(hào)或無(wú)符號(hào)的char,short,int和long類(lèi)型3&41.按位與(&)運(yùn)算
見(jiàn)0則0位運(yùn)算就是參加運(yùn)算的兩個(gè)數(shù)按二進(jìn)制位參加運(yùn)算,如“與”運(yùn)算是兩個(gè)參加運(yùn)算的二進(jìn)制位都是1,結(jié)果值是1,只要有一個(gè)運(yùn)算數(shù)是0,結(jié)果是0。例如3&4為:
00000011(3)(&)00000100(4)
00000000(0)2.3位運(yùn)算符2.按位或(|)運(yùn)算
“見(jiàn)1,則1”按位或運(yùn)算符用于對(duì)一個(gè)數(shù)據(jù)的某些位置1。如x是一個(gè)整數(shù)(16位),要將低8位全置為1,高8位保留原樣,可以這樣運(yùn)算:x|0377,0377是8進(jìn)制數(shù),轉(zhuǎn)換成二進(jìn)制后,低8位全為1,和x或運(yùn)算后,x的低8位也為1。3.按位異或(^)運(yùn)算:“同則0,異則1”異或運(yùn)算可以使特定位翻轉(zhuǎn),如要使01111010的低4位翻轉(zhuǎn),可與(00001111)進(jìn)行異或運(yùn)算,即:
011110105^300000101(^)00001111^0000001101110101000001102.3位運(yùn)算符4.按位左移(<<)運(yùn)算3<<20|00001100|左移運(yùn)算用來(lái)將一個(gè)數(shù)的各二進(jìn)制位左移若干位,左移一位相當(dāng)于這個(gè)數(shù)乘2,如x<<2用于將x的值左移2位,右邊空出的2位用零填充。這個(gè)表達(dá)式的結(jié)果等于左運(yùn)算分量x乘以4。原碼5.按位右移(>>)運(yùn)算3>>2|00000000|11右移一位相當(dāng)于這個(gè)數(shù)除以2,右移n位,相當(dāng)于除以2n。右移位運(yùn)算符中的運(yùn)算分量的值必須是正的。當(dāng)右移無(wú)符號(hào)量時(shí),左邊空出的位用0填空;當(dāng)右移有符號(hào)量時(shí),左邊空出的位或用符號(hào)位填空(即算術(shù)移位)或用0填充(邏輯移位)-6>>2|11100001|2.3位運(yùn)算符6.按位求反(~)運(yùn)算“~”是一元運(yùn)算符,用于求整數(shù)的反碼。它分別將運(yùn)算分量各位上的1轉(zhuǎn)換成0,0轉(zhuǎn)換成1。如x=x&~077用于將x的最后6位置為0~00000101~5111110102.3位運(yùn)算符例
交換a,b變量的值
#include"stdio.h"main(){inta=3,b=5,t;t=a;a=b;b=t;printf(“a=%d,b=%d\n”,a,b);}2.4賦值運(yùn)算符及表達(dá)式由賦值運(yùn)算符“=”將變量和表達(dá)式連接起來(lái)的式子。其形式是:
變量=表達(dá)式
賦值表達(dá)式表達(dá)式值各變量值a=55a=b=c=55a,b,c均為5a=5+(c=6)
11a為11,c為6
賦值運(yùn)算符及表達(dá)式復(fù)合的賦值運(yùn)算符C語(yǔ)言中有10種復(fù)合賦值運(yùn)算符:
+=、-=、*=、/=、%=、
<<=、>>=、&=、^=、|=(位運(yùn)算符以后講)實(shí)例:a/=3等價(jià)于a=a/3
x*=y+8等價(jià)于x=x*(y+8)a+=a-=a*a相當(dāng)于a=a+(a=a-a*a)y%=8等價(jià)于y=y%8a=-4a+=a-4例
復(fù)合賦值運(yùn)算符的應(yīng)用#include"stdio.h"main(){intx=3,y=8;x*=y+1;printf("x=%d,y=%d",x,y);}程序執(zhí)行結(jié)果:x=27,y=8賦值運(yùn)算舉例17
實(shí)戰(zhàn)演練
1.用賦值語(yǔ)句表達(dá):a的值為2,b的值比a多2,c的值比b的值多2,并輸出a,b,c的結(jié)果。請(qǐng)編出完整程序驗(yàn)證。2.假設(shè)變量a和b均為整型,以下語(yǔ)句可以不借助任何變量把a(bǔ)、b中的值進(jìn)行交換。請(qǐng)先填空,再編出完整程序驗(yàn)證。a+=_________;(a為a、b之和)b=a-__________;a-=___________;
++(自增),--(自減):n=1n++;++n;++n,--m前綴,變量的值+(-)1n++,m--后綴,變量的值+(-)1優(yōu)先級(jí):高于雙目運(yùn)算結(jié)合性:同級(jí)從右至左
j=3;k=2
k=++j;→j=j+1;k=j;即j的為4,k的值為4
k=j++;→k=j;j=j+1;
即j的為4,k的值為32.5自增自減運(yùn)算符說(shuō)明:對(duì)于j變量,j++和++j都使j的值加1,但k的值就不同了,所以前綴和后綴運(yùn)算對(duì)變量是一樣的,對(duì)表達(dá)式的值就不一樣自增、自減舉例例2_5自增1運(yùn)算,前后綴區(qū)別#include"stdio.h"main(){intx,y=5;x=5;y=x++;printf("%d%d\n",y,x);x=5;y=++x;printf("%d,%d\n",y,x);}逗號(hào)表達(dá)式的格式:表達(dá)式1,表達(dá)式2,…,表達(dá)式n逗號(hào)表達(dá)式的求解順序及結(jié)果:先求解表達(dá)式1,再求解表達(dá)式2,…,最后求解表達(dá)式n;逗號(hào)表達(dá)式的最終結(jié)果為表達(dá)式n的值。實(shí)例:k=1a=3*5,a*4
結(jié)果為60x=(a=10,b=100,c=50)結(jié)果為50y=(i++,j--,k+2)
結(jié)果為k+22.6其他運(yùn)算符獲得一個(gè)變量或某種類(lèi)型的量在內(nèi)存中所占的字節(jié)數(shù)。它有以下兩種用法:值,類(lèi)型sizeof(表達(dá)式)inta;sizeof(a)
例如:intx=1;sizeof(x)
floaty=5.0;printf(“%d”,sizeof(x+y));
結(jié)果為:8sizeof(類(lèi)型名)例如:
printf(“%d”,sizeof(shortint))結(jié)果為:2容量運(yùn)算符sizeof
2.7C語(yǔ)言運(yùn)算符的分類(lèi)與優(yōu)先級(jí)
1.運(yùn)算符的類(lèi)型2.運(yùn)算符的優(yōu)先級(jí)
3.結(jié)合律
兩個(gè)同優(yōu)先級(jí)的運(yùn)算符相鄰時(shí),是按從左到右的順序運(yùn)算(左結(jié)合),還是按從右到左的順序運(yùn)算(右結(jié)合),C語(yǔ)言運(yùn)算符的結(jié)合性大多數(shù)是左結(jié)合的,有一小部分是右結(jié)合的。運(yùn)算符是表示某種運(yùn)算的符號(hào),是對(duì)數(shù)據(jù)的操作表達(dá)式是用運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來(lái)的符合C語(yǔ)言語(yǔ)法規(guī)則的式子運(yùn)算對(duì)象可以是常量、變量、函數(shù)等優(yōu)先級(jí)和結(jié)合性:優(yōu)先級(jí)是指表達(dá)式中各計(jì)算的先后次序;結(jié)合性是指當(dāng)一個(gè)運(yùn)算對(duì)象兩側(cè)的運(yùn)算符的優(yōu)先級(jí)相同時(shí)進(jìn)行運(yùn)算的結(jié)合方向運(yùn)算符及表達(dá)式
2.8不同類(lèi)型數(shù)據(jù)之間的轉(zhuǎn)換
設(shè)銀行定期存款的年利率r為2.25%,并已知存款期為n年,存款本金為m元,編程計(jì)算n年后的本利之和算法步驟:
step1:定義變量;step2:輸入算法所需要的數(shù)據(jù)r,n,m;step3:進(jìn)行運(yùn)算和數(shù)據(jù)處理:本利之和=m*(1+r)nstep4:輸出運(yùn)算結(jié)果數(shù)據(jù)。24例2_6計(jì)算存款n年后的本利之和#include"stdio.h"#include"math.h"main(){intn,m;floatr=0.0225,total;printf("Pleaseentern,m:");scanf("%d,%d",&n,&m);pow(x,3)total=m*pow(1+r,n);x3printf("Total=%f\n",total);}25程序運(yùn)行結(jié)果:Pleaseentern,m:3,1000Total=1069.030143自動(dòng)轉(zhuǎn)換:當(dāng)參加算術(shù)運(yùn)算的數(shù)據(jù)類(lèi)型不一致時(shí)低級(jí)向高級(jí)轉(zhuǎn)換;賦值運(yùn)算符兩邊的數(shù)據(jù)類(lèi)型不同時(shí),將右側(cè)表達(dá)式的值轉(zhuǎn)換為左側(cè)變量的類(lèi)型強(qiáng)制轉(zhuǎn)換:強(qiáng)迫變量或表達(dá)式的值轉(zhuǎn)換為某一特定類(lèi)型。常用在自動(dòng)類(lèi)型轉(zhuǎn)換不能達(dá)到目的時(shí)。轉(zhuǎn)換格式為:(int)3.0%(int)5.2(類(lèi)型說(shuō)明符)變量(類(lèi)型說(shuō)明符)(表達(dá)式)(double)a,(int)(x+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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東政法學(xué)院《商務(wù)禮儀與公文寫(xiě)作》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東藝術(shù)學(xué)院《飛機(jī)鈑金成形原理與工藝》2023-2024學(xué)年第一學(xué)期期末試卷
- 酒店包月套房合同范例
- 畢業(yè)季拍攝合同范例
- 種果樹(shù)合同范例
- 出售工地叉車(chē)合同范例
- 大件物流合同范例
- 編織網(wǎng)購(gòu)銷(xiāo)合同范例
- 農(nóng)村電力改造合同范例
- 商品類(lèi)預(yù)售合同范例
- 西方經(jīng)濟(jì)學(xué)(上下冊(cè))PPT全套教學(xué)課件
- 做好宗教工作關(guān)鍵在“導(dǎo)”,如何去“導(dǎo)”
- 2023年甘肅省普通高中學(xué)業(yè)水平合格性考試物理試題(七)
- 履帶鉆機(jī)安全操作規(guī)程
- 2022環(huán)保檢測(cè)作業(yè)指導(dǎo)書(shū)(HJ1237-2021機(jī)動(dòng)車(chē)排放定期檢驗(yàn)規(guī)范)
- 護(hù)士首次注冊(cè)體檢表
- 2023年四川監(jiān)理員考試題庫(kù)附答案
- 國(guó)外耐火材料公司考察報(bào)告
- 職業(yè)生涯人物訪(fǎng)談報(bào)告采訪(fǎng)教師
- 基于微信小程序點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 特種設(shè)備生產(chǎn)單位許可TSG 07-2019附錄M各要素列表
評(píng)論
0/150
提交評(píng)論