freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

程序設計基礎c語言上ppt-資料下載頁

2025-10-07 20:12本頁面
  

【正文】 a 程序設計基礎( C語言) 109 表達式的求值過程 ? C語言規(guī)定了運算符的優(yōu)先級和結(jié)合性 ?優(yōu)先級 ? 指同一個表達式中不同運算符進行計算時的先后次序 ?結(jié)合性 ? 結(jié)合性是指同一個表達式中相同優(yōu)先級的多個運算應遵循的運算順序 ? C語言規(guī)定:單目運算符是自右向左結(jié)合,雙目運算符是自左向右結(jié)合 程序設計基礎( C語言) 110 表達式的求值過程 ? 表達式的求值過程按 C規(guī)定的 原則 求值 ?表達式代表了一個具體的值 ? 實際上是一個數(shù)據(jù)加工的過程 ?在表達式求值時, 先按運算符的優(yōu)先級級別的高低次序執(zhí)行 ?如果運算符兩側(cè)的優(yōu)先級級別相同,則按規(guī)定的?結(jié)合方向?處理 ? 提示 ?運算符的優(yōu)先級制約著表達式的計算次序 ? 可以通過 括號()來改變表達式求值的順序 ?表達式求值過程中存在某種類型數(shù)據(jù)的類型轉(zhuǎn)換 程序設計基礎( C語言) 111 算術表達式 ? 由算術運算符連接數(shù)值型運算對象構成 ?其結(jié)果可以是整數(shù)、單精度實數(shù)和雙精度實數(shù) ?例: int a=2。 float b=。表達式 2*a+b 的結(jié)果為 ?優(yōu)先給與結(jié)合性 ? 提示 ?兩個整數(shù)相除其結(jié)果仍為整數(shù)(即舍去小數(shù)部分) ? 例如: 13/10的結(jié)果為 1 ?“%”為求余運算符,參與運算的兩個數(shù)均為整數(shù) ? 例如: 10%3= 1 10%3= 1 ?除以 0在計算機系統(tǒng)中是沒有意義的 ?用括號可以改變表達式的運算順序 程序設計基礎( C語言) 112 算術表達式 ? 算術表達式 ?例 1: 設 int b=7。float a=,c=。 表達式 a+( int)( b/3*( int)( a+c) /2)%4的值? ?例 2: tddbfa????241 2程序設計基礎( C語言) 113 自增 /自減 ? “++”與? ”的作用是使 變量的值 增 1或減 1 ? C語言提供兩種形式的 ++/運算符 ? ++a,a(前綴運算:先進行增量運算后使用) ? a++, a(后綴運算:先使用后進行增量運算) ? 提示: ?增和自減只能作用于變量,不允許對常量、表達式或其它進行操作 ?當自增 /自減變量值本身就單獨構成一條語句時,前綴和后綴的效果是一樣的 ?對于? ++”和? ”的使用要避免二義性 程序設計基礎( C語言) 114 自增 /自減 ? 計算過程 ?例 1:設 x=5 ? y=++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ī)定 :自左向右取盡可能多的符號組成運算符 程序設計基礎( C語言) 115 自增 /自減 ? 例 2: 設 x=5 ? y=x++*x++; /*先取 x的值進行? *?運算,再進行兩次 x++。 y=25, x=7*/ ? y=++x*++x; /*先進行兩次 x自增1,使 x的值為 7,再進行相乘運算。 y=49, x=7*/ 程序設計基礎( C語言) 116 賦值表達式 ? 由賦值運算符? =”連接表達式(右側(cè))和變量(左側(cè)) ? 形式: 變量名=表達式 ? 賦值運算符完成兩類操作 ?計算 ?賦值 ?例 ? int a=2, float b=, c; c=a*b; ? 賦值運算符具有右結(jié)合性 ?例如: a=b=3*5; /*先計算 3*5,后將 15賦給 b,再將 b的值 15賦給 a*/ 程序設計基礎( C語言) 117 賦值表達式 ? 組合賦值表達式 ? 組合賦值運算符將一個變量和一個表達式連接起來的式子稱為組合賦值表達式 ? 形式:變量名 組合賦值運算符 表達式 ? 例 : x%=y/3; /*x=x%( y/3) */ a*=b+c /* a=a*(b+c)*/ ? 注意:? a*=b+c”與? a=a*b+c”是不等價的 ? 提示 ? ? =”不是數(shù)學中的?等號?,它表示一個動作,右側(cè)的值送與左側(cè)的變量中(左側(cè)只允許是變量,不能是表達式或其他) ? 賦值運算符兩側(cè)的類型要求一致,否則要進行類型轉(zhuǎn)換 ? 賦值運算符‘ =?,相等運算符‘ = =?,和一般習慣有所不同 程序設計基礎( C語言) 118 關系表達式 ? 關系運算符中的?關系?二字的含義是指一個值與另一個值之間的關系 ?關系由關系運算符( , , =, =, !=, ==)連接表達式構成 ? 形式: 表達式 OP 表達式 ?表達式可以是常量、變量和表達式 ?結(jié)果為整型值 ? 0:邏輯假 ? 1:邏輯真 ?優(yōu)先級:( , , =, =)高于( !=, ==) ?結(jié)合方向:自左向右 程序設計基礎( C語言) 119 關系表達式 ? 例: int a=2; float b=。 ab、 a+bb, abb的結(jié)果分別是多少?( 0、 0) ? 提示 ?進行關系運算時,先計算表達式的值,然后再進行關系比較運算 ? 例如: int a=1, b=2, c=3; ( 1) a+b3*c 的結(jié)果為 0 /*39關系不成立 */ ( 2) (a+=b)(b*=11%c)結(jié)果值為 1 /*34關系成立 */ 程序設計基礎( C語言) 120 關系表達式 ? 在表達式中連續(xù)使用關系運算符時,要注意正確表達含義 ?例如:設x的取值范圍為? 10≤x ≤10”時,不能寫成? 10=x=10”,應寫成? 10=x amp。amp。 x=10 ——為什么? 程序設計基礎( C語言) 121 邏輯表達式 ? “邏輯?是指連接關系的方式 ? 由邏輯運算符( amp。amp。、 ||、 ! )連接的表達式構成 ? 形式: 表達式 OP 表達式 ? 表達式可以 是常量、變量、或其他表達式 ? 其結(jié)果為整數(shù)值 ? 0 (邏輯假) 或 1(邏輯真) ? 優(yōu)先級 ? ?!?最高,? amp。amp?!贝沃?,? ||”最低 ? 邏輯運算優(yōu)先級低于所有關系運算 ? ?!?優(yōu)先級高于所有算術運算(單目運算) ? 結(jié)合性 ? amp。amp。 、 || 自左向右 例如: abamp。amp。bd ? ! 自右向左 (例如: !a ) 程序設計基礎( C語言) 122 邏輯表達式 ? 邏輯運算規(guī)則 ?提示 ? 設計邏輯?與? 運算,將最可能為?假?的表達式放在最左側(cè) ? 設計邏輯?或?運算,將最可能為?真?的表達式放在最左側(cè) a b !a aamp。amp。b a||b 0 0 1 0 0 0 非 0 1 0 1 非 0 0 0 0 1 非 0 非 0 0 1 1 程序設計基礎( C語言) 123 邏輯表達式 ? 例題: 設 int a=3,b=1, x=2, y=0; 則 (y||b) amp。amp。 (y||a) 的運算結(jié)果為 1。 問題: ( 1) y||b amp。amp。 y||a 的運算結(jié)果是多少? ( 2)兩個表達式在運算次序是否一致? 程序設計基礎( C語言) 124 條件表達式 ? 由條件運算符連接它的三個運算對象構成的表達式稱之為條件表達式 ? 形式: 表達式 1?表達式 2: 表達式 3 ?條件運算符的???個?:?總是成對出現(xiàn) ?表達式可以是任何類型, 結(jié)果也可以是任何類型 ?運算過程 ? 計算表達式 1的值 ?為真 ,計算表達式 2的值,并將表達式 2的值作為整個條件表達式的結(jié)果,不再計算表達式 3的值 ?為假,計算表達式 3的值,并將表達式 3的值作為整個條件表達式的結(jié)果,不計算表達式 2的值 程序設計基礎( C語言) 125 條件表達式 ? 優(yōu)先級 ?高于賦值運算,但低于所有關系運算、邏輯運算和算術運算 ? 結(jié)合性 ?自右向左結(jié)合 ? 提示 ?當多個條件表達式嵌套使用時,每個后續(xù)的?:?總與前面最近的、沒有配對的???相聯(lián)系 ? 例如: xy?x:zw?z:w 等同于 xy?x:( zw?z:w) ?三個運算對象的類型可以不相同 ? 例如: x??a?: 程序設計基礎( C語言) 126 條件表達式 ? 例題: 設 int x=10, y=9。 int a, b, c; a=( x==y++) ???x:y。 b=x++。 c=y。 執(zhí)行上述程序段后 a, b, c的結(jié)果是? 分別為 8, 8, 10 程序設計基礎( C語言) 127 逗號表達式 ? 由逗號連接符(,)與表達式構成 ? 形式: 表達式 1, 表達式 2, 表達式 n ? 表達式 1, 表達式 2, 表達式 n可以是任何類型 ?逗號表達式的結(jié)果為最后一個表達式的結(jié)果值 ?執(zhí)行過程 ? 先求解表達式 1的值,再求解表達式 2的值, … 最后求解表達式 n的值,并將表達式 n的值作為整個表達式的結(jié)果值 程序設計基礎( C語言) 128 逗號表達式 ? 優(yōu)先級 ?級別最低(最后進行逗號運算) ? 結(jié)合方向 ?自左向右 ? 例題 設 int x, a; 表達式 x=(a=4, 6*2)的 x值? 表達式 x=a=4, 6*2的 x值? x為 12 x為 4 程序設計基礎( C語言) 129 運算符與表達式 ? 混合運算 ?指在一個表達式中參與運算的對象不是相同的數(shù)據(jù)類型 ? 例如: 設: int a=3。float b=。char c=?3?。 則表達式 (a*c+b)/4+( int) b%2的結(jié)果? ?進行混合運算的首要的問題是對參與運算的數(shù)據(jù)進行類型轉(zhuǎn)換 ? 類型轉(zhuǎn)換 ?由一種數(shù)據(jù)類型到另一種數(shù)據(jù)類型的轉(zhuǎn)換被稱為類型轉(zhuǎn)換 程序設計基礎( C語言) 130 “隱式的”自動類型轉(zhuǎn)換 ? 如果同一個表達式中含有不同類型的常量和變量, C語言則在計算該表達式時會自動轉(zhuǎn)換為同一種數(shù)據(jù)類型以便進行運算 ? 轉(zhuǎn)換原則 ?運算中將所有 char型數(shù)據(jù)轉(zhuǎn)換成 int型, float型轉(zhuǎn)換成double型 ??類型提升? :低類型向高類型轉(zhuǎn)換 ? 例如: +2*?a? /*運算次序為: 2*?a?:先將‘ a?轉(zhuǎn)換成整型數(shù) 97,得乘積 194 +194: 194都轉(zhuǎn)換成 double型,和為 : double型的,所以最后結(jié)果也為 double型 */ 程序設計基礎( C語言) 131 int char,short unsigned long double float 低 高 ? “類型提升? 示意圖 “隱式的”自動類型轉(zhuǎn)換 程序設計基礎( C語言) 132 “隱式的”自動類型轉(zhuǎn)換 ? 在數(shù)據(jù)輸出時發(fā)生的類型轉(zhuǎn)換 ?同樣要遵守?類型提升?的原則 ? 賦值運算中最終結(jié)果的類型,以賦值運算符左邊變量的類型為準 ?要將賦值符號右邊表達式的值按左邊變量的數(shù)據(jù)類型轉(zhuǎn)換之后再賦值 ?當左邊變量的類型長度較右邊值的長度短時,就可能產(chǎn)生誤差,甚至完全錯誤 ? 提示 ?由C語言的編譯系統(tǒng)自動完成 ?不會體現(xiàn)在C語言源程序中 ?程序設計人員必須了解這種自動轉(zhuǎn)換的規(guī)則及其結(jié)果 程序設計基礎( C語言) 133 “顯式的”類型轉(zhuǎn)換 ? “顯式的?類型轉(zhuǎn)換 ? 通過用強制類型轉(zhuǎn)換運算符 (type) 進行數(shù)據(jù)類型轉(zhuǎn)換 ? 其含義是將右邊表達式的值轉(zhuǎn)換成括號中指定的數(shù)據(jù)類型 ? 轉(zhuǎn)換形式如下: (type) 表達式 ? type表示一個強制數(shù)據(jù)類型名 ? 表達式是任何一種類型的表達式 ? 例 ? (int )(x+
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1