欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数学算式的C语言表达.ppt

    • 资源ID:5985303       资源大小:773.50KB        全文页数:49页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数学算式的C语言表达.ppt

    第2章 基本数据类型、运算符和表达式,C语言程序设计,本章内容要点,常量与变量的概念 整型数据、实型数据、字符 型数据的使用 运算符与表达式,本章任务,任务可以分解为两部分:变量的定义及赋值。数学算式转换成C语言表达式。,在实际编程中,有时会对不同数据类型的数据进行运算,以及计算一些数学算式的值。本章要完成的任务是:已知整型变量a、b、c的值,根据以下算式求y的值。,2.1 基本数据类型,2.1.1 数据类型,一个程序应该包括以下两方面的内容:(1)对数据的描述。在程序中要指定数据的类型和 数据的组织形式,即数据结构。(2)对数据的操作,即操作步骤,也就是算法。,2.1 基本数据类型,C语言提供的数据类型,2.1.1 数据类型,2.1 基本数据类型,2.1.1 数据类型,(1)基本类型:基本数据类型最主要的特点是,其值不可以再分解为其他类型。也就是说,基本数据 类型是自我说明的。(2)构造类型:构造数据类型是根据已定义的一个或多个数据类型,用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。(3)指针类型:指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个变量在内存储器中的地址。虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量,因此不能混为一谈。(4)空类型:在调用函数时,通常应向调用者返回一个函数值,这个返回的函数值是具有一定的数据类型的,应在函数定义及函数声明中给以说明。但也有一类函数,调用后并不需要向调用者返回函数值,这种函数可以定义为“空类型”。其类型声明符为void。,2.1 基本数据类型,2.1.2 常量与变量,在程序执行过程中,其值不能被改变的量称为常量,其值可变的量称为变量。它们可与数据类型结合起来分类。例如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。在程序中,常量可以不经说明而直接引用,而变量则必须先定义后使用。,对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。,2.1 基本数据类型,2.1.2 常量与变量,常量在程序执行过程中,其值不能被改变的量称为常量。常量区分为不同的类型,如12、0、-7为整型常量,3.14、-2.8为实型常量,a、b、c则为字符常量。常量即为常数,一般从其字面形式即可判别。这种常量称为直接常量。有时为了使程序更加清晰和便于修改,用一个标识符来代表常量,即给某个常量取个有意义的名字,这种常量称为符号常量。,符号常量在使用之前必须先定义,其一般形式为:#define 标识符 常量,2.1 基本数据类型,2.1.2 常量与变量,【例2.1】符号常量的使用。程序代码如下:,程序说明:该程序的功能是计算圆面积。程序中用#define命令行定义了符号常量PI,其值为圆周率3.14,此后凡在文件中出现的PI都代表圆周率3.14,可以和常量一样进行运算。,#define PI 3.14main()float area,r;r=10;area=r*r*PI;printf(aera=%fn,area);,注意:符号常量也是常量,它的值在其作用域内不能改变,也不能再被赋值。例如,下面试图给符号常量PI赋值的语句是错误的:PI=20;/错误!,运行结果:aera=314.000000,2.1 基本数据类型,2.1.2 常量与变量,2.变量 在程序执行过程中,其值可变的量称为变量。一个变量必须有一个名字,在内存中占据一定的存储单元,在该存储单元中存放变量的值。请注意变量名和变量值是两个不同的概念。变量名在程序运行的过程中不会改变,而变量值则可以发生变化。变量名是一种标识符,它必须遵守标识符的命名规则。在程序中,常量是可以不经说明而直接引用的,而变量则必须作强制定义,即“先定义,后使用”。,2.2 整 型 数 据,2.2.1 整型常量,整型常量就是整常数。在C语言中,使用的整常数有八进制、十六进制和十进制3种,使用不同的前缀来相互区分。除了前缀外,C语言中还使用后缀来区分不同长度的整数。,1.八进制整常数八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为07。如0123表示八进制数123,即(123)8,等于十进制数83,即1*82+2*81+3*80=83;-011表示八进制数-11,即(-11)8,等于十进制数-9。(1)以下各数是合法的八进制数:015(十进制为13)0101(十进制为65)0177777(十进制为65535)(2)以下各数是不合法的八进制数:256(无前缀0)0382(包含了非八进制数码8),2.2 整 型 数 据,2.2.1 整型常量,2.十六进制整常数十六进制整常数的前缀为0X或0 x。其数码取值为09、AF或af。如0 x123表示十六进制数123,即(123)16,等于十进制数291,即1*162+2*161+3*160=291;-011表示十六进制数-11,即(-11)16,等于十进制数-17。(1)以下各数是合法的十六进制整常数:0X2A(十进制为42)0XA0(十进制为160)0XFFFF(十进制为65535)(2)以下各数是不合法的十六进制整常数:5A(无前缀0X)0X3H(含有非十六进制数码),2.2 整 型 数 据,2.2.1 整型常量,3.十进制整常数十进制整常数没有前缀,数码取值为09。(1)以下各数是合法的十进制整常数:237-568 1627(2)以下各数是不合法的十进制整常数:023(不能有前导0)23D(含有非十进制数码)在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错,以免造成结果不正确。,2.2 整 型 数 据,2.2.1 整型常量,4.整型常数的后缀 在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的范围为065535,有符号数为-32768+32767。八进制无符号数的表示范围为00177777。十六进制无符号数的表示范围为0X00XFFFF或0 x00 xFFFF。如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。下面给出一些例子。(1)十进制长整常数:158L(十进制为158)358000L(十进制为358000)(2)八进制长整常数:012L(十进制为10)0200000L(十进制为65536)(3)十六进制长整常数:0X15L(十进制为21)0XA5L(十进制为165)0X10000L(十进制为65536),2.2 整 型 数 据,2.2.2 整型变量,整型变量的分类整型变量可分为基本型、短整型、长整型、和无符号型4种。(1)基本型(2)短整型(3)长整型(4)无符号型,2.2 整 型 数 据,整型变量的字节数及表示范围,2.2.2 整型变量,2.2 整 型 数 据,2.2.2 整型变量,2.整型变量的定义 例如:int a,b,c;/*a、b、c为整型变量*/long m,n;/*m、n为长整型变量*/unsigned p,q;/*p、q为无符号整型变量*/【例2.2】整型变量的定义与初始化。程序代码如下:,main()int a=3,b=5;printf(a+b=%dn,a+b);,运行结果:a+b=8,变量定义的一般形式为:类型声明符 变量名标识符1,变量名标识符2,.;,2.3 实 型 数 据,2.3.1 实型常量,实型也称为浮点型。实型常量也称为实数或者浮点数。在C语言中,实数只采用十进制。它有两种形式,十进制数形式和指数形式。1.十进制数形式由数码09和小数点组成。例如0.0、.25、5.789、0.13、5.0、300.、-267.8230等均为合法的实数。2.指数形式由十进制数加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为a E n(a为十进制数,n为十进制整数),其值为a*10n。,2.3 实 型 数 据,2.3.2 实型变量,实型变量分为两类。1.单精度型单精度型变量的类型声明符为float,在Turbo C中,单精度型占4个字节(32位)内存空间,其数值范围为3.4E-383.4E+38,只能提供7位有效数字。2.双精度型双精度型变量的类型声明符为double,在Turbo C中,双精度型占8个字节(64位)内存空间,其数值范围为1.7E-3081.7E+308,可提供16位有效数字。实型变量声明的格式和书写规则与整型相同。例如:float x,y;/*x、y为单精度实型变量*/double a,b,c;/*a、b、c为双精度实型变量*/也可在声明变量为实型的同时,给出变量的初值。例如:float x=3.2,y=5.3;/*x、y为单精度实型变量,且有初值*/double a=0.2,b=1.3,c=5.1;/*a、b、c为双精度实型变量,且有初值*/应当说明,实型常量不分单精度和双精度。一个实型常量可以赋给一个float或double型变量,根据变量的类型截取实型常量中相应的有效位数字。下面的例子说明了单精度实型变量对有效位数字的限制。,2.3 实 型 数 据,2.3.2 实型变量,程序说明:本例中,由于a是单精度浮点型,有效位数只有7位。而整数已占5位,故小数二位之后均为无效数字。b是双精度型,有效位为16位。但Turbo C规定小数后最多保留6位,其余部分四舍五入。,【例2.3】单精度实型变量对有效位数字的限制。程序代码如下:main()float a;a=0.123456789;printf(a=%f,a);下面的例子说明了float和double的不同。,【例2.4】演示float和double的区别。程序代码如下:main()float a;double b;a=33333.333333;b=33333.333333333;printf(a=%fnb=%fn,a,b);/*用格式化输出函数输出a和b的值*/,运行结果:a=0.123457,运行结果:a=33333.332031b=33333.333333,2.4 字符型数据,2.4.1 字符常量,字符常量是用单引号括起来的一个字符。例如a、b、A、?都是合法的字符常量。在C语言中,字符常量有以下特点:(1)字符常量只能用单引号括起来,不能用双引号或其他括号。(2)字符常量只能是单个字符,不能是字符串。(3)字符可以是字符集中的任意字符。除了以上形式的字符常量外,C语言还允许用一种特殊形式的字符常量,即转义字符。转义字符以反斜线“”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。常用的转义字符及其含义见表2.2。,2.4 字符型数据,2.4.1 字符常量,常用转义字符表,2.4 字符型数据,2.4.1 字符常量,【例2.5】转义字符的使用。程序代码如下:main()int a,b,c;/*定义 a、b、c为整数*/a=5;b=6;c=7;printf(%dnt%d%dn%d%dtb%dn,a,b,c,a,b,c);/*按要求格式输出a、b、c的值*/程序说明:程序在第一列输出a的值5之后就是“n”,故回车换行;接着又是“t”,于是跳到下一制表位置(设制表位置间隔为8),再输出b值6;空两格再输出c值7后又是“n”,因此再回车换行;再空两格之后又输出a值5;再空3格又输出b的值6;再次遇“t”跳到下一制表位置(与上一行的6 对齐),但下一转义字符“b”又使之退回一格,故紧跟着6再输出c值7。,运行结果:5 6 7 5 67,2.4 字符型数据,2.4.2 字符变量,字符变量用来存放字符常量,即单个字符。每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符变量的类型声明符为char。字符变量类型声明的格式和书写规则都与整型变量相同。例如:char a,b;/*定义字符变量 a和b*/a=x,b=y;/*给字符变量a和b分别赋值x和y*/将一个字符常量存放到一个变量中,实际上并不是把该字符本身放到变量内存单元中去,而是将该字符相应的ASCII代码放到存储单元中。例如字符x的十进制ASCII码是120,字符y的十进制ASCII码是121。对字符变量a、b赋予x和y值(a=x;b=y;)实际上是在a、b两个单元中存放120和121的二进制代码:a0 1 1 1 1 0 0 0(ASCII 120)b0 1 1 1 1 0 0 1(ASCII 121),2.4 字符型数据,2.4.2 字符变量,【例2.6】字符变量的使用。程序代码如下:main()char a,b;a=120;b=121;printf(%c,%cn%d,%dn,a,b,a,b);程序说明:本程序中,定义a、b为字符型变量,但在赋值语句中赋以整型值。从结果看,a、b值的输出形式取决于printf函数格式串中的格式符,当格式符为“%c”时,对应输出的变量值为字符形式,当格式符为“%d”时,对应输出的变量值为整数形式。,运行结果:x,y120,121,2.4 字符型数据,2.4.2 字符变量,【例2.7】将小写字母转换成大写字母。程序代码如下:main()char a,b;a=x;b=y;a=a-32;/*把小写字母转换成大写字母*/b=b-32;printf(%c,%cn%d,%dn,a,b,a,b);/*以字符型和整型输出*/程序说明:由于每个小写字母比它相应的大写字母的ASCII码大32,如a=A+32、b=B+32,因此,语句a=a-32;即可将字符变量a中原有的小写字母转换成大写字母。,运行结果:X,Y88,89,2.4 字符型数据,2.4.3 字符串常量,C语言除了允许使用字符常量外,还允许使用字符串常量。字符串常量是由一对双引号括起来的字符序列。如:“CHINA”、“C program”、“$12.5”等都是合法的字符串常量。注意将字符常量与字符串常量混淆。a是字符常量,“a”是字符串常量,二者不同。那么,a和“a”究竟有什么区别呢?,2.5 不同类型数据的混合运算,2.5.1 类型的自动转换,整型、实型(包括精度和双精度)、字符型数据间可以混合运算。例如,下面的语句是合法的:int x=10+a+1.5-12.34*b;在进行混合运算时,不同类型的数据要转换成同一类型。转换的方法有两种,一是自动转换,二是强制转换。,2.5 不同类型数据的混合运算,2.5.1 类型的自动转换,类型自动转换的规则:图中横向向左的箭头表示必定发生的转换,如字符型数据必先转成整型,单精度数据先转成双精度数据等。图中纵向的箭头表示当运算对象为不同的类型时转换的方向。例如整型与双精度型数据进行运算,先将整型数据转换成双精度型数据,然后在两个同类型数据(双精度)间进行运算,结果为双精度型。注意箭头方向只表示数据类型级别的高低,由低向高转换。不要理解为整型先转成无符号型,再转成长整形,再转成双精度型。如果一个整型数据与一个双精度型数据运算,是直接将整型转成双精度型。同理,一个整型数据与一个长整型数据运算,先将整型转成长整型。,2.5 不同类型数据的混合运算,2.5.2 类型的强制转换,强制类型转换是通过类型转换运算来实现的。其功能是把表达式的运算结果强制转换成类型声明符所表示的类型。例如:(float)a把a转换为实型,(int)(x+y)把x+y的结果转换为整型。在使用强制转换时应注意下列问题:(1)类型声明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加。(2)无论是强制转换还是自动转换,都只是为了本次运算的需要而对变量进行的临时性转换,而不改变变量本身的类型。,其一般形式为:(类型声明符)(表达式),2.5 不同类型数据的混合运算,2.5.2 类型的强制转换,【例2.8】类型的强制转换。程序代码如下:main()float f=5.75;printf(int)f=%d,f=%fn,(int)f,f);本例表明,f虽强制转为int型,但只在运算中起作用,这种转换是临时的,而f本身的类型并不改变。,运行结果:(int)f=5,f=5.75,2.5 不同类型数据的混合运算,2.5.2 类型的强制转换,【例2.9】变量的定义及赋值。已知a=6,b=2.5,求表达式(a+b)/3的值。main()int a=6;float b=2.5,y;y=(a+b)/3;printf(a+b)/3=%f,y);,运行结果:(a+b)/3=2.833333,2.6 运算符与表达式,2.6.1 运算符简介,2.6 运算符与表达式,2.6.2 算术运算符和算术表达式,1.算术运算符算术运算符除了负值运算符外都是双目运算符,即指两个运算对象之间的运算。,算术运算符,2.6 运算符与表达式,2.6.2 算术运算符和算术表达式,2.算术表达式用算术运算符、圆括号将运算对象(或称操作数)连接起来的符合C语法规则的式子,称为C算术表达式。其中运算对象可以是常量、变量、函数等。例如:a*b/c-1.5+aC算术表达式的书写形式与数学中表达式的书写形式是有区别的,在使用时要注意以下几点:(1)C表达式中的乘号不能省略。例如:数学式b2-4ac,相应的C表达式应写成b*b-4*a*c。(2)C表达式中只能使用系统允许的标识符。例如:数学式r2相应的C表达式应写成3.1415926*r*r。(3)C表达式中的内容必须书写在同一行,不允许有分子分母形式,必要时要利用圆括号保证运算的顺序。例如:数学式相应的C表达式应写(a+b)/(c+d)。(4)C表达式不允许使用方括号和花括号,只能使用圆括号帮助限定运算顺序。可以使用多层圆括号,但左右括号必须配对,运算时从内层圆括号开始,由内向外依次计算表达式的值。,2.6 运算符与表达式,2.6.2 算术运算符和算术表达式,3.算术运算符的优先级和结合性C语言规定了在表达式求值过程中各运算符的优先级和结合性。优先级:是指当一个表达式中如果有多个运算符时,则计算是有先后次序的,这种计算的先后次序称为相应运算符的优先级。结合性:是指当一个运算对象两侧的运算符的优先级别相同时,进行运算(处理)的结合方向。按“从右向左”的顺序运算,称为右结合性;按“从左向右”的顺序运算,称为左结合性。表2.5中给出了算术运算符的优先级和结合性。,表2.5 算术运算符的优先级和结合性,在算术表达式中,若包含不同优先级的运算符,则按运算符的优先级别由高到低进行运算;若表达式中运算符的优先级别相同时,则按运算符的结合方向(结合性)进行运算。,2.6 运算符与表达式,2.6.3 赋值运算符和赋值表达式,1.赋值运算赋值符号“=”就是赋值运算符,由赋值运算符组成的表达式称为赋值表达式。赋值的含义是指将赋值运算符右边的表达式的值存放到以左边变量名为标识的存储单元中。说明:(1)赋值运算符的左边必须是变量,右边的表达式可以是单一的常量、变量、表达式和函数调用语句。(2)赋值符号“=”不同于数学中使用的等号,它没有相等的含义。(3)在一个赋值表达式中,可以出现多个赋值运算符,其运算顺序是从右向左结合。(4)进行赋值运算时,当赋值运算符两边的数据类型不同时,将由系统自动进行类型转换。转换的原则是,赋值运算符右边的数据类型转换成左边的变量类型。转换规则参看表2.6。,其一般形式为:变量名=表达式;,2.6 运算符与表达式,2.6.3 赋值运算符和赋值表达式,表2.6 赋值运算中数据类型的转换规则,2.6 运算符与表达式,2.6.3 赋值运算符和赋值表达式,2.复合赋值运算符为了提高编译生成的可执行代码的执行效率,C语言规定可以在赋值运算符“=”之前加上其他运算符,以构成复合赋值运算符。其一般形式为:变量 双目运算符=表达式;等价于:变量=变量 双目运算符 表达式;例如:n+=1;/*等价于n=n+1;*/x*=y+1;/*等价于x=x*(y+1);运算符“+”的优先级高于复合赋值运算符“*=”*/C语言规定,所有双目运算符都可以与赋值运算符一起组合成复合赋值运算符。共存在10种复合赋值运算符,即+=、-=、*=、/=、%=、=、&=、=、|=。其中后5种是有关位运算的,位运算将在以后的章节中介绍。复合赋值运算符的优先级与赋值运算符的优先级相同,且结合方向也一致。,2.6 运算符与表达式,2.6.3 赋值运算符和赋值表达式,3.赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。一般形式为:变量=表达式;赋值表达式的求解过程如下。(1)先求解赋值运算符右侧的“表达式”的值。(2)将赋值运算符右侧“表达式”的值赋给左侧变量。(3)赋值表达式的值就是被赋值变量的值。例如,下面这个赋值表达式的值为5(变量a的值也是5):a=5;说明:(1)赋值表达式中的“表达式”,也可以是一个赋值表达式。例如:a=(b=5);/*赋值表达式值为5,a、b的值均为5*/a=(b=4)+(c=3);/*赋值表达式值为7,a的值为7,b的值为4,c的值为3*/(2)赋值表达式也可以包含复合的赋值运算符。例如:a+=a-=a*a;如果a初值为12,此赋值表达式的求解步骤如下:先进行“a-=a*a”的运算,相当于a=a-a*a=12-12*12=-132。再进行“a+=-132”的运算,相当于a=a+(-132)=-132-132=-264。,2.6 运算符与表达式,2.6.4 逗号运算符和逗号表达式,在C语言中,逗号运算符即“,”,可以用于将若干个表达式连接起来构成一个逗号表达式。求解过程为:自左至右,先求解表达式1,再求解表达式2,最后求解表达式n。表达式n的值即为整个逗号表达式的值。例如:3+5,6+8是一个逗号表达式,它的值为第2个表达式6+8的值,即为14。一个逗号表达式可以与另一个表达式组成一个新的逗号表达式。例如:(a=3*4,a*5),a+10;其中逗号表达式a=3*4,a*5与表达式a+10构成了新的逗号表达式。,其一般形式为:表达式1,表达式2,.,表达式n;,2.6 运算符与表达式,2.6.5 其它常用运算符,自增、自减运算符是单目运算符,即仅对一个运算对象施加运算,运算结果仍赋予该运算对象。参加运算的运算对象只能是变量而不能是表达式或常量,其功能是使变量值自增1和自减1。表2.7列出了自增、自减运算符的种类和功能。,表2.7 自增、自减运算符,从表2.7中可以看出,自增、自减运算符可以用在运算量之前(如+i、-i),称为为前置运算;自增、自减运算符可以用在运算量之后(如i+、i-),称为为后置运算。对一个变量i实行前置运算(+i)或后置运算(i+),其运算结果是一样的,即都使变量i值加1(i=i+1)。但+i和i+的不同之处在于+i是先执行i=i+1后,再使用i的值;而i+是先使用i的值后,再执行i=i+1。,2.6 运算符与表达式,2.6.5 其它常用运算符,例如:架设i的初值等于3,则:j=+i;/*i的值先变成4,再赋给j,j的值为4*/j=i+;/*先将i的值赋给j,j的值为3,然后i变为4*/综上所述,前置运算与后置运算的区别在于:前置运算是变量的值首先加1或减1,然后再以该变量变化后的值参加其他运算。后置运算是变量的值参加有关的运算,然后再将变量的值加1或减1,即参加运算的是变量变化前的值。说明:自增运算符(+)或自减运算符(-)只能用于变量,而不能用于常量或表达式。例如,6+或(a+b)+都是不合法的。自增运算符(+)或自减运算符(-)的结合方向是“自右至左”。例如,对于-i+,因为“-”运算符与“+”运算符的优先级相同,而结合方向为“自右至左”,即它相当于-(i+)。,2.6 运算符与表达式,2.6.6 运算符的优先级与结合性,C语言规定了运算符的“优先级”和“结合性”。在表达式求值时,先按运算符的“优先级别”高低次序执行。例如表达式a-b*c等价于a-(b*c),“*”运算符的优先级高于“-”运算符。如果在一个运算对象两侧的运算符优先级别相同,则按规定的“结合方向”处理。左结合性(自左向右结合方向)是指运算对象先与左面的运算符结合。右结合性(自右向左结合方向)是指运算对象先与右面的运算符结合。如在表达式a-b+c中,运算符“+”和“-”的优先级别相同,结合性为“自左向右”,即b先与左边的a结合。所以a-b+c等价于(a-b)+c。在书写有多个运算符的表达式时,应当注意各个运算符的优先级,确保表达式中的运算符能以正确的顺序参与运算。对于复杂表达式,为了清晰起见,可加圆括号“()”强制规定运算顺序。,在学习了上述相关知识之后,我们通过下例来完成本章开篇提出的任务之二。,2.6 运算符与表达式,2.6.6 运算符的优先级与结合性,【例2.10】把数学算式转换成C语言表达式。输入变量x、y、z的值,根据以下算式求n的值。,该算式转换成C语言表达式应为:x*x+y*z/2。源程序如下:main()int x,y,z;float n;scanf(%d%d%d,运行结果:3 15 9 n=76.500000,2.8 习题,1.填空题,(1)在C语言中,用“”开头的字符序列称为转义字符。转义字符“n”的功能是_;转义字符“r”的功能是_。(2)运算符“%”两侧运算对象的数据类型必须都是_;运算符“+”和“-”运算对象的数据类型必须是_。(3)表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3)值的数据类型为_。(4)表达式(3+10)/2的值为_。,2.8 习题,2.选择题,(1)下列4组选项中,均不是C语言关键字的选项是_。A.defineIFtypeB.getccharprintfC.includecasescanfD.whilegopow(2)下列4组选项中,均是合法转义字符的选项是_。A.”n B.017”C.018 fxab D.0101 xlf(3)已知字母b的ASCII码值为98,如ch为字符型变量,则表达式ch=b+5-2的值为_。A.e B.d C.102 D.100(4)以下表达式值为3的是_。A.16-13%10B.2+3/2C.14/3-2D.(2+6)/(12-9)(5)以下叙述不正确的是_。A.在C程序中,逗号运算符的优先级最低B.在C程序中,MAX和max是两个不同的变量C.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值,2.8 习题,3.分析题,分析下列程序,写出运行结果。(1)main()char c1=6,c2=0;printf(%c,%c,%dn,c1,c2,c1-c2);(2)main()int x=010,y=10,z=0 x10;printf(%d,%d,%dn,x,y,z);(3)main()int a=2,b=3;float x=3.9,y=2.3;float r;r=(float)(a+b)/2+(int)x%(int)y;printf(%fn,r);,2.8 习题,4.编程题,输入3个整数,计算并输出它们的平均值。已知年利率为3.2%,存款总额为2万元,求一年后的本息合计并输出。,

    注意事项

    本文(数学算式的C语言表达.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开