【文档说明】lesson-3-C语言程序运算详解课件.ppt,共(44)页,969.002 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-7172.html
以下为本文档部分文字说明:
2022/11/13电气与信息工程学院计算机系制作Lesson3C语言程序设计基础2022/11/13电气与信息工程学院计算机系制作学习目标:31学会使用C语言中运算符对程序中的数据进行处理2022/11/13电气与信息工程学院计算机系制作主要内容:31算术运算数学库函数2022/
11/13电气与信息工程学院计算机系制作3算术运算符2C语言程序的最终目标就是正确的数据进行处理(计算)2022/11/13电气与信息工程学院计算机系制作3算术运算符2C语言程序对数据的处理(运算)1、直接运算1、简单运算:
加,减、乘、除2、较复杂运算:开平方、取对数、三角函数2、通过一个过程进行运算(后面主要学习的内容)C语言程序的最终目标就是正确的数据进行处理(计算)2022/11/13电气与信息工程学院计算机系制作3算术运算符2C语言给我们提供了许多的算术运算符,可以直接对数据进行计算。+-*/%加减乘除取
余2022/11/13电气与信息工程学院计算机系制作3算术运算符2对于除(/)运算,当两个操作数为整型时,结果也为整型。例如:48/5其值为9;100/13其值为7。只要其中一个为实型,其结果也为实型。例如:48/5.0其值为9.6关
于算术运算的特别说明:2022/11/13电气与信息工程学院计算机系制作#include<stdio.h>intmain(){floatf1,f2;f1=3.0+5/3;f2=3.0+5.0/3;printf("f1=%f,f2=%f",f1,f2);retu
rn0;}//结果会是什么呢?计算过程:2022/11/13电气与信息工程学院计算机系制作f1计算过程:第一步计算除法:5/3=1第二步计算加法:3.0+1=4.0第三步把结果赋值给f1:f1=4.0;f2计算过程:第一步计算除法:5.0/3=1.6666
67第二步计算加法:3.0+1.666667=4.666667第三步把结果赋值给f1:f2=4.666667;2022/11/13电气与信息工程学院计算机系制作3算术运算符2对于取余(%)运算,它的两个操作数必须是整型,其结果是两数相除的余数,也为整型。假设a和b是两个int类型的变量,且b不等于
0;则a%b的计算结果是a整除以b的余数。例如,a=20,b=3,则a%b的结果为22022/11/13电气与信息工程学院计算机系制作3赋值运算符3赋值运算符=示例:s=0.0;功能说明:计算=右侧式子的值将=右侧式子的值赋给左侧
的变量例如:intx=2;//给x赋一个初值2x=x+3;2022/11/13电气与信息工程学院计算机系制作3赋值运算符3注意:=的左边必须是一个变量例如:intx=2,y=5;x=x*x-y*y;正确x=y=5;正确4=x-y;错误x+y=5;错误
x=y=5;2022/11/13电气与信息工程学院计算机系制作3赋值运算符3注意:x=y+z;的理解不是数学上建立x是y与z的和的关系的意义它仅仅只表示此时需要计算机做一个计算:把y+z的和赋值给x2022/11/13电气与信息工程学院计算机系制作3赋值运算符3#include
<stdio.h>intmain(){intx=1,y=2,z=0;z=x+y;printf("first:z=%d\n",z);x=3;y=4;printf("second:z=%d\n",z);return0;}请分析程序执行结果lesson3_fzyy.c2022/11/13电气与信息工
程学院计算机系制作3运算符3运算符有优先级和结合性,在计算表达式的值时,按照运算符的优先级顺序进行。例如:intx=1,y=2,z=3,m;m=y*z+1;2022/11/13电气与信息工程学院计算机系制作3赋值运算符3例1:大约在1500年前,《孙子算经
》中就记载了一个有趣的问题。“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”2022/11/13电气与信息工程学院计算机系制作3赋值运算符3根据题意列方程例:从题中可知:有两个已知量头和脚要求两个未知量鸡数、兔数,因此需要四个变量来保存这些数
据。inthead,foot,chicken,rabbit;2022/11/13电气与信息工程学院计算机系制作3赋值运算符3根据题意列方程例:head=35,foot=94;chicken+rabbit=head;2*chicken+4*rabbit=foot;计算机能否求出chick
en和rabbit?2022/11/13电气与信息工程学院计算机系制作编写程序过程:1、定义变量:chicken,rabbit,head,foot,并给head赋值35,foot赋值942、根据方程,列出计算chicken的表达式
,列出计算rabbit的表达式3、输出chicken,rabbit2022/11/13电气与信息工程学院计算机系制作3赋值运算符3#include<stdio.h>intmain(){lesson3_
01.c程序的开始定义数据计算(根据方程)输出结果程序的结束return0;}intchicken=0,rabbit=0,head=35,foot=94;chicken=(4*head-foot)/2;rabbit=head-chicken;printf(“
鸡数是%d\n兔数是%d”,chicken,rabbit);2022/11/13电气与信息工程学院计算机系制作3算术运算符2算术表达式的书写数学表达式C语言表达式S=(a+b+c)/2V=4*3.1415*R*R*R/3注意:1、C语言中没有∏的符号2、数学乘号是×,
在C语言中是*3、在表达式时,乘号不能省略4、在使用除法时,请根据需要的结果类型,转换操作数的类型2022/11/13电气与信息工程学院计算机系制作3算术运算符2例如:有两个变量x,y是整型变量,如果需要得到x除以y的实数型的结果,则不能直接使用
x/y可以使用方法:1、x*1.0/y2、强制类型转换:(float)x/y;(强力推荐)2022/11/13电气与信息工程学院计算机系制作3算术运算符2强制类型转换:可以把一个变量(表达式)的值强制转换成另外的一种类型,格式:(类型)变量名或表达式;注意:强制类型转
换时,变量本身的类型不会改变2022/11/13电气与信息工程学院计算机系制作3算术运算符2#include<stdio.h>intmain(){intx=2,y=3;floatf=0.5,d=3.4567;f=f+(float)x/y;y=x+(int)d+f;d=((i
nt)(d*100+0.5))/100.0;printf("x=%d,y=%d\n",x,y);printf("f=%f,d=%f\n",f,d);return0;}lesson3_qzzh.c请分析程序执行结果2022/11/13电气与信息
工程学院计算机系制作3复合运算符4+=-=*=/=%=x=x+3;x+=3;一个简单的写法例如:设x=6,y=2x*=3+yx=?把一个数和自己相加(减、乘、除)后保存在“自身中”2022/11/13电气与信息工程学院计算机系制作3自增、自减运算符5++--x=x
+1;x+=1;x++;注意对于该运算符只需要明白:p=x++和p=++x的区别即可。++x;一个更简单的写法++在后面++在前面2022/11/13电气与信息工程学院计算机系制作#include<stdio.h>intmain(){intx=1,y=1,px=0,py=0;px=x++
;printf("x=%d,a=%d\n",x,px);py=++y;printf("x=%d,b=%d\n",y,py);return0;}请分析程序执行结果2022/11/13电气与信息工程学院计算机系制作#include<stdio.h>intmain(){int
x=1,y=1,px=0,py=0;px=x++;printf("x=%d,a=%d\n",x,px);py=++y;printf("x=%d,b=%d\n",y,py);return0;}x++和++y都是一个计算式,区别:x++,这个式子
的值是x原来的值++y,这个式子的值是y最新的值(加1后)公共点:x,y都会加12022/11/13电气与信息工程学院计算机系制作编写程序过程:1、定义变量:v,d1,d2,d32、从键盘输入一个数保存在v中3、根据数学关系
,从v中分离出个位数保存在d3中,分离出十位数保存在d2中,分离出百位数保存在d1中4、按照d3,d2,d1的顺序输出三个数例2:逆序输出一个三位正整数的每一位数字。2022/11/13电气与信息工程学院计算机系制作例2:逆序输出一个三位正整数的每一位数字
。#include<stdio.h>intmain(){lesson3_02.c程序的开始定义变量计算输出结果程序的结束输入数据return0;}intd1,d2,d3,value;printf("\nEnter3integers:");scanf("%d",&value);d1=value/1
00;d2=value%100/10;d3=value%10;printf("\n%d->%d%d%d",value,d3,d2,d1);2022/11/13电气与信息工程学院计算机系制作课堂练习1:3课堂练习6提示:x=2y=5时,z等于:11.666667yyxz12122022
/11/13电气与信息工程学院计算机系制作3数学库函数7C语言中提供了很多的数学函数,在程序中可以使用数学函数帮助我们进行数学计算(较复杂的数学运算)注意:如果在程序里用到数学函数则,一定要包含math.h,即在程序开始处:#include<math.
h>2022/11/13电气与信息工程学院计算机系制作doublefabs(doublex)|-3.14159|fabs(-3.14159)函数名参数:自变量,使用时直接替换函数算出结果的类型,因变量功能:求绝对值使用举例:3数学库函数
72022/11/13电气与信息工程学院计算机系制作#include<stdio.h>#include<math.h>intmain(){doublex=0;doubley=0.0;scanf(“%lf“,&x);y=fabs(x);printf("x=%7.5f
,|x|=%7.5f\n",x,y);return0;}程序的开始定义变量计算(调用函数)输出结果程序的结束输入数据2022/11/13电气与信息工程学院计算机系制作doublesin(doublex)sin(90.)sin(3.14*90/180)注意:自变量的单位是弧度
。功能:求x的正弦值举例:3数学库函数72022/11/13电气与信息工程学院计算机系制作#include<stdio.h>#include<math.h>intmain(){doublex=3.1415
9*90/180;//x的单位是弧度doubley=0.0;y=sin(x);printf("x=%7.5f,y=%7.5f\n",x,y);return0;}求900角的正弦值2022/11/13电气与信息工程学院计算机
系制作输出sin2+cos2的值即从键盘输入一个角度,输出其正弦的平方加余弦的平方的值3数学库函数课堂练习72022/11/13电气与信息工程学院计算机系制作#include<stdio.h>#include<math.h>intmain(){
doublex=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=%f\n",x,y);return0;}2022/11/13
电气与信息工程学院计算机系制作#include<stdio.h>#include<math.h>intmain(){doublex=0.0,y=0.0,deg=0.0,s,c;scanf(“%lf”,&x);/*lf输入doubl
e型数据*/deg=x*3.14/180;/*转换成弧度*/s=sin(deg);c=cos(deg);y=pow(s,2)+pow(c,2);printf("x=%f弧度,y=%f\n",x,y);return0;}另解2022/11/13电气与信息工程学
院计算机系制作3数学库函数7doublesqrt(doublex)9举例:x功能:计算sqrt(9)2022/11/13电气与信息工程学院计算机系制作例3:输入三角形的三条边,编程求该三角形的面积))()((csbsassarea)(21cbas分析:3数学库函数72
022/11/13电气与信息工程学院计算机系制作#include<stdio.h>#include<math.h>intmain(){return0;}floata=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=%.2f\n",a,b,c);printf("\narea=%.3f\n",area);lesson3_03.c程
序有问题没?如果s-a<0怎么办?2022/11/13电气与信息工程学院计算机系制作函数原型功能描述intabs(intx);返回int型x的绝对值doublefabs(doublex);返回double型x的绝对值do
ublesin(doublex);返回x的正弦,x是弧度doublecos(doublex);返回x的余弦,x是弧度doubletan(doublex);返回x的正切,x是弧度doubleexp(doublex);返回exdoublepow(d
oublex,doubley);返回xydoublesqrt(doublex);返回x的开平方doublefloor(doublex);返回小于x的最大整数doubleceil(doublex);返回大于x的最小整数doublelog(doublex);返回x的对自然数取对数doublelog10
(doublex);返回x的对10取对数2022/11/13电气与信息工程学院计算机系制作3课后练习10输入存款金额money、存期year和年利率rate,根据公式计算存款到期时的本息合计sum,输出时保留2位小数。提示:sum=mon
ey(1+rate)year