C語言程序設計第二章_第1頁
C語言程序設計第二章_第2頁
C語言程序設計第二章_第3頁
C語言程序設計第二章_第4頁
C語言程序設計第二章_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、LOGOC語言程序設計語言程序設計 第第2章章 項目中的數(shù)據(jù)類型與數(shù)據(jù)運算項目中的數(shù)據(jù)類型與數(shù)據(jù)運算C語言的基本數(shù)據(jù)類型語言的基本數(shù)據(jù)類型常量和變量常量和變量運算符和表達式運算符和表達式數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換本章小結(jié)本章小結(jié)2.2 理論知識理論知識C語言的基本數(shù)據(jù)類型語言的基本數(shù)據(jù)類型 基本類型基本類型 指針類型指針類型 構造類型構造類型 空類型空類型整型整型 intint字符型字符型 charchar實型實型枚舉型枚舉型單精度浮點型單精度浮點型 floatfloat雙精度浮點型雙精度浮點型 doubledouble數(shù)組類型數(shù)組類型結(jié)構體類型結(jié)構體類型共用體類型共用體類型2.2 理論知識理論

2、知識2.2 理論知識理論知識C語言的基本數(shù)據(jù)類型語言的基本數(shù)據(jù)類型整數(shù)類型整數(shù)類型數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型符數(shù)據(jù)類型符占用字節(jié)數(shù)占用字節(jié)數(shù)取取 值值 范范 圍圍有符號整型有符號整型intint 2 2-2-21515(2(21515-1) -1) 即即-32768-327683276732767短整型短整型short short intint 2 2-2-21515(2(21515-1) -1) 即即-32768-327683276732767長整型長整型long long intint 4 4-2-23131(2(23131-1) -1) 即即-2147483648-214748364821

3、474836472147483647無符號整型無符號整型unsigned unsigned intint 2 20 0(2(21616-1) -1) 即即0 06553565535無符號短整無符號短整型型unsigned short unsigned short intint 2 20 0(2(21616-1) -1) 即即0 06553565535無符號長整無符號長整型型unsigned long unsigned long intint 4 40 0(2(23232-1) -1) 即即0 042949672954294967295 不同的整數(shù)類型表示的數(shù)值范圍不同,在編程時,應根據(jù)程序?qū)φ?/p>

4、數(shù)范圍的實際不同的整數(shù)類型表示的數(shù)值范圍不同,在編程時,應根據(jù)程序?qū)φ麛?shù)范圍的實際需要,靈活選擇上述的整數(shù)類型。需要,靈活選擇上述的整數(shù)類型。int a,b,sum;a=32768;2.2 理論知識理論知識C語言的基本數(shù)據(jù)類型語言的基本數(shù)據(jù)類型實數(shù)類型實數(shù)類型數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型符數(shù)據(jù)類型符占用字節(jié)數(shù)占用字節(jié)數(shù)有效數(shù)字有效數(shù)字取取 值值 范范 圍圍單精度單精度floatfloat4 47 7位位-3.4-3.4101038383.43.410103838雙精度雙精度doubledouble8 81616位位-1.7-1.710103083081.71.710103083080.565447

5、80.5654478546565165162.2 理論知識理論知識C語言的基本數(shù)據(jù)類型語言的基本數(shù)據(jù)類型字符類型字符類型數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型符數(shù)據(jù)類型符占用字節(jié)數(shù)占用字節(jié)數(shù)取取 值值 范范 圍圍字符型字符型charchar1 10 0255255返回返回2.2 理論知識理論知識常量和變量常量和變量常量常量在程序執(zhí)行過程中,其值不能改變的量在程序執(zhí)行過程中,其值不能改變的量直接常量和符號常量直接常量和符號常量直接常量直接常量指在程序中不需要任何說明就可直接使用的常量指在程序中不需要任何說明就可直接使用的常量符號常量符號常量指需要先說明或定義后才能使用的常量指需要先說明或定義后才能使用的常量2

6、.2 理論知識理論知識常量和變量常量和變量直接常量直接常量整型常量整型常量實型常量實型常量字符常量字符常量字符串常量字符串常量2.2 理論知識理論知識常量和變量常量和變量直接常量直接常量整型常量整型常量十進制整數(shù) 如10八進制整數(shù) 如010十六進制整數(shù) 如0 x102.2 理論知識理論知識常量和變量常量和變量直接常量直接常量實型常量實型常量十進制小數(shù)形式:數(shù)字和小數(shù)點組成數(shù)字和小數(shù)點組成如3.141 2.2 理論知識理論知識常量和變量常量和變量直接常量直接常量實型常量實型常量指數(shù)形式:小數(shù)和指數(shù)兩部分組成小數(shù)和指數(shù)兩部分組成 如123.45可以表示為0.12345e+31.2345E+2123

7、45.0e-2 規(guī)范化的指數(shù)形式,在字符規(guī)范化的指數(shù)形式,在字符e(或(或E)之前的小數(shù)部分中,?。┲暗男?shù)部分中,小數(shù)點左邊應有一位(且只能有一位)非零的數(shù)字數(shù)點左邊應有一位(且只能有一位)非零的數(shù)字在使用指數(shù)形式時,一定要注意在字母在使用指數(shù)形式時,一定要注意在字母e或或E之前必須要有數(shù)之前必須要有數(shù)字,且字母字,且字母e或或E之后的指數(shù)必須為整數(shù)之后的指數(shù)必須為整數(shù)如如e6,.e5,-2.4E0.5,5.2e(3+6)(規(guī)范化的指數(shù)形式)(規(guī)范化的指數(shù)形式)2.2 理論知識理論知識常量和變量常量和變量直接常量直接常量字符常量字符常量字符常量是用一對單引號括起來的單個字符如如A、5、+單

8、引號只是分界符,表示字符常量的起止范圍單引號只是分界符,表示字符常量的起止范圍int a,b,c;a=97;b=a; /數(shù)據(jù)類型的自動轉(zhuǎn)換c=1.2547; /1.2547=1;c=1int m,n;M=;2.2 理論知識理論知識常量和變量常量和變量直接常量直接常量字符常量字符常量轉(zhuǎn)義字符:以反斜杠“”開頭的字符轉(zhuǎn)義字符轉(zhuǎn)義字符含含 義義轉(zhuǎn)義字符轉(zhuǎn)義字符含含 義義nn換行,將當前位置移到下一行的開頭換行,將當前位置移到下一行的開頭反斜杠字符反斜杠字符“”tt橫向跳格,跳到下一個橫向跳格,跳到下一個tabtab位置位置 單引號字符單引號字符bb退格退格雙引號字符雙引號字符rr回車,將當前位置移到

9、下行的開頭回車,將當前位置移到下行的開頭 dddddd1 13 3位位8 8進制數(shù)進制數(shù)所代表的字符所代表的字符ff換頁,將當前位置移到下頁的開頭換頁,將當前位置移到下頁的開頭 xhhxhh1 12 2位位1616進制進制數(shù)所代表的字數(shù)所代表的字符符2.2 理論知識理論知識常量和變量常量和變量直接常量直接常量字符常量字符常量將一個字符常量存放到內(nèi)存中,并不是把該字符本身存放到內(nèi)存單元中,而是將該字符相應的ASCII碼存放到該存儲單元中。 字字 符符 類類 別別ASCIIASCII碼范圍碼范圍字字 符符 類類 別別ASCIIASCII碼范圍碼范圍數(shù)字:數(shù)字:009948485757小寫字母:小寫

10、字母:aazz9797122122大寫字母:大寫字母:AAZZ65659090特殊字符特殊字符空格:空格:3232回車:回車:1313如字符如字符a,在內(nèi)存中的實際存儲形式為,在內(nèi)存中的實際存儲形式為011000012.2 理論知識理論知識常量和變量常量和變量直接常量直接常量字符常量字符常量字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以相互轉(zhuǎn)換。一個字符數(shù)據(jù)既可以字符形式輸出,也可以整數(shù)形式輸出。 舉例:舉例:#include void main() char c1,c2; Scanf(“%d,%d”,&c1,&c2); /* printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1

11、,c2);2.2 理論知識理論知識字符型輸出格式符字符型輸出格式符整型輸出格式符整型輸出格式符Scanf()運行結(jié)果:運行結(jié)果:2.2 理論知識理論知識舉例:舉例:#include void main() char c1=97,c2=98; printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2);char c1=a,c2=b;2.2 理論知識理論知識c1和和c2還可以怎樣進行初始化化?還可以怎樣進行初始化化?2.2 理論知識理論知識常量和變量常量和變量直接常量直接常量字符常量字符常量可以將整型量賦值給字符變量可以將字符量賦值給整型變量可以對字符數(shù)據(jù)進行算術

12、運算舉例:舉例:#include void main() char c1=a,c2=b;unsigned char c=c1+c2;printf(“c=%dn”,c);2.2 理論知識理論知識unsigned char c=c1+c2;運行結(jié)果:運行結(jié)果:2.2 理論知識理論知識2.2 理論知識理論知識常量和變量常量和變量直接常量直接常量字符串常量字符串常量字符串常量是用一對雙引號括起來的零個或多個字符如如,Hello,world!,123等等 雙引號僅起定界作用,本身并不是字符串中的內(nèi)容雙引號僅起定界作用,本身并不是字符串中的內(nèi)容 2.2 理論知識理論知識常量和變量常量和變量直接常量直接常量

13、字符串常量字符串常量字符串的長度 指指一個字符串中所包含的字符個數(shù)C語言規(guī)定在存儲字符串常量時,由系統(tǒng)在字符串的末尾自動加一個0作為結(jié)束標志 0在內(nèi)存中占一個字節(jié),它不引起任何控制動作,也不可顯示,只在內(nèi)存中占一個字節(jié),它不引起任何控制動作,也不可顯示,只用于系統(tǒng)判斷字符串是否結(jié)束。用于系統(tǒng)判斷字符串是否結(jié)束。 長度為長度為 n的字符串常量,在內(nèi)存中占用的字符串常量,在內(nèi)存中占用nl個字節(jié)。個字節(jié)。 2.2 理論知識理論知識常量和變量常量和變量直接常量直接常量字符串常量字符串常量字符串中若有轉(zhuǎn)義字符,則應把它視為一個整體,當作一個字符來計算字符串字符串“Hello,world!n”的在內(nèi)存中占

14、據(jù)的字節(jié)數(shù)為的在內(nèi)存中占據(jù)的字節(jié)數(shù)為142.2 理論知識理論知識字符常量與字符串常量的主要區(qū)別字符常量與字符串常量的主要區(qū)別1. 定界符不同定界符不同 字符常量使用字符常量使用,而字符串常量使用,而字符串常量使用“ ”2. 占用內(nèi)存大小不同占用內(nèi)存大小不同 字符常量占一個字節(jié),而字符串常量除了要存儲字符常量占一個字節(jié),而字符串常量除了要存儲有效的字符外,還要存儲一個結(jié)束標志有效的字符外,還要存儲一個結(jié)束標志03. 長度不同長度不同 字符常量只能是單個字符,字符串常量則可以包字符常量只能是單個字符,字符串常量則可以包含零個或多個字符含零個或多個字符2.2 理論知識理論知識字符常量與字符串常量的主

15、要區(qū)別字符常量與字符串常量的主要區(qū)別char c1 =“a”;=a;不符合語法規(guī)則不符合語法規(guī)則為什么呢?為什么呢?字符型變量(字符型變量(char)只占一個字節(jié))只占一個字節(jié)970a0字符串常量字符串常量“a”在計算機內(nèi)占兩個字節(jié)在計算機內(nèi)占兩個字節(jié) C語言沒有專門的字符串變量,如果想將一個字符串存放在變量中,語言沒有專門的字符串變量,如果想將一個字符串存放在變量中,可以使用字符數(shù)組??梢允褂米址麛?shù)組。2.2 理論知識理論知識常量和變量常量和變量符號常量符號常量用符號表示的常量用符號表示的常量 在使用之前必須先定義在使用之前必須先定義 define 標識符標識符 常量常量不是C語句,不必在行

16、末加分號放在程序開頭,函數(shù)體之外“標識符”是以字母或下劃線開頭“標識符”是由字母、數(shù)字和下劃線組成的字符序列 ; 例例2.1:符號常量的使用符號常量的使用 2.2 理論知識理論知識#define PI 3.1415 /定義符號常量定義符號常量PI,表示圓周率表示圓周率main() float r,area; r=5.0; area= PI *r*r; printf(area=%fn,area); area=78.539815運行結(jié)果:運行結(jié)果:PI2.2 理論知識理論知識符號常量的兩個好處符號常量的兩個好處 1. 修改程序方便修改程序方便 2. 見名知意,便于理解程序見名知意,便于理解程序 符

17、號常量的使用符號常量的使用 1. 其值在它的作用域內(nèi)不能改變,也不能再被賦值其值在它的作用域內(nèi)不能改變,也不能再被賦值 2. 符號常量名用大寫,變量名用小寫,以示區(qū)別符號常量名用大寫,變量名用小寫,以示區(qū)別 2.2 理論知識理論知識舉例:舉例:#define PI 3.1415void main() void main() int PI; PI=3.1415; PI=3.1415; PI=3.14159; 2.2 理論知識理論知識常量和變量常量和變量變量變量在程序執(zhí)行過程中,其值可以被改變的量在程序執(zhí)行過程中,其值可以被改變的量 保存程序執(zhí)行過程中的輸入數(shù)據(jù)、中間結(jié)果以及最終結(jié)果保存程序執(zhí)行過

18、程中的輸入數(shù)據(jù)、中間結(jié)果以及最終結(jié)果在使用變量之前,必須先對其進行定義在使用變量之前,必須先對其進行定義 三個基本要素,即三個基本要素,即變量類型變量類型、變量名變量名和和變量的值變量的值 如:如:int choose=1; char yes_no=y;2.2 理論知識理論知識常量和變量常量和變量變量的定義變量的定義“類型說明符類型說明符”用來指定變量的數(shù)據(jù)類型用來指定變量的數(shù)據(jù)類型 當有多個變量時,彼此間要用逗號分隔當有多個變量時,彼此間要用逗號分隔 類型說明符類型說明符 變量變量1,變量變量2, ,變量變量n;2.2 理論知識理論知識注意:注意:1. 變量定義不是可執(zhí)行語句,必須出現(xiàn)在可執(zhí)

19、行變量定義不是可執(zhí)行語句,必須出現(xiàn)在可執(zhí)行語句之前語句之前2. 同一變量只能定義一次,不能重復同一變量只能定義一次,不能重復3. 變量名不能是變量名不能是C語言的關鍵字,要見名知意,并語言的關鍵字,要見名知意,并盡可能簡短盡可能簡短4. 變量的類型應根據(jù)變量的取值范圍來選擇,以變量的類型應根據(jù)變量的取值范圍來選擇,以占用內(nèi)存少、操作簡便為優(yōu)占用內(nèi)存少、操作簡便為優(yōu)5. C語言沒有提供字符串類型,字符串是用字符數(shù)語言沒有提供字符串類型,字符串是用字符數(shù)組或指針來處理的組或指針來處理的舉例:舉例:分期付款的計算分期付款的計算 貸款貸款D元,每月還款元,每月還款P元,月利率元,月利率R,問:多少,問

20、:多少個月個月M能還清?計算能還清?計算M的公式為:的公式為: 若若D=324500元,元,P=3245元,元,R=0.8%,編程求編程求M。2.2 理論知識理論知識logP-log(P-DR)log(1+R)M=思路:思路:1. D和和P都是整數(shù),都是整數(shù),R是小數(shù),是小數(shù),M根據(jù)公式計算出根據(jù)公式計算出來也不一定是整數(shù),因此將來也不一定是整數(shù),因此將R,M定義為實型變量定義為實型變量2. M的計算公式中的計算公式中2.2 理論知識理論知識log(1+R)#includeC的庫函數(shù)的庫函數(shù)#include #includevoid main() int d=324500,p=3245; fl

21、oat r=0.008,m; m=(log(p)-log(p-d*r)/log(1+r); printf(“month=%fn”,m); printf(“total=%fn”,m*p);2.2 理論知識理論知識2.2 理論知識理論知識常量和變量常量和變量變量的賦值變量的賦值在定義變量時賦值在定義變量時賦值 “先定義后賦值先定義后賦值float data1=1.5,data2=2.6;float data1,data2; /變量定義部分變量定義部分data1=1.5;data2=2.6; /變量賦初值變量賦初值返回返回運算符和表達式運算符和表達式描述各種不同運算的符號稱為描述各種不同運算的符號稱

22、為運算符運算符運算符運算符分類分類一元(單目)運算符、二元(雙目)運算符、三元(三目)運算符賦值運算符條件運算符邏輯運算符算術運算符關系運算符2.2 理論知識理論知識!, &, |?:+,-,*,/,%, +, - , = , b?a:b)X=(參數(shù)1?參數(shù)2:參數(shù)3)!2 !4 !0a=2;b=a+;c=+a;a=6;+a;b=+a;c=a;a+;a=a+1;b-;b=b-1;運算符和表達式運算符和表達式運算符運算符優(yōu)先級優(yōu)先級當一個表達式中出現(xiàn)多個不同的運算符時運算的先后順序當一個表達式中出現(xiàn)多個不同的運算符時運算的先后順序單目運算符單目運算符雙目運算符雙目運算符 !+,- - 算術運算符

23、算術運算符關系運算符關系運算符邏輯運算符邏輯運算符條件運條件運算符算符賦值運算符賦值運算符逗號運算符逗號運算符 2.2 理論知識理論知識#include main()Int a=7,b;b=a!=7; printf(“b=%dn”,b);結(jié)果:a=3;b=4,c;c=a!=b;c=+a!=b;c=a-=b;運算符和表達式運算符和表達式運算符運算符結(jié)合性結(jié)合性當一個表達式中出現(xiàn)兩個以上優(yōu)先級相同的運算符時,運當一個表達式中出現(xiàn)兩個以上優(yōu)先級相同的運算符時,運算的方向是從左到右還是從右到左算的方向是從左到右還是從右到左 賦值運算符和條件運算符是從右往左結(jié)合賦值運算符和條件運算符是從右往左結(jié)合 除此

24、之外的雙目運算符都是從左往右結(jié)合的除此之外的雙目運算符都是從左往右結(jié)合的 2.2 理論知識理論知識a=5,b=2,c=9,d=10,f=6,e=-f=7,g=0;X=ab?c:(da)&(cb)a=1c=(ab)?a:b運算符和表達式運算符和表達式算術算術運算符及其表達式運算符及其表達式雙目運算符雙目運算符兩個整數(shù)相除,結(jié)果為整數(shù),舍入方式為“向零取整”2.2 理論知識理論知識加加“+”、減、減“-”、乘、乘“*”、除、除“/”、取余、取余“%” 如:如:int a=5,b=3,c; c=a/b; 運行結(jié)果運行結(jié)果c=? 1 如:如:int a=-5,b=3,c; c=a/b; 運行結(jié)果運行結(jié)

25、果c=? -1 運算符和表達式運算符和表達式算術算術運算符及其表達式運算符及其表達式雙目運算符雙目運算符求余運算,兩側(cè)均應為整型數(shù)據(jù),余數(shù)的符號與被求余數(shù)符號相同2.2 理論知識理論知識如:如:int a=5,b=3,c; c=a%b; 運行結(jié)果運行結(jié)果c=?2 如:如:int a=-5,b=3,c; c=a%b; 運行結(jié)果運行結(jié)果c=?-2 注意:注意:C語言中的算術表達式語言中的算術表達式b2-4ac需寫成需寫成b*b-4*a*c的形式。的形式。8.5%2.58%2=0舉例:舉例:雞兔同籠雞兔同籠 設雞與兔同籠,已知雞與兔的總頭數(shù)為設雞與兔同籠,已知雞與兔的總頭數(shù)為h=16h=16,總腳數(shù)

26、,總腳數(shù)f=40f=40,試編寫,試編寫C C語言程序分別求語言程序分別求出雞的頭數(shù)出雞的頭數(shù)x x與兔的頭數(shù)與兔的頭數(shù)y y。2.2 理論知識理論知識2.2 理論知識理論知識思路:思路:1. x,y,h,f都是整數(shù)都是整數(shù)2.由數(shù)學知識可知:由數(shù)學知識可知:x+y=h 2x+4y=f3.由代數(shù)知識可得由代數(shù)知識可得y=(f-2h)/2 x=h-f#include void main() int h,f,x,y; h=16; f=40; y=(f-2*h)/2; x=h-y; printf(“%d%dn”,x,y);2.2 理論知識理論知識程序清單:程序清單: y=(f-2*h)/2;運算符和

27、表達式運算符和表達式算術算術運算符及其表達式運算符及其表達式單目運算符單目運算符自增運算使單個變量的值增1 自減運算使單個變量的值減12.2 理論知識理論知識自增自增“+”、自減、自減“-” int i=3,a; a=+i; 運行結(jié)果:運行結(jié)果:i=4; int i=3,a; a=i-; 運行結(jié)果:運行結(jié)果:i=2; 運算符和表達式運算符和表達式算術算術運算符及其表達式運算符及其表達式單目運算符單目運算符前置運算,運算符放在變量之前先增減,后運算先增減,后運算 2.2 理論知識理論知識j=+i; i=i+1; j=i;運算符和表達式運算符和表達式算術算術運算符及其表達式運算符及其表達式單目運算

28、符單目運算符前置運算,運算符放在變量之前先增減,后運算先增減,后運算 2.2 理論知識理論知識 int i=3,j; j=+i; 運行結(jié)果:運行結(jié)果:i=j= ?; int i=3,j; j=-i; 運行結(jié)果:運行結(jié)果:i=j= ?; 4 2 運算符和表達式運算符和表達式算術算術運算符及其表達式運算符及其表達式單目運算符單目運算符后置運算,運算符放在變量之后先運算,后增減先運算,后增減2.2 理論知識理論知識j=i+; j=i; i=i+1;運算符和表達式運算符和表達式算術算術運算符及其表達式運算符及其表達式單目運算符單目運算符后置運算,運算符放在變量之后先運算,后增減先運算,后增減2.2 理

29、論知識理論知識 int i=3,j; j=i+; 運行結(jié)果:運行結(jié)果: i=4; j=3; int i=3,j; j=i-; 運行結(jié)果:運行結(jié)果: i=2; j=3; 運算符和表達式運算符和表達式算術算術運算符及其表達式運算符及其表達式單目運算符單目運算符自增、自減運算常用于循環(huán)語句以及指針變量中。它使循環(huán)控制變量加(或減)1,或使指針指向下(或上)一個地址。 自增、自減運算符不能用于常量和表達式。2.2 理論知識理論知識如,如,5+,-(a+b)a+a=a+15+5=5+1運算符和表達式運算符和表達式賦值賦值運算符及其表達式運算符及其表達式簡單運算符簡單運算符復合運算符復合運算符2.2 理論

30、知識理論知識=+=,- =,*=,/=,%=運算符和表達式運算符和表達式賦值賦值運算符及其表達式運算符及其表達式賦值運算符的優(yōu)先級比算術運算符、關系運算符和邏輯賦值運算符的優(yōu)先級比算術運算符、關系運算符和邏輯運算符低運算符低 結(jié)合性為自右向左結(jié)合性為自右向左 先求表達式的值,然后將表達式的值賦給變量 2.2 理論知識理論知識如:如:int a=5; a+=5; 運行結(jié)果運行結(jié)果a= ?10 如:如:int a=5; a*=5; 運行結(jié)果運行結(jié)果a= ? 25 a=a+5;運算符和表達式運算符和表達式關系關系運算符及其表達式運算符及其表達式用于比較兩個操作數(shù)之間的關系,若關系成立,則返回一個邏輯

31、真值“1”,否則返回一個邏輯假值“0”2.2 理論知識理論知識“”,“=”,“b; 運行結(jié)果運行結(jié)果c= ?1 如:如:int a=2,b=3,c; c=ab; 運行結(jié)果運行結(jié)果c= ?0 運算符和表達式運算符和表達式關系關系運算符及其表達式運算符及其表達式前四種運算符的優(yōu)先級相同,后兩種運算符的優(yōu)先級相同 前四種運算符的優(yōu)先級高于后兩種關系運算符的優(yōu)先級比算術運算符低 2.2 理論知識理論知識“”,“=”,“a+b 等價于等價于c(a+b) ;a=6,b=9,c=2;x=a=(b-)=c運算符和表達式運算符和表達式關系關系運算符及其表達式運算符及其表達式關系運算符的優(yōu)先級比賦值運算符高2.2

32、 理論知識理論知識c=ab 等價于等價于c=(ab) ;運算符和表達式運算符和表達式關系關系運算符及其表達式運算符及其表達式2.2 理論知識理論知識#include void main() int x=2,y=3,i,j,k;i=x=y-;j=x=y;k=1;printf(i=%d, j=%d, k=%dn,i,j,k); 運行結(jié)果:運行結(jié)果:i=0,j=1,k=1注意:注意:1.等于運算符等于運算符“=”由兩個等號組成,中間不能有空由兩個等號組成,中間不能有空格格 2.在實際編程時,常用表達式在實際編程時,常用表達式i%2=0判斷整數(shù)判斷整數(shù)i的奇的奇偶性偶性 2.2 理論知識理論知識#in

33、clude void main() int x=2;if(x%2 = 0)printf(%d是偶數(shù)是偶數(shù)n,x);elseprintf(%d是奇數(shù)是奇數(shù)n,x);= 運算符和表達式運算符和表達式邏輯邏輯運算符及其表達式運算符及其表達式返回邏輯真值返回邏輯真值(1)或邏輯假值或邏輯假值(0) ?。寒敳僮鲾?shù)的值為真時,運算結(jié)果為假;當操作數(shù)的值為假時,運算結(jié)果為真 2.2 理論知識理論知識非非“!”、與、與“&”、或、或“|” 如:如:int a=5,c; c=!a; 運行結(jié)果運行結(jié)果c=?0 如:如:int a=0,c; c=!a; 運行結(jié)果運行結(jié)果c=?1 運算符和表達式運算符和表達式邏輯邏輯

34、運算符及其表達式運算符及其表達式用邏輯運算符將一個或多個表達式連接起來的式子用邏輯運算符將一個或多個表達式連接起來的式子 &:當且僅當兩個操作數(shù)的值都為真時,運算結(jié)果為真,否則為假2.2 理論知識理論知識非非“!”、與、與“&”、或、或“|” 如:如:int a=5,b=5,c; c=a & b; 運行結(jié)果運行結(jié)果c=?1如:如:int a=0,b=5,c; c=a & b; 運行結(jié)果運行結(jié)果c=?0 運算符和表達式運算符和表達式邏輯邏輯運算符及其表達式運算符及其表達式用邏輯運算符將一個或多個表達式連接起來的式子用邏輯運算符將一個或多個表達式連接起來的式子 |:當且僅當兩個操作數(shù)的值都為假時,

35、運算結(jié)果為假,否則為真 2.2 理論知識理論知識非非“!”、與、與“&”、或、或“|” 如:如:int a=0,b=0,c; c=a | b; 運行結(jié)果運行結(jié)果c=?0如:如:int a=0,b=5,c; c=a | b; 運行結(jié)果運行結(jié)果c=?1 注意:注意:1.邏輯運算符兩側(cè)的操作數(shù),除可以是邏輯運算符兩側(cè)的操作數(shù),除可以是0和非和非0的整數(shù)的整數(shù)外,也可以是其他任何類型的數(shù)據(jù),如實型、字符型外,也可以是其他任何類型的數(shù)據(jù),如實型、字符型等,但這些值都要根據(jù)規(guī)則看成是邏輯值等,但這些值都要根據(jù)規(guī)則看成是邏輯值 2.2 理論知識理論知識 c & d = 1(邏輯真邏輯真) (邏輯真)(邏輯真

36、) (邏輯真)(邏輯真) 3.4567 & 0 = 0(邏輯真邏輯真) (邏輯假)(邏輯假) (邏輯假)(邏輯假)注意:注意:2.對于邏輯對于邏輯“與與”運算,如果第一操作數(shù)被判定為假,運算,如果第一操作數(shù)被判定為假,系統(tǒng)不再判定或求解第二操作數(shù)系統(tǒng)不再判定或求解第二操作數(shù)2.2 理論知識理論知識#include void main() int a=1,b=2,c=3,d=4,m=5,n=6,x=7;x=(m=ab) & (n=cd);printf(m=%d,n=%d,x=%dn,m,n,x); 運行結(jié)果:運行結(jié)果:m=0,n=6,x=0注意:注意:3.對于邏輯對于邏輯“或或”運算,如果第一操

37、作數(shù)被判定為真,運算,如果第一操作數(shù)被判定為真,系統(tǒng)不再判定或求解第二操作數(shù)系統(tǒng)不再判定或求解第二操作數(shù) 2.2 理論知識理論知識#include void main() int a=1,b=2,c=3,d=4,m=5,n=6,x=7;x=(m=ad);printf(m=%d,n=%d,x=%dn,m,n,x); 運行結(jié)果:運行結(jié)果:m=1,n=6,x=1注意:注意:4. a大于大于b且且b大于大于c 表達式表達式2.2 理論知識理論知識 abc(ab) & (bc)如:如:(43)&(32) =1 432 =(43)2 =12=0運算表達式優(yōu)先級由低到高運算表達式優(yōu)先級由低到高賦值運算符賦值

38、運算符 |&關系運算符關系運算符算術運算符算術運算符!2.2 理論知識理論知識如:如: a=3,b=2,c=6; x=!a|ab=b|c等價于等價于 x=(!a)|(ab)=b)|c運算符和表達式運算符和表達式條件條件運算符及其表達式運算符及其表達式三目運算符三目運算符表達式格式表達式格式如果表達式如果表達式1的值為非的值為非0(即邏輯真),則運算結(jié)果等于(即邏輯真),則運算結(jié)果等于表達式表達式2的值;否則,運算結(jié)果等于表達式的值;否則,運算結(jié)果等于表達式3的值的值 2.2 理論知識理論知識“? :” 表達式表達式1?表達式?表達式2:表達式:表達式3運算符和表達式運算符和表達式條件條件運算符

39、及其表達式運算符及其表達式2.2 理論知識理論知識#include void main() int a=88,b=456,c=147,min;min=(ab)?a:b;printf(min=%dn,min); 運行結(jié)果:運行結(jié)果:min=88運算符和表達式運算符和表達式逗號逗號運算符及其表達式運算符及其表達式表達式格式表達式格式自左至右依次計算各表達式的值,自左至右依次計算各表達式的值,“表達式表達式n”的值即為的值即為整個逗號表達式的值整個逗號表達式的值 2.2 理論知識理論知識“,” 表達式表達式1,表達式,表達式2,表達式,表達式nV=(a=3,b=4,c=5,a*b*c ) 60并不是

40、任何地方出現(xiàn)的逗號,都是逗號運算符,很多情況下,逗號僅作分隔符并不是任何地方出現(xiàn)的逗號,都是逗號運算符,很多情況下,逗號僅作分隔符 int a=3,b=5,c=7;運算符和表達式運算符和表達式sizeof運算符及其表達式運算符及其表達式表達式格式表達式格式返回變量、常量的類型在內(nèi)存中占用的字節(jié)數(shù)返回變量、常量的類型在內(nèi)存中占用的字節(jié)數(shù) 2.2 理論知識理論知識sizeof(類型名或表達式)(類型名或表達式)運算符和表達式運算符和表達式sizeof運算符及其表達式運算符及其表達式2.2 理論知識理論知識#include void main() int a,b,c;a=sizeof(int); b=sizeof(float); c=sizeof(“Hellot); printf(a=%d,b=%d,c=%dn,a,b,c); 運行結(jié)果:運行結(jié)果:a=4,b=4,c=7返回返回數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換自動自動類型轉(zhuǎn)換類型轉(zhuǎn)換2.2 理論知識理論知識數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換自動自動類型轉(zhuǎn)換類型轉(zhuǎn)換字節(jié)少的數(shù)據(jù)轉(zhuǎn)換成字節(jié)多的字節(jié)少的數(shù)據(jù)轉(zhuǎn)換成字節(jié)多的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論