《c語(yǔ)言程序設(shè)計(jì)》第3章-算術(shù)運(yùn)算表達(dá)式課件_第1頁(yè)
《c語(yǔ)言程序設(shè)計(jì)》第3章-算術(shù)運(yùn)算表達(dá)式課件_第2頁(yè)
《c語(yǔ)言程序設(shè)計(jì)》第3章-算術(shù)運(yùn)算表達(dá)式課件_第3頁(yè)
《c語(yǔ)言程序設(shè)計(jì)》第3章-算術(shù)運(yùn)算表達(dá)式課件_第4頁(yè)
《c語(yǔ)言程序設(shè)計(jì)》第3章-算術(shù)運(yùn)算表達(dá)式課件_第5頁(yè)
已閱讀5頁(yè),還剩65頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章簡(jiǎn)單的算術(shù)運(yùn)算和表達(dá)式主講:李小霞

lxx1818@126.com

第3章簡(jiǎn)單的算術(shù)運(yùn)算主講:李小霞

lxx1818@126.C基本類型整型字符型實(shí)型(浮點(diǎn)型)floatdoubleshortintlongshortlongunsignedintunsignedshortunsignedlongcharunsignedcharlongdoubleC基本類型整型字符型實(shí)型(浮點(diǎn)型)floatdoublesh本章學(xué)習(xí)內(nèi)容算術(shù)運(yùn)算符增1和減1運(yùn)算符表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換運(yùn)算符常用的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)本章學(xué)習(xí)內(nèi)容算術(shù)運(yùn)算符運(yùn)算符(Operator)詳見(jiàn)附錄C常見(jiàn)的運(yùn)算符算術(shù)運(yùn)算符賦值運(yùn)算符類型強(qiáng)轉(zhuǎn)關(guān)系運(yùn)算符邏輯運(yùn)算符增1和減1位運(yùn)算符運(yùn)算符(Operator)詳見(jiàn)附錄C3.1.1算術(shù)運(yùn)算符和表達(dá)式Addition(+)Subtraction(-)Multiplication(*)Division(/)Modulus(%)ArithmeticOperators3.1C運(yùn)算符和表達(dá)式3.1.1算術(shù)運(yùn)算符和表達(dá)式Addition(+)Subt除法(Division)Example:W/Z浮點(diǎn)數(shù)除法W

和Z

中至少有一個(gè)浮點(diǎn)數(shù)整數(shù)除法W和Z

均為整數(shù)截?cái)嘟Y(jié)果中的小數(shù)部分11/5=211.0/5=2.2除法(Division)Example:W/Z浮點(diǎn)數(shù)除法求余(Modulus)說(shuō)明:

參加運(yùn)算的操作數(shù)必須是整數(shù),即該運(yùn) 算不能應(yīng)用于float和double。注意!例:11%5=1-11%5=-1

11%-5=111.0%5=?求余(Modulus)說(shuō)明:注意!例:11%5=1

優(yōu)先級(jí)(OrderofPrecedence)

High: */%

Low: +-不同優(yōu)先級(jí)時(shí)的運(yùn)算順序:——從高到低相同優(yōu)先級(jí)時(shí)的運(yùn)算順序:——算術(shù)運(yùn)算符為左結(jié)合(從左到右)算術(shù)表達(dá)式

(ArithmeticExpression)優(yōu)先級(jí)(OrderofPrecedence)算術(shù)表達(dá)式【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和關(guān)鍵是如何分離個(gè)位、十位、百位數(shù)字?153/100=1153-1*100=5353/10=5153%10

=3【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和思考與練習(xí)3-1:修改上面程序,對(duì)任意一個(gè)四位數(shù)求其個(gè)十百千位上的數(shù)字?!纠?.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和關(guān)系運(yùn)算符與邏輯運(yùn)算符關(guān)系運(yùn)算符 > >= < <= == !=

例: i=5; lim=6; i<lim-1

說(shuō)明:關(guān)系運(yùn)算符的優(yōu)先級(jí)比算數(shù)運(yùn)算符低關(guān)系運(yùn)算符與邏輯運(yùn)算符關(guān)系運(yùn)算符關(guān)系運(yùn)算符與邏輯運(yùn)算符邏輯運(yùn)算符

&& || !

例:判斷閏年

if((year%4==0&&year%100!=0)||year%400==0) printf(“%disaleapyear\n”,year); else printf(“%disnotaleapyear\n”,year);關(guān)系運(yùn)算符與邏輯運(yùn)算符邏輯運(yùn)算符思考與練習(xí)3-2:運(yùn)行下面程序,并思考C語(yǔ)言中何值為“真”,何值為“假”,以及邏輯非“!”的用法。#include<STDIO.H>voidmain(){ intvalid=0; scanf("%d",&valid); if(!valid) { printf("true\n"); printf("valid=%d\n",!valid); } else { printf("false\n"); printf("valid=%d\n",!valid); } return;}思考與練習(xí)3-2:賦值語(yǔ)句

(AssignmentStatement)三種賦值形式:Simple——簡(jiǎn)單賦值Multiple——多重賦值Shorthand——簡(jiǎn)寫(xiě)的復(fù)合賦值賦值語(yǔ)句

(AssignmentStatement)三種賦變量的賦值簡(jiǎn)單賦值(SimpleAssignment):

變量=

表達(dá)式;

例:i=1; p=5*i;變量的賦值簡(jiǎn)單賦值(SimpleAssignment):變量的賦值多重賦值(MultipleAssignment):變量1=

變量2=

表達(dá)式; 例:i=j=0;變量的賦值多重賦值(MultipleAssignment)Syntax:

變量x=變量x

運(yùn)算符op

表達(dá)式;

變量x

運(yùn)算符op=表達(dá)式;

3.1.2復(fù)合的賦值運(yùn)算符

(CombinedAssignmentOperators)若賦值號(hào)左邊的變量重復(fù)出現(xiàn)在右邊,則可進(jìn)行縮寫(xiě)。Syntax:3.1.2復(fù)合的賦值運(yùn)算符

(CombiExample:num=num+5; num+=5;3.1.2復(fù)合的賦值運(yùn)算符OperationExamplesofexpressionDescription+=num+=5;num=num+5;-=num-=5;num=num–5;*=num*=5;num=num*5;/=num/=5;num=num/5;%=num%=5;num=num%5;Example:3.1.2復(fù)合的賦值運(yùn)算符Operation已知inta=3;執(zhí)行a+=a-=a*a后,變量a的值?a+=a-=a*aa+=a-=9a+=-6

a=-123-6-12執(zhí)行a+=a-=a*=a后,變量a的值?a+=a-=a*=aa+=a-=9a+=0

a=03900已知inta=3;3-6-12執(zhí)行a+=a-3.1.3自增1和自減1運(yùn)算符

(IncrementandDecrement)

n++,n--,++n,--n++讓參與運(yùn)算的變量加1,--讓參與運(yùn)算的變量減1作為后綴(postfix)運(yùn)算符時(shí),先使用n的值,然后再將n的值加/減1設(shè)n的值為5,則m=n++;執(zhí)行后的結(jié)果m是多少?m=n;n++;3.1.3自增1和自減1運(yùn)算符

(Incrementand3.1.3增1和減1運(yùn)算符

(IncrementandDecrement)

n++,n--,++n,--n++讓參與運(yùn)算的變量加1,--讓參與運(yùn)算的變量減1作為后綴(postfix)運(yùn)算符時(shí),先取n的值,然后加/減1作為前綴(prefix)運(yùn)算符時(shí),先加/減1,然后取n的值m=++n;n++;

m=n;3.1.3增1和減1運(yùn)算符

(IncrementandD表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換相同類型數(shù)據(jù)的運(yùn)算結(jié)果,還是該類型不同類型數(shù)據(jù)的運(yùn)算結(jié)果,是兩種類型中取值范圍大的那種long

double>double>float>long>int>short>chardoublefloatlongunsignedintchar,short低高表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換相同類型數(shù)據(jù)的運(yùn)算結(jié)果,還是該類表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換【例3.6】下面程序演示了賦值中的類型轉(zhuǎn)換表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換【例3.6】下面程序演示了賦值doublefloatlongunsignedintchar,short低高思考與練習(xí):

為什么不同類型數(shù)據(jù)的運(yùn)算結(jié)果,是兩種類型中取值范圍大的那種?doublefloatlongunsignedintchar思考與練習(xí)3-3:運(yùn)行下面程序,觀察編譯時(shí)是否會(huì)出現(xiàn)警告,若有警告,請(qǐng)思考問(wèn)題出在哪里,并解決問(wèn)題。#include<STDIO.H>voidmain(){ inta=3; floatb=4.56; a=b; printf("a=%d\n",a); return;}思考與練習(xí)3-3:Example:

intx=10; floaty; y=(float)x;

(float)10

10.000000x10y??10.0000003.4自動(dòng)類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)轉(zhuǎn)(Casting)可以消除從大到小的警告

通過(guò)下面方式把表達(dá)式的值轉(zhuǎn)為任意類型

(類型)表達(dá)式不改變xExample:(float)1010.000000x1Example:

inttotal,number; floataverage; … average=total/number;

15/2

7total15number2average??7.000000兩個(gè)整數(shù)運(yùn)算的結(jié)果還是整數(shù),不是浮點(diǎn)數(shù)3.4自動(dòng)類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換運(yùn)算符Example:15/27total15numberExample:

inttotal,number; floataverage; … average=(float)total/number;

15.000000/2

7.500000total15number2average??7.5000003.4自動(dòng)類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換運(yùn)算符Example:15.000000/27.50000思考與練習(xí)3-4:

分析下面程序的輸出結(jié)果,運(yùn)行程序并將運(yùn)行結(jié)果與分析結(jié)果相對(duì)照。思考與練習(xí)3-4:

分析下面程序的輸出結(jié)果,運(yùn)行程序并將運(yùn)行常用的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)p40表3-5常用的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)p40表3-5思考與練習(xí)3-5:

在VisualC++6.0的安裝路徑下查找文件math.h,找到后打開(kāi)該文件,請(qǐng)認(rèn)真查看math.h文件中有哪些內(nèi)容,找到表3-5中的數(shù)學(xué)函數(shù)聲明部分。思考與練習(xí)3-5:【例3.8】計(jì)算三角形面積area=sqrt(s*(s-a)*(s-b)*(s-c))area=sqrt(s(s-a)(s-b)(s-c))s=0.5*(a+b+c)s=1.0/2*(a+b+c)s=(a+b+c)/2.0s=(float)(a+b+c)/2s=1/2*(a+b+c)s=(float)((a+b+c)/2)

注意!【例3.8】計(jì)算三角形面積area=sqrt(s*【例3.8】計(jì)算三角形面積Inputa,b,c:3,4,5↙area=6.000000【例3.8】計(jì)算三角形面積Inputa,b,c:3,4,課后習(xí)題:3.1—3.4要求:3.2—3.4作業(yè)要有流程圖和程序,另需上機(jī)實(shí)驗(yàn)。課后習(xí)題:3.1—3.4QuestionsandanswersQuestionsandanswers第3章簡(jiǎn)單的算術(shù)運(yùn)算和表達(dá)式主講:李小霞

lxx1818@126.com

第3章簡(jiǎn)單的算術(shù)運(yùn)算主講:李小霞

lxx1818@126.C基本類型整型字符型實(shí)型(浮點(diǎn)型)floatdoubleshortintlongshortlongunsignedintunsignedshortunsignedlongcharunsignedcharlongdoubleC基本類型整型字符型實(shí)型(浮點(diǎn)型)floatdoublesh本章學(xué)習(xí)內(nèi)容算術(shù)運(yùn)算符增1和減1運(yùn)算符表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換運(yùn)算符常用的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)本章學(xué)習(xí)內(nèi)容算術(shù)運(yùn)算符運(yùn)算符(Operator)詳見(jiàn)附錄C常見(jiàn)的運(yùn)算符算術(shù)運(yùn)算符賦值運(yùn)算符類型強(qiáng)轉(zhuǎn)關(guān)系運(yùn)算符邏輯運(yùn)算符增1和減1位運(yùn)算符運(yùn)算符(Operator)詳見(jiàn)附錄C3.1.1算術(shù)運(yùn)算符和表達(dá)式Addition(+)Subtraction(-)Multiplication(*)Division(/)Modulus(%)ArithmeticOperators3.1C運(yùn)算符和表達(dá)式3.1.1算術(shù)運(yùn)算符和表達(dá)式Addition(+)Subt除法(Division)Example:W/Z浮點(diǎn)數(shù)除法W

和Z

中至少有一個(gè)浮點(diǎn)數(shù)整數(shù)除法W和Z

均為整數(shù)截?cái)嘟Y(jié)果中的小數(shù)部分11/5=211.0/5=2.2除法(Division)Example:W/Z浮點(diǎn)數(shù)除法求余(Modulus)說(shuō)明:

參加運(yùn)算的操作數(shù)必須是整數(shù),即該運(yùn) 算不能應(yīng)用于float和double。注意!例:11%5=1-11%5=-1

11%-5=111.0%5=?求余(Modulus)說(shuō)明:注意!例:11%5=1

優(yōu)先級(jí)(OrderofPrecedence)

High: */%

Low: +-不同優(yōu)先級(jí)時(shí)的運(yùn)算順序:——從高到低相同優(yōu)先級(jí)時(shí)的運(yùn)算順序:——算術(shù)運(yùn)算符為左結(jié)合(從左到右)算術(shù)表達(dá)式

(ArithmeticExpression)優(yōu)先級(jí)(OrderofPrecedence)算術(shù)表達(dá)式【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和關(guān)鍵是如何分離個(gè)位、十位、百位數(shù)字?153/100=1153-1*100=5353/10=5153%10

=3【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和【例3.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和思考與練習(xí)3-1:修改上面程序,對(duì)任意一個(gè)四位數(shù)求其個(gè)十百千位上的數(shù)字?!纠?.1】計(jì)算并輸出一個(gè)三位整數(shù)的個(gè)位、十位和百位數(shù)字之和關(guān)系運(yùn)算符與邏輯運(yùn)算符關(guān)系運(yùn)算符 > >= < <= == !=

例: i=5; lim=6; i<lim-1

說(shuō)明:關(guān)系運(yùn)算符的優(yōu)先級(jí)比算數(shù)運(yùn)算符低關(guān)系運(yùn)算符與邏輯運(yùn)算符關(guān)系運(yùn)算符關(guān)系運(yùn)算符與邏輯運(yùn)算符邏輯運(yùn)算符

&& || !

例:判斷閏年

if((year%4==0&&year%100!=0)||year%400==0) printf(“%disaleapyear\n”,year); else printf(“%disnotaleapyear\n”,year);關(guān)系運(yùn)算符與邏輯運(yùn)算符邏輯運(yùn)算符思考與練習(xí)3-2:運(yùn)行下面程序,并思考C語(yǔ)言中何值為“真”,何值為“假”,以及邏輯非“!”的用法。#include<STDIO.H>voidmain(){ intvalid=0; scanf("%d",&valid); if(!valid) { printf("true\n"); printf("valid=%d\n",!valid); } else { printf("false\n"); printf("valid=%d\n",!valid); } return;}思考與練習(xí)3-2:賦值語(yǔ)句

(AssignmentStatement)三種賦值形式:Simple——簡(jiǎn)單賦值Multiple——多重賦值Shorthand——簡(jiǎn)寫(xiě)的復(fù)合賦值賦值語(yǔ)句

(AssignmentStatement)三種賦變量的賦值簡(jiǎn)單賦值(SimpleAssignment):

變量=

表達(dá)式;

例:i=1; p=5*i;變量的賦值簡(jiǎn)單賦值(SimpleAssignment):變量的賦值多重賦值(MultipleAssignment):變量1=

變量2=

表達(dá)式; 例:i=j=0;變量的賦值多重賦值(MultipleAssignment)Syntax:

變量x=變量x

運(yùn)算符op

表達(dá)式;

變量x

運(yùn)算符op=表達(dá)式;

3.1.2復(fù)合的賦值運(yùn)算符

(CombinedAssignmentOperators)若賦值號(hào)左邊的變量重復(fù)出現(xiàn)在右邊,則可進(jìn)行縮寫(xiě)。Syntax:3.1.2復(fù)合的賦值運(yùn)算符

(CombiExample:num=num+5; num+=5;3.1.2復(fù)合的賦值運(yùn)算符OperationExamplesofexpressionDescription+=num+=5;num=num+5;-=num-=5;num=num–5;*=num*=5;num=num*5;/=num/=5;num=num/5;%=num%=5;num=num%5;Example:3.1.2復(fù)合的賦值運(yùn)算符Operation已知inta=3;執(zhí)行a+=a-=a*a后,變量a的值?a+=a-=a*aa+=a-=9a+=-6

a=-123-6-12執(zhí)行a+=a-=a*=a后,變量a的值?a+=a-=a*=aa+=a-=9a+=0

a=03900已知inta=3;3-6-12執(zhí)行a+=a-3.1.3自增1和自減1運(yùn)算符

(IncrementandDecrement)

n++,n--,++n,--n++讓參與運(yùn)算的變量加1,--讓參與運(yùn)算的變量減1作為后綴(postfix)運(yùn)算符時(shí),先使用n的值,然后再將n的值加/減1設(shè)n的值為5,則m=n++;執(zhí)行后的結(jié)果m是多少?m=n;n++;3.1.3自增1和自減1運(yùn)算符

(Incrementand3.1.3增1和減1運(yùn)算符

(IncrementandDecrement)

n++,n--,++n,--n++讓參與運(yùn)算的變量加1,--讓參與運(yùn)算的變量減1作為后綴(postfix)運(yùn)算符時(shí),先取n的值,然后加/減1作為前綴(prefix)運(yùn)算符時(shí),先加/減1,然后取n的值m=++n;n++;

m=n;3.1.3增1和減1運(yùn)算符

(IncrementandD表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換相同類型數(shù)據(jù)的運(yùn)算結(jié)果,還是該類型不同類型數(shù)據(jù)的運(yùn)算結(jié)果,是兩種類型中取值范圍大的那種long

double>double>float>long>int>short>chardoublefloatlongunsignedintchar,short低高表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換相同類型數(shù)據(jù)的運(yùn)算結(jié)果,還是該類表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換【例3.6】下面程序演示了賦值中的類型轉(zhuǎn)換表達(dá)式與賦值中的自動(dòng)類型轉(zhuǎn)換【例3.6】下面程序演示了賦值doublefloatlongunsignedintchar,short低高思考與練習(xí):

為什么不同類型數(shù)據(jù)的運(yùn)算結(jié)果,是兩種類型中取值范圍大的那種?doublefloatlongunsignedintchar思考與練習(xí)3-3:運(yùn)行下面程序,觀察編譯時(shí)是否會(huì)出現(xiàn)警告,若有警告,請(qǐng)思考問(wèn)題出在哪里,并解決問(wèn)題。#include<STDIO.H>voidmain(){ inta=3; floatb=4.56; a=b; printf("a=%d\n",a); return;}思考與練習(xí)3-3:Example:

intx=10; floaty; y=(float)x;

(float)10

10.000000x10y??10.0000003.4自動(dòng)類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)轉(zhuǎn)(Casting)可以消除從大到小的警告

通過(guò)下面方式把表達(dá)式的值轉(zhuǎn)為任意類型

(類型)表達(dá)式不改變xExample:(float)1010.000000x1Example:

inttotal

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論