第二章 C程序設(shè)計初步_第1頁
第二章 C程序設(shè)計初步_第2頁
第二章 C程序設(shè)計初步_第3頁
第二章 C程序設(shè)計初步_第4頁
第二章 C程序設(shè)計初步_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章第二章c c程序設(shè)計初步程序設(shè)計初步(2)(2)c語言程序設(shè)計語言程序設(shè)計 programming in c2021年11月23日18時12分第2章 c程序設(shè)計初步2c語語言言數(shù)數(shù)據(jù)據(jù)類類型型原子類型:原子類型:基本數(shù)據(jù)類型基本數(shù)據(jù)類型數(shù)值數(shù)值類型類型非數(shù)值非數(shù)值類型類型整型整型有符號有符號短整型短整型(short)無符號無符號短整型短整型(unsigned short)有符號整型(有符號整型(int)無符號整型(無符號整型( unsigned int)有符號有符號長整型長整型(long)無符號無符號長整型長整型( unsigned long)實(shí)型實(shí)型(浮點(diǎn)型)(浮點(diǎn)型)單精度型(單精度

2、型(float)雙精度型(雙精度型(double)字符類型(字符類型(charchar)空類型(空類型(voidvoid)結(jié)構(gòu)體結(jié)構(gòu)體 (struct)枚舉類型枚舉類型(enum)(c語言的特殊數(shù)據(jù)類型語言的特殊數(shù)據(jù)類型)構(gòu)造類型構(gòu)造類型指針類型指針類型共用體(共用體(union)數(shù)組(數(shù)組(array)上講內(nèi)容回顧上講內(nèi)容回顧2021年11月23日18時12分第2章 c程序設(shè)計初步3上講內(nèi)容回顧上講內(nèi)容回顧常量常量l 整型常量整型常量l 實(shí)型常量實(shí)型常量l 字符型常量字符型常量l 字符串常量字符串常量l 符號常量符號常量變量變量 定義聲明定義聲明 變量賦值變量賦值 變量使用變量使用2021年

3、11月23日18時12分第2章 c程序設(shè)計初步42.2.3如何確定問題領(lǐng)域的數(shù)據(jù)及其類型如何確定問題領(lǐng)域的數(shù)據(jù)及其類型 分析:分析:【例例2-32-3】理解程序設(shè)計中數(shù)據(jù)、變量的選擇和確定。若理解程序設(shè)計中數(shù)據(jù)、變量的選擇和確定。若編程計算商場某種商品打折之后的價格,需要定義哪些數(shù)編程計算商場某種商品打折之后的價格,需要定義哪些數(shù)據(jù)(常量和變量),數(shù)據(jù)類型如何確定?據(jù)(常量和變量),數(shù)據(jù)類型如何確定? (1 1)需求分析:輸入商品原價和折扣率,計算并輸出商品)需求分析:輸入商品原價和折扣率,計算并輸出商品打折之后的價格。打折之后的價格。(2 2)設(shè))設(shè), ,商品原價、折扣率和打折之后的價格分別

4、用變量商品原價、折扣率和打折之后的價格分別用變量a a、b b、p p表示,則計算公式為:表示,則計算公式為:p=a*b 其中其中a,b為輸入變量,為輸入變量,p為輸出變量。為輸出變量。(3 3)根據(jù)實(shí)際,商品的原價、折扣率和打折之后的價格選)根據(jù)實(shí)際,商品的原價、折扣率和打折之后的價格選為實(shí)數(shù)較合理。變量定義語句如下:為實(shí)數(shù)較合理。變量定義語句如下: float a,b,p;2021年11月23日18時12分第2章 c程序設(shè)計初步5本講內(nèi)容本講內(nèi)容一一、輸入輸出輸入輸出函數(shù)的簡單應(yīng)用函數(shù)的簡單應(yīng)用 (2.4.1 )二二、運(yùn)算符、運(yùn)算符(operator)和表達(dá)式和表達(dá)式(expression

5、) ( 2.3 )2021年11月23日18時12分第2章 c程序設(shè)計初步6一一、輸入輸出輸入輸出函數(shù)的簡單應(yīng)用函數(shù)的簡單應(yīng)用1.格式輸出函數(shù)格式輸出函數(shù)printf2.格式輸入函數(shù)格式輸入函數(shù)2021年11月23日18時12分第2章 c程序設(shè)計初步71、格式輸出函數(shù)、格式輸出函數(shù)printfprintf函數(shù)簡單調(diào)用形式:函數(shù)簡單調(diào)用形式:功能功能1:按原樣輸出字符串。:按原樣輸出字符串。 printf(字符串字符串);2021年11月23日18時12分第2章 c程序設(shè)計初步8【例例】用用printfprintf函數(shù)輸出如下內(nèi)容。函數(shù)輸出如下內(nèi)容。 #include stdio.hvoid m

6、ain(void) printf(nt=n);printf(t 星月的來由星月的來由 n);printf(t n);printf(t 樹枝想去撕裂天空,樹枝想去撕裂天空, n);printf(t 但卻只戳了幾個微小的窟窿但卻只戳了幾個微小的窟窿, n);printf(t 它透出了天外的光亮,它透出了天外的光亮, n);printf(t 人們把它叫作月亮和星星。人們把它叫作月亮和星星。 n);printf(nt=n);2021年11月23日18時12分第2章 c程序設(shè)計初步91、格式輸出函數(shù)、格式輸出函數(shù)printf功能功能2:按格式說明符輸出對應(yīng)的數(shù)據(jù)項(xiàng)。:按格式說明符輸出對應(yīng)的數(shù)據(jù)項(xiàng)。 pr

7、intf(%格式說明符格式說明符, 輸出數(shù)據(jù)輸出數(shù)據(jù));不同的數(shù)據(jù)類型對應(yīng)不同的數(shù)據(jù)類型對應(yīng)不同的格式符。不同的格式符。int a=1; float b=2.3; char c=k;printf(%dn, a);printf(%f,%cn,b,c);2021年11月23日18時12分第2章 c程序設(shè)計初步10常用的常用的printf格式符格式符2021年11月23日18時12分第2章 c程序設(shè)計初步11普通字符普通字符int a=1,b=2;顯示結(jié)果:顯示結(jié)果:1.格式輸出函數(shù)格式輸出函數(shù) 2021年11月23日18時12分第2章 c程序設(shè)計初步122.格式輸入函數(shù)格式輸入函數(shù)scanf 常用

8、常用scanf()函數(shù)接收用戶從鍵盤輸入的數(shù)據(jù),函數(shù)接收用戶從鍵盤輸入的數(shù)據(jù),實(shí)現(xiàn)人機(jī)交流。實(shí)現(xiàn)人機(jī)交流。功能功能:程序暫停程序暫停,用戶按格式符要求從鍵盤輸入數(shù)據(jù)用戶按格式符要求從鍵盤輸入數(shù)據(jù),存入相應(yīng)變量存入相應(yīng)變量 scanf函數(shù)調(diào)用的簡單形式有:函數(shù)調(diào)用的簡單形式有:(1)scanf(%格式說明符格式說明符, &簡單變量名簡單變量名);(2)scanf(“%格式說明符格式說明符”, 指針變量指針變量);地址地址int a; float b; char c;scanf(%d,&a);scanf(%f%c,&b,&c);2021年11月23日18時12分第2

9、章 c程序設(shè)計初步132.格式輸入函數(shù)格式輸入函數(shù)2021年11月23日18時12分第2章 c程序設(shè)計初步142.格式輸入函數(shù)格式輸入函數(shù) scanf普通字符普通字符scanf(%d%f%c,&num,&s1,&r);從鍵盤輸入:從鍵盤輸入: 901 1234.56y 注意:注意:l兩個數(shù)值數(shù)據(jù)之間用空白符分開;兩個數(shù)值數(shù)據(jù)之間用空白符分開;l數(shù)值數(shù)據(jù)和字符數(shù)據(jù)間不需要用分隔符分開;數(shù)值數(shù)據(jù)和字符數(shù)據(jù)間不需要用分隔符分開;2021年11月23日18時12分第2章 c程序設(shè)計初步15二、運(yùn)算符二、運(yùn)算符(operator)和和 表達(dá)式表達(dá)式(expression) 運(yùn)算符

10、運(yùn)算符(1)運(yùn)算符的分類)運(yùn)算符的分類 按運(yùn)算按運(yùn)算功能功能分:分:2021年11月23日18時12分第2章 c程序設(shè)計初步16二、運(yùn)算符二、運(yùn)算符(operator)和和 表達(dá)式表達(dá)式(expression)按按操作數(shù)的個數(shù)操作數(shù)的個數(shù)分:分:單目運(yùn)算符單目運(yùn)算符(unary operator)(unary operator) x+ x+雙目運(yùn)算符雙目運(yùn)算符(binary operator)(binary operator) x+yx+y三目運(yùn)算符三目運(yùn)算符(ternary operator)(ternary operator) x?1:0 x?1:0(2)運(yùn)算符的優(yōu)先級()運(yùn)算符的優(yōu)先級(

11、priority)和結(jié)合性)和結(jié)合性(combine)優(yōu)先級分為優(yōu)先級分為1515級級結(jié)合性:左結(jié)合結(jié)合性:左結(jié)合( (自左至右自左至右) )和右結(jié)合和右結(jié)合( (自右至左自右至左) )2021年11月23日18時12分第2章 c程序設(shè)計初步17 表達(dá)式(表達(dá)式(expression)由運(yùn)算符和操作對象組成的式子叫表達(dá)式。由運(yùn)算符和操作對象組成的式子叫表達(dá)式。 操作數(shù)可以是常量、變量、函數(shù)或表達(dá)式。操作數(shù)可以是常量、變量、函數(shù)或表達(dá)式。 每個表達(dá)式均有結(jié)果值。每個表達(dá)式均有結(jié)果值。 任何表達(dá)式加上分號任何表達(dá)式加上分號“;”構(gòu)成構(gòu)成c c語句。語句。 二、運(yùn)算符二、運(yùn)算符(operator)和

12、和 表達(dá)式表達(dá)式(expression)2021年11月23日18時12分第2章 c程序設(shè)計初步181.算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式2.賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式3.自增自增/自減運(yùn)算符自減運(yùn)算符4.逗號運(yùn)算符和逗號表達(dá)式逗號運(yùn)算符和逗號表達(dá)式5.指針運(yùn)算符指針運(yùn)算符6.數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換二、運(yùn)算符二、運(yùn)算符(operator)和和 表達(dá)式表達(dá)式(expression)2021年11月23日18時12分第2章 c程序設(shè)計初步191.算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式數(shù)學(xué)式子數(shù)學(xué)式子 ax2+bx+cc語言表達(dá)式語言表達(dá)式 a*x*x+b*x+c

13、注意:注意:(1)乘號不能省乘號不能省 2*a 2a(2)符號符號非法非法(3)表達(dá)式只能寫在同一行上。表達(dá)式只能寫在同一行上。a+b/2(4)只有小括號,沒有中括號和大括號。只有小括號,沒有中括號和大括號。2021年11月23日18時12分第2章 c程序設(shè)計初步20單目單目雙目雙目運(yùn)算符運(yùn)算符+-+-+-*/%名稱名稱自加自加 自減自減正正負(fù)負(fù)加加減減乘乘除除求余求余結(jié)合結(jié)合方向方向右結(jié)合右結(jié)合左結(jié)合左結(jié)合1.算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式*、/、%為同一優(yōu)先級,高于為同一優(yōu)先級,高于+、;、;2021年11月23日18時12分第2章 c程序設(shè)計初步21“整除整除” :如果除運(yùn)

14、算的兩個操作數(shù)都是整型數(shù)據(jù),如果除運(yùn)算的兩個操作數(shù)都是整型數(shù)據(jù),叫叫“整除整除”運(yùn)算,則運(yùn)算結(jié)果也為整型。運(yùn)算,則運(yùn)算結(jié)果也為整型?!皩?shí)除實(shí)除”:若除數(shù)或被除數(shù)至少有一個是實(shí)數(shù),則若除數(shù)或被除數(shù)至少有一個是實(shí)數(shù),則被看成是被看成是“實(shí)除實(shí)除”,則運(yùn)算結(jié)果為實(shí)型。,則運(yùn)算結(jié)果為實(shí)型。例例:int a; a=5/2; 因?yàn)橐驗(yàn)?和和2為整數(shù),為整數(shù),5/2是整除運(yùn)算,所以,結(jié)果是整除運(yùn)算,所以,結(jié)果為整數(shù),取整數(shù)為整數(shù),取整數(shù)2。例例:char ch=101;或或char ch=e; int b=ch/3; /*整除,整除,b的值為的值為33*/除法運(yùn)算除法運(yùn)算(“/”)2021年11月23日18

15、時12分第2章 c程序設(shè)計初步22例例:float a; a=5.0/2.0; a=5/2.0; a=5.0/2; 5.0/2.0、5/2.0、5.0/2均是實(shí)除,均是實(shí)除,結(jié)果均為結(jié)果均為2.500000a的值為的值為2.500000例例:求表達(dá)式:求表達(dá)式1/2*(a+b)的結(jié)果。的結(jié)果。因?yàn)橐驗(yàn)?/2的結(jié)果為整型的結(jié)果為整型0,所以表達(dá)式的結(jié)果為,所以表達(dá)式的結(jié)果為0。除法運(yùn)算除法運(yùn)算(“/”)2021年11月23日18時12分第2章 c程序設(shè)計初步23求余運(yùn)算的操作對象只能是整數(shù)類型。求余運(yùn)算的操作對象只能是整數(shù)類型。 例例:int a=5%2; /*a值是值是1*/。 5%2 結(jié)果為

16、:結(jié)果為:1 5%-2 結(jié)果為:結(jié)果為:1 -5%2 結(jié)果為:結(jié)果為:-1 取余操作結(jié)果的符號與機(jī)器有關(guān),一般是取余操作結(jié)果的符號與機(jī)器有關(guān),一般是與第與第一個操作數(shù)符號一個操作數(shù)符號相同。相同。求余應(yīng)用求余應(yīng)用 例例:判斷奇:判斷奇/偶數(shù)。偶數(shù)。 如,如,x%2的結(jié)果為的結(jié)果為0,則說明,則說明x為偶數(shù);為偶數(shù);x%2的結(jié)的結(jié)果不為果不為0,則說明,則說明x為奇數(shù)。為奇數(shù)。求余運(yùn)算(求余運(yùn)算( % )2021年11月23日18時12分第2章 c程序設(shè)計初步24例例:判斷:判斷a a是否能被是否能被3 3整除。整除。 a%3a%3的結(jié)果為的結(jié)果為0 0,則說明,則說明a a能被能被3 3整除;

17、如整除;如a%3a%3的結(jié)果的結(jié)果不為不為0 0,則說明,則說明a a不能被不能被3 3整除。整除。例例:利用整除和求余運(yùn)算拆分一個整數(shù)的各位數(shù)利用整除和求余運(yùn)算拆分一個整數(shù)的各位數(shù)字。設(shè)字。設(shè)a a是一個三位數(shù),則:是一個三位數(shù),則: a%10a%10的結(jié)果是的結(jié)果是a a的個位數(shù)字;的個位數(shù)字; a/100a/100的結(jié)果是的結(jié)果是a a的百位數(shù)字;的百位數(shù)字; a%100/10a%100/10的結(jié)果是的結(jié)果是a a的十位數(shù)字;的十位數(shù)字;如:如:123%10=3123%10=3 123/100=1 123/100=1 123%100/10=2 123%100/10=2求余運(yùn)算(求余運(yùn)算(

18、 % % )2021年11月23日18時12分第2章 c程序設(shè)計初步252 .賦值賦值(assigment)運(yùn)算符和賦值表達(dá)式運(yùn)算符和賦值表達(dá)式 賦值運(yùn)算符號:賦值運(yùn)算符號:= =賦值表達(dá)式形式為:賦值表達(dá)式形式為:變量變量= =表達(dá)式表達(dá)式說明說明: :(1 1)= =左邊必須是變量名,不能是表達(dá)式。左邊必須是變量名,不能是表達(dá)式。如,如,a+ba+b=3; /=3; /* *錯誤!不能給表達(dá)式賦值錯誤!不能給表達(dá)式賦值* */ /(2 2)結(jié)合方向是自右向左。結(jié)合方向是自右向左。(3 3)優(yōu)先級別很低()優(yōu)先級別很低(1414級),僅高于將學(xué)到的逗級),僅高于將學(xué)到的逗號(,)運(yùn)算符。號(

19、,)運(yùn)算符。(4 4)賦值操作:賦值操作:先先計算計算右邊表達(dá)式的值,再右邊表達(dá)式的值,再轉(zhuǎn)換轉(zhuǎn)換成左邊變量對象的類型,成左邊變量對象的類型,存入存入左邊變量代表的內(nèi)存左邊變量代表的內(nèi)存空間??臻g。2021年11月23日18時12分第2章 c程序設(shè)計初步26(5 5)賦值表達(dá)式加上分號)賦值表達(dá)式加上分號(;)(;),構(gòu)成,構(gòu)成賦值語句賦值語句。 如,賦值語句:如,賦值語句:r=2;r=2; (6 6)執(zhí)行語句中,可以使用連續(xù)賦值操作。)執(zhí)行語句中,可以使用連續(xù)賦值操作。 如:如: int a,b; a=b=100; / /* *等價于等價于a=(b=100),結(jié)果,結(jié)果a和和b的值都為的值都

20、為100*/ 初始化語句中,初始化語句中,intint a=b=100; a=b=100;是不允許的。是不允許的。2 .賦值賦值(assigment)運(yùn)算符和賦值表達(dá)式運(yùn)算符和賦值表達(dá)式2021年11月23日18時12分第2章 c程序設(shè)計初步27【例例】編程實(shí)現(xiàn)交換兩個變量的值。編程實(shí)現(xiàn)交換兩個變量的值。分析:分析:(1 1)問題背景和陳述:問題背景和陳述:計算機(jī)基本功能是進(jìn)行計算,也常用于處理計算機(jī)基本功能是進(jìn)行計算,也常用于處理許多與計算無關(guān)的事務(wù)。許多與計算無關(guān)的事務(wù)。n交換任意兩個變量的值即屬于事務(wù)處理。交換任意兩個變量的值即屬于事務(wù)處理。 (2 2)需求分析:)需求分析:輸入輸入a和

21、和b的值的值輸出輸出a和和b的值的值2 .賦值賦值(assigment)運(yùn)算符和賦值表達(dá)式運(yùn)算符和賦值表達(dá)式2021年11月23日18時12分第2章 c程序設(shè)計初步28(3 3)處理流程處理流程數(shù)據(jù)數(shù)據(jù)“兩兩交換兩兩交換”操作操作處理流程處理流程可以借用第三個變量實(shí)現(xiàn)兩個變量內(nèi)存中值的交可以借用第三個變量實(shí)現(xiàn)兩個變量內(nèi)存中值的交換。設(shè)第三個變量為換。設(shè)第三個變量為t;演示如下:;演示如下:定義變量定義變量: float a,b,t;輸出輸出a,b輸入輸入a, b的值的值t=a;a=b;b=ta a t t b b 2 .賦值賦值(assigment)運(yùn)算符和賦值表達(dá)式運(yùn)算符和賦值表達(dá)式(4)算

22、法算法2021年11月23日18時12分第2章 c程序設(shè)計初步29#include void main(void) float a,b,t; printf(請輸入兩個變量的值:請輸入兩個變量的值:n); scanf(%f%f,&a,&b); printf(交換前:交換前:a=%f,b=%fn,a,b); t=a;a=b; b=t; printf(交換后:交換后:a=%f,b=%fn,a,b); (5 5)編碼)編碼:定義變量定義變量: float a,b,t;輸出輸出a,b輸入輸入a, b的值的值t=a;a=b;b=t2 .賦值賦值(assigment)運(yùn)算符和賦值表達(dá)式運(yùn)算符

23、和賦值表達(dá)式(6 6)測試:)測試:2021年11月23日18時12分第2章 c程序設(shè)計初步30引例:引例:有語句如下:有語句如下: product=product*n; n=n+1; a=a/b; m=m+3; i=i-1;特征:對變量進(jìn)行某種運(yùn)算后,結(jié)果再賦值給特征:對變量進(jìn)行某種運(yùn)算后,結(jié)果再賦值給變量自身。變量自身。總結(jié):類似這種形式的運(yùn)算與賦值,常用總結(jié):類似這種形式的運(yùn)算與賦值,常用復(fù)合復(fù)合賦值運(yùn)算符賦值運(yùn)算符描述。描述。2 .賦值賦值(assigment)運(yùn)算符和賦值表達(dá)式運(yùn)算符和賦值表達(dá)式2021年11月23日18時12分第2章 c程序設(shè)計初步31*=、+=、-= 、/= 、%

24、= 等。等。 n作用:優(yōu)化代碼;生成短小的匯編代碼作用:優(yōu)化代碼;生成短小的匯編代碼n表達(dá)式格式:表達(dá)式格式:變量變量 復(fù)合賦值運(yùn)算復(fù)合賦值運(yùn)算 操作數(shù)操作數(shù)運(yùn)算符的等價變化如下product=product*n;n=n+1;a=a/b;m=m+3;i=i-1;product*=n;n+=1;a/=b;m+=3;i-=1;復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符2021年11月23日18時12分第2章 c程序設(shè)計初步32例:進(jìn)行以下復(fù)合運(yùn)算操作之前,設(shè)例:進(jìn)行以下復(fù)合運(yùn)算操作之前,設(shè)a原值都為原值都為10。 int a=10; a-=2; a*=2; a/=2; a%=2; 復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符2

25、021年11月23日18時12分第2章 c程序設(shè)計初步33符號:符號:+、-功能:使該變量加功能:使該變量加1 1(自增)或減(自增)或減1 1(自減)。(自減)。 a+ a-a+ a- 單目運(yùn)算符,優(yōu)先級與正、負(fù)號優(yōu)先級相同,單目運(yùn)算符,優(yōu)先級與正、負(fù)號優(yōu)先級相同,但高于基本算術(shù)運(yùn)算符,結(jié)合性為但高于基本算術(shù)運(yùn)算符,結(jié)合性為自右向左自右向左。如:表達(dá)式如:表達(dá)式-i+等價于等價于 -(i+)。注意:注意: n自增和自減運(yùn)算符只能用于變量自增和自減運(yùn)算符只能用于變量如:如:(a+b)+ /*錯誤錯誤,不能對表達(dá)式進(jìn)行自運(yùn)算,不能對表達(dá)式進(jìn)行自運(yùn)算*/3.自增自增(increment)/自減自減

26、(decrement)運(yùn)算符運(yùn)算符2021年11月23日18時12分第2章 c程序設(shè)計初步34例,有語句如下:例,有語句如下: int n=10; int n=10; n+; n+; / /* *或或+n;n+n;n的值都是的值都是1111* */ / n-; n-; / /* *或或-n;n-n;n的值都是的值都是1010* */ /如表達(dá)式中僅僅是對單個變量進(jìn)行自運(yùn)算如表達(dá)式中僅僅是對單個變量進(jìn)行自運(yùn)算( (self-operation),前置運(yùn)算或后置運(yùn)算的結(jié)果相同。前置運(yùn)算或后置運(yùn)算的結(jié)果相同。有前置有前置(prefix)(prefix)和后置和后置(postfix)(postfix)

27、兩種運(yùn)算方式。兩種運(yùn)算方式。前置運(yùn)算:前置運(yùn)算: 運(yùn)算符在變量的前面,如運(yùn)算符在變量的前面,如+n+n,-n-n;后置運(yùn)算:后置運(yùn)算: 運(yùn)算符在變量的后面,如運(yùn)算符在變量的后面,如n+n+,n-n-。3.自增自增(increment)/自減自減(decrement)運(yùn)算符運(yùn)算符2021年11月23日18時12分第2章 c程序設(shè)計初步35 含有自增含有自增(減減)運(yùn)算的復(fù)雜表達(dá)式中,自增運(yùn)算的復(fù)雜表達(dá)式中,自增(減減)的的前置和后置運(yùn)算是有區(qū)別的。前置和后置運(yùn)算是有區(qū)別的。前綴形式前綴形式 +a -a 先先使使a的值加的值加(減)(減)1,再再使用使用a后綴形式后綴形式 a+ a- 先先使用使用

28、a,再再使使a的值加的值加(減)(減)1例:例:intint a=8,b=2,c,d; a=8,b=2,c,d; c=+a; c=+a; d=b+; d=b+; printf(%d,%d,%d,%d n,a,b,c,d);3.自增自增(increment)/自減自減(decrement)運(yùn)算符運(yùn)算符2021年11月23日18時12分第2章 c程序設(shè)計初步36 逗號運(yùn)算符逗號運(yùn)算符(,)將多個表達(dá)式連接起來,將多個表達(dá)式連接起來,稱逗號表達(dá)式。稱逗號表達(dá)式。逗號表達(dá)式的一般形式為:逗號表達(dá)式的一般形式為:表達(dá)式表達(dá)式1,表達(dá)式表達(dá)式2,表達(dá)式表達(dá)式n 例,交換兩變量值的逗號表達(dá)式:例,交換兩變量

29、值的逗號表達(dá)式:t=x, x=y, y=t 4.逗號逗號(comma)運(yùn)算符運(yùn)算符2021年11月23日18時12分第2章 c程序設(shè)計初步37說明:說明:結(jié)合性結(jié)合性:自左向右自左向右優(yōu)先級優(yōu)先級: 最低最低功能:依次求解每個表達(dá)式,逗號表達(dá)式的功能:依次求解每個表達(dá)式,逗號表達(dá)式的值是值是最后一個表達(dá)式最后一個表達(dá)式的值。的值。 a=5, a+, a a=5, a+, a* *3 3 t=1, t+5, t+ t=1, t+5, t+ x=( x=(a=3a=3* *5,5, a a* *4 4 ) ) 4.逗號逗號(comma)運(yùn)算符運(yùn)算符2021年11月23日18時12分第2章 c程序設(shè)

30、計初步38與與地址地址操作有關(guān)的運(yùn)算符叫指針運(yùn)算符。操作有關(guān)的運(yùn)算符叫指針運(yùn)算符。 & &和和* *:均是單目運(yùn)算符:均是單目運(yùn)算符 結(jié)合性都是結(jié)合性都是自右向左自右向左。“& &”:求變量地址運(yùn)算符。例如,:求變量地址運(yùn)算符。例如,&x&x?!? *”:指針運(yùn)算符。:指針運(yùn)算符。 在說明定義語句中,在說明定義語句中,“* *”說明其后的說明其后的變量是指針變量;變量是指針變量;5.指針運(yùn)算符指針運(yùn)算符2021年11月23日18時12分第2章 c程序設(shè)計初步39定義指針變量的一般語法形式為:定義指針變量的一般語法形式為:類型說明符類型說明符 *指

31、針變量名指針變量名1,*指針變量名指針變量名n;說明:說明: 變量名前的變量名前的*標(biāo)明其后的標(biāo)識符是指針變量,表示標(biāo)明其后的標(biāo)識符是指針變量,表示與一般變量的區(qū)別。與一般變量的區(qū)別。 如,如, int *pa; /*指針變量指針變量pa*/ float *pb; /*指針變量指針變量pb*/5.指針運(yùn)算符指針運(yùn)算符2021年11月23日18時12分第2章 c程序設(shè)計初步40在執(zhí)行語句中,在執(zhí)行語句中,“* *指針變量名指針變量名”表示取其后指表示取其后指針變量所指向變量的值。針變量所指向變量的值。int a;int *p;p=&a; /*指針指針p指向變量指向變量a*/scanf (

32、“%d”,&a); 或或scanf (%d, p); printf (“%d”,a); 或或printf (%d,*p);5.指針運(yùn)算符指針運(yùn)算符2021年11月23日18時12分第2章 c程序設(shè)計初步41vc c語言允許不同類型的數(shù)據(jù)進(jìn)行混合運(yùn)算。計語言允許不同類型的數(shù)據(jù)進(jìn)行混合運(yùn)算。計算合法的算合法的c c語言表達(dá)式時,先將表達(dá)式中不同語言表達(dá)式時,先將表達(dá)式中不同類型的數(shù)據(jù)轉(zhuǎn)換為同一類型,再進(jìn)行運(yùn)算。類型的數(shù)據(jù)轉(zhuǎn)換為同一類型,再進(jìn)行運(yùn)算。v類型轉(zhuǎn)換在類型轉(zhuǎn)換在c c語言中也是一種運(yùn)算。語言中也是一種運(yùn)算。(1)數(shù)據(jù)類型自動轉(zhuǎn)換(隱式轉(zhuǎn)換)數(shù)據(jù)類型自動轉(zhuǎn)換(隱式轉(zhuǎn)換)根據(jù)需要由系統(tǒng)

33、自動進(jìn)行的。根據(jù)需要由系統(tǒng)自動進(jìn)行的。(2)強(qiáng)制類型轉(zhuǎn)換(顯式類型轉(zhuǎn)換)強(qiáng)制類型轉(zhuǎn)換(顯式類型轉(zhuǎn)換)由編程者強(qiáng)制進(jìn)行的。由編程者強(qiáng)制進(jìn)行的。6.數(shù)據(jù)類型轉(zhuǎn)換(數(shù)據(jù)類型轉(zhuǎn)換(type conversion)2021年11月23日18時12分第2章 c程序設(shè)計初步42低低 高高 低低 int char short unsigned long高高 double float算術(shù)運(yùn)算過程的轉(zhuǎn)換規(guī)則算術(shù)運(yùn)算過程的轉(zhuǎn)換規(guī)則(1)數(shù)據(jù)類型自動轉(zhuǎn)換(隱式轉(zhuǎn)換)數(shù)據(jù)類型自動轉(zhuǎn)換(隱式轉(zhuǎn)換)例:例:int r; float girth; girth=2*pi*r; /*求圓周長求圓周長*/2021年11月23日18

34、時12分第2章 c程序設(shè)計初步43若賦值運(yùn)算符兩側(cè)的數(shù)據(jù)類型不同,則賦值號若賦值運(yùn)算符兩側(cè)的數(shù)據(jù)類型不同,則賦值號右側(cè)表達(dá)式類型的數(shù)據(jù)將轉(zhuǎn)換為賦值號左側(cè)變量的右側(cè)表達(dá)式類型的數(shù)據(jù)將轉(zhuǎn)換為賦值號左側(cè)變量的類型,再進(jìn)行賦值。類型,再進(jìn)行賦值。賦值運(yùn)算賦值運(yùn)算中的數(shù)據(jù)類型自動轉(zhuǎn)換中的數(shù)據(jù)類型自動轉(zhuǎn)換例:例:float a=5/2 ; /*隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換*/ a為實(shí)型,為實(shí)型,a的值是的值是2.000000,非,非2.5。 計算計算5/2時發(fā)生了精度丟失,時發(fā)生了精度丟失,5/2的結(jié)果是的結(jié)果是2,再賦值給實(shí)型變量,轉(zhuǎn)換為再賦值給實(shí)型變量,轉(zhuǎn)換為2.000000。(1)數(shù)據(jù)類型自動轉(zhuǎn)換(隱式

35、轉(zhuǎn)換)數(shù)據(jù)類型自動轉(zhuǎn)換(隱式轉(zhuǎn)換)2021年11月23日18時12分第2章 c程序設(shè)計初步44 如,有以下定義:如,有以下定義:float a=10; /float a=10; /* *a a的結(jié)果值為的結(jié)果值為10.010.0(數(shù)據(jù)填充)(數(shù)據(jù)填充)* */ /intint b=15.5; / b=15.5; /* *b b的結(jié)果值為的結(jié)果值為1515(數(shù)據(jù)截?。〝?shù)據(jù)截取)* */ /u注意注意:若右側(cè)表達(dá)式結(jié)果數(shù)據(jù)類型長度比左側(cè)變量的:若右側(cè)表達(dá)式結(jié)果數(shù)據(jù)類型長度比左側(cè)變量的數(shù)據(jù)類型長時,將丟失一部分?jǐn)?shù)據(jù),從而造成數(shù)據(jù)精數(shù)據(jù)類型長時,將丟失一部分?jǐn)?shù)據(jù),從而造成數(shù)據(jù)精度的降低或出錯。度的降低或出錯。(1)數(shù)據(jù)類型自動轉(zhuǎn)換(隱式轉(zhuǎn)換)數(shù)據(jù)類型自動轉(zhuǎn)換(隱式轉(zhuǎn)換)2021年11月23日18時12分第2章 c程序設(shè)計初步45例例 :v=4/3*pi*r*r*r /*求圓體積求圓體積*/分析:分析: 表達(dá)式中,常量表達(dá)式中,常量4和和3均是整數(shù),均是整數(shù),4/3結(jié)果是整數(shù)結(jié)果是整數(shù)(為(為1 1),這并不是需要的結(jié)果。為保證結(jié)果的有效),這并不是需要的結(jié)果。為保證結(jié)果的有效性,寫為

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論