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