




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 数据类型 运算符 和 表达式,第二章 数据类型、运算符和表达式,内容提要 数据类型 常量与变量 运算符与表达式,2.1 数据类型,数据类型总表,数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作,说明:数据类型所占字节数随机器硬件不同而不同, 上表以IBM PC机为例。,基本数据类型,2.1 数据类型,2.2 常量与变量,数据是程序的处理对象 C语言将数据分为常量与变量,2.2.1 常量 1.常量的定义及分类 定义:程序运行的过程中,其值不能改变 的量。 分类: 整型常量 实型常量 字符常量 字符串常量 符号常量,2.2 常量与变量,2.整型常量(既整常
2、数) 三种形式: 十进制整数:由数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0 x开头,后跟09,af,AF表示.如0 x123,0Xff,转换成十进制数的方法: 0123 = 1x82 +2x81+3x80 =( 83 )10 0 x123 = 1x162 +2x161+3x160= ( 291 )10 0Xff = 15x161+15x160=( 255 )10,2.2 常量与变量,整型常量的说明 (1)空白字符不可以出现在整数数字之间 (2)根据其值所在范围确定其数据类型 (3)在整常量后加字母l或L,认
3、为它是 long int 型常量,例如 30000 为int型 65536 为long int 型 79L、012L 为long int 型,2.2 常量与变量,3.实型常量 实常数或浮点数,是一个十进制表示的符号实数 表示形式: 十进制小数形式 digits.digits 如0.123, .123, 123.0, 0.0, 123. 指数形式(包括整数部分、尾数部分和指数部分 ) digits .digits E|e + | - digits 小数点之前是整数部分,小数点之后是尾数部分,小数点在没有尾数时可省略。 如12.3e3 ,123E2,2.2 常量与变量,实型常量的说明 (1)实型常
4、量采用十进制小数形式表示时,必须有 小数点。例如:123. 是实型常量,而123是整型 常量 (2)采用指数形式表示时,在E或e之前必须要有数 字,且之后的指数必须为整数。例如:E6、.e6、 e 等都是不合法的 (3)实型常量的整数部分为0时可以省略,如下形式 是允许的:.57, .0075e2, -.125, -.175E-2 (4)所有的实型常量均被看作是双精度类型(double),2.2 常量与变量,4.字符常量 定义:用单引号括起来的单个普通字符或转义字符。 分为一般字符常量和特殊字符常量 一般字符常量: 如a、9、!等。单引号只起定界作用并不表示字符本身,中间的字符可以是除单引号(
5、)和反斜杠( )以外的数字、字母等C语言字符集中包含的所有可显示字符。 特殊字符常量(也叫转义字符) 是C语言中表示字符的一种特殊形式,其含义为将反斜杠()后面的字符转换成另外的意义。,2.2 常量与变量,字符常量的值:该字符的ASCII码值,如 A65, a97, 048 , n10,2.2 常量与变量,aaa,13,如 101 -A 012 -n 376 - x61 -a 060 -0,例 转义字符举例 int main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C
6、); ,运行结果:(屏幕显示) A B C Isay:”How are you?” C Program Turbo C,2.2 常量与变量,字符常量与字符串常量不同,5.字符串常量 定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符串结束标志,例: char ch; ch=“A”;,例: char ch; ch=A;,2.2 常量与变量,6.符号常量 (1)标识符 定义:用来标识变量、常量、函数等的字符序列 组成: 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线 大小写敏感 不能使用关键字 长度:最长32个字符 命名原则: 见名知义 不宜混淆 如1
7、与l, o与0,2.2 常量与变量,在C语言中,允许将程序中的常量定义为一个标识符,称为符号常量。在使用符号常量前必须先加以定义,一般情况下,符号常量使用大写英文字母表示。,其定义的一般形式为: #define 例如: #define PRICE 35,2.2 常量与变量,2.2.2 变量 概念:其值可以改变的量 变量名与变量值 变量定义的一般格式: 数据类型 变量1,变量2,变量n; 变量初始化:定义时赋初值 变量的使用:先定义,后使用,决定分配字节数 和数的表示范围,合法标识符,例: int a,b,c; float data;,例: int a=2,b,c=4; float data=3
8、.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1; ,2.2 常量与变量,变量定义位置:一般放在函数开头,2.2 常量与变量,与常量类似,变量也有不同的类型,一般可以分为以下三种类型: 整型变量 实型变量 字符变量,2.2 常量与变量,1.整型变量 (1)整型变量的分类 基本型 短整型 长整型 无符号整型,基本型:类型说明符为int,在内存中占2个字节。,短整型:类型说明符为short int或short,所占字节和取值范围均与基本型相同。,长整型:类型说明符为long int或long,在内存中占4个字节。,无符号整型:类型说明符为unsigned。
9、. 无符号基本型:类型说明符为 unsigned int或 unsigned。 . 无符号短整型:类型说明符为 unsigned short。 . 无符号长整型:类型说明符为 unsigned long。,2.2 常量与变量,例2-1 整型变量的使用 #include int main() int x,y,z; x=10;y=20; z=x+y; printf(“x+y=%dn”,z); return 0; 输出结果:x+y=30,(2)整型变量的定义与使用,2.2 常量与变量,int x; x=10; 则变量x的值10在内存中的存放形式: int x; x=-10; 则变量x的值10在内存中
10、的存放形式:,(3)整型数据在内存中的存放形式,2.2 常量与变量,例2-2 整型数据的溢出问题 #include int main() int x, y; x=32767; y=x+1; printf(%d,%dn,x,y); return 0; 运行结果:-32768 原因:一个int型变量只能容纳-32768到32767范 围内的数,无法表示超过这个范围的数。,(4)整型数据的溢出,2.2 常量与变量,2.实型变量 (1)实型变量的分类 单精度实型:类型说明符为float,在内存中占4个字节,提供7位有效数字。 双精度实型:类型说明符为double,在内存中占8个字节,提供1 5 1 6
11、位有效数字。,例 float a; a=111111.111; /* a=111111.1*/ double b; b=111111.111; /* b=111111.111*/,2.2 常量与变量,例2-3实型变量的使用 #include int main() float x,y,z; x=10; y=20; z=x+y ; printf(“x+y=%fn”,z); return 0; 运行结果:x+y=30.000000,(2)实型变量的定义与使用,2.2 常量与变量,例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */,
12、字符变量存放字符ASCII码 char与int数据间可进行算术运算,没有字符串变量,用字符数组存放,(3)字符变量,2.2 常量与变量,#include int main( ) char c1, c2; /* 定义c1,c2为字符型变量 */ c1 = 97; c2 = 98; /* 将整数97和98分别赋给c1和c2 */ printf(”%c,%cn”, c1, c2); /* 以字符形式输出c1和c2 */ printf(”%d,%d”, c1, c2); /* 输出c1和c2的ASCII码值 */ printf(”%d”, c1 + c2); return 0; 运行结果如下: a,b
13、 97,98,2.2 常量与变量,例 #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); ,运行结果: total=37.500000, ch1=d,(4)变量的初始化,2.2 常量与变量,运算符的分类,2.3 运算符与表达式,定义:由常量、变量、函数、运算符和括号组合起来的、符合C语法规则的式子称为表达式。 一个表达式有一个值以及其对应的类型 表达式求值首先进行优先级高的运算再进
14、行优先级低的运算,然后对于优先级相同的运算按结合方向进行运算。 结合方向:左结合、右结合 例如:,2.3 运算符与表达式,2.3.1算术运算符及算术表达式 1.基本算术运算符: + - * / % 结合方向:从左向右 优先级:(高)- -* / % - + - 说明: “-”可为单目运算符时,右结合性 两整数相除,结果为整数,如果两整数中有一个是负数,舍入规则为“向零取整” 如果运算的两个数中有一个是实型,则结果为double型 %要求两侧均为整型数据,例 5/2 = 2 -5/2.0 = -2.5 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 (),2.3
15、 运算符与表达式,#include int main( ) printf(”10-9/6*5 = %d”, 10 9 / 6 * 5); return 0; 运行结果如下: 10-9/6*5 = 5,#include main() int x=5,y; y=+x; printf(%dn,y); 输出结果: 6,例2-5 计算表达式10-9/6*5,2.3 运算符与表达式,例2-6 计算表达式10-3.0/2的值 #include int main( ) printf(”10-3.0/2=%f”, 10 - 3.0 / 2); 运行结果如下: 10-3.0/2=8.500000,2.3 运算符与
16、表达式,2.算术表达式 定义:用算术运算符和括号将运算对象连接起来的、符合C语法规则的式子称为算术表达式。其中的运算对象包括常量、变量、函数等。 例如:x+y、(x*2)/y、sin(x)sin(y)等都是算术表达式。,2.3 运算符与表达式,(1) (x+y)h2 (2) s(s-a)(s-b)(s-c) (3) (x+1)2+(y-1)2 在C语言中,其合法的算术表达式如下: (1) (x+y)*h/2.0 (2) s*(s-a)*(s-b)*(s-c) (3) (x+1)*(x+1)+(y-1)*(y-1),例2-7 写出下列数学表达式对应的合法的C算术 表达式,2.3 运算符与表达式,
17、种类: = = != 结合方向:自左向右 优先级别: 关系运算符优先级低于算术运算符,2.3.2 关系运算符及关系表达式 1.关系运算符,例:ca+b 等价于 c(a+b) ab!=c (ab)!=c a=bc a=(bc),2.3 运算符与表达式,关系运算结果:1(真)和 0(假) 例2-8 计算下列关系表达式的值 (1) 1010 (2) 10=10 (3) 1010!=10 (4) 3*8-9!=5+7%3,2.3 运算符与表达式,2.关系表达式 关系表达式的值:是逻辑值“真(True)”或“假(False)”,用1或0表示 关系表达式例子 int a=3,b=2,c=1,d,f; ab
18、 (ab)=c b+cb f=abc,/表达式值1,/表达式值1,/表达式值0,/d=1,/f=0,2.3 运算符与表达式,种类: ! int i; i=10; f=i; 则 f=10.0,错误: 3=x-2*y; a+b=3;,2.赋值表达式,2.3 运算符与表达式,赋值表达式的值与变量值相等,且可嵌套。,例: a=12; a+=a-=a*a,/a=-264 等价于a=a+(a=a-(a*a),2.3 运算符与表达式,复合的赋值运算符 在“=”前面加上其他运算符 种类 += -= *= /= %= = x = 10; y = +x; 此时,变量y的值为11。 如果程序改为: x = 10;
19、y = x+; 则变量y的值为10。,2.3.5 增量运算符,2.3 运算符与表达式,一般形式: expr1 ? expr2 : expr3 由常量、变量、函数、运算符和括号组合起来的、符合C语法规则的式子称为表达式。 执行过程,2.3.6 条件运算符及条件表达式,2.3 运算符与表达式,结合方向:自右向左 例2-13 假设变量 x = 10,y = 20, z = 30,计算下列条件表达式的值。 (1) x 10 ? 100 : 200 (2) x 10 ? x+z : y 20 ? y + z : z,2.3 运算符与表达式,一般形式: 表达式1,表达式2,表达式n 结合性:从左向右 优先级: 15 逗号表达式的值:等于表达式n的值 例如:1. x=(y=1,y+1); 2. y=20; x=(y=y-10,10/y);,2.3.7 逗号运算符及逗号表达式,2.3 运算符与表达式,例1 a=3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教学安全督导工作计划
- 新课标高一物理上学期教学反思计划
- 汽车配件货物接收流程他
- 九年级体育课体能发展个性化计划
- 培训学校前台服务职责
- 墙纸墙布施工工艺流程工具介绍他
- 影视欣赏主题月度活动计划
- 小学五年级上册综合实践课程设计计划
- 小学看图写话图片和范文辅导资料
- 七年级英语教师教学资源整合计划
- 港口装卸作业培训
- 钳工考试试题及答案
- 2025年广东省佛山市顺德区中考二模物理试题(含答案)
- 研发项目变更管理制度
- 2024-2025学年下学期小学数学人教版三年级期末必刷常考题之复式统计表
- 2025至2030中国复印机行业发展趋势分析与未来投资战略咨询研究报告
- 暑假安全家长会4
- 瑞幸大学题目及答案
- 消防监督检查员岗位技能考核题库
- 2024年安徽省泗县卫生局公开招聘试题带答案
- 2025年云南省中考生物试卷真题(含标准答案)
评论
0/150
提交评论