




已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
計算機(jī)及程序設(shè)計概述 運(yùn)算符與表達(dá)式 2 運(yùn)算符 C語言用于描述對數(shù)據(jù)進(jìn)行運(yùn)算的特殊符號 語言具有豐富而繁多的運(yùn)算符由運(yùn)算符構(gòu)成了各種表達(dá)式分類 語言的運(yùn)算符按其在表達(dá)式中與運(yùn)算對象的關(guān)系單目運(yùn)算一個運(yùn)算符連接一個運(yùn)算對象雙目運(yùn)算一個運(yùn)算符連接兩個運(yùn)算對象三目運(yùn)算一個運(yùn)算符連接三個運(yùn)算對象 3 運(yùn)算符 分類算術(shù) 自增 自減 運(yùn)算符 關(guān)系運(yùn)算符 賦值運(yùn)算符 條件運(yùn)算符 逗號運(yùn)算符 指針運(yùn)算符 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 type 分量運(yùn)算符 和 下標(biāo)運(yùn)算符 函數(shù)調(diào)用運(yùn)算符 4 運(yùn)算符 對運(yùn)算符的掌握應(yīng)從三個方面著手和操作符相關(guān)的數(shù)據(jù)類型 包括操作數(shù)和操作結(jié)果的數(shù)據(jù)類型 運(yùn)算符的優(yōu)先級運(yùn)算符的結(jié)合次序 5 表達(dá)式 用運(yùn)算符將運(yùn)算對象連接而成的符合 語言規(guī)則的算式特別地 一個常量 一個變量 一個函數(shù)都可以看成是一個表達(dá)式表達(dá)式的分類按照運(yùn)算符與運(yùn)算對象的關(guān)系單目表達(dá)式雙目表達(dá)式三目表達(dá)式 6 表達(dá)式 表達(dá)式的分類按照運(yùn)算符在表達(dá)式中的作用算術(shù)表達(dá)式 例 3 4 5賦值表達(dá)式 例 a 3關(guān)系表達(dá)式 例 5b邏輯表達(dá)式 例 3 5 a b條件表達(dá)式 例 a b a b逗號表達(dá)式 例 a 3 b 4 c 5指針表達(dá)式 例 p 2 a 7 表達(dá)式的求值過程 C語言規(guī)定了運(yùn)算符的優(yōu)先級和結(jié)合性優(yōu)先級指同一個表達(dá)式中不同運(yùn)算符進(jìn)行計算時的先后次序結(jié)合性結(jié)合性是指同一個表達(dá)式中相同優(yōu)先級的多個運(yùn)算應(yīng)遵循的運(yùn)算順序 語言規(guī)定 單目運(yùn)算符是自右向左結(jié)合 雙目運(yùn)算符是自左向右結(jié)合 8 表達(dá)式的求值過程 表達(dá)式的求值過程按C規(guī)定的原則求值表達(dá)式代表了一個具體的值實際上是一個數(shù)據(jù)加工的過程在表達(dá)式求值時 先按運(yùn)算符的優(yōu)先級級別的高低次序執(zhí)行如果運(yùn)算符兩側(cè)的優(yōu)先級級別相同 則按規(guī)定的 結(jié)合方向 處理提示運(yùn)算符的優(yōu)先級制約著表達(dá)式的計算次序可以通過括號 來改變表達(dá)式求值的順序表達(dá)式求值過程中存在某種類型數(shù)據(jù)的類型轉(zhuǎn)換 9 算術(shù)表達(dá)式 由算術(shù)運(yùn)算符連接數(shù)值型運(yùn)算對象構(gòu)成其結(jié)果可以是整數(shù) 單精度實數(shù)和雙精度實數(shù)例 inta 2 floatb 4 5 表達(dá)式2 a b的結(jié)果為8 5優(yōu)先給與結(jié)合性提示兩個整數(shù)相除其結(jié)果仍為整數(shù) 即舍去小數(shù)部分 例如 13 10的結(jié)果為1 為求余運(yùn)算符 參與運(yùn)算的兩個數(shù)均為整數(shù)例如 10 3 1 10 3 1除以0在計算機(jī)系統(tǒng)中是沒有意義的用括號可以改變表達(dá)式的運(yùn)算順序 10 算術(shù)表達(dá)式 算術(shù)表達(dá)式例1 設(shè)intb 7 floata 2 5 c 4 7 表達(dá)式a int b 3 int a c 2 4的值 例2 11 自增 自減 與 的作用是使變量的值增1或減1C語言提供兩種形式的 運(yùn)算符 a a 前綴運(yùn)算 先進(jìn)行增量運(yùn)算后使用 a a 后綴運(yùn)算 先使用后進(jìn)行增量運(yùn)算 提示 增和自減只能作用于變量 不允許對常量 表達(dá)式或其它進(jìn)行操作當(dāng)自增 自減變量值本身就單獨構(gòu)成一條語句時 前綴和后綴的效果是一樣的對于 和 的使用要避免二義性 12 自增 自減 計算過程例1 設(shè)x 5y x 先計算x x 1 再執(zhí)行y x 結(jié)果x 5 y 6 y x 先執(zhí)行y x 再計算x x 1 結(jié)果y 5 x 6 問題 如何理解A B C規(guī)定 自左向右取盡可能多的符號組成運(yùn)算符 13 自增 自減 例2 設(shè)x 5y 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 14 賦值表達(dá)式 由賦值運(yùn)算符 連接表達(dá)式 右側(cè) 和變量 左側(cè) 形式 變量名 表達(dá)式賦值運(yùn)算符完成兩類操作計算賦值例inta 2 floatb 5 2 c c a b 賦值運(yùn)算符具有右結(jié)合性例如 a b 3 5 先計算3 5 后將15賦給b 再將b的值15賦給a 15 賦值表達(dá)式 組合賦值表達(dá)式組合賦值運(yùn)算符將一個變量和一個表達(dá)式連接起來的式子稱為組合賦值表達(dá)式形式 變量名表達(dá)式例 x y 3 x x y 3 a b c a a b c 注意 a b c 與 a a b c 是不等價的提示 不是數(shù)學(xué)中的 等號 它表示一個動作 右側(cè)的值送與左側(cè)的變量中 左側(cè)只允許是變量 不能是表達(dá)式或其他 賦值運(yùn)算符兩側(cè)的類型要求一致 否則要進(jìn)行類型轉(zhuǎn)換賦值運(yùn)算符 相等運(yùn)算符 和一般習(xí)慣有所不同 16 關(guān)系表達(dá)式 關(guān)系運(yùn)算符中的 關(guān)系 二字的含義是指一個值與另一個值之間的關(guān)系關(guān)系由關(guān)系運(yùn)算符 OP表達(dá)式可以是常量 變量和表達(dá)式結(jié)果為整型值0 邏輯假1 邏輯真優(yōu)先級 高于 結(jié)合方向 自左向右 17 關(guān)系表達(dá)式 例 inta 2 floatb 3 4 a b a b b a b b的結(jié)果分別是多少 0 1 0 提示進(jìn)行關(guān)系運(yùn)算時 先計算表達(dá)式的值 然后再進(jìn)行關(guān)系比較運(yùn)算例如 inta 1 b 2 c 3 1 a b 3 c的結(jié)果為0 3 9關(guān)系不成立 2 a b b 11 c 結(jié)果值為1 3 4關(guān)系成立 18 關(guān)系表達(dá)式 在表達(dá)式中連續(xù)使用關(guān)系運(yùn)算符時 要注意正確表達(dá)含義例如 設(shè) 的取值范圍為 10 10 時 不能寫成 10 x 10 應(yīng)寫成 10 x x 10 為什么 19 邏輯表達(dá)式 邏輯 是指連接關(guān)系的方式由邏輯運(yùn)算符 連接的表達(dá)式構(gòu)成形式 OP表達(dá)式可以是常量 變量 或其他表達(dá)式其結(jié)果為整數(shù)值0 邏輯假 或1 邏輯真 優(yōu)先級 最高 次之 最低邏輯運(yùn)算優(yōu)先級低于所有關(guān)系運(yùn)算 優(yōu)先級高于所有算術(shù)運(yùn)算 單目運(yùn)算 結(jié)合性 自左向右例如 a b b d 自右向左 例如 a 20 邏輯表達(dá)式 邏輯運(yùn)算規(guī)則提示設(shè)計邏輯 與 運(yùn)算 將最可能為 假 的表達(dá)式放在最左側(cè)設(shè)計邏輯 或 運(yùn)算 將最可能為 真 的表達(dá)式放在最左側(cè) 21 邏輯表達(dá)式 例題 設(shè)inta 3 b 1 x 2 y 0 則 y b y a 的運(yùn)算結(jié)果為1 問題 1 y b y a的運(yùn)算結(jié)果是多少 2 兩個表達(dá)式在運(yùn)算次序是否一致 22 條件表達(dá)式 由條件運(yùn)算符連接它的三個運(yùn)算對象構(gòu)成的表達(dá)式稱之為條件表達(dá)式形式 條件運(yùn)算符的 個 總是成對出現(xiàn)表達(dá)式可以是任何類型 結(jié)果也可以是任何類型運(yùn)算過程計算表達(dá)式1的值為真 計算表達(dá)式2的值 并將表達(dá)式2的值作為整個條件表達(dá)式的結(jié)果 不再計算表達(dá)式3的值為假 計算表達(dá)式3的值 并將表達(dá)式3的值作為整個條件表達(dá)式的結(jié)果 不計算表達(dá)式2的值 23 條件表達(dá)式 優(yōu)先級高于賦值運(yùn)算 但低于所有關(guān)系運(yùn)算 邏輯運(yùn)算和算術(shù)運(yùn)算結(jié)合性自右向左結(jié)合提示當(dāng)多個條件表達(dá)式嵌套使用時 每個后續(xù)的 總與前面最近的 沒有配對的 相聯(lián)系例如 x y x z w z w等同于x y x z w z w 三個運(yùn)算對象的類型可以不相同例如 x a 0 5 24 條件表達(dá)式 例題 設(shè)intx 10 y 9 inta b c a x y x y b x c y 執(zhí)行上述程序段后a b c的結(jié)果是 分別為8 8 10 25 逗號表達(dá)式 由逗號連接符 與表達(dá)式構(gòu)成形式 可以是任何類型逗號表達(dá)式的結(jié)果為最后一個表達(dá)式的結(jié)果值執(zhí)行過程先求解表達(dá)式1的值 再求解表達(dá)式2的值 最后求解表達(dá)式n的值 并將表達(dá)式n的值作為整個表達(dá)式的結(jié)果值 26 逗號表達(dá)式 優(yōu)先級級別最低 最后進(jìn)行逗號運(yùn)算 結(jié)合方向自左向右例題設(shè)intx a 表達(dá)式x a 4 6 2 的x值 表達(dá)式x a 4 6 2的x值 x為12 x為4 27 運(yùn)算符與表達(dá)式 混合運(yùn)算指在一個表達(dá)式中參與運(yùn)算的對象不是相同的數(shù)據(jù)類型例如 設(shè) inta 3 floatb 3 0 charc 3 則表達(dá)式 a c b 4 int b 2的結(jié)果 進(jìn)行混合運(yùn)算的首要的問題是對參與運(yùn)算的數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換類型轉(zhuǎn)換由一種數(shù)據(jù)類型到另一種數(shù)據(jù)類型的轉(zhuǎn)換被稱為類型轉(zhuǎn)換 28 隱式的 自動類型轉(zhuǎn)換 如果同一個表達(dá)式中含有不同類型的常量和變量 C語言則在計算該表達(dá)式時會自動轉(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)算次序為 2 a 先將 a 轉(zhuǎn)換成整型數(shù)97 得乘積1941 5 194 1 5和194都轉(zhuǎn)換成double型 和為95 5195 5 1 2345678 1 2345678本身應(yīng)是double型的 所以最后結(jié)果也為double型 29 int char short unsigned long double float 低 高 類型提升 示意圖 隱式的 自動類型轉(zhuǎn)換 30 隱式的 自動類型轉(zhuǎn)換 在數(shù)據(jù)輸出時發(fā)生的類型轉(zhuǎn)換同樣要遵守 類型提升 的原則賦值運(yùn)算中最終結(jié)果的類型 以賦值運(yùn)算符左邊變量的類型為準(zhǔn)要將賦值符號右邊表達(dá)式的值按左邊變量的數(shù)據(jù)類型轉(zhuǎn)換之后再賦值當(dāng)左邊變量的類型長度較右邊值的長度短時 就可能產(chǎn)生誤差 甚至完全錯誤提示由 語言的編譯系統(tǒng)自動完成不會體現(xiàn)在 語言源程序中程序設(shè)計人員必須了解這種自動轉(zhuǎn)換的規(guī)則及其結(jié)果 31 顯式的 類型轉(zhuǎn)換 顯式的 類型轉(zhuǎn)換通過用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 type 進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換其含義是將右邊表達(dá)式的值轉(zhuǎn)換成括號中指定的數(shù)據(jù)類型轉(zhuǎn)換形式如下 type 表達(dá)式type表示一個強(qiáng)制數(shù)據(jù)類型名表達(dá)式是任何一種類型的表達(dá)式例 int x y 注意與 int x y不同 32 簡單表達(dá)式的運(yùn)算 例1 執(zhí)行下面程序段后 inta 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 a b 1B a b c 2C int18 5 3D a a 7 c b 例4 若a為int類型 且值為3 則執(zhí)行完表達(dá)式a a a a后 a的值是多少 A 3B 9C 12D 6 例5 分析下列運(yùn)算的結(jié)果 defineprintt x y z printf x d y d z d n x y z main intx y z x y z 2 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車間內(nèi)部承包經(jīng)營與設(shè)備維護(hù)一體化合同范本
- 采石場安全生產(chǎn)責(zé)任承包管理協(xié)議
- 高標(biāo)準(zhǔn)廠房木結(jié)構(gòu)建造與施工一體化服務(wù)合同
- 老人照料及護(hù)理課件
- 石場安全生產(chǎn)三年行動方案
- 安全管理三違指的是什么
- 突發(fā)事件應(yīng)急處置機(jī)制和預(yù)案
- 贛州市安全生產(chǎn)電視電話會議
- 美術(shù)信息化技術(shù)課件
- 生產(chǎn)制造安全事故案例
- 水電安裝改造協(xié)議模板
- 2023-2024學(xué)年天津市部分區(qū)高一下學(xué)期期末考試化學(xué)試卷 (解析版)
- 虹橋商務(wù)區(qū)核心區(qū)一期及南北片區(qū)集中供能專項規(guī)劃
- 長方體和正方體(表面積的變化)―備課講稿
- 2025屆江蘇省常州市八年級數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)水平測試試題含解析
- DB34-T 4800-2024 退化天然林生態(tài)修復(fù)技術(shù)規(guī)程
- 一種紅外線圖像識別的變壓器綜合溫度監(jiān)測裝置
- 2023佛山市數(shù)學(xué)新初一分班試卷
- 地鐵服務(wù)大討論范文(篇一)
- 上海市培佳雙語學(xué)校2025屆高一數(shù)學(xué)第二學(xué)期期末達(dá)標(biāo)檢測試題含解析
- 2+N 糖尿病逆轉(zhuǎn)治療的規(guī)范與操作流程
評論
0/150
提交評論