第2章 数据类型、运算符和表达式

上传人:豆浆 文档编号:47565304 上传时间:2018-07-03 格式:PPT 页数:42 大小:1.76MB
返回 下载 相关 举报
第2章 数据类型、运算符和表达式_第1页
第1页 / 共42页
第2章 数据类型、运算符和表达式_第2页
第2页 / 共42页
第2章 数据类型、运算符和表达式_第3页
第3页 / 共42页
第2章 数据类型、运算符和表达式_第4页
第4页 / 共42页
第2章 数据类型、运算符和表达式_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《第2章 数据类型、运算符和表达式》由会员分享,可在线阅读,更多相关《第2章 数据类型、运算符和表达式(42页珍藏版)》请在金锄头文库上搜索。

1、 第 2 章 数据类型、运算符和表 达式 学习目标1. 掌握基本数据类型的概念和常量表示 方法,掌握变量的定义方法,能够根 据实际情况选用适当的数据类型 2. 熟练掌握数值表达式的构造方法,能 够利用表达式完成数值计算主要内容 C数据类型概述 常量和变量 算术运算表达式 赋值表达式 自增、自减表达式2.1 2.1 概概 述述 C语言支持的数据类型基本 数据 类型整型 单精度型主要 数据 类型构造 数据 类型指针 类型实型字符型数组类型结构体类型双精度型基本数据类型说明符整型:intlong字符型:char实型:floatdouble long double2.2 常 量常量在程序运行过程中,其

2、值不能被改变的量。 一. 不同数制整型常量的表示例如: 12 :十进制数 12012 :八进制数 12(等于十进制数 10,用前导符0表示八进制数常量) 0x12:十六进制数 12(等于十进制数 18,用前导符0X或0x表示十六进制数常量)二.字符常量的表示1. 用单引号括起来的可显示字符,如 A 、 $ 、 3 等(转义字符除外)2. 用八进制数表示其ASC代码的字符,如101表示 西文字符 A、63表示数字字符 3。3. 用十六进制数表示其ASC代码的字符,如:x41 表示西文字符A、 x2A表示字符 *。4. 用 表示字符 ,”表示字符”, 表示字符 。 5. 用双引号括起来的字符序列表

3、示字符串常量,其 中最后一个字符是字符串结束符0,不显式地 表示出来。如:“English” 。【例2-1】常量的例子。main()float r;printf(“Please Input Radius:n“);scanf(“%f“,printf(“The Circumference of Cirle: %fn“,2*3.1415926*r);定义浮点型 变量r人机对话,通知用户 输入半径的值从键盘输入半径的值, 并将值赋给变量r显示结果 常量2常量 3.1415926三. 符号常量可以用#define命令定义符号常量,在程序的执 行过程中不允许改变符号常量的值。【例2-2】说明符号常量的例子

4、。 #define PRICE 30main( )int num,total;num=10;total=num*PRICE;printf(“total=%d“,total);通过#include定义符号常 量PRICE为30定义二个整型变量 num和total使变量num的值为10执行运算1030 并把运算的结果赋 予变量total显示结果2.3 2.3 变量的定义和初始化变量的定义和初始化变量:在程序运行时,其值可变的量被称为变量,分为整型变量、实型变量和字符型变量一. C语言中的标识符C语言把用户给常量、变量、函数、标号和其它 对象所起的名字统称为标识符。 用户定义的标识符须遵循如下规则:

5、 标识符只能由字母、数字和下划线三种字符组成 ,且第一个字符必须为字母或下划线,标识符的 长度不超过32个字符。同时, C语言的关键字和 库函数名不能作为标识符。 例如,下面的字符序列均为合法的C语言标识符:a,b,word,_file,file2,F_name, f_name注意:C编译程序区分大小写,所以上述F_name和f_name是二个不同的标识符。 而下面的字符序列为不合法的C语言标识符: 2L 违反了标识符第一个字符必须为字母或下划线的规定。 a* 违反了标识符只能由字母、数字和下划线三种字符组成的规定。int 违反了C语言的关键字和库函数名不能作为标识符的规定。 二. 变量分类1

6、.整型变量分类有符号整型说明符无符号整型说明符整 形int signed signed int unsigned unsigned int 长 整 形long long int signed long signed long int unsigned long unsigned long int 有符号整型无符号整型占字节 数整 型int -32768 32767 unsigned0 65535 2 字 节长 整 型long-231(231-1) unsigned long04,294,967,2954 字 节整型变量的值域2.浮点型变量的分类及其值域Long double取值(绝对值) 范围

7、 占字节数1010-4931-4931101049324932 单精单精 度型度型双精双精 度型度型1010-37-3710103838 44float floatdouble double 1010-307-3071010308308浮点浮点 型型说明符说明符8 816163.字符型变量及其值域说明符取值范围 (字符的ASC码值)占字节数char0 255 1在设计程序时,应当根据数据本身的特 点和变化范围正确选择变量类型。 三.变量的定义和初始化 变量的定义格式:类型说明符 变量名表 ; intint、unsigned、 longlong、floatfloat、 doubledouble、

8、charchar等等变量名只能由字母、数字和 下划线三种字符组成,且第一 个字符必须为字母或下划线。例如,语句: int a1,a2,age;float x,y,z;char ch; 分别定义了整型变量a1,a2,age,浮点型变量 x,y,z和字符型变量ch。变量的初始化:在定义变量的同时对变量预先设置初值。 例如,执行语句:int num=20;float pi=3.14;char c1,c2= M ;后,变量num、pi、c2的初值分别为20、 3.14和字符M。四.各类数值型数据间的混合运算 高 double floatlongunsigned低 int char当各种不同类型的数据混

9、合运算时,其运算结果的 类型由上图所示的类型转换原则确定。【例2-3】设程序中定义变量:int i; float f; double d;执行运算:i+(f*d)-(f+i) (这里的 * 表示乘法) 下图给出了在运算过程中所发生的数据类型的转换。i+ ( f * d ) - ( f + i )double double doubledouble doubledouble doubledouble2.4 2.4 算术运算符和算术运算表达式算术运算符和算术运算表达式一. 算术运算符 算术运算符包括: + (加)- (减)* (乘)/ (除)% (求余)操作符 % 只作用于整数 ,x%y 的值就是

10、 x除以 y的余数。操作符 / 的两种含义:整数除法(整除)当被除数和除数都是整型数据时,“”运算的结果为整型。 例如:5/2的值为2(而不是2.5)。 实数除法 当被除数和除数中至少有一个是实数型数据时,“”运算的结果为 实数型。 例如:5.0/2的值为2.5。二.算术运算表达式 用算术运算符和括号将运算对象连接起来、 并符合C语言语法规则的式子,称为算术运算表 达式或算术表达式 。 例如:设r、x、y是已经定义的数值型变量, 则: 3.14*r*r、x+2*y-3/z、(x-y)*(x-y/2) 均是合法的算术运算表达式,单独的r、x、y也 是合法的算术运算表达式。实际上,单独的常 量或变

11、量是最简单的算术运算表达式。注意:算术运算表达式中的分数线须用中的分数线须用 / / 表示表示例如:例如: 2+3i2+3ikj kj表示为表示为C C语言表达式就是:语言表达式就是: (2+3*i)/(k*j) (2+3*i)/(k*j) 或或 (2+3*i)/k/j(2+3*i)/k/jC程序中,称表达式的运算结果为表达式的值。 C语言规定,在表达式求值时,须按运算符优先级的 高低次序执行。对算术运算而言,必须遵循先括号 内后括号外,先乘、除及求余运算,后加减的运算 优先级规则。C语言规定了运算符二种不同的结合方向: l左结合:当参于运算的数据两侧的运算符优先级相同时,运算顺序为自左至右。

12、 C语言规定算术运算符遵循左结合的规则。例如,计算算术运算表达式 a+b-c 时,运算符“+”和“”具有相同的优先级,所以先执行a+b, 其结果再和c相减。l右结合:当参于运算的数据两侧的运算符 优先级相同时,运算顺序为自右向左。C语言提供的运算符中有少量运算符遵循 右结合的规则。本书的附录部分列出了C语言中所有运算 符以及它们的优先级和结合性。 2 .5 赋值运算符与赋值运算表达式一.赋值运算符赋值符号“=”就是赋值运算符,它的作用是将一 个数据赋给一个变量。 例如:执行程序段 int a;a=3; a=a-5;当执行语句“a=3;” 就完成一次赋值运算,把赋值运算符右边的值3赋给赋值运算符

13、左边的变量a,赋值后,a的值为3 。再执行语句“a=a-5;”,赋值运算符右边的表达式a-5的运算结果为-2, 将-2赋给a。最后,变量a的值变为-2。 复合的赋值运算符 复合的赋值运算符的格式:算术运算符 = 所以,+=、-=、*=、/=、%= 都是复合的赋值运算符。二.赋值运算表达式将一个变量通过赋值运算符或复合的赋值运算符与 一个表达式连接而成的式子称为赋值运算表达式。 赋值运算表达式的格式为:变量名 = 表达式 或 变量名 复合的赋值运算符 表达式 例如:x=1.414 , m1=E,s=3.14159*r*r或 a+=5,x/=a+1 上述各例都是合法的赋值运算表达式。赋值运算表达式

14、的作用是把赋值运算符右边表达式 的值赋给赋值运算符左边的变量。当算术运算符和赋 值运算符同时出现在一个表达式中时,算术运算符的 优先级高于赋值运算符。C语言允许赋值运算表达式中的表达式部分还是一 个赋值表达式,这样就构成了多重赋值。多重赋值 表达式中,赋值运算符遵循右结合的法则,即: 自右向左的运算顺序。例如:多重赋值语句 a=b=c=x+8; 在执行时等价于依次执行三个语句:c=x+8;b=c;a=b;将一个变量通过复合的赋值运算符与一个表达式连 接而成的式子同样称为赋值运算表达式。例如: a+=5,x/=a+1 下面的例子说明了复合的赋值运算符的运算规则。 表达式 a+=5 等价于 a=a

15、+5 表达式 a*=4-b 等价于 a=a*(4-b) 表达式 a%=b-1 等价于 a=a%(b-1) 注意:复合的赋值运算符右边的表达式是作为一个整体 参与其左边算术运算符所规定的运算的。 【例2-4】赋值运算表达式举例: 1)y=3*(x-1); /* 将3*(x-1) 的结果 赋值给变量y。*/ 2)a=(b=4)+(c=6); /* 这里的赋值运算表达式(b=4)、(c=6)参于算术运算,C言规定, 将赋值运算符右边表达式的值作为赋值运算表达式的值。所以,赋 值运算表达式(b=4)的值为4, (c=6)的值为6,最后将它们的和赋值给变量a ,由于算术运算符的优先级高于赋值运 算符,所以表达式中的括号是必须的。 */3)a+=a*=a+2;/* 这里的语句等价于:a=a*(a+2);a=a+a; */ 三.字符型与整型的关系1. 字符型数据的值在内存表现为它们的ASC代码 值(0 - 255之间的一个整数) 。 2. 字符常量以其ASC代码值参与整数运算。 如: A+2 的值为 67。字符A的ASC码值 为

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号