《数学运算符学习.pptx》由会员分享,可在线阅读,更多相关《数学运算符学习.pptx(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、回顾常量在程序中不能被更改,而变量在程序中可以被更改C语言中的基本数据类型包括整型、单精度浮点型、双精度浮点型和字符型整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型单精度浮点型和双精度浮点型变量可以存储实数字符型变量可以存储单个字符,其值是该字符的ASCII 码算术运算符提供运算功能,包括+、-、*、/、%、+、-printf()和 scanf()函数属于格式输入输出函数getchar()和 putchar()函数用来输入输出单个字符的函数第1页/共34页目标 理解表达式掌握赋值运算符的用法熟练使用关系运算符掌握简单的条件语句的使用熟练使用逻辑运算符了解sizeof运算符理解
2、运算符的优先级第2页/共34页表达式 3-1第3页/共34页Z=(X*2)+(5 Y)表达式 3-2操作数操作数操作数操作数表达式表达式表达式表达式表达式表达式运算符运算符第4页/共34页表达式 3-3 表达式由操作数和运算符的组合而成表达式中的操作数可以是变量、常量或者子表达式运算符的主要类型有:算术运算符 赋值运算符 关系运算符 逻辑运算符第5页/共34页变量变量 表达式表达式;赋值运算符Height=177.5;Weight=78;Gender=m;x=a+b;w=sin(a)+sin(b);y=i+-j;第6页/共34页复合赋值运算符运算符运算符表达式表达式计算计算结果(假设结果(假设
3、 X=10X=10)+=X +=5X=X+515-=X -=5X=X-55*=X*=5X=X*550/=X /=5X=X/52%=X%=5X=X%50第7页/共34页示例#include void main()float book_price=60.75;printf(n 书的价格=%f,book_price);book_price+=12.50;printf(n 书的新价格=%fn,book_price);book_price=book_price+12.50;输出:书的价格=60.750000书的新价格=73.250000第8页/共34页关系运算符 3-1 操作数关系运算符关系表达式的计算
4、结果 =逻辑值(真或假)在C C语言中,“0 0”表示“假”,“非0 0”表示“真”操作数关系运算符用于测试两个操作数或两个表达式之间的关系,其中操作数可以是变量、常量或表达式。第9页/共34页关系运算符关系运算符 3-2操作数1 1操作数2 2第10页/共34页关系运算符 3-3num1=10;num2=5;num3=20;num4=10;(num1+num2)(num3 num4)num=40;num/10!=2gender =m真假=如果 gender =f如果 gender =m第11页/共34页条件结构 2-1 条件结构就是需要根据不同条件进行判断,然后执行不同的操作简单 if 语句
5、的一般形式为:if()如果条件为真,if 语句执行一个语句或一组语句;如果条件为假,则执行 if 语句后面的语句(如果有)。第12页/共34页条件结构 2-2 if-else 语句的一般形式为:if()else 如果条件为真,执行 if 后面的一个语句或一组语句;如果条件为假,则执行 else 后面的语句。第13页/共34页#include void main()int num1,num2,sum;printf(n请输入两个数:);scanf(%d%d,&num1,&num2);sum=num1+num2;if(sum 100)printf(n两数的和大于 100 n);简单if语句的示例内存
6、内存num1num2sum5678134请输入两个数:56 78两数的和大于 100第14页/共34页#include void main()int num;printf(n请输入一个整数:);scanf(%d,&num);if(num%2)=0)printf(%d 是一个偶数。n,num);elseprintf(%d 是一个奇数。n,num);if-else语句的示例内存内存num57请输入一个整数:5757 是一个奇数。第15页/共34页逻辑运算符 q逻辑运算符用于连接一个或多个条件,判断这些条件是否成立q逻辑运算符的类型为:运算运算运算符运算符表达式表达式逻辑“与”&operand1&o
7、perand2逻辑“或”|operand1|operand2逻辑“非”!operand1 第16页/共34页 逻辑“与”运算符&所有学科及格考勤率达到 75%留级留级留级升级YesNoNoNoNoYesYesYes第17页/共34页逻辑“与”运算符&表达式表达式 1 1表达式表达式 2 2结果结果000010100111所有学科及格考勤率达到 75%留级留级NoNo升级YesYes留级NoYes留级留级NoYes第18页/共34页逻辑“或”运算符|无法支付可支付可支付可支付YesNoNoNoNoYesYesYes购物帐单信用卡第19页/共34页现金信用卡逻辑“或”运算符|表达式 1表达式 2结
8、果000011101111无法支付NoNo可支付NoYes可支付NoYes可支付YesYes第20页/共34页逻辑“非”运算符!不带伞带伞NoYes天气 NOT 阴天第21页/共34页逻辑“非”运算符!表达式结果1001天气 NOT 阴天真真假带伞操作不带伞第22页/共34页逻辑运算符总结所有学科及格考勤率达到 75%&天气天气 NOT 阴天阴天只有当两个两个条件都为真真时才执行操作只要任何任何一个条件为真真时就执行操作对原条件取反取反,即:如果原条件为假时就执行操作|!第23页/共34页问题描述:要求用户输入一个字符,用程序判断该字符是否为小写字母,并输出相应的信息。#include voi
9、d main()char a;printf(n请输入一个字符:);scanf(%c,&a);if(a=a&a=z)printf(您输入的字符是小写字母n,a);elseprintf(您输入的字符不是小写字母n,a);使用&运算符的示例内存内存numT请输入一个字符:T您输入的字符不是小写字母第24页/共34页25问题描述:接受用户输入的三种商品的价格。如果购买的三种商品中至少有一种商品的价格大于 50 或者三种商品的总额大于 100,则折扣率为15,否则折扣率为,计算并显示用户应付的钱数。#include void main()float rate1,rate2,rate3;double di
10、scount,total;printf(n请输入第一种商品的价格:);scanf(%f,&rate1);printf(n请输入第二种商品的价格:);scanf(%f,&rate2);printf(n请输入第三种商品的价格:);scanf(%f,&rate3);total=rate1+rate2+rate3;if(rate150)|(rate250)|(rate350)|(total100)discount=0.15*total;total=total-discount;printf(n折后总价为:%6.2fn,total);else printf(n总价为:%6.2fn,total);使用|运
11、算符的示例 if(rate150)|(rate250)|(rate350)|(total100)输出:请输入第一种商品的价格:34请输入第二种商品的价格:42请输入第三种商品的价格:38折后总价为:96.90第25页/共34页问题描述:确定用户输入的数字是否可以被5整除,并输出相应的消息。#include void main()int num;printf(n 请输入一个数:);scanf(%d,&num);if(!(num%5)printf(n 该数能被 5 整除 n);else printf(n 该数不能被 5 整除 n);使用!运算符的示例请输入一个数:90该数能被 5 整除第26页/共
12、34页sizeof 运算符 sizeof(int);float num;sizeof(num);24char1int2short int2long4float4double8sizeof 运算符返回的大小q使用 sizeof 运算符可以获得数据类型占用内存空间的大小。其一般形式为:sizeof(type_name)qsizeof 运算符的结果以字节为单位显示注意:在32位计算机中,int类型的变量占4字节的内存大小,和long类型的大小一样,所以现在基本上可以直接使用int类型,而不需要使用long类型。第27页/共34页运算符优先级 2-1 当我们遇到一个复杂表达式时,需要确定先执行哪种运算
13、,此时就需要考虑运算符的优先级 z=x+y g*h*(t/20)+65 r%2先算哪部分加?减?取余?除?括号?要解决此问题,需要使用:运算符优先级第28页/共34页运算符运算符优先级 2-2运算符运算符描述描述结合性结合性()圆括号自左向右!,+,-,sizeof逻辑非,递增,递减,求数据类型的大小自右向左*,/,%乘法,除法,取余自左向右+,-加法,减法自左向右,=小于,小于等于,大于,大于等于自左向右=,!=等于,不等于自左向右&逻辑与自左向右|逻辑或自左向右=,+=,*=,/=,%=,-=赋值运算符,复合赋值运算符自右向左第29页/共34页问题描述:判定给定的年份是否为闰年。提示:闰年
14、的判定规则为:能被 4 整除但不能被 100 整除的年份,或能被 400 整除的年份。#include void main()int year;printf(n 请输入年份:);scanf(%d,&year);if(year%4=0&year%100!=0)|(year%400=0)printf(n%d 年是闰年 n,year);else printf(n%d 年不是闰年 n,year);综合示例1请输入年份:20052005 年不是闰年第30页/共34页问题描述:输入一个5位数,判断它是不是回文数。例如:12321是回文数,个位与万位相同,十位与千位相同。#include void main
15、()long ge,shi,qian,wan,x;printf(n 请输入一个五位整数:);scanf(%ld,&x);wan=x/10000;/分解出万位数qian=x%10000/1000;/分解出千位数shi=x%100/10;/分解出十位数ge=x%10;/分解出个位数if(ge=wan&shi=qian)/*个位等于万位并且十位等于千位*/printf(n 这个数是回文数n);elseprintf(n 这个数不是回文数n);综合示例2输出:请输入一个五位整数:45654这个数是回文数第31页/共34页总结 2-1 表达式是操作数和运算符的集合赋值运算符的语法如下:variable=expression关系运算符运用测试两个操作数之间的关系关系表达式计算出的值始终为逻辑真(非0)或逻辑假(0)条件结构解决了程序种需要根据不同情况进行判断的情况条件语句中需要提供判断条件,该条件要求返回逻辑值(真或假)第32页/共34页总结 2-2 逻辑运算符用于组合多个条件(&和|)或者为某一条件取反(!)sizeof运算符用于在程序中测试某一数据类型占用多少字节在复杂表达式中,通过运算符的优先级确定各种运算符的执行顺序第33页/共34页感谢您的观看。第34页/共34页
限制150内