![程序設(shè)計(jì)基礎(chǔ)03.ppt_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/a3ba3bbd-87ed-4b16-97f0-e80d9041795d/a3ba3bbd-87ed-4b16-97f0-e80d9041795d1.gif)
![程序設(shè)計(jì)基礎(chǔ)03.ppt_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/a3ba3bbd-87ed-4b16-97f0-e80d9041795d/a3ba3bbd-87ed-4b16-97f0-e80d9041795d2.gif)
![程序設(shè)計(jì)基礎(chǔ)03.ppt_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/a3ba3bbd-87ed-4b16-97f0-e80d9041795d/a3ba3bbd-87ed-4b16-97f0-e80d9041795d3.gif)
![程序設(shè)計(jì)基礎(chǔ)03.ppt_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/a3ba3bbd-87ed-4b16-97f0-e80d9041795d/a3ba3bbd-87ed-4b16-97f0-e80d9041795d4.gif)
![程序設(shè)計(jì)基礎(chǔ)03.ppt_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/a3ba3bbd-87ed-4b16-97f0-e80d9041795d/a3ba3bbd-87ed-4b16-97f0-e80d9041795d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、程序設(shè)計(jì)基礎(chǔ)(C語言),東北大學(xué)高級(jí)語言程序設(shè)計(jì)課程組 課程網(wǎng)站:,計(jì)算機(jī)及程序設(shè)計(jì)概述,運(yùn)算符與表達(dá)式,3,運(yùn)算符,C語言用于描述對(duì)數(shù)據(jù)進(jìn)行運(yùn)算的特殊符號(hào) 語言具有豐富而繁多的運(yùn)算符 由運(yùn)算符構(gòu)成了各種表達(dá)式 分類 語言的運(yùn)算符按其在表達(dá)式中與運(yùn)算對(duì)象的關(guān)系 單目運(yùn)算 一個(gè)運(yùn)算符連接一個(gè)運(yùn)算對(duì)象 雙目運(yùn)算 一個(gè)運(yùn)算符連接兩個(gè)運(yùn)算對(duì)象 三目運(yùn)算 一個(gè)運(yùn)算符連接三個(gè)運(yùn)算對(duì)象,4,運(yùn)算符,分類 算術(shù)(自增/自減)運(yùn)算符:(+,*,/,%、+、-) 關(guān)系運(yùn)算符:(,=,、|、 float b=4.5;表達(dá)式 2*a+b 的結(jié)果為8.5 優(yōu)先給與結(jié)合性 提示 兩個(gè)整數(shù)相除其結(jié)果仍為整數(shù)(即舍去小數(shù)部分
2、) 例如:13/10的結(jié)果為1 “%”為求余運(yùn)算符,參與運(yùn)算的兩個(gè)數(shù)均為整數(shù) 例如:10%31 -10%3-1 除以0在計(jì)算機(jī)系統(tǒng)中是沒有意義的 用括號(hào)可以改變表達(dá)式的運(yùn)算順序,11,算術(shù)表達(dá)式,算術(shù)表達(dá)式 例1: 設(shè) int b=7;float a=2.5,c=4.7; 表達(dá)式a+(int)(b/3*(int)(a+c)/2)%4的值? 例2:,12,自增/自減,“+”與“-”的作用是使變量的值增1或減1 C語言提供兩種形式的 +/-運(yùn)算符 +a,-a(前綴運(yùn)算:先進(jìn)行增量運(yùn)算后使用) a+, a-(后綴運(yùn)算:先使用后進(jìn)行增量運(yùn)算) 提示: 增和自減只能作用于變量,不允許對(duì)常量、表達(dá)式或其它
3、進(jìn)行操作 當(dāng)自增/自減變量值本身就單獨(dú)構(gòu)成一條語句時(shí),前綴和后綴的效果是一樣的 對(duì)于“+”和“-”的使用要避免二義性,13,自增/自減,計(jì)算過程 例1:設(shè)x=5 y=+x;/*先計(jì)算x=x+1,再執(zhí)行y=x,結(jié)果x=6 ,y=6*/ y=x+;/*先執(zhí)行y=x,再計(jì)算x=x+1,結(jié)果y=5,x=6*/ 問題:如何理解A+B ? C規(guī)定:自左向右取盡可能多的符號(hào)組成運(yùn)算符,14,自增/自減,例2:設(shè)x=5 y=x+*x+;/*先取x的值進(jìn)行“*”運(yùn)算,再進(jìn)行兩次 x+。 y=25,x=7*/ y=+x*+x;/*先進(jìn)行兩次x自增,使x的值為7,再進(jìn)行相乘運(yùn)算。y=49,x=7*/,15,賦值表達(dá)
4、式,由賦值運(yùn)算符“=”連接表達(dá)式(右側(cè))和變量(左側(cè)) 形式:變量名表達(dá)式 賦值運(yùn)算符完成兩類操作 計(jì)算 賦值 例 int a=2,float b=5.2,c; c=a*b; 賦值運(yùn)算符具有右結(jié)合性 例如:a=b=3*5;/*先計(jì)算3*5,后將15賦給b,再將b的值15賦給a*/,16,賦值表達(dá)式,組合賦值表達(dá)式 組合賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子稱為組合賦值表達(dá)式 形式:變量名 表達(dá)式 例: x%=y/3;/*x=x%(y/3)*/ a*=b+c /* a=a*(b+c)*/ 注意:“a*=b+c”與“a=a*b+c”是不等價(jià)的 提示 “=”不是數(shù)學(xué)中的“等號(hào)”,它表示一個(gè)動(dòng)
5、作,右側(cè)的值送與左側(cè)的變量中(左側(cè)只允許是變量,不能是表達(dá)式或其他) 賦值運(yùn)算符兩側(cè)的類型要求一致,否則要進(jìn)行類型轉(zhuǎn)換 賦值運(yùn)算符=,相等運(yùn)算符= =,和一般習(xí)慣有所不同,17,關(guān)系表達(dá)式,關(guān)系運(yùn)算符中的“關(guān)系”二字的含義是指一個(gè)值與另一個(gè)值之間的關(guān)系 關(guān)系由關(guān)系運(yùn)算符(,=, OP 表達(dá)式可以是常量、變量和表達(dá)式 結(jié)果為整型值 0:邏輯假 1:邏輯真 優(yōu)先級(jí):(,=,=)高于(!=,=) 結(jié)合方向:自左向右,18,關(guān)系表達(dá)式,例: int a=2; float b=3.4; ab、a+bb,abb的結(jié)果分別是多少?(0、1、0) 提示 進(jìn)行關(guān)系運(yùn)算時(shí),先計(jì)算表達(dá)式的值,然后再進(jìn)行關(guān)系比較運(yùn)算
6、 例如:int a=1,b=2,c=3; (1)a+b3*c 的結(jié)果為0 /*39關(guān)系不成立*/ (2)(a+=b)(b*=11%c)結(jié)果值為1 /*34關(guān)系成立 */,19,關(guān)系表達(dá)式,在表達(dá)式中連續(xù)使用關(guān)系運(yùn)算符時(shí),要注意正確表達(dá)含義 例如:設(shè)的取值范圍為“-1010”時(shí),不能寫成“-10=x=10”,應(yīng)寫成“-10=x int a,b,c; a=(-x=y+)?x:-y; b=x+; c=y; 執(zhí)行上述程序段后a,b,c的結(jié)果是?,分別為8,8,10,26,逗號(hào)表達(dá)式,由逗號(hào)連接符(,)與表達(dá)式構(gòu)成 形式:, ,可以是任何類型 逗號(hào)表達(dá)式的結(jié)果為最后一個(gè)表達(dá)式的結(jié)果值 執(zhí)行過程 先求解表
7、達(dá)式1的值,再求解表達(dá)式2的值,最后求解表達(dá)式n的值,并將表達(dá)式n的值作為整個(gè)表達(dá)式的結(jié)果值,27,逗號(hào)表達(dá)式,優(yōu)先級(jí) 級(jí)別最低(最后進(jìn)行逗號(hào)運(yùn)算) 結(jié)合方向 自左向右 例題 設(shè)int x,a; 表達(dá)式x=(a=4,6*2)的x值? 表達(dá)式x=a=4,6*2的x值?,x為12,x為4,28,運(yùn)算符與表達(dá)式,混合運(yùn)算 指在一個(gè)表達(dá)式中參與運(yùn)算的對(duì)象不是相同的數(shù)據(jù)類型 例如: 設(shè):int a=3;float b=3.0;char c=3; 則表達(dá)式(a*c+b)/4+(int)b%2的結(jié)果? 進(jìn)行混合運(yùn)算的首要的問題是對(duì)參與運(yùn)算的數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換 類型轉(zhuǎn)換 由一種數(shù)據(jù)類型到另一種數(shù)據(jù)類型的轉(zhuǎn)換被稱
8、為類型轉(zhuǎn)換,29,“隱式的”自動(dòng)類型轉(zhuǎn)換,如果同一個(gè)表達(dá)式中含有不同類型的常量和變量,C語言則在計(jì)算該表達(dá)式時(shí)會(huì)自動(dòng)轉(zhuǎn)換為同一種數(shù)據(jù)類型以便進(jìn)行運(yùn)算 轉(zhuǎn)換原則 運(yùn)算中將所有char型數(shù)據(jù)轉(zhuǎn)換成int型,float型轉(zhuǎn)換成double型 “類型提升” :低類型向高類型轉(zhuǎn)換 例如:1.5+2*a-1.2345678 /*運(yùn)算次序?yàn)椋?2*a:先將a轉(zhuǎn)換成整型數(shù)97,得乘積194 1.5+194:1.5和194都轉(zhuǎn)換成double型,和為95.5 195.5-1.2345678:1.2345678本身應(yīng)是double型的,所以最后結(jié)果也為double型 */,30,int,char,short,un
9、signed,long,double,float,低,高,“類型提升” 示意圖,“隱式的”自動(dòng)類型轉(zhuǎn)換,31,“隱式的”自動(dòng)類型轉(zhuǎn)換,在數(shù)據(jù)輸出時(shí)發(fā)生的類型轉(zhuǎn)換 同樣要遵守“類型提升”的原則 賦值運(yùn)算中最終結(jié)果的類型,以賦值運(yùn)算符左邊變量的類型為準(zhǔn) 要將賦值符號(hào)右邊表達(dá)式的值按左邊變量的數(shù)據(jù)類型轉(zhuǎn)換之后再賦值 當(dāng)左邊變量的類型長度較右邊值的長度短時(shí),就可能產(chǎn)生誤差,甚至完全錯(cuò)誤 提示 由語言的編譯系統(tǒng)自動(dòng)完成 不會(huì)體現(xiàn)在語言源程序中 程序設(shè)計(jì)人員必須了解這種自動(dòng)轉(zhuǎn)換的規(guī)則及其結(jié)果,32,“顯式的”類型轉(zhuǎn)換,“顯式的”類型轉(zhuǎn)換 通過用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(type) 進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換 其含義是將右
10、邊表達(dá)式的值轉(zhuǎn)換成括號(hào)中指定的數(shù)據(jù)類型 轉(zhuǎn)換形式如下:(type) 表達(dá)式 type表示一個(gè)強(qiáng)制數(shù)據(jù)類型名 表達(dá)式是任何一種類型的表達(dá)式 例 (int )(x+y) /*注意與(int ) x+y不同*/,33,簡單表達(dá)式的運(yùn)算,【例1】執(zhí)行下面程序段后, int a=1,b=1,c=1; a=a+b+c+; printf(“%d,%d,%d”,a,+b,c+); 輸出結(jié)果為: A.4,3,2;B.3,3,2;C.3,3,3;D.3,2,2;,【例2】若定義x,y為double型, 則表達(dá)式x=1,y=x+3/2的值是?,2.0,【例3】若變量已經(jīng)定義并賦值,下面符合C語言語法的表達(dá)式是: A
11、)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b,【例4】若a為int類型,且值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是多少? A)-3 B)9 C)-12 D)6,【例5】分析下列運(yùn)算的結(jié)果。#define printt(x,y,z) printf(x=%d, y=%d, z=%dn,x,y,z) main( ) int x,y,z; x=y=z=2; +x|+y ,/* 定義宏替換 */,/* 輸出:x=3, y=2, z=2 */,/* +x&+y后不為,不再執(zhí)行|后的+z 輸出結(jié)果:x=3, y=3, z=2 */,?,?,/* 輸出:x=-1, y=-2,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度龐寒離婚協(xié)議書:情感糾葛與財(cái)產(chǎn)分配協(xié)議4篇
- 二零二五版戶外用品銷售代理及品牌合作合同2篇
- 2025年度幕墻施工勞務(wù)分包合同施工資料管理與歸檔范本4篇
- 臨時(shí)場(chǎng)地租賃協(xié)議2024版3篇
- 二零二五年度農(nóng)家樂餐飲承包合作協(xié)議3篇
- 二零二五年度年薪制員工聘用合同書:行業(yè)特定版
- 二零二五年度居民供水用水節(jié)能減排合同范本3篇
- 2025年度生物制藥研發(fā)人員聘用勞動(dòng)合同范本3篇
- 2025年度個(gè)人小戶型房產(chǎn)買賣合同附帶房產(chǎn)過戶手續(xù)指導(dǎo)3篇
- 2025年食品生產(chǎn)HACCP體系審核與認(rèn)證協(xié)議2篇
- 大疆80分鐘在線測(cè)評(píng)題
- 2023年成都市青白江區(qū)村(社區(qū))“兩委”后備人才考試真題
- 2024中考復(fù)習(xí)必背初中英語單詞詞匯表(蘇教譯林版)
- 海員的營養(yǎng)-1315醫(yī)學(xué)營養(yǎng)霍建穎等講解
- 《現(xiàn)代根管治療術(shù)》課件
- 肩袖損傷的護(hù)理查房課件
- 2023屆北京市順義區(qū)高三二模數(shù)學(xué)試卷
- 公司差旅費(fèi)報(bào)銷單
- 我國全科醫(yī)生培訓(xùn)模式
- 2021年上海市楊浦區(qū)初三一模語文試卷及參考答案(精校word打印版)
- 八年級(jí)上冊(cè)英語完形填空、閱讀理解100題含參考答案
評(píng)論
0/150
提交評(píng)論