c語言第二章類型、運算符與表達式_第1頁
c語言第二章類型、運算符與表達式_第2頁
c語言第二章類型、運算符與表達式_第3頁
c語言第二章類型、運算符與表達式_第4頁
c語言第二章類型、運算符與表達式_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章 類型、運算符與表達式肖麗第2章 主要內(nèi)容 變量名變量名2.2 2.2 數(shù)據(jù)與數(shù)據(jù)類型數(shù)據(jù)與數(shù)據(jù)類型2.3 2.3 2.1 變量名有關(guān)變量名的規(guī)定有關(guān)變量名的規(guī)定(1 1)字母、數(shù)字和下劃線組成,以字母或下劃線開頭)字母、數(shù)字和下劃線組成,以字母或下劃線開頭sumsum、stu_namestu_name、studentNamestudentName(2 2)不能用系統(tǒng)中的關(guān)鍵字作為變量名)不能用系統(tǒng)中的關(guān)鍵字作為變量名(3 3)變量名中的字母是區(qū)分大小寫的。)變量名中的字母是區(qū)分大小寫的。NAME NAME namename 表示兩個不同的標識符表示兩個不同的標識符int a;.A=5;

2、例:判斷下列標識符號合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123 . . 2.2 數(shù)據(jù)類型及長度C語言語言的數(shù)據(jù)類型有的數(shù)據(jù)類型有2.2 數(shù)據(jù)類型及長度關(guān)于類型的含義關(guān)于類型的含義1.1.不同類型數(shù)據(jù)在內(nèi)存中占不同的不同類型數(shù)據(jù)在內(nèi)存中占不同的存儲空存儲空間間,且采取不同的,且采取不同的存儲形式。存儲形式。2.2.不同類型數(shù)據(jù)對應(yīng)不同的不同類型數(shù)據(jù)對應(yīng)不同的取值范圍。取值范圍。intint型數(shù)的表示范圍型數(shù)的表示范圍: :存儲長度存儲長度1616位二進制位二進制(2(2By

3、te)Byte)補碼表示補碼表示2.2 數(shù)據(jù)類型及長度關(guān)于類型的含義關(guān)于類型的含義1.1.不同類型數(shù)據(jù)在內(nèi)存中占不同的不同類型數(shù)據(jù)在內(nèi)存中占不同的存儲空存儲空間間,且采取不同的,且采取不同的存儲形式。存儲形式。2.2.不同類型數(shù)據(jù)對應(yīng)不同的不同類型數(shù)據(jù)對應(yīng)不同的取值范圍。取值范圍。3.3.數(shù)據(jù)類型確定了允許對其進行的數(shù)據(jù)類型確定了允許對其進行的操作。操作。2.3 常量與變量聲明基本類型基本類型整型整型int字符型字符型 char浮點型浮點型 float ,double按照數(shù)據(jù)在程序中的取值:按照數(shù)據(jù)在程序中的取值:值保持不變值保持不變-常量常量 值隨程序運行變化值隨程序運行變化-變量變量x=2

4、 * y2.3 常量與變量聲明常量基本知識常量基本知識1. 在程序運行中,其值保持不變。在程序運行中,其值保持不變。 2. 表示方法:表示方法:整型整型 100,125,-100浮點型浮點型 3.14 , 0.125字符型字符型 a, b字符字符串常量串常量 “string”3. 符號常量符號常量:#define PI 3.141592.3 常量與變量聲明變量基本知識變量基本知識1. 在程序運行中,值發(fā)生變化。在程序運行中,值發(fā)生變化。 2. 必須先定義,再使用。必須先定義,再使用。3. 變量通過變量名標識:變量通過變量名標識:memoryaint a,b;類型類型 變量名表變量名表變量變量2

5、562563 3u變量名和內(nèi)存中的存儲單元相變量名和內(nèi)存中的存儲單元相對應(yīng)。編寫程序時通過變量名對應(yīng)。編寫程序時通過變量名來存、取存儲單元。來存、取存儲單元。2.3 常量與變量聲明一、整型數(shù)據(jù)一、整型數(shù)據(jù)1.整型常量整型常量常量表示形式常量表示形式十進制十進制 八進制八進制十六進制十六進制1234加前導(dǎo)加前導(dǎo)0 01234,0125加前導(dǎo)加前導(dǎo)0 x 0 x123,0 xffff思考思考下列整型常量哪些是非法的?下列整型常量哪些是非法的? 012012,oX7AoX7A,0000,078078,0 x5Ac0 x5Ac,-0 xFFFF-0 xFFFF,00340034,7B7B。首字符不首字

6、符不能是字母能是字母o o 八進制數(shù)中八進制數(shù)中不能有數(shù)字不能有數(shù)字8 8 十進制數(shù)中十進制數(shù)中不能有字母不能有字母B B 2.3 常量與變量 掌握要點掌握要點 1 有幾種定義形式有幾種定義形式 2 每種形式占存儲空間的大小每種形式占存儲空間的大小 3 取值范圍取值范圍 4 輸入輸出格式輸入輸出格式一、整型數(shù)據(jù)一、整型數(shù)據(jù)1.整型常量整型常量2.3 常量與變量聲明一、整型數(shù)據(jù)一、整型數(shù)據(jù)2.整型變量整型變量2.3 常量與變量聲明一、整型數(shù)據(jù)一、整型數(shù)據(jù)1.整型變量整型變量 輸入輸出格式輸入輸出格式 十進制:十進制:d 八進制:八進制:o 十六進制:十六進制:x例:輸入一個十進制數(shù),然后分別以十

7、進制、八進制和十六進制輸出。 main( ) int num; printf(num=); scanf(%d,&num); printf(%d=%dn,num,num); printf(%d=0%on,num,num); printf(%d=0X%xn,num,num);這個程序有沒有錯?注意:整型數(shù)據(jù)的溢出整型數(shù)據(jù)的溢出#include main() int a,b;a=32767; b=a+1;printf(%d,%d,a,b);32767,-327682.3 常量與變量聲明二、浮點型數(shù)據(jù)二、浮點型數(shù)據(jù)1.浮點型常量浮點型常量表示形式表示形式小數(shù)小數(shù)指數(shù)指數(shù)0.1233e-3實型常量只能用

8、十進制形實型常量只能用十進制形式表示,不能用八進制和式表示,不能用八進制和十六進制十六進制注意:注意:(1)當整數(shù)部分或小數(shù)部分為0時,可省略不寫,但不能同時缺?。ā?.0”不能寫成“.”)(2)小數(shù)點是小數(shù)部分的標志,不能省略如: : 234.5 -3.6 .156 234.5 -3.6 .156 -.034 -.034 0. 78.0. 78.注意:注意:(1)指數(shù)部分只能是整數(shù),并且指數(shù)形式的3個組成部分不能省略如: : 12.34e 5E e 5e3.612.34e 5E e 5e3.6(2)一個實數(shù)可以有多種表示形式如: : 789.989 789.989 表示表示 789.989

9、789.989e0e0 78.9989e1 78.9989e1 7.89989e2 7.89989e2 0.789989e3 0.789989e3 等等 2.3 常量與變量聲明二、浮點型數(shù)據(jù)二、浮點型數(shù)據(jù)2.浮點型變量浮點型變量輸入輸出形式輸入輸出形式 %f ,%e 類型類型 類型定義符類型定義符 長度長度 數(shù)的范圍數(shù)的范圍單精度單精度 float float 4 4 -3.4E38+3.4E38雙精度雙精度 doubledouble 8 8 -1.7E308+1.7E308長雙精度長雙精度 long double 16long double 16注意#include main()float

10、a,b;a=123456.789e5 b=a+20;printf(“a=%f”,a);printf(“b=%f”,b);程序運行結(jié)果:a=12345678848.000000b=12345678848.000000要避免將一個很大要避免將一個很大的數(shù)和一個很小的的數(shù)和一個很小的數(shù)直接相加或相減數(shù)直接相加或相減我們來一起做一個小程序編編寫一個程序?qū)懸粋€程序,提示用提示用戶輸戶輸入入圓圓的半徑,求的半徑,求圓圓的周的周長長和面和面積積。 。2.3 常量與變量聲明三、字符型數(shù)據(jù)三、字符型數(shù)據(jù)1.字符型常量字符型常量(1) 用單引號包含的一個字符是字符型常量用單引號包含的一個字符是字符型常量(2)只能

11、包含一個字符)只能包含一個字符(3) 有些以有些以“”開頭的特殊字符稱為轉(zhuǎn)義字符開頭的特殊字符稱為轉(zhuǎn)義字符a, A, 1abc“a”2.3 常量與變量聲明三、字符型數(shù)據(jù)三、字符型數(shù)據(jù)1.字符型常量字符型常量常用轉(zhuǎn)義字符常用轉(zhuǎn)義字符n n 換行換行 t t 水平制表水平制表, ,跳到下一個跳到下一個tabtab位置位置 r r 回回車,從當前位置移到車,從當前位置移到本行本行開頭開頭bb 退格,從當前位置移到前一列退格,從當前位置移到前一列 反反斜杠斜杠 單引號單引號 雙引號雙引號 2.3 常量與變量聲明三、字符型數(shù)據(jù)三、字符型數(shù)據(jù)2.字符型變量字符型變量(1) 定義形式定義形式(2) 占存儲空

12、間占存儲空間(3) 輸入輸出形式輸入輸出形式 (4) 字符型數(shù)據(jù)在內(nèi)存中以相應(yīng)的字符型數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII值存儲值存儲char一個字節(jié)一個字節(jié)%ca ASCII值為值為 97 內(nèi)存中存儲形式內(nèi)存中存儲形式0 1 1 0 0 0 0 12.3 常量與變量聲明三、字符型數(shù)據(jù)三、字符型數(shù)據(jù)2.字符型變量字符型變量在在ASCII碼范圍內(nèi),整型數(shù)據(jù)與字符型數(shù)據(jù)可以通用碼范圍內(nèi),整型數(shù)據(jù)與字符型數(shù)據(jù)可以通用#include main( ) char c ; int i c = c; i=97; printf (%c %d, c,c ); printf (%c,%d, i, i );運行結(jié)果:運行

13、結(jié)果:c 99c 99 a,97 a,972.3 常量與變量聲明四、字符串常量(常量表達式)四、字符串常量(常量表達式)2.字符型變量字符型變量1.雙引號內(nèi)的一串字符雙引號內(nèi)的一串字符 “china”2.n個字符組成的字符串常量個字符組成的字符串常量, 在內(nèi)存中占物理空間為在內(nèi)存中占物理空間為n+1 個字節(jié)。個字節(jié)。3.字符串長度字符串長度c hi na0字符串結(jié)束標記字符串結(jié)束標記“This is C stringThis is C string” ” 串長串長 16 16 “a” a” 串長串長 1 1 “ ” “ ” (空格)串長空格)串長 1 1 “” “” (不含空格)串長不含空格)

14、串長 0 02.4 類型轉(zhuǎn)換混合運算:10a1.5-8765.1234*b進行運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型。隱式轉(zhuǎn)換規(guī)則:隱式轉(zhuǎn)換規(guī)則:(1)低類型向高類型轉(zhuǎn)換例:i為int變量,f為float變量 d為double變量,e為long型 10ai*fd/e(2)賦值符號“”右邊的 類型轉(zhuǎn)換成左邊的類型doublefloatlongunsignedintchar,short2.4 類型轉(zhuǎn)換強制轉(zhuǎn)換規(guī)則:強制轉(zhuǎn)換規(guī)則: (數(shù)據(jù)類型名)(表達式數(shù)據(jù)類型名)(表達式) 如:如: (intint) (10) (10a+ia+i* *f fd/ed/e) ) 如:如: float x=12.3

15、float x=12.3; y=(y=(int)xint)x;變量賦初值C語言允許在定義變量的同時使變量初始化。 如:int a=3; float f=3.56; char c=a;也可以使被定義的變量的一部分賦初值。 如:int a,b,c=5;也可以對幾個變量賦予同一個初值。 如:int a=b=c=3;2.4 數(shù)組的基本用法數(shù)組:數(shù)組:數(shù)組是有限個相同的數(shù)據(jù)類型的數(shù)據(jù)分量數(shù)組是有限個相同的數(shù)據(jù)類型的數(shù)據(jù)分量的有序集合的有序集合 數(shù)組的三要素 相同的數(shù)據(jù)類型 (定義數(shù)組時規(guī)定) 有限的成員個數(shù) (定義數(shù)組時規(guī)定) 彼此有序的排列 (引用數(shù)組元素時的下標)int a5; a0=1;a1=2;

16、.2.4 數(shù)組的基本用法(1 1)數(shù)組必須先定義,再使用)數(shù)組必須先定義,再使用定義時定義時 類型類型 數(shù)組名數(shù)組名NN(2 2)數(shù)組中的元素必須逐一引用)數(shù)組中的元素必須逐一引用引用時引用時 數(shù)組名數(shù)組名 下標下標 a0,a1,a9為數(shù)組為數(shù)組a中的所有元素中的所有元素int a10下標范圍從下標范圍從 0 到到 N-1 下標表示了元素在數(shù)組中的位置,可下標表示了元素在數(shù)組中的位置,可以是以是整型常量整型常量或或整型表達式。整型表達式。如:如: a6 a2*3 ai ai+j說明說明練習(xí):假定已經(jīng)將數(shù)分配給以下變量:a2a1 3b1c4X0 5X1 57X2 42X3 18X4 98X5 7

17、6X6 6寫出以下數(shù)組分量(下標變量的值)寫出以下數(shù)組分量(下標變量的值):x3= x6= xa*a1= xa+a1= xc= xxa+c-a1= xxa1-xa+c-a*c= xa1-a-b= 1866769818985main( ) int i,a5; for (i=0;i=0;i-) printf(“%d,”,ai); 運行結(jié)果: 5,4,3,2,1仔細觀察:看運行仔細觀察:看運行結(jié)果有沒有錯誤?結(jié)果有沒有錯誤?main( ) int i,a5; for (i=0;i=0;i-) printf(“%d,”,ai); 例題:假設(shè)有如下數(shù)據(jù):例題:假設(shè)有如下數(shù)據(jù):10,11,6,15,21,

18、6 要求用數(shù)組類型寫一程序按下列順序輸出:要求用數(shù)組類型寫一程序按下列順序輸出:6,21,15,6,11,10分析:將數(shù)據(jù)的順序倒過來分析:將數(shù)據(jù)的順序倒過來#include main( ) int i,a6; for (i=0;i=0;i-) printf(%d,ai); 思考?思考? 1、若每行輸出若每行輸出2個數(shù)個數(shù)?如何修改程序?如何修改程序? printf(%d,ai); if (i%2= = 0) printf(n); 2.5 算術(shù)運算符一、認識一、認識C C中的運算符和表達式中的運算符和表達式1.運算符運算符運算符運算符 運算分量運算分量X= 5 + b * c 對數(shù)據(jù)進行對數(shù)據(jù)

19、進行運算的符號運算的符號被加工被加工的數(shù)據(jù)的數(shù)據(jù)表達式表達式算術(shù)運算符算術(shù)運算符賦值運算符賦值運算符關(guān)系運算符關(guān)系運算符邏輯運算符邏輯運算符逗號運算符逗號運算符條件運算符條件運算符. 運算符運算符2.5 算術(shù)運算符2.2.表達式的運算結(jié)果稱為表達式的表達式的運算結(jié)果稱為表達式的值值 1. 1. 運算符和運算分量構(gòu)成運算符和運算分量構(gòu)成表達式表達式2. 2. 表達式表達式算術(shù)表達式算術(shù)表達式賦值表達式賦值表達式關(guān)系表達式關(guān)系表達式邏輯表達式邏輯表達式逗號表達式逗號表達式條件表達式條件表達式. 2.5 算術(shù)運算符3. 3. 運算符與運算分量的關(guān)系運算符與運算分量的關(guān)系一元運算符一元運算符二元運算符

20、二元運算符三元運算符三元運算符(1)一元運算符的優(yōu)先級高于二元運算符)一元運算符的優(yōu)先級高于二元運算符(2)一元運算符從右向左結(jié)合)一元運算符從右向左結(jié)合(3)二元運算符從左向右結(jié)合)二元運算符從左向右結(jié)合2.5 算術(shù)運算符二二. .算術(shù)運算符算術(shù)運算符1. 1. 共有共有5 5個:個:+ +,- -,* *,/ /,% %2. “-”2. “-”作為負號時為一元運算符作為負號時為一元運算符3. % 3. % 運算只適用于整型數(shù)運算只適用于整型數(shù)4.4. 優(yōu)先級優(yōu)先級: :5.5.結(jié)合性結(jié)合性: : 從左向右從左向右一元一元: -: -二元二元: :* *, /, %, /, %二元二元:+,

21、-:+,-取模(求余數(shù))取模(求余數(shù))a=10%4a的值為的值為22.5 算術(shù)運算符三三. .自增、自減運算符自增、自減運算符1. 1. 變量自身加(減)變量自身加(減)1 1 k =k+1k + 先使用變量先使用變量k k的值,再加的值,再加 1 1+ k 先加先加1 1,再使用變量,再使用變量 k k的值的值 k = k-1k - - 先使用變量先使用變量k k的值,再減的值,再減 1 1- - k 先減先減1 1,再使用變量,再使用變量k k 的值的值 k=3; printf( “%d”, k +); i=3; printf( “%d”, + i); 輸出輸出 3 3 后后, , k k

22、 的值為的值為 4 4輸出輸出4 42.5 算術(shù)運算符三三. .自增、自減運算符自增、自減運算符2. 2. 只能用于變量,不能用于表達式和常量只能用于變量,不能用于表達式和常量(i+k) + , - - 33. 3. 優(yōu)先級:優(yōu)先級:高高于二元算術(shù)運算符于二元算術(shù)運算符i=3; k=i+ + i+ + i+;printf(“%d,%d”,i,i+)容易 產(chǎn)生歧義例例 # include main( ) int a , b , s ; a = 5 ; b = 5 ; s= a+b ; printf(“%d,%d,%dn”,a,b,s); s= a+ +b; printf(“%d,%d,%dn”,

23、a,b,s); s= +a+b; printf(“%d,%d,%dn”,a,b,s); s= - -a +b; printf(“%d,%d,%dn”,a,b,s); s= a- - +b; printf(“%d,%d,%dn”,a,b,s); s= a + b; printf(“%d,%d,%dn”,a,b,s); s = a + b ; s = a+ +b ; s = +a +b ; s = - -a +b ; s = a- - +b ; s = a + b ; a=5, b=55+5=105+5=107+5=126+5=116+5=115+5=10 a b s5 5 106 5 107 5

24、 126 5 115 5 115 5 10例:例: int p, i = 2, j = 3; p = -i+; p = ? i = ? p = i+j; p = ? i = ? j = ? p = i+-j; p = ? i = ? j = ? p = i+-j; p = ? i = ? j = ? p = i+i+; p = ? i = ? 負號運算符和負號運算符和“”運算符同優(yōu)先級,結(jié)合方運算符同優(yōu)先級,結(jié)合方向為向為“自右向左)自右向左)2.6 賦值運算符與表達式1.1.將一個常量或一個表達式的值賦給一個變量稱為將一個常量或一個表達式的值賦給一個變量稱為賦值。賦值。 x = 5; y =

25、 x + 10;2.2.可以將一個浮點型賦給一個整型,或?qū)⒁粋€整型可以將一個浮點型賦給一個整型,或?qū)⒁粋€整型賦給一個浮點型。賦給一個浮點型。 int x; x=5.3; x的值為的值為 5 float y=5; y的的值為值為 5.0000003.3.賦值運算的優(yōu)先級。賦值運算的優(yōu)先級。比算術(shù)運算低比算術(shù)運算低4.4.賦值運算的結(jié)合性。賦值運算的結(jié)合性。從右向左從右向左x = y = 52.6 賦值運算符與表達式復(fù)合賦值運算符和復(fù)合賦值表達式復(fù)合賦值運算符和復(fù)合賦值表達式。賦值運算符兩側(cè)出賦值運算符兩側(cè)出現(xiàn)相同的變量現(xiàn)相同的變量x=x+nx=x-nx=x*nx=x/nx=x%nx + = nx

26、 - = nx * = nx / = nx% = nx=x+nn 為常數(shù)為常數(shù)x+=n#include main( ) int a, b, c, d, e; a=2; b=5 ;c= 6;d=10; a + =b; b- =c; c * =d; d / =a; a%=c; printf(“%d,%d,%d,%dn”, a , b , c , d); 7,-1,60,12.6 賦值運算符與表達式賦值表達式賦值表達式賦值操作不僅可以出現(xiàn)在賦值語句中,也可以以表賦值操作不僅可以出現(xiàn)在賦值語句中,也可以以表達式形式出現(xiàn)在其它語句中,如達式形式出現(xiàn)在其它語句中,如:a=b=c=5a=b=c=5a=5+(

27、c=6)a=5+(c=6)a=(b=4)+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)a=(b=10)/(c=2)printf(“%d”,aprintf(“%d”,a=b)=b)2.7 關(guān)系運算符與邏輯運算符關(guān)系運算和邏輯運算經(jīng)常作為條件語句和循環(huán)語句關(guān)系運算和邏輯運算經(jīng)常作為條件語句和循環(huán)語句中的條件,其結(jié)果為一中的條件,其結(jié)果為一邏輯值邏輯值 A A和和 B B中至少有一個大于中至少有一個大于 C C如何用如何用C C語言描述語言描述 A A和和 B B全部大于全部大于 C CA A為不大于為不大于100 100 的的 偶偶 數(shù)數(shù)2.7 關(guān)系運算符與邏輯運算符一、關(guān)系運

28、算符與關(guān)系表達式一、關(guān)系運算符與關(guān)系表達式1.1.六個關(guān)系運算符六個關(guān)系運算符 大于大于 大于等于大于等于 = = 小于小于 不等不等 != != 小于等于小于等于=babc2.7 關(guān)系運算符與邏輯運算符一、關(guān)系運算符與關(guān)系表達式一、關(guān)系運算符與關(guān)系表達式4.4. 關(guān)系表達式關(guān)系表達式(1 1)關(guān)系運算符與運算分量構(gòu)成關(guān)系表達式)關(guān)系運算符與運算分量構(gòu)成關(guān)系表達式(2 2)關(guān)系表達式的結(jié)果是一個邏輯值,根據(jù)關(guān)系是否)關(guān)系表達式的結(jié)果是一個邏輯值,根據(jù)關(guān)系是否滿足,分別取滿足,分別取 1 1,或,或 0 0int i=1,j=7,a; a=i+(j%4!=0)a的值?的值?結(jié)果:結(jié)果:a=22.

29、7 關(guān)系運算符與邏輯運算符一、關(guān)系運算符與關(guān)系表達式一、關(guān)系運算符與關(guān)系表達式4.4. 關(guān)系表達式關(guān)系表達式(3 3)使用關(guān)系表達式需要注意)使用關(guān)系表達式需要注意 1 1) 數(shù)學(xué)上,判斷數(shù)學(xué)上,判斷x x是否在區(qū)間是否在區(qū)間 a,ba,b 時,習(xí)慣上寫成時,習(xí)慣上寫成a=x=ba=x=b,但在,但在C C 中,必須寫成中,必須寫成 a=x & x=ba=x & x0 a0 的值為邏輯的值為邏輯 1 1 3 3) 在數(shù)學(xué)中,在數(shù)學(xué)中,5 2 7 8 5 2 7 8 無效,但無效,但C C中是允許的中是允許的 4 4)關(guān)系表達式的結(jié)果可以當成整型數(shù))關(guān)系表達式的結(jié)果可以當成整型數(shù)int a=3,

30、b=5,c=7,d; d = a c邏輯邏輯117邏輯邏輯02.7 關(guān)系運算符與邏輯運算符一、邏輯運算符與邏輯表達式一、邏輯運算符與邏輯表達式1.31.3個邏輯運算符個邏輯運算符 & (& (與與): ): 兩邊為真,結(jié)果為真兩邊為真,結(jié)果為真 | ( | (或或) ):兩邊有一個為真,結(jié)果為真:兩邊有一個為真,結(jié)果為真 ! ( ! (非非) ):真為假,假為真:真為假,假為真例:例:a&b 若若a,b為真,則為真,則a&b 為真為真 a|b 若若a,b之一為真,則之一為真,則a|b 為真為真 !a 若若a為真,則為真,則!a為假為假2.7 關(guān)系運算符與邏輯運算符一、邏輯運算符與邏輯表達式一、

31、邏輯運算符與邏輯表達式2.2.優(yōu)先級優(yōu)先級 !( (非)非)& (& (與與)|()|(或或) ) 邏輯運算與其他運算相比:邏輯運算與其他運算相比: “ “!”!”的優(yōu)先級最高,的優(yōu)先級最高,“&”&”和和“|”|”低于關(guān)系運算符。低于關(guān)系運算符。3.3.結(jié)合性結(jié)合性 &和和|是從左向右,!是從右向左是從左向右,!是從右向左例:(ab)&(xy) 可寫成可寫成ab&xy (a=b)|(x=y) 可寫成可寫成a=b|x=y例:例:a=5,b=7,c=4,d=3x=(a+b)(c+d)&(da)先先做算術(shù)運算,再做關(guān)做算術(shù)運算,再做關(guān)系判斷,將最后結(jié)果賦系判斷,將最后結(jié)果賦給給x5 2 7 85

32、2 7 8從左向右運算從左向右運算 (52) (52)邏輯值為邏輯值為1 1 (17) (17)邏輯值為邏輯值為0 0 (08) (08)邏輯值為邏輯值為0 0整個表達式的值為整個表達式的值為 0 02.7 關(guān)系運算符與邏輯運算符一、邏輯運算符與邏輯表達式一、邏輯運算符與邏輯表達式4.4.邏輯表達式邏輯表達式 用邏輯運算符將關(guān)系運算表達式或邏輯量連接起來構(gòu)用邏輯運算符將關(guān)系運算表達式或邏輯量連接起來構(gòu)成邏輯表達式成邏輯表達式 (1 1)表達式的值為一個邏輯量)表達式的值為一個邏輯量“真真”或或“假假”,分,分別用別用1 1和和0 0表示表示 (2 2) 在判斷一個量是否為在判斷一個量是否為“真

33、真”時,以時,以0 0代表假,代表假,以以“非非0”0”代表真代表真 例:若例:若a a=4=4,則,則!a!a的值為的值為0 0 若若a a=4=4,b=5b=5,則,則a&ba&b的值為的值為1 1 同學(xué)們:同學(xué)們:! !a|ba|b 的值為多少?的值為多少?任何非零實任何非零實數(shù)均可作為數(shù)均可作為邏輯上的邏輯上的1 1求邏輯表達式的值求邏輯表達式的值1 ) 14&47 2 ) 143 ) !(2=5) 4 ) ! ( 1 3) | (25)5 ) !(4=6)&(3 x=(ab)?a:bb)?a:b 當當 a=9,b=5a=9,b=5時,時,x=9x=92.8 條件表達式一、條件表達式一、條件表達式3.3.優(yōu)先級優(yōu)先級 高于賦值,低于其他高于賦值,低于其他4 4. .結(jié)合性:從右向左結(jié)合性:從右向左 z=(ab)?a:(ad)?c:dz=(ab)?a:(ad)?c:d5.5.數(shù)據(jù)類型可以不同數(shù)據(jù)類型可以不同 xxy?a:by?a:b執(zhí)行執(zhí)行:int x=10,y=9; int a,b,c;a=(- -x=y+)?-x:+y;b=x+; c=y;后后a,b,c? a, b, cA) 9, 9, 9B) 8, 8, 10C) 8,10, 9D) 1,11,10z=(ab)?a:(

溫馨提示

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

評論

0/150

提交評論