項目二 簡易計算器frz_第1頁
項目二 簡易計算器frz_第2頁
項目二 簡易計算器frz_第3頁
項目二 簡易計算器frz_第4頁
項目二 簡易計算器frz_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 Copyright Wethink Corporation 2010項目二項目二 簡易計算器簡易計算器 C C語言程序設(shè)計語言程序設(shè)計 Copyright Wethink Corporation 2010技能要求技能要求1 1、數(shù)值型變量的使用。、數(shù)值型變量的使用。2 2、編寫簡單的、編寫簡單的C C語言程序?qū)崿F(xiàn)數(shù)學(xué)計算。語言程序?qū)崿F(xiàn)數(shù)學(xué)計算。 1 1、C C語言語言的的數(shù)據(jù)類型數(shù)據(jù)類型。2 2、C C語言的運算符和表達式。語言的運算符和表達式。學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)教學(xué)目標(biāo)和技能要求教學(xué)目標(biāo)和技能要求 Copyright Wethink Corporation 2010項目情景 1相關(guān)知識2項目

2、實施與實現(xiàn) 3知識拓展 4 Copyright Wethink Corporation 2010項目情景項目情景 1 Copyright Wethink Corporation 2010簡易計數(shù)器簡易計數(shù)器程序要做三件事程序要做三件事:p輸入數(shù)據(jù)輸入數(shù)據(jù)p處理數(shù)據(jù)處理數(shù)據(jù)p輸出結(jié)果輸出結(jié)果 Copyright Wethink Corporation 2010相關(guān)知識相關(guān)知識 2 Copyright Wethink Corporation 2010C C數(shù)數(shù)據(jù)據(jù)類類型型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型void定義類型定義類型typedef數(shù)值類型數(shù)值類型字符類型字符類

3、型char枚舉類型枚舉類型enum整整 型型浮點型浮點型單精度型單精度型float雙精度型雙精度型double短整型短整型short長整型長整型long整型整型int數(shù)組數(shù)組結(jié)構(gòu)體結(jié)構(gòu)體struct共用體共用體union布爾型布爾型 boolC C語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型 Copyright Wethink Corporation 2010一般用大寫字母一般用大寫字母是宏定義預(yù)處理命令,不是是宏定義預(yù)處理命令,不是C語句語句直接常量直接常量: :整型常量整型常量 實型常量實型常量 字符常量字符常量 字符串常量字符串常量如如 #define PRICE 30n分類分類: :符號常量符號常量:

4、 :用標(biāo)識符代表常量用標(biāo)識符代表常量定義格式:定義格式: #define#define 符號常量符號常量 常量常量例例 符號常量舉例符號常量舉例#define PRICE 30main() int num,total; num=10; total=num*PRICE; printf(total=%d,total);運行結(jié)果:運行結(jié)果:total=300常量常量程序運行時其值不能改變的量程序運行時其值不能改變的量 Copyright Wethink Corporation 2010如:如:a,b,4, n04230 x1232.01.23456e2常量常量 Copyright Wethink C

5、orporation 2010概念:概念: 每個變量有一個名字:用標(biāo)識符表示。每個變量有一個名字:用標(biāo)識符表示。 每個變量有一個存儲空間(存儲單元),該單每個變量有一個存儲空間(存儲單元),該單元中的狀態(tài)所表示的數(shù)為此時變量的值。元中的狀態(tài)所表示的數(shù)為此時變量的值。n變量初始化變量初始化:定義時可以賦初值定義時可以賦初值 合法標(biāo)識符合法標(biāo)識符n變量的使用:變量的使用:先定義,后使用先定義,后使用v變量定義的一般格式:變量定義的一般格式: 數(shù)據(jù)類型數(shù)據(jù)類型 變量變量1,變量,變量2,變量,變量n;如:如:int a,b,c; float x,y;變量變量程序運行時其值可以改變的量程序運行時其值可

6、以改變的量如:如:int a=1,b,c; float x,y=1.2; Copyright Wethink Corporation 2010數(shù)據(jù)在內(nèi)存中始終是以二進制形式存放的。數(shù)據(jù)在內(nèi)存中始終是以二進制形式存放的。 問題:問題:數(shù)據(jù)在內(nèi)存中是以什么形式存放的?數(shù)據(jù)在內(nèi)存中是以什么形式存放的? Copyright Wethink Corporation 2010 C C語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型數(shù)據(jù)類型決定:數(shù)據(jù)類型決定:1. 數(shù)據(jù)占內(nèi)存字節(jié)數(shù)數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2. 數(shù)據(jù)取值范圍數(shù)據(jù)取值范圍3. 其上可進行的操作其上可進行的操作 Copyright Wethink Corporation 2

7、010編譯程序根據(jù)變量定義為其編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元分配指定字節(jié)的內(nèi)存單元.地址地址int a=1, b=-3,c;abc2字節(jié)字節(jié)2字節(jié)字節(jié)2字節(jié)字節(jié)地址地址地址地址.內(nèi)存內(nèi)存1-3隨機數(shù)隨機數(shù)變量變量程序運行時其值可以改變的量程序運行時其值可以改變的量 Copyright Wethink Corporation 2010例例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1;例例2 float a,b,c; c=a%b; /Illegal use of floating

8、point in function main n變量定義位置:變量定義位置:一般一般放在函數(shù)開頭放在函數(shù)開頭main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);變量定義變量定義可執(zhí)行語句可執(zhí)行語句main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data);例例1 int student; stadent=19; /Undefined symbol statent in function main Copyri

9、ght Wethink Corporation 2010#include void main() int x,y; /定義了兩個整型變量定義了兩個整型變量x,y x=10; /x的值為的值為10 y=x*x; / *就是乘號,就是乘號,y的值等于的值等于x乘以乘以x printf(”%d的平方是:的平方是:%dn”,x,y); x=15; /x的值改為的值改為15 y=x*x; /y的值也變化了的值也變化了 printf(”%d的平方是:的平方是:%dn”,x,y); 例例2.1 變量應(yīng)用實例變量應(yīng)用實例 Copyright Wethink Corporation 2010C運運算算符符算術(shù)運

10、算符算術(shù)運算符 : + - + - * * / % + - / % + - 關(guān)系運算符關(guān)系運算符 : = != = !=邏輯運算符邏輯運算符 : ! & | & |位運算符位運算符 : | & | &賦值運算符賦值運算符 : = = 及其擴展及其擴展條件運算符條件運算符 : ?:?:逗號運算符逗號運算符 : , ,指針運算符指針運算符 : * * & &求字節(jié)數(shù)求字節(jié)數(shù) : sizeofsizeof強制類型轉(zhuǎn)換:強制類型轉(zhuǎn)換:(類型)(類型)分量運算符分量運算符 : . -. -下標(biāo)運算符下標(biāo)運算符 : 其它其它 : 如函數(shù)調(diào)用預(yù)算符如函數(shù)調(diào)用預(yù)

11、算符( )( ) 13類類算術(shù)運算符算術(shù)運算符 :(:(+ - + - * * / % + - / % + - )賦值運算符賦值運算符 :(:(= = 及其擴展)及其擴展)逗號運算符逗號運算符 :(:(, ,)C C語言的運算符語言的運算符 Copyright Wethink Corporation 2010所謂表達式所謂表達式 : 用用運算符運算符和和括號括號將將運算對象運算對象連接起來的連接起來的、符合、符合C語法規(guī)則的式子,稱為語法規(guī)則的式子,稱為 C語言表達式語言表達式 。這里運算對象包括這里運算對象包括 : 常量、變量、函數(shù)等,例如常量、變量、函數(shù)等,例如 :x+3 , x+y ,

12、x*y+3 , x/y+10%5 , x+sin(x) , sqrt(x).C C語言表達式語言表達式 Copyright Wethink Corporation 2010運算符功能運算符功能與與運算量運算量關(guān)系關(guān)系運算符優(yōu)先級別運算符優(yōu)先級別結(jié)果的類型結(jié)果的類型結(jié)合方向結(jié)合方向注意注意13種類型的運算符號種類型的運算符號常量、變量、常量、變量、表達式表達式要求:要求:運算量個數(shù)運算量個數(shù)運算量類型運算量類型左結(jié)合性左結(jié)合性右結(jié)合性右結(jié)合性表表2-4 為了使算術(shù)表達式能按正確的法則運算,為了使算術(shù)表達式能按正確的法則運算,C規(guī)定了規(guī)定了運算符的優(yōu)先級和結(jié)合性。運算符的優(yōu)先級和結(jié)合性。 在表達式

13、求值時,在表達式求值時,先按運算符的優(yōu)先級別高低次先按運算符的優(yōu)先級別高低次序執(zhí)行,如果優(yōu)先級相同,再按結(jié)合方向處理。序執(zhí)行,如果優(yōu)先級相同,再按結(jié)合方向處理。C C語言的運算符與表達式語言的運算符與表達式 Copyright Wethink Corporation 2010算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式一元運算符一元運算符 (取負取負) +(自增自增)- (自減自減) 算術(shù)運算符算術(shù)運算符二元運算符二元運算符+ - * / % :模運算符模運算符 (求余運算符求余運算符) Copyright Wethink Corporation 2010p 一元運算符一元運算符: - + -

14、 - + - 結(jié)合方向:從右向左結(jié)合方向:從右向左p 二元運算符:二元運算符: + - + - * * / % / % 結(jié)合方向:從左向右結(jié)合方向:從左向右優(yōu)先級:優(yōu)先級: - - + -+ - - * * / % / % - - + -+ -說明:說明:兩整數(shù)相除,結(jié)果為整數(shù)兩整數(shù)相除,結(jié)果為整數(shù)% %要求兩側(cè)均為整型數(shù)據(jù)要求兩側(cè)均為整型數(shù)據(jù)算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式 Copyright Wethink Corporation 2010算術(shù)表達式算術(shù)表達式: : 用算術(shù)運算符和括號將運算對象用算術(shù)運算符和括號將運算對象( (也稱操作數(shù))也稱操作數(shù))連接起來的、符合語法規(guī)則的

15、式子,稱為算術(shù)表連接起來的、符合語法規(guī)則的式子,稱為算術(shù)表達式。運算對象包括常量、變量、函數(shù)等。達式。運算對象包括常量、變量、函數(shù)等。例如例如: : * *.5.5aa 是一個合法的表達式是一個合法的表達式算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式 Copyright Wethink Corporation 2010(4)(4) 自增、自減運算符自增、自減運算符 作用是使變量的值增或減,作用是使變量的值增或減,如:如: v,v, 等價于等價于i = i+1 / i = i-1, i+, i+與與+i+i的區(qū)別:的區(qū)別: +i/ -i是先執(zhí)行是先執(zhí)行i=i+1/i=i-1后,再使用后,再使用i

16、的值;的值; i+/ i-是先使用是先使用i的值后,再執(zhí)行的值后,再執(zhí)行i=i+1/i=i-1 。算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式 Copyright Wethink Corporation 2010 n = 3 ; m = n+ ; 結(jié)果是結(jié)果是m為為3 , n為為4 即即n 值先賦給變量值先賦給變量m, 然后然后n自增自增1 n = 3 ; m = +n ; 結(jié)果是結(jié)果是m為為4 , n為為4 即即n值先自增值先自增1,然后賦,然后賦給變量給變量m算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式 Copyright Wethink Corporation 2010注意注意 : (1

17、)自增、自減運算符只能用于變量,不能用于常量自增、自減運算符只能用于變量,不能用于常量或表達式。或表達式。例如例如 : 5+ , (x + y) + 不允許不允許 (2)自增自增+、自減、自減 -運算符是自右至左結(jié)合的。運算符是自右至左結(jié)合的。例如例如 : -n+ 表示表示 -(n+) , 不允許不允許 (-n )+表達式表達式注意;并非注意;并非n加加1后取負!后取負!如果有語句如果有語句 : n=3;m=-n+;printf(%d, -n+) ;printf(%d, m) ;printf(%d, n) ;若若 n值為值為 3,則先輸出,則先輸出 -3,然后,然后 n加加 1 .算術(shù)運算符和

18、算術(shù)表達式算術(shù)運算符和算術(shù)表達式 Copyright Wethink Corporation 2010 語言中有的運算符為一個字符,有的運算符由語言中有的運算符為一個字符,有的運算符由兩個字符組成,為避免誤解,最好采取大家都能理解兩個字符組成,為避免誤解,最好采取大家都能理解的寫法。的寫法。例如例如: 不要寫成不要寫成i+ji+j的形式,而應(yīng)寫成的形式,而應(yīng)寫成(i+)+j(i+)+j的形式的形式 算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式 Copyright Wethink Corporation 2010在調(diào)用函數(shù)時,實參數(shù)的求值順序,標(biāo)準(zhǔn)并無統(tǒng)在調(diào)用函數(shù)時,實參數(shù)的求值順序,標(biāo)準(zhǔn)并無統(tǒng)

19、一規(guī)定。一規(guī)定。例如:例如:的初值為,如果有下面的函數(shù)調(diào)用:的初值為,如果有下面的函數(shù)調(diào)用: printf(,i+) 在有的系統(tǒng)中,從左至右求值,輸出在有的系統(tǒng)中,從左至右求值,輸出“3,33,3”。在多數(shù)系統(tǒng)中對函數(shù)參數(shù)的求值順序是自右而左,輸在多數(shù)系統(tǒng)中對函數(shù)參數(shù)的求值順序是自右而左,輸出的是出的是“4,34,3”。以上這種寫法不提倡,最好改寫成。以上這種寫法不提倡,最好改寫成 j = i+;j = i+; printf(%d printf(%d, %d%d, j j,i)i)不要寫出別人看不懂的也不不要寫出別人看不懂的也不知道系統(tǒng)會怎樣執(zhí)行程序知道系統(tǒng)會怎樣執(zhí)行程序算術(shù)運算符和算術(shù)表達式

20、算術(shù)運算符和算術(shù)表達式 Copyright Wethink Corporation 2010 1. 賦值運算符賦值運算符 賦值號賦值號 “=” 就是賦值運算符。就是賦值運算符。 它的作用是將一個數(shù)據(jù)或表達式的值賦給一個變它的作用是將一個數(shù)據(jù)或表達式的值賦給一個變量量 。 如如 : x = 1 ; x = a+b ;注意類型轉(zhuǎn)換:注意類型轉(zhuǎn)換:把右邊的數(shù)據(jù)類型轉(zhuǎn)換為左邊的變把右邊的數(shù)據(jù)類型轉(zhuǎn)換為左邊的變量類型后,再賦值。量類型后,再賦值。賦值運算符和賦值表達式賦值運算符和賦值表達式 Copyright Wethink Corporation 2010 (2) 整型整型 賦給實型賦給實型 (單單,

21、雙精度型雙精度型) 變量時,值不變,變量時,值不變,但以浮點數(shù)但以浮點數(shù) 形式存入變量中。形式存入變量中。 如如 : float f ; f = 23 ; 則則 f 的值為的值為 23.000000 (1) 實型賦給整型變量時,取實型的整數(shù)部分實型賦給整型變量時,取實型的整數(shù)部分 如如 : int i ; i = 3 . 56 ; 則則 i 的值為的值為 3具體有以下幾種情況具體有以下幾種情況 :賦值運算符和賦值表達式賦值運算符和賦值表達式 Copyright Wethink Corporation 2010(3) 雙精度浮點數(shù)賦給單精度浮點數(shù)雙精度浮點數(shù)賦給單精度浮點數(shù) float f ;

22、double d =123.456789e100 ; f = d ; 有效位取有效位取7位位。 (4)字符型數(shù)據(jù)賦給整型變量時,由于字符只占一個字字符型數(shù)據(jù)賦給整型變量時,由于字符只占一個字節(jié)節(jié), 而整型占二個字節(jié),因此,而整型占二個字節(jié),因此, 字符數(shù)據(jù)放到整型變量字符數(shù)據(jù)放到整型變量的低的低 8 位中。位中。 int i ; char c = a ; i = c ;賦值運算符和賦值表達式賦值運算符和賦值表達式 Copyright Wethink Corporation 20100 1 1 0 0 0 0 10 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 ic 若字符型數(shù)據(jù)定

23、義為若字符型數(shù)據(jù)定義為 signed char,當(dāng)最高位為當(dāng)最高位為1時,時,則前則前8位全補位全補1。例如:例如: signed char c=376;int i;i=c ;1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0ci賦值運算符和賦值表達式賦值運算符和賦值表達式376代表代表8進制的進制的3763*8*8+7*8+6=254D=1111 1110Bi=-2 Copyright Wethink Corporation 2010(6) 如果如果 long int 賦給賦給 int ,則取,則取 long int 中的低中的低 16 位位給給

24、int 變量變量 int a ; int a ; long b= 8 ; long b = 65536 ; a = b ; a = b ;(5) 如果如果 int 型數(shù)據(jù)賦給型數(shù)據(jù)賦給 long int 型變量,則型變量,則 long int 中低中低16位放位放 int 數(shù)據(jù),高數(shù)據(jù),高 16 位如果是正數(shù)位如果是正數(shù)(+)則全補則全補0,如果是負數(shù),如果是負數(shù)(-)則全補則全補1。 int a = 3; int a = -3 ; long b ; long b ; b = a ; b = a;賦值運算符和賦值表達式賦值運算符和賦值表達式 Copyright Wethink Corporat

25、ion 2010(7) 將將 unsigned int 數(shù)據(jù)賦給數(shù)據(jù)賦給 long int 時,時,long int 高位高位補補0 ;如果將;如果將 unsigned int 數(shù)據(jù)賦給同長度的數(shù)據(jù)賦給同長度的 int 變量變量時,將時,將 unsigned 型變量的內(nèi)容原樣賦給非型變量的內(nèi)容原樣賦給非unsigned 變變量,但如果數(shù)據(jù)超出量,但如果數(shù)據(jù)超出 非非 unsigned 的范圍,則出錯。的范圍,則出錯。 unsigned int a=65535 ; int b ; b=a ; /* b= -1 */ (8) 如果將如果將 非非unsigned 數(shù)據(jù)賦給等長數(shù)據(jù)賦給等長 unsig

26、ned 型變量型變量,則原樣照賦則原樣照賦 (包括符號位包括符號位)。賦值運算符和賦值表達式賦值運算符和賦值表達式 Copyright Wethink Corporation 2010void main( ) unsigned a ; int b = -1 ; a = b ; printf(a = %u, a) ; /* 結(jié)果為結(jié)果為 65535 */ 有符號數(shù)據(jù)賦給無符號變量。有符號數(shù)據(jù)賦給無符號變量。賦值運算符和賦值表達式賦值運算符和賦值表達式 Copyright Wethink Corporation 2010 2. 賦值組合運算符賦值組合運算符 在賦值運算符之前加上其它運算符可以構(gòu)成復(fù)

27、合運在賦值運算符之前加上其它運算符可以構(gòu)成復(fù)合運算符。算符。 例如例如 : 在在 = 之前加上之前加上 + 則構(gòu)成則構(gòu)成 += a += 3 相當(dāng)于相當(dāng)于 a = a+3 如果表達式是由多項構(gòu)成,則相當(dāng)于有括號如果表達式是由多項構(gòu)成,則相當(dāng)于有括號 a = a+(表達式表達式) 例如例如 : a += 5*3 ; 相當(dāng)于相當(dāng)于 a = a + (5*3) ; 凡是二元凡是二元(二目二目)運算符都可以與運算符都可以與“=”一起組成賦值組合運算。一起組成賦值組合運算。賦值運算符和賦值表達式賦值運算符和賦值表達式 Copyright Wethink Corporation 20103. 賦值運算符結(jié)

28、合性賦值運算符結(jié)合性 賦值表達式由賦值表達式由(單一或組合單一或組合)賦值運算符將一個變量和賦值運算符將一個變量和一個表達式連接起來的式子。一個表達式連接起來的式子。 賦值表達式的求解過程是賦值表達式的求解過程是 : (1)對表達式求值對表達式求值 ; (2)將該值賦給運算符左邊的變量。將該值賦給運算符左邊的變量。 賦值運算符是賦值運算符是自右至左結(jié)合自右至左結(jié)合,如,如 : a=(b=5) 等價于等價于 a=b=5 運行順序運行順序 :( 1 ) b=5 ( 2 ) a=b 賦值運算符和賦值表達式賦值運算符和賦值表達式 Copyright Wethink Corporation 2010 表

29、達式為表達式為 a + = a - = a*a 如如 a=12 運行次序:運行次序: (1) a = a - a*a = -132 (2) a = a+a = -264 表達式表達式 運行結(jié)果運行結(jié)果 a=b=c=5 a=5 , b=5 , c=5 a=5+(c=6) c=6 , a=11 a=(b=4)+(c=6) c=6 , b=4 , a=10 a=(b=10)/ (c=2) c=2 , b=10 , a=5賦值運算符和賦值表達式賦值運算符和賦值表達式 Copyright Wethink Corporation 2010關(guān)系運算符和關(guān)系表達式關(guān)系運算符和關(guān)系表達式1.1.關(guān)系運算符及其優(yōu)

30、先次序關(guān)系運算符及其優(yōu)先次序1 1) ( (小于小于) )2 2)= ( ( (大于大于) )4 4)= (= (大于或等于大于或等于) )5 5)= (= (等于等于) )6 6)!= (!= (不等于不等于) )優(yōu)先級相同(高)優(yōu)先級相同(高)優(yōu)先級相同(低)優(yōu)先級相同(低)說明:說明:關(guān)系運算符的優(yōu)先級低于算術(shù)運算符關(guān)系運算符的優(yōu)先級低于算術(shù)運算符關(guān)系運算符的優(yōu)先級高于賦值運算符關(guān)系運算符的優(yōu)先級高于賦值運算符 Copyright Wethink Corporation 20102.2.關(guān)系表達式關(guān)系表達式用關(guān)系運算符將兩個表達式(可以是算術(shù)表達式或用關(guān)系運算符將兩個表達式(可以是算術(shù)表

31、達式或 關(guān)系表達式,邏輯表達式,賦值表達式,字符表達式)關(guān)系表達式,邏輯表達式,賦值表達式,字符表達式) 接起來的式子,稱關(guān)系表達式接起來的式子,稱關(guān)系表達式例:例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的值為的值為“真真”,表達式的值為,表達式的值為1。C C語言中沒有專語言中沒有專用的邏輯值,用的邏輯值,1 1代表真,代表真,0 0代表代表假假關(guān)系運算符和關(guān)系表達式關(guān)系運算符和關(guān)系表達式 Copyright Wethink Corporation 20101.1.邏輯運算符及其優(yōu)先次序邏輯運算符及其優(yōu)先次序(1)& (1)& (邏輯與邏輯與) ) 相當(dāng)于其

32、他語言中的相當(dāng)于其他語言中的ANDAND(2)| (2)| (邏輯或邏輯或) ) 相當(dāng)于其他語言中的相當(dāng)于其他語言中的OROR(3)! (3)! (邏輯非邏輯非) ) 相當(dāng)于其他語言中的相當(dāng)于其他語言中的NOTNOT例:例:a&b a&b 若若a,ba,b為真,則為真,則a&ba&b為真。為真。 a|b a|b 若若a,ba,b之一為真,則之一為真,則a|ba|b為真。為真。 !a a 若若a a為真,則為真,則!a!a為假。為假。優(yōu)先次序:優(yōu)先次序:p !(非非)-&()-|()p 邏輯運算符中的邏輯運算符中的“&”和和“|”低于關(guān)系運算符低于

33、關(guān)系運算符p “!”高于算高于算 術(shù)運算符術(shù)運算符邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式 Copyright Wethink Corporation 20102.2.邏輯表達式邏輯表達式用邏輯運算符將關(guān)系表達式或邏輯量連接起來的式子就用邏輯運算符將關(guān)系表達式或邏輯量連接起來的式子就 是邏輯表達式。是邏輯表達式。邏輯表達式的值應(yīng)該是一個邏輯量邏輯表達式的值應(yīng)該是一個邏輯量“真真”或或“假假”。例:例:設(shè)設(shè)a=4a=4,b=5b=5:!a!a的值為的值為0 a&b0 a&b的值為的值為1 1a|ba|b的值為的值為1 !a|b1 !a|b的值為的值為1 14&0|24

34、&0|2的值為的值為1 1任何非零的數(shù)值被認作任何非零的數(shù)值被認作“真真”邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式 Copyright Wethink Corporation 2010例:例:53&83&84-!0 自左向右運算自左向右運算 1&0邏輯值為邏輯值為083邏輯值為邏輯值為1表達式值為表達式值為0邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式 Copyright Wethink Corporation 2010 在邏輯表達式的求解中,并不是所有的邏輯運算符在邏輯表達式的求解中,并不是所有的邏輯運算符都要被執(zhí)行。都要被執(zhí)行。(1)a&b&am

35、p;c (1)a&b&c 只有只有a a為真時,才需要判斷為真時,才需要判斷b b的值,只有的值,只有a a和和b b都為真時,才需要判斷都為真時,才需要判斷c c的值。的值。(2)a|b|c (2)a|b|c 只要只要a a為真,就不必判斷為真,就不必判斷b b和和c c的值,只有的值,只有a a為為假,才判斷假,才判斷b b。a a和和b b都為假才判斷都為假才判斷c c例例:(m=ab)&(n=cd)當(dāng)當(dāng)a=1,b=2,c=3,d=4,ma=1,b=2,c=3,d=4,m和和n n的原值為的原值為1 1時,由于時,由于“abab”的值的值為為0 0,因此,因此m=

36、0m=0,而,而“n=cdn=cd”不被執(zhí)行,因此不被執(zhí)行,因此n n的值不是的值不是0 0而仍保持原值而仍保持原值1 1。邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式 Copyright Wethink Corporation 2010 用邏輯表達式來表示閏年的條件用邏輯表達式來表示閏年的條件能被能被4整除,但不能被整除,但不能被100整除。整除。能被能被4整除,又能被整除,又能被400整除整除。答答 (year%4=0&year%100!=0)|year%400=0案案 值為真值為真(1)是閏年,否則為非閏年。是閏年,否則為非閏年。邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式 Co

37、pyright Wethink Corporation 2010 ?:?:條件表達式?表達式條件表達式?表達式1:表達式:表達式2;Max=(ab)?a:b;例題例題2.3輸入兩個數(shù),求最大值,最小值輸入兩個數(shù),求最大值,最小值條件運算符與條件表達式條件運算符與條件表達式 Copyright Wethink Corporation 2010 用用 “ , ” 將兩個表達式連接起來所構(gòu)成的表達式稱將兩個表達式連接起來所構(gòu)成的表達式稱為為逗號表達式。逗號表達式。 例如例如 : 3+5 , 6+8 逗號表達式的形式逗號表達式的形式 : 表達式表達式 1 , 表達式表達式 2 求解過程求解過程 : 先

38、求表達式先求表達式 1 的值,再求表達式的值,再求表達式 2 的值的值,整個表達式的值是表達式整個表達式的值是表達式 2 的值。的值。 如上式如上式, 結(jié)果是結(jié)果是14。 又如又如 : a = 3*5 , a*4 運行結(jié)果是運行結(jié)果是 a = 15 而整個而整個表達式的值是表達式的值是60。 逗號運算符和逗號表達式逗號運算符和逗號表達式 Copyright Wethink Corporation 2010例例 1 : ( a = 3*5 , a* 4 ) , a+5運行結(jié)果運行結(jié)果 :(1) a = 15 (2) ( 15 , 60 ) = 值為值為 60 (3) 60 , 20 = 整個表達

39、式的值為整個表達式的值為20 例例 2 :x = ( a = 3 , 6*3 ) 運行結(jié)果運行結(jié)果 : a為為 3 ,x 為為 18; 例例 3 :x = a = 3 , 6*a 運行結(jié)果運行結(jié)果 : x 為為 3 ,a為為 3逗號表達式一般形式逗號表達式一般形式 : 表達式表達式1 , 表達式表達式2, . , 表達式表達式n 它的值是表達式它的值是表達式n 的值的值逗號運算符和逗號表達式逗號運算符和逗號表達式 Copyright Wethink Corporation 20101. 由于逗號運算符是所有運算符中級別最低的,因此由于逗號運算符是所有運算符中級別最低的,因此書寫表達式時要注意求

40、解的次序。書寫表達式時要注意求解的次序。2. 并非所有的并非所有的 “,” 都是運算符,例如都是運算符,例如 : printf(“%d,%d,%d”, a , b , c) ; -這里的這里的“,”都只都只是分隔符。是分隔符。 而而printf(“%d,%d,%d”,(a,b,c),b,c);-這里這里(a , b , c)中的中的“,”是運算符。是運算符。注意:注意:逗號運算符和逗號表達式逗號運算符和逗號表達式 Copyright Wethink Corporation 2010項目實施與實現(xiàn)項目實施與實現(xiàn)3 Copyright Wethink Corporation 2010#include void main() float x,y,a,b,c,d; /定義了定義了6個個float類型的變量類型的變量 printf(“請輸入請輸入x的值:的值:x=”); /提示用戶輸入提示用戶輸入x的值的值 scanf(“%f”,&x); /輸入輸入x printf(“請輸入請輸入y的值:的值:y=”); /提示用戶輸入提示用戶輸入y的值的值 scanf(“%f”,

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論