任务2-3、理解C语言的算术运算_第1页
任务2-3、理解C语言的算术运算_第2页
任务2-3、理解C语言的算术运算_第3页
任务2-3、理解C语言的算术运算_第4页
任务2-3、理解C语言的算术运算_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计与项目实践清华大学出版社描述学生的特征信息——基本数据类型及运算项目2回顾与作业点评1、C语言的数据类型有哪些2、如何声明数据类型3、常量与变量预习检查1、数据类型2、运算符的分类项目任务需求描述用合适的基本数据类型描述学生成绩信息,其学生的成绩信息包括,班级,学号,考试科目编号,考试成绩,学分,课程类型。其中,课程类型包括必修、选修、辅修。目标掌握运算符和表达式的概念理解数据类型的转换项目任务任务2-3、理解C语言的算术运算1、算术运算符有哪些?2、如何对变量的值进行加工处理?运算符与表达式C语言的运算符按运算功能可分为以下几类:运算符种类用途运算符算术运算符用于各类数值运算加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--关系运算符用于比较运算大于(>)、小于(<)、等于(==)、

大于等于(>=)、小于等于(<=)和不等于(!=)逻辑运算符用于逻辑运算与(&&)、或(||)、非(!)位操作运算符参与运算的量,按二进制位进行运算位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)赋值运算符用于赋值运算分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)运算符的分类运算符用于指定在表达式中执行某种操作。按照运算符要求操作个数的多少,可以将运算符分为三类:(1)单目运算:只有一个操作数的运算符。(2)双目运算:带有两个操作数的运算符。(3)三目运算:带有三个操作数的运算符。运算符与表达式运算符种类用途运算符条件运算符这是一个三目运算符,用于条件求值条件求值(?:)逗号运算符用于把若干表达式组合成一个表达式,指针运算符用于取内容和取地址取内容(*),取地址(&)求字节数运算符用于计算数据类型所占的字节数计算数据类型所占的字节数(sizeof)强制类型转换类型转换(类型)分量运算符结果、联合的成员成员(.),成员(→)下标运算符号数组元素下标[]其他如函数调用括号()基本的算术运算符算术运算符除负值运算外都是双目运算。运算符名称举例-取负值-x+加法运算符x+y-减法运算符x-y*乘法运算符x*y/除法运算符x/y%求余运算符(模运算符)x%y运算符的优先级运算符的优先级是指当一个表达式中如果有多个运算符时,则计算的先后顺序。这种运算的先后次序称为相应运算符的优先级。在表达式中,优先级较高的先于优先级较低的进行运算。C语言中,运算符的运算优先级共分为15级。1级最高,15级最低(见附录表A)。基本的算术运算符使用除法运算”/”,若参与运算的变量均为整数时,其结果为整数(舍去小数),如果除数或被除数有一个是负数,其结果值随机器而定。取余运算%,要求参与运算的量均为整型。求余运算的结果等于两数相除后的余数。一般情况下,所得余数与被除数的符号相同。如-7/4,有的为-1,而有的机器为-2。如7%4=3,-6%5=-3,6%-5=3。运算符的结合性运算符的结合性:是指当一个运算对象两侧的运算符的优先级相同时,进行运算的结合方向。“从左到右”运算的顺序称为左结合,“从右到左的”顺序称为右结合。运算种类结合性优先级*、/、%左结合3级(高)+-左结合4级(低)x+y+zx=y=z=1下面表达式的结合性案例【案例2.16】程序输出结果是#include<stdio.h>voidmain(){printf("\n\n%d,%d\n",20/7,-20/7);printf("%f,%f\n",20.0/7,-20.0/7);printf("%d\n",100%3);}20/7,-20/7的结果均为整型,小数全部舍去。20.0/7和-20.0/7由于有实数参与运算,因此结果也为实型100除以3所得的余数1表达式3-1Sum=num1+num2操作数运算符表达式Z=(X*2)+(5–Y)

表达式3-2操作数操作数表达式表达式表达式运算符表达式表达式由操作数和运算符的组合而成表达式中的操作数可以是变量、常量或者子表达式一个表达式有一个值及其类型,它们等于计算表达式所得结果的值和类型。

主要类型有:算术表达式赋值表达式关系表达式逻辑表达式算术表达式算术表达式:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子。a+b;sin(a)+sin(b);i++-j;赋值运算符使用赋值表达式时应注意以下6个事项:(1)赋值运算符的优先级别只高于逗号运算符,比任何其他运算符的优先级都低,且具有自右向左的结合性。(2)赋值运算符不是数学中的“等于号”,而是进行“赋予”的操作。(3)赋值表达式x=y的作用是,将变量y所代表的存储单元中的内容赋给变量x所代表的存储单元,x中原有的数据被替换掉。(4)赋值运算符的左侧只能是变量,不能是常量或表达式。(5)赋值运算符右边的表达式也可以是一个赋值表达式。(6)在C语言中,“=”号被视为一个运算符,x=78是一个表达式。赋值运算符赋值运算符的符号为“=”,由赋值运算符组成的表达式称为赋值表达式。一般形式为:变量=表达式功能:先求出右边表达式的值,然后把此值赋给赋值号左边的变量。赋值运算符具有右结合性Height=177.5;Weight=78;Gender=

’m’;x=a+b;w=sin(a)+sin(b);y=i++-j;复合的赋值运算符在赋值符“=”之前加上其它二目运算符可构成复合赋值符。构成复合赋值表达式的一般形式为:变量双目运算符=表达式它等效于变量=变量运算符表达式复合赋值符十分有利于编译处理,能提高编译效率并产生质量较高的目标代码。复合赋值运算符运算符表达式计算结果(假设X=10)+=X+=5X=X+515-=X-=5X=X-55*=X*=5X=X*550/=X/=5X=X/52%=X%=5X=X%50示例#include<stdio.h>voidmain(){floatbook_price=60.75;printf("\n书的价格=%f",book_price);book_price+=12.50;printf("\n书的新价格=%f\n",book_price);}book_price=book_price+12.50;自增、自减运算符自增加、自减运算是单目运算符,都具有右结合性。它仅对一个运算对象施加运算,运算结果仍赋予该运算对象。自增1运算符记为“++”,其功能是使变量的值自增1。自减1运算符记为“--”,其功能是使变量值自减1。前置运算:++ii自增1后再参与其它运算。--ii自减1后再参与其它运算。后置运算:i++i参与运算后,i的值再自增1。i--i参与运算后,i的值再自减1。参加运算对象可以是整型变量也可以是实整型变量,不能是常量或表达式。自增、自减运算符【例2.18】观察程序输出结果#include<stdio.h>voidmain(){inti=5,j=5,p,q;p=(i++)+(i++)+(i++);q=(++j)+(++j)+(++j);printf("%d,%d,%d,%d\n",p,q,i,j);}理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。不同的编译器其处理的结果不一样。TruboC,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。对于VisualC++6.0来讲,q=(++j)+(++j)+(++j)其处理结果为:7+7+8=22逗号运算符和逗号表达式逗号运算符“,”是C语言提供的一种特殊运算符,称为逗号运算符。逗号运算符的结合性为从左到右。在所有运算符中,逗号运算符的优先级最低。,逗号运算符和逗号表达式逗号表达式用逗号运算符将表达式连接起来的式子称为逗号表达式。其格式为:由于逗号运算符的结合性为从左到右,所以逗号表达式将从左到右进行运算。即先计算表达式1,然后计算表达式2,依次进行,最后计算表达式n,最后一个表达式的值就是此逗号表达式的值表达式:a=3*5,a*4的值先求解a=3*5,得a的值为15,然后求解a*4,得60。所以表达式最后的值为60。逗号运算符和逗号表达式注意:(1)逗号表达式一般形式中的表达式1和表达式2也可以又是逗号表达式。例如:表达式1,(表达式2,表达式3)(2)程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。任务分析与实施1、任务分析本次任务,输入一个三位数,分别求其百位数、十位数、个位数。设计一个三位数abc的百位数为a,十位数为b,个位数为c,则这个数可以表示为:a*100+b*10+c=abc,因此a的值为abc整除100,bc为abc除以100的余数。依次类推,就可以求出b和c。任务分析与实施2、任务的实施根据上面的分析,其N-S图2-7所示:项目实践1、需求描述用合适的基本数据类型描述学生成绩信息,其学生的成绩信息包括,班级,学号,考试科目编号,考试成绩,学分,课程类型。其中,课程类型包括必修、选修、辅修。2、分析与设计根据学生成绩信息的特征,其数据类型定义如下:学号(SID):长整型课程编号(CID):长整型学分(Credit):短整型考试成绩(Score):实型课程类型(Type):字符型,a必修、b选修、c辅修完成时间:30分钟共性问题集中讲解常见调试问题及解决办法代码规范问题共性问题集中讲解总结1、数据类型的定义2、表达式与运算符3、运算符的优先级与结合性标识符(identifier),变量(variable),常量(constant),表达式(expression),单目运算符(unaryoperator),双目(binocular),地址

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论