《《C语言程序运算》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《C语言程序运算》PPT课件.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Lesson 3 C语言程序设计基础语言程序设计基础10/29/2022学习目标学习目标:3 1学会使用学会使用C语言中运算符对程序中的数据语言中运算符对程序中的数据进行处理进行处理10/29/2022主要内容主要内容:3 1算术运算算术运算数学库函数数学库函数10/29/20223算术运算符算术运算符2C语言程序的最终目标就是正确的语言程序的最终目标就是正确的数据进行处理数据进行处理(计算计算)10/29/20223算术运算符算术运算符2C语言程序对数据的处理语言程序对数据的处理(运算运算)1、直接运算、直接运算1、简单运算:加,减、简单运算:加,减、乘、除乘、除2、较复杂运算:开平方、较复
2、杂运算:开平方、取对数、三角函数取对数、三角函数2、通过一个过程进行运算、通过一个过程进行运算(后面主要学习的内容)(后面主要学习的内容)C语言程序的最终目标就是正确的数据进语言程序的最终目标就是正确的数据进行处理行处理(计算计算)10/29/20223算术运算符算术运算符2C语言给我们提供了许多的算术运算符语言给我们提供了许多的算术运算符,可以可以直接直接对数据进行计算。对数据进行计算。+-*/%加加 减减 乘乘 除除 取余取余10/29/20223算术运算符算术运算符2u对于除(对于除(/)运算,当两个操作数为整型时,)运算,当两个操作数为整型时,结果也为整型。结果也为整型。例如:例如:4
3、8/5其值为其值为9;100/13其值为其值为7。u只要其中一个为实型,其结果也为实型。只要其中一个为实型,其结果也为实型。例如:例如:其值为其值为9.6关于算术运算的特别说明:关于算术运算的特别说明:10/29/2022#include int main()float f1,f2;f1=3.0+5/3;f2=3.0+5.0/3;printf(f1=%f,f2=%f,f1,f2);return 0;/结果会是什么呢?结果会是什么呢?计算过程:计算过程:10/29/2022f1计算过程:计算过程:第一步计算除法:第一步计算除法:5/3=1第二步计算加法:第二步计算加法:第三步把结果赋值给;第三步
4、把结果赋值给;n f2计算过程:计算过程:第一步计算除法:第一步计算除法:第二步计算加法第二步计算加法:3.0+1.666667=4.666667 第三步把结果赋值给;第三步把结果赋值给;10/29/20223算术运算符算术运算符2对于取余(对于取余(%)运算,它的两个操作数必)运算,它的两个操作数必须是整型,其结果是两数相除的余数,也须是整型,其结果是两数相除的余数,也为整型。为整型。假设假设a和和b是两个是两个int类型的变量,且类型的变量,且b不等于不等于0;则;则a%b的计算结果是的计算结果是a整除以整除以b的余数。的余数。例如,例如,a=20,b=3,则,则a%b的结果为的结果为21
5、0/29/20223赋值运算符赋值运算符3赋值运算符赋值运算符=示例:示例:s=0.0;功能说明功能说明:计算计算=右侧式子的值右侧式子的值将将=右侧式子的值赋给左侧的变量右侧式子的值赋给左侧的变量例如:例如:int x=2;/给给x赋一个初值赋一个初值2x=x+3;10/29/20223赋值运算符赋值运算符3注意:的左边必须是一个变量注意:的左边必须是一个变量例如:例如:int x=2,y=5;x=x*x-y*y;正确正确x=y=5;正确正确4=x-y;错误错误x+y=5;错误错误x=y=5;10/29/20223赋值运算符赋值运算符3注意:注意:x=y+z;的理解的理解u不是数学上建立不是
6、数学上建立x是是y与与z的和的关系的的和的关系的意义意义u它仅仅只表示此时需要计算机做一个它仅仅只表示此时需要计算机做一个计算计算:把把y+z的和赋值给的和赋值给x10/29/20223赋值运算符赋值运算符3#includeintmain()intx=1,y=2,z=0;z=x+y;printf(first:z=%dn,z);x=3;y=4;printf(second:z=%dn,z);return0;请分析程序执行结果请分析程序执行结果10/29/20223运算符运算符3运算符有优先级和结合性,在计算表运算符有优先级和结合性,在计算表达式的值时,按照运算符的优先级顺达式的值时,按照运算符的优
7、先级顺序进行。序进行。例如:例如:int x=1,y=2,z=3,m;m=y*z+1;10/29/20223赋值运算符赋值运算符3例例1:大约在大约在1500年前,孙子算经中就记年前,孙子算经中就记载了一个有趣的问题。载了一个有趣的问题。“今有雉兔同笼,今有雉兔同笼,上有三十五头,下有九十四足,问雉兔上有三十五头,下有九十四足,问雉兔各几何?各几何?”10/29/20223赋值运算符赋值运算符3根据题意列方程根据题意列方程例:例:从题中可知:有两个已知量从题中可知:有两个已知量 头和脚头和脚 要求要求两个未知量两个未知量 鸡数、兔数,因此鸡数、兔数,因此需要四个变量来保存这些数据。需要四个变量
8、来保存这些数据。int head,foot,chicken,rabbit;10/29/20223赋值运算符赋值运算符3根据题意列方程根据题意列方程例:例:head=35,foot=94;chicken+rabbit=head;2*chicken+4*rabbit=foot;计算机能否求出计算机能否求出chicken和和rabbit?10/29/2022编写程序过程:编写程序过程:1、定义变量:、定义变量:chicken,rabbit,head,foot,并给并给head赋值赋值35,foot赋值赋值942、根据方程,列出计算、根据方程,列出计算chicken的表达式,的表达式,列出计算列出计算
9、rabbit的表达式的表达式3、输出、输出chicken,rabbit10/29/20223赋值运算符赋值运算符3#include int main()程序的开始程序的开始定义数据定义数据计算计算(根据方程根据方程)输出结果输出结果程序的结束程序的结束return 0;int chicken=0,rabbit=0,head=35,foot=94;chicken=(4*head-foot)/2;rabbit=head-chicken;printf(“鸡数是鸡数是%dn兔数是兔数是%d”,chicken,rabbit);10/29/20223算术运算符算术运算符2算术表达式的书写算术表达式的书写注
10、意注意:1、C语言中没有语言中没有的符号的符号2、数学乘号是、数学乘号是,在,在C语言中是语言中是*3、在表达式时,乘号不能省略、在表达式时,乘号不能省略4、在使用除法时,请根据需要的结果类型,转换、在使用除法时,请根据需要的结果类型,转换操作数的类型操作数的类型10/29/20223算术运算符算术运算符2例如例如:有两个变量有两个变量x,y是整型变量,如果需要得到是整型变量,如果需要得到x除以除以y的实数型的结果,则不能直接使用的实数型的结果,则不能直接使用x/y可以使用方法可以使用方法:1、2、强制类型转换、强制类型转换:(float)x/y;(强力推荐强力推荐)10/29/20223算术
11、运算符算术运算符2强制类型转换强制类型转换:可以把一个变量(表达式)的值强制转换成可以把一个变量(表达式)的值强制转换成另外的一种类型,格式:另外的一种类型,格式:(类型类型)变量名或表达式;变量名或表达式;注意:注意:强制类型转换时,变量本身的类型不会改变强制类型转换时,变量本身的类型不会改变10/29/20223算术运算符算术运算符2#includeintmain()intx=2,y=3;floatf=0.5,d=3.4567;f=f+(float)x/y;y=x+(int)d+f;d=(int)(d*100+0.5)/100.0;printf(x=%d,y=%dn,x,y);printf
12、(f=%f,d=%fn,f,d);return0;请分析程序执行结果请分析程序执行结果10/29/20223复合运算符复合运算符4+=-=*=/=%=x=x+3;x+=3;一个简单的写法一个简单的写法例如:设例如:设x=6,y=2 x*=3+y x=?把一个数和自己相加把一个数和自己相加(减、乘、除)后保(减、乘、除)后保存在存在“自身中自身中”10/29/20223自增、自减运算符自增、自减运算符5+-x=x+1;x+=1;x+;注意对于该运算符注意对于该运算符只需要明白:只需要明白:p=x+和和p=+x的区别即可。的区别即可。+x;一个更简单的写法一个更简单的写法+在后面在后面+在前面在前
13、面10/29/2022#include int main()int x=1,y=1,px=0,py=0;px=x+;printf(x=%d,a=%dn,x,px);py=+y;printf(x=%d,b=%dn,y,py);return 0;请分析程序执行结果请分析程序执行结果10/29/2022#include int main()int x=1,y=1,px=0,py=0;px=x+;printf(x=%d,a=%dn,x,px);py=+y;printf(x=%d,b=%dn,y,py);return 0;x+和和+y都是一个计算式,区别都是一个计算式,区别:nx+,这个式子的值是,这个
14、式子的值是x原来的值原来的值n+y,这个式子的值是最新的值,这个式子的值是最新的值(加后)(加后)n公共点:公共点:x,y都会加都会加10/29/2022编写程序过程:编写程序过程:1、定义变量:、定义变量:v,d1,d2,d32、从键盘输入一个数保存在、从键盘输入一个数保存在v中中3、根据数学关系,从、根据数学关系,从v中分离出个位数保存中分离出个位数保存在在d3中,分离出十位数保存在中,分离出十位数保存在d2中,分离出中,分离出百位数保存在百位数保存在d1中中4、按照、按照d3,d2,d1的顺序输出三个数的顺序输出三个数例2:逆序输出一个三位正整数的每一位数字。10/29/2022例2:逆
15、序输出一个三位正整数的每一位数字。#include int main()程序的开始程序的开始定义变量定义变量计算计算输出结果输出结果程序的结束程序的结束输入数据输入数据return 0;int d1,d2,d3,value;printf(nEnter 3 integers:);scanf(%d,&value);d1=value/100;d2=value%100/10;d3=value%10;printf(n%d-%d%d%d,value,d3,d2,d1);10/29/2022课堂练习1:3课堂练习课堂练习6提示:提示:x=2 y=5 时时,z等于等于10/29/20223数学库函数数学库函数
16、7C语言中提供了很多的数学函数,在程序中可语言中提供了很多的数学函数,在程序中可以使用数学函数帮助我们进行数学计算以使用数学函数帮助我们进行数学计算(较复较复杂的数学运算杂的数学运算)注意:如果在程序里用到数学函数则,一定要注意:如果在程序里用到数学函数则,一定要包含,即在程序开始处:包含,即在程序开始处:#include 10/29/2022double fabs (double x)|-3.14159|fabs(-3.14159)函数名函数名参数:自变量,参数:自变量,使用时直接替换使用时直接替换函数算出结果的函数算出结果的类型,因变量类型,因变量功能:求绝对值功能:求绝对值使用举例:使用
17、举例:3数学库函数数学库函数710/29/2022#include#include int main()double x=0;double y=0.0;scanf(“%lf“,&x);y=fabs(x);printf(x=%7.5f,|x|=%7.5fn,x,y);return 0;程序的开始程序的开始定义变量定义变量计算计算(调用函数调用函数)输出结果输出结果程序的结束程序的结束输入数据输入数据10/29/2022double sin (double x)sin(90.)sin(3.14*90/180)注意:自变量的单位是注意:自变量的单位是弧度。弧度。功能:求功能:求x的正弦值的正弦值举例
18、:举例:3数学库函数数学库函数710/29/2022#include#include int main()double x=3.14159*90/180;/x的单位是弧度 double y=0.0;y=sin(x);printf(x=%7.5f,y=%7.5fn,x,y);return 0;求求角的正弦值角的正弦值10/29/2022输出输出sin2+cos2的值的值即从键盘输入一个角度,输出其正弦的即从键盘输入一个角度,输出其正弦的平方加余弦的平方的值平方加余弦的平方的值3数学库函数数学库函数 课堂练习课堂练习710/29/2022#include#include int main()dou
19、ble x=0.0,y=0.0,deg=0.0;scanf(%lf,&x);deg=x*3.14/180;y=sin(deg)*sin(deg)+cos(deg)*cos(deg);printf(x=%f 弧度,y=%fn,x,y);return 0;10/29/2022#include#include int main()double x=0.0,y=0.0,deg=0.0,s,c;scanf(“%lf”,&x);/*lf 输入double型数据*/deg=x*3.14/180;/*转换成弧度*/s=sin(deg);c=cos(deg);y=pow(s,2)+pow(c,2);printf
20、(x=%f 弧度,y=%fn,x,y);return 0;另解另解10/29/20223数学库函数数学库函数7double sqrt(double x)9举例:举例:x功能:计算功能:计算 sqrt(9)10/29/2022例例3:输入三角形的三条边,编程求该三角形的:输入三角形的三条边,编程求该三角形的面积面积分析:分析:3数学库函数数学库函数710/29/2022#include#include int main()return 0;float a=0.0,b=0.0,c=0.0,s=0.0,area=0.0;scanf(%f%f%f,&a,&b,&c);s=(a+b+c)/2;area=
21、sqrt(s*(s-a)*(s-b)*(s-c);printf(na=%.2f,b=%.2f,c=%.2fn,a,b,c);printf(narea=%.3fn,area);程序有问题没?程序有问题没?如果如果s-a0怎么办?怎么办?10/29/2022函数原型函数原型功能描述功能描述int abs(int x);int abs(int x);返回返回intint型型x x的绝对值的绝对值double fabs(double x);double fabs(double x);返回返回doubledouble型型x x的绝对值的绝对值double sin(double x);double sin
22、(double x);返回返回x x的正弦,的正弦,x x是弧度是弧度double cos(double x);double cos(double x);返回返回x x的余弦,的余弦,x x是弧度是弧度double tan(double x);double tan(double x);返回返回x x的正切,的正切,x x是弧度是弧度double exp(double x);double exp(double x);返回返回e ex xdouble double pow(double pow(double x,double x,double y);y);返回返回x xy ydouble sqrt
23、(double x);double sqrt(double x);返回返回x x的开平方的开平方double floor(double x);double floor(double x);返回小于返回小于x x的最大整数的最大整数double ceil(double x);double ceil(double x);返回大于返回大于x x的最小整数的最小整数double log(double x);double log(double x);返回返回x x的对自然数取对数的对自然数取对数double log10(double x);double log10(double x);返回返回x x的对的对1010取对数取对数10/29/20223课后练习课后练习10输入存款金额输入存款金额money、存期存期year和年利和年利率率rate,根据公式计算存款到期时的本根据公式计算存款到期时的本息合计息合计sum,输出时保留,输出时保留2位小数。位小数。提示提示:sum=money(1+rate)year10/29/2022
限制150内