版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第2章C語言程序的運算符和表達式
C語言程序設(shè)計本章介紹算術(shù)運算符和算術(shù)表達式、賦值運算符和賦值表達式及與賦值相關(guān)的運算符(復(fù)合的賦值運算符、自增1、自減1運算符)以及其他運算符,從而進一步提高順序結(jié)構(gòu)程序的設(shè)計能力。主要內(nèi)容
12賦值運算符、復(fù)合的賦值運算符3自增1(自減1)運算符、類型轉(zhuǎn)換4算術(shù)運算符和算術(shù)表達式逗號運算符、容量運算符問題:從鍵盤輸入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計算a/b和a%b的值程序運行結(jié)果:3
503
運算符與表達式
1.運算符的功能:即它對數(shù)據(jù)做什么操作2.運算符對運算對象有一定的限制3.表達式值的類型算術(shù)運算符有:單目運算符:-(負(fù))、+(正),右結(jié)合雙目運算符:+、-、*、/(整數(shù)相除結(jié)果取整)、%(取余)優(yōu)先級:先乘除(含取余),后加減,括號優(yōu)先結(jié)合性:同級從左至右
a*b/c-1.55+3*2
a/b/c*(3-d)
要求%兩側(cè)均為整形數(shù)據(jù)2.2算術(shù)運算符用算術(shù)運算符和括號將運算對象連接起來的、符合C語法規(guī)則的式子。例如:25.0/425/4等于6,25.0/4.0等于6.255/10等于0,5.0/10.0等于0.54%9等于4(%只能對整型數(shù)據(jù)操作)-15%4等于-3乘號不能省略,且要根據(jù)運算順序書寫,如:數(shù)學(xué)表達式
a(b2+4ac) (a+b)÷cdC表達式a*(b*b+4*a*c)(a+b)/c/d或(a+b)/(c*d)算術(shù)表達式#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ù)運算舉例8
實戰(zhàn)演練
1.編程序計算數(shù)學(xué)表達式:b2-4ac,a,b,c的值從鍵盤輸入。2.編程序計算298秒是幾分幾秒。提示:設(shè)intx=298;再定義兩個變量存放分(m)、秒(s)值;則:m=x/60;s=x%60。3.從鍵盤輸入一個三位數(shù),求各位數(shù)字之和。例如,輸入的三位數(shù)為358,則輸出結(jié)果為3+5+8=16。提示:題目的關(guān)鍵是要求出該數(shù)的個、十、百位上的數(shù)字,可利用C語言整數(shù)相除,結(jié)果仍為整數(shù)的特點。若設(shè)該數(shù)為data,它的個、十、百位為g、s、b,則b=data/100;s=(data-b*100)/10;g=data%10C提供了6個用于位操作的運算符。這些運算符只能作用于整數(shù)分量,即有符號或無符號的char,short,int和long類型3&41.按位與(&)運算
見0則0位運算就是參加運算的兩個數(shù)按二進制位參加運算,如“與”運算是兩個參加運算的二進制位都是1,結(jié)果值是1,只要有一個運算數(shù)是0,結(jié)果是0。例如3&4為:
00000011(3)(&)00000100(4)
00000000(0)2.3位運算符2.按位或(|)運算
“見1,則1”按位或運算符用于對一個數(shù)據(jù)的某些位置1。如x是一個整數(shù)(16位),要將低8位全置為1,高8位保留原樣,可以這樣運算:x|0377,0377是8進制數(shù),轉(zhuǎn)換成二進制后,低8位全為1,和x或運算后,x的低8位也為1。3.按位異或(^)運算:“同則0,異則1”異或運算可以使特定位翻轉(zhuǎn),如要使01111010的低4位翻轉(zhuǎn),可與(00001111)進行異或運算,即:
011110105^300000101(^)00001111^0000001101110101000001102.3位運算符4.按位左移(<<)運算3<<20|00001100|左移運算用來將一個數(shù)的各二進制位左移若干位,左移一位相當(dāng)于這個數(shù)乘2,如x<<2用于將x的值左移2位,右邊空出的2位用零填充。這個表達式的結(jié)果等于左運算分量x乘以4。原碼5.按位右移(>>)運算3>>2|00000000|11右移一位相當(dāng)于這個數(shù)除以2,右移n位,相當(dāng)于除以2n。右移位運算符中的運算分量的值必須是正的。當(dāng)右移無符號量時,左邊空出的位用0填空;當(dāng)右移有符號量時,左邊空出的位或用符號位填空(即算術(shù)移位)或用0填充(邏輯移位)-6>>2|11100001|2.3位運算符6.按位求反(~)運算“~”是一元運算符,用于求整數(shù)的反碼。它分別將運算分量各位上的1轉(zhuǎn)換成0,0轉(zhuǎn)換成1。如x=x&~077用于將x的最后6位置為0~00000101~5111110102.3位運算符例
交換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賦值運算符及表達式由賦值運算符“=”將變量和表達式連接起來的式子。其形式是:
變量=表達式
賦值表達式表達式值各變量值a=55a=b=c=55a,b,c均為5a=5+(c=6)
11a為11,c為6
賦值運算符及表達式復(fù)合的賦值運算符C語言中有10種復(fù)合賦值運算符:
+=、-=、*=、/=、%=、
<<=、>>=、&=、^=、|=(位運算符以后講)實例:a/=3等價于a=a/3
x*=y+8等價于x=x*(y+8)a+=a-=a*a相當(dāng)于a=a+(a=a-a*a)y%=8等價于y=y%8a=-4a+=a-4例
復(fù)合賦值運算符的應(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賦值運算舉例17
實戰(zhàn)演練
1.用賦值語句表達:a的值為2,b的值比a多2,c的值比b的值多2,并輸出a,b,c的結(jié)果。請編出完整程序驗證。2.假設(shè)變量a和b均為整型,以下語句可以不借助任何變量把a、b中的值進行交換。請先填空,再編出完整程序驗證。a+=_________;(a為a、b之和)b=a-__________;a-=___________;
++(自增),--(自減):n=1n++;++n;++n,--m前綴,變量的值+(-)1n++,m--后綴,變量的值+(-)1優(yōu)先級:高于雙目運算結(jié)合性:同級從右至左
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自增自減運算符說明:對于j變量,j++和++j都使j的值加1,但k的值就不同了,所以前綴和后綴運算對變量是一樣的,對表達式的值就不一樣自增、自減舉例例2_5自增1運算,前后綴區(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);}逗號表達式的格式:表達式1,表達式2,…,表達式n逗號表達式的求解順序及結(jié)果:先求解表達式1,再求解表達式2,…,最后求解表達式n;逗號表達式的最終結(jié)果為表達式n的值。實例:k=1a=3*5,a*4
結(jié)果為60x=(a=10,b=100,c=50)結(jié)果為50y=(i++,j--,k+2)
結(jié)果為k+22.6其他運算符獲得一個變量或某種類型的量在內(nèi)存中所占的字節(jié)數(shù)。它有以下兩種用法:值,類型sizeof(表達式)inta;sizeof(a)
例如:intx=1;sizeof(x)
floaty=5.0;printf(“%d”,sizeof(x+y));
結(jié)果為:8sizeof(類型名)例如:
printf(“%d”,sizeof(shortint))結(jié)果為:2容量運算符sizeof
2.7C語言運算符的分類與優(yōu)先級
1.運算符的類型2.運算符的優(yōu)先級
3.結(jié)合律
兩個同優(yōu)先級的運算符相鄰時,是按從左到右的順序運算(左結(jié)合),還是按從右到左的順序運算(右結(jié)合),C語言運算符的結(jié)合性大多數(shù)是左結(jié)合的,有一小部分是右結(jié)合的。運算符是表示某種運算的符號,是對數(shù)據(jù)的操作表達式是用運算符和括號將運算對象連接起來的符合C語言語法規(guī)則的式子運算對象可以是常量、變量、函數(shù)等優(yōu)先級和結(jié)合性:優(yōu)先級是指表達式中各計算的先后次序;結(jié)合性是指當(dāng)一個運算對象兩側(cè)的運算符的優(yōu)先級相同時進行運算的結(jié)合方向運算符及表達式
2.8不同類型數(shù)據(jù)之間的轉(zhuǎn)換
設(shè)銀行定期存款的年利率r為2.25%,并已知存款期為n年,存款本金為m元,編程計算n年后的本利之和算法步驟:
step1:定義變量;step2:輸入算法所需要的數(shù)據(jù)r,n,m;step3:進行運算和數(shù)據(jù)處理:本利之和=m*(1+r)nstep4:輸出運算結(jié)果數(shù)據(jù)。24例2_6計算存款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程序運行結(jié)果:Pleaseentern,m:3,1000Total=1069.030143自動轉(zhuǎn)換:當(dāng)參加算術(shù)運算的數(shù)據(jù)類型不一致時低級向高級轉(zhuǎn)換;賦值運算符兩邊的數(shù)據(jù)類型不同時,將右側(cè)表達式的值轉(zhuǎn)換為左側(cè)變量的類型強制轉(zhuǎn)換:強迫變量或表達式的值轉(zhuǎn)換為某一特定類型。常用在自動類型轉(zhuǎn)換不能達到目的時。轉(zhuǎn)換格式為:(int)3.0%(int)5.2(類型說明符)變量(類型說明符)(表達式)(double)a,(int)(x+y),
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年安徽工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試備考試題含詳細(xì)答案解析
- 2026中國歌劇舞劇院招募舞蹈演員(實習(xí)生)參考考試題庫及答案解析
- 2026年廣西交通職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試模擬試題含詳細(xì)答案解析
- 2026年貴州工貿(mào)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試備考試題及答案詳細(xì)解析
- 2026年江西交通職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試模擬試題含詳細(xì)答案解析
- 2026年長春師范高等??茖W(xué)校單招綜合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 2026年重慶護理職業(yè)學(xué)院單招職業(yè)技能考試參考題庫含詳細(xì)答案解析
- 2026年石家莊郵電職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)筆試參考題庫含詳細(xì)答案解析
- 2026年黑河北安市鐵南街道辦事處公開招聘公益性崗位人員1人考試重點試題及答案解析
- 2026年武夷學(xué)院單招綜合素質(zhì)考試模擬試題含詳細(xì)答案解析
- 2026四川涼山州雷波縣糧油貿(mào)易總公司面向社會招聘6人備考題庫及答案詳解一套
- 四川省攀枝花市2025-2026學(xué)年八年級上學(xué)期期末數(shù)學(xué)檢測(含答案)
- 勞動人事法律培訓(xùn)課件
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會成熟人才招聘備考題庫參考答案詳解
- 清真生產(chǎn)過程管控制度
- 途虎養(yǎng)車安全培訓(xùn)課件
- 2025-2026學(xué)年人教版(新教材)小學(xué)數(shù)學(xué)二年級下冊(全冊)教學(xué)設(shè)計(附教材目錄P161)
- 刷單協(xié)議書合同范本
- 內(nèi)科學(xué)總論小兒遺傳代謝病課件
- 2026小紅書平臺營銷通案
- 品牌設(shè)計報價方案
評論
0/150
提交評論