《C语言运算符和表达式.ppt》由会员分享,可在线阅读,更多相关《C语言运算符和表达式.ppt(29页珍藏版)》请在人人文库网上搜索。

1、运算符和表达式,夏涛,运算符与表达式,计算机与运算密不可分。运算是对数据的加工。 最基本的运算形式常常可以用一些简洁的符号记述,这些符号称为运算符或操作符。 C表达式:用运算符将运算对象(也称操作数)连接起来的、符合C语法规则的式子。被运算的对象-数据称为运算量或操作数。运算量可以是数字,也可以是字符;运算量可以是常量,也可以是变量,还可以是函数。 表达式描述了对哪些数据,以什么顺序施与什么样的操作。它由运算符与运算量组成。,2 + 3,运算量,运算量,运算符,合法的表达式: 1、a+3 2、1.25+sin(90) 3、ac 4、a=1998,与代数运算符、代数表达式的差异,1、不是所有的代。

2、数运算符都被C语言支持。 2、同样一个功能的运算符的书写形式是有差异的。 3、有些代数运算符需要通过函数实现。 4、有些运算符在普通代数式中是没有的。 5、C语言表达式和代数表达式的书写格式是有差异的。 6、不要吝啬使用括号。, ,与= X与*,? . -,运算 运 算:对数据进行计算处理的过程。 例: y=x*x、 y=cos(x)、 ab。 运算符:表示不同运算的符号(它代表各种运算的含义)。 例: + 、 - 、 *、 、 b。,运算符 种类 算术运算符、关系运算符、逻辑运算符、条件运算符等。 优先级 混合运算时,各种运算的优先次序。 结合性 混合运算时,各种运算是从运算符左边还是右边开。

3、始进行。,运算与运算符,运算符号,注意,1、运算符的功能 2、与运算量的关系 A、要求运算量的个数:要求两个运算量参加运算,称为双项(双元、双目)运算符;有的运算符只允许有一个运算量,称为单项(一元、一目)运算符。 B、要求运算量的类型。 3、运算的优先级别 4、结合方向 5、所得结果的类型,即表达式的类型。,%:只能对整数进行该运算,/:整数运算的结果为整数,运算符的优先级与结合性,运算符的优先级:运算符优先级表,按照由高向低的次序执行; 运算符的结合性:算术运算符的结合方向。“自左至右”或“自右至左”。,例如:= 是“自右至左”结合的; a=b=c=5 就相当于 a=(b=(c=5);,运。

4、算的优先级,今后再讲,基本运算符与基本表达式,1、算术运算符与算术表达式 2、关系运算符与关系表达式 3、逻辑运算符与逻辑表达式 4、赋值运算符与赋值表达式,基本的算术运算符,+ 加法运算符 - 减法运算符 * 乘法运算符 / 除法运算符 % 模运算符(求余运算符) 注意: 1、两个整数相除的结果为整数,舍弃小数部分; 2、除数和被除数中有一个为实数,则商为double型 思考:int a = 3; float b = 2.5;那么a/b的结果为何不是float型? 3、求余运算要求%的两侧均为整型数据。,百钱买百鸡,main() int cocks, hens, chicks; cocks 。

5、= 0; while(cocks = 19) hens = 0; while(hens = 33) chicks = 100-cocks-hens; if(5*cocks+3*hens+chicks/3) = 100) printf(“%d %d %dn”, cocks, hens, chicks); hens = hens +1; cocks = cocks +1; ,两整数相除,商取整数,例题,分析程序及输出结果:,main() char c1=A , c2; int m; c2= c1+32; m = c1+32; printf(c1 c2 m = %c %c %c n, c1, c2,。

6、 m); printf(c1 c2 m = %d %d %d n, c1, c2, m); ,有错误吗?,运行结果:,运行程序 (2-0.c),c1 c2 m = A a a c1 c2 m = 65 97 97,将字符 A 的ASCII 代码(65) 存入字符变量 c1 中!,字符变量 c2和整变量m 保存的都是 97, 此代码对应的是字母 a !,注意: 字符型与整型“通用”,%c 描述字符型; %d 描述整型,自增、自减运算符,注意: 1、只能用于变量,不能用于常量或表达式; 2、运算符的结合方向为“自右至左”。,使变量的值增1或减1。 名 称 运算符 说 明 例 增 1(前缀) + +。

7、 先加1,后使用。 + i 增 1(后缀) + + 先使用,后加1。 i + 减 1(前缀) - - 先减1,后使用。 - - i 减 1(后缀) - - 先使用,后减1。 i - -,例:int j,i=3; 例:int j,i=3; j=+i; j=i+; 结果变量j的值为3, 结果j的值为4。 变量i将3赋给j后自加1变为4。,赋值运算符,先计算等号右边的表达式,然后将其值赋给等号左边的变量。 C语言赋值运算符与数学中的等号其含义有着本质的不同。,名 称 赋值运算符 赋 值 = 格式 : 变量 = 表达式 ;,例: x = 10 ; y = x*x+x ;,复合的赋值运算符,1、复合的赋。

8、值运算符:在赋值符“=”之前加上其它运算符,则构成了复合的运算符。 2、C语言规定可以使用10种复合赋值运算符: +=,-=,*=,/=,%=,=, int b=c=0; float f =5.8; char c1=e;,变量的赋值,1、初始化:说明的同时赋值 int i=5, j=6; float x=10.1 ; char name=A;,2、先说明,后赋值 int i; float x=10.1; char name; i=5; name=A,赋值运算符的副作用,1、费解、容易误解-对人的副作用 克服方法:尽量把程序写得易懂一些。效率和易读性是一对主要矛盾。可靠性第一,效率第二。 措施:。

9、将费解处分解;加一些“不必要”的括号;加注释说明。 2、不定解-对机器的副作用 原因:C语言中运算符类型丰富,对表达式的求值顺序无统一规定。同一程序,在不同的计算机系统运行时结果不同。 措施:使表达式分解,在任何计算机上运行都能得到同一结果。,c=b*=a+2; x=i+j ;,a=a+2;b=b*a;c=b; 或:c=a+2;c=b*c; 或:c=b*=(a+2); 或:c=b*=a+2;/*c=a+2;c=b*c*/,x=i+j;i+;,j=3; i=(k=j+1)+(j=5);,j=3;k=j+1;j=5;i=k+j;,变量的数据类型、字节长度、位数、数据范围,数据存储格式,double。

10、,float,long,short,char,符 点 表 示,定 点 表 示,不同类型数据间的转换,1、提升与降格 2、实数变整数,截去小数;double变float,去掉多余的有效数字,四舍五入。 3、丢失精度:由2引起,或由于有效数字位数引起。 4、结果不确定:符点数降格,当数据值超过了目标类型的取值范围,所得到的结果是不确定的。 5、截去高位:长整数转换为短整数时,要将高位截去,只将低字节的内容保留。,指出下边程序在执行过程中各个变量的取值。,main( ) int x=315; char ch=a,c; float f=3.5; c=x; x=f; f=c; f=x; ,315的二进制。

11、形式为: 0000000100111011 其赋给字符变量 c 取低八位即 00111011 所以 c 的值为: 59。 x 的值为: 3。 f 的值为: 59.0。 f 的值为: 3.0。,不同类型数据间的转换,main() double a = 123456.789098765; float b=a; long c=a; int i=a; printf(“a=%lf,b=%f;c=%ld,i=%dn”,a,b,c,i); ,运行结果: a=123456.789099,b=123456.789062,c=123456,i=-7616,各类型数据间的混合运算,整型、实型、字符型数据间可以混合运。

12、算。 不同类型的数据要先转换成同一类型,然后进行运算。 转换的基本原则:保证运算精度! 必定的转换: 1、float变double 2 、char, short变int 运算对象为不同类型时的转换: 1、转换方法:int unsigned long double 2、系统自动进行。,赋值中的类型转换,1、类型转换是指不同类型变量混合使用的情况。 2、规则:赋值运算符右边的值变为赋值运算符左边变量所属的类型 3、整型转换为实行和实型转换为双精度实型,并不增加任何准确度和精确度 4、普通类型转换的结果,强制类型转换,通过使用强制类型转换,可以强迫表达式的值转换为某一特定类型。一般的形式是: (类型。

13、) 表达式 其中类型是C语言的标准数据类型。 注意:强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。,逗号运算符,逗号运算符用于将多个表达式串在一起。 逗号运算符是所有运算符中级别最低的。 逗号运算符的左边总是不返回的,也就是说逗号右边表达式的值才是整个表达式的值。 实质:逗号使一系列的运算逐个进行。 逗号用在赋值语句的右边,将一系列表达式逐个分隔开,而赋给变量的值是最后一个表达式的值。 逗号运算符和普通英语中的and一词有相同的含义,就象词组“do this and this and this”一样。 请注意区分参数间的分隔符和逗号运算符。,逗号表达式,用逗号运算符将两个表达式连接起来,称为逗号表达式。逗号表达式的一般形式为: 表达式1,表达式2, . ,表达式n 一个逗号表达式可以与另外一个表达式组成一个新的逗号表达式。,例如: y=10; x=(y=y-5,25/y);,Y的初始值为10,减5后为5 再将25除以5所得结果为5, 所以x的值为5。

c语言等号运算符先计算右边,C语言运算符和表达式.ppt相关推荐

  1. 科学计算与matlab语言期末答案,科学计算与MATLAB语言期末答案

    科学计算与MATLAB语言期末答案 更多相关问题 "来而不往非礼也"符合人机交往的( )原则 若MD20中存放数据为-100.5,执行程序段"L MD20/RUD+/T ...

  2. c语言自动生成时间计算天数,C语言计算某月的天数(附带源码)

    这是一个C语言编程实例:给定年份和月份,求该月共有多少天. 问题分析 输入:年份(整数)和月份(整数). 输出:该月份的天数(整数). 一年有 12 个月,其中一.三.五.七.八.十.十二月各有 31 ...

  3. c语言用梯形法计算积分,c语言用梯形法求积分

    c语言用梯形法求积分 來源:互聯網  2009-12-29 11:56:13  評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 問題描述: #include fl ...

  4. c语言程序 存款利息的计算,【c语言】存款利息的计算

    // 存款利息的计算.有1000元,想存5年,可按以下5种办法存: // 1.一次存5年期. // 2.先存2年期,到期后将本息再存3年期. // 3.先存3年期,到期后将本息再存2年期. // 4. ...

  5. 科学计算与matlab语言期末答案,科学计算与MATLAB语言答案

    [单选题]用于定义按钮被单击的响应的属性是( ). [判断题]调用fplot3函数绘制空间曲线时,需要先计算曲线上各点的坐标. [单选题]当实验或测试所获得的样本数据有误差时,适合用来估算数据的方法是 ...

  6. ntc温度控制程序 c语言,NTC热敏电阻温度计算以及C语言实现

    一:硬件设计 这里使用的是MF52-103热敏电阻,其中B为3950,它与10K电阻串联,由于热敏电阻随着温度的升高,电阻值降低,所以10K电阻两端的电压将上升. 二:NTC热敏电阻的计算 NTC 热 ...

  7. c语言课设四边形计算报告,c语言课程设计关于四边形证明对于任意的四边形ABCD对角线AC与BD的中点分别是M、N,AB、CD的延长线交于R。验证三...

    共回答了14个问题采纳率:100% /* AC中点M,BD中点N,BA.CD延长后交于R 验证area(ABCD)==4*area(RMN) */#include #include #include ...

  8. c语言编程协方差,协方差计算的C语言代码

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/luckisok/archive/2007/05/11/1605202.aspx谢谢 协方差在信号分析时有重要作用: 1 ...

  9. 计算机的算数运算符号位参与计算吗,C语言算术运算符和算术表达式

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言中运算符和表达式数量之多,在高级语言中是少见的.正是丰富的运算符和表达式使C语言功能十分完善.这也是C语言的主要特点之一. C语言的运算符不仅具有不 ...

最新文章

  1. 【C 语言】数组 ( 数组取值操作 | array[i][j] 用法 等价于 *( *(array = i) + j ) 用法 | 下标操作到指针操作演化过程 )
  2. dropout层_深度学习两大基础Tricks:Dropout和BN详解
  3. C++ Byte转十六进制字符串输出
  4. SIP系统怎么禁用?SIP系统完整性保护关闭方法(含M1)
  5. 字节约翰斯·霍普金斯上交提出iBOT框架,基于MIM进行自监督训练,在ImageNet-1K上达到86.3%的微调精度!...
  6. web开发快餐式入门指南 1.1 http
  7. wordpress虚拟服务器,西部数码虚拟主机安装wordpress教程
  8. XML 文档四种解析放式
  9. 0.Dagger2.38.1源码解析-多种类型查询总结
  10. 理性看待SDN(软件定义网络)
  11. ckplayer只调用html,CKplayer 新手入门超简单使用教程
  12. 守望先锋四服务器修改,服务器刷新率提高 《守望先锋》终于不用死在墙角了...
  13. sfp寄存器_SFP+-光模块测试指导
  14. ubuntu桌面进不去的解决办法
  15. 网页上为何出现连接超时,怎么解决呢?
  16. postgresql主从复制、主从切换
  17. 如何制作360度vr全景?制作360度全景效果图有哪些技巧?
  18. 大数据产品研究 - Presto简介
  19. [INS-30131] 执行安装程序验证所需的初始设置失败.
  20. 虚幻4中的程序化生成【1】程序化生成河流。

热门文章

  1. Sh脚本Ubuntu开机自启
  2. linux 执行sh脚本传参数
  3. 景区导览小程序怎么开发,需要哪些功能?
  4. Git 奇幻之旅⌛️
  5. 好文章,《李录:现代化十六讲》
  6. 日语 朝鲜语基本介绍
  7. Java实现栈的入栈和出栈等基本操作
  8. 最简易网络带宽测量(PING)
  9. 《技术人求职指南》(二)如何写好简历
  10. android 7下载地址,Android7.0下载地址 安卓7.0系统手机下载安装教程