已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 数据类型、运算符、表达式 教师:赵军富 第二章 数据类型、运算符、表达式 Date 1 第二章 数据类型、运算符、表达式 教师:赵军富 2.1 C语言的数据类型 2.2 标识符、常量与变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 算术运算和表达式 2.7 数据类型转换 2.8 常见错误 本章内容 Date 2 第二章 数据类型、运算符、表达式 教师:赵军富 1 1、掌握常量、变量的概念,整型数据、实型数据、字、掌握常量、变量的概念,整型数据、实型数据、字 符型数据的表示方法,定义及使用方法。符型数据的表示方法,定义及使用方法。 2 2、掌握各种运算符的功能、运算优先级、结合性及使、掌握各种运算符的功能、运算优先级、结合性及使 用方法。用方法。 3 3、掌握各表达式的表示方法、求值方法和确定类型方法、掌握各表达式的表示方法、求值方法和确定类型方法 。 4 4、熟悉数据类型的转换。、熟悉数据类型的转换。 本节重点 Date 3 第二章 数据类型、运算符、表达式 教师:赵军富 数据类型数据类型 指针类型(*) 构造类型 枚举类型 enumenum 数组类型 结构体类型 structstruct 共用体类型 unionunion 基本类型基本类型 整型整型 intint (integer)(integer) 字符型字符型 char(characterchar(character) ) 实型(浮点型)实型(浮点型) 单精度实型单精度实型 floatfloat 双精度实型双精度实型 doubledouble 2.1 C语言的数据类型 Date 4 第二章 数据类型、运算符、表达式 教师:赵军富 2.2 标识符、常量与变量 标识符命名规则: (1)只能由字母、数字和下划线组成,且以字母或下划线开头(或只能有 数字打头)。 (2)一般不限制有效长度,随系统而异,但至少前个字符有效。如果超 长,则超长部分被舍弃。 例如:由于student_name和student_number的前个字符相 同,有的系统认为这两个变量,是一回事而不加区别。 (3)在 标示符中,区分大小写。 (4)标示符命名做到见名思义,如:month,name,total (5)系统规定的标示符main,scanf,printf不能做自定义的标示符。 2.2.1 标识符 标识符:是用来标识变量名、符号常量名、函数名、数组 名、类型名、文件名的有效字符序列。 Date 5 第二章 数据类型、运算符、表达式 教师:赵军富 定义: 在程序运行中,其值保持不变。 2.符号常量:用标示符来表示常量。 如: #define PI 3.14159 2.2.1 常量 两类 1.直接常量: 直接用数值表示的量。如100, B 例2-1 符号常量的使用 #define pi 3.14 main() int r=4; /圆的半径 float s; /圆的面积 float c; /圆的周长 c=2*pi*r; s=pi*r*r; printf(“圆的周长为:%f 圆的面积为:%f“,c,s); Date 6 第二章 数据类型、运算符、表达式 教师:赵军富 1、定义:在程序运行中,值发生变化的量。 int a,b; 类型名 变量名表 变量 memory a82563 注意:注意:变量名和内存中的存储单变量名和内存中的存储单 元相对应,编写程序时通过变量元相对应,编写程序时通过变量 名来存、取存储单元。名来存、取存储单元。 2、定义一般形式: 2.2.1 变量 3 3、变量使用的、变量使用的三步三步: (1). (1). 必须先定义变量;必须先定义变量; (2). (2). 给变量赋值;给变量赋值; (3)(3). .使用变量。使用变量。 Date 7 第二章 数据类型、运算符、表达式 教师:赵军富 (1)以字母或下划线开头; (2)不能用系统中的关键字作为变量名; int a,b A123,_b; 4、有关变量名的规定 (3)变量名中的字母要区分大小写。 sum、stu_name、_age、Lts_1_2、a2 32c、x.y、start+9、c2.0 NAME name 表示两个不同的标识符 int a; A=5; 不提倡大 小写混合 使用 String String=“123”; 2.2 标识符、常量和变量 (4)在同一函数体内,不能定义同名的 两个变量。 (5)在定义变量时,同时可以给变量赋值。 int a=b=2 (错误) int a=2,b=2(正确) Date 8 第二章 数据类型、运算符、表达式 教师:赵军富 三种表 示形式 十进制 八进制 十六进制 加前导0 , 如: 01234,0125 加前导0x, 如:0x1234 例例 100 100、-8-8、0 0;010010、 、024024;0 0x38x38、0X1F 0X1F 1234 2.3 整型数据 2.3.1 数据在内存中的存放形式 数据在内存中是以二进制存储的,计算机中存储器的最小存储单 位为位(bit),8个二进制位组成一个字节(byte),字节是存放数 据的最小单位。 2.3.2 整型常量 Date 9 第二章 数据类型、运算符、表达式 教师:赵军富 2.3.3 整型变量的分类 共六种 短整型 基本整型 长整型 无符号短整型 无符号整型 无符号长整型 short int int long int unsigned short 字节数 2 4 4 2 unsigned int unsigned long 4 4 类型标识符 Date 10 第二章 数据类型、运算符、表达式 教师:赵军富 vc6.0 整型数据的存储情况 类类型位数取 值值 范 围围 signed short int16-3276832767 即-215 (215 1) unsigned short int16065535 即0 (216 1) signed int32-24174836482147483647 即-231 (231 1) unsigned int3204294967295 即0 (223 1) long int32-24174836482147483647 即-231 (231 1) unsigned long int3204294967295 即0 (223 1) 2.3.3 整型变量的分类 Date 11 第二章 数据类型、运算符、表达式 教师:赵军富 例2-2 整型变量的定义与使用 main() int a,b,c,d; unsigned u; a=12; b=-24; u=10; c=a+u; d=b+u; printf(“a+u=%d b+u=%d“,c,d); 2.3.3 整型变量的定义 Date 12 第二章 数据类型、运算符、表达式 教师:赵军富 两种表示形式 小数 指数 0.123 3e-3 注意:实型常量只能用十进制形式表示, 不能用八进制和十六进制 实型数据 实型常量 实型变量 用指数表示实型常量的规则: (1)在E或e的前必须有数字; (2)在E或e的后必须是十进 制的整数 (3)在E或e的前后都不允许有空格。 1 1e3e3、1.8e-31.8e-3、-123e-6-123e-6(正确)(正确) 例如: e5e5、3 e53 e5、0.5e3.5(0.5e3.5(错误错误) ) 2.4 实型数据 2.4.1 实型数据分类 2.4.2 实型常量 Date 13 第二章 数据类型、运算符、表达式 教师:赵军富 2、实型变量 注意:实型常量不区分单精度和双精度。 三种 定义形式 单精度 float 4 字节 67位 双精度 double 8 字节 1516位 长双精度 long double 16字节 1819位 占存储空间标识符有效数字 实型变量定义方法: (单精度) float 变量名 (双精度) double 变量名 2.4.2 实型变量 Date 14 第二章 数据类型、运算符、表达式 教师:赵军富 例2-3 变量的定义与使用 main() float x; double y; x=222222.222; y=222222.222; printf(“x=%f,y=%f“,x,y); 2.4.2 实型变量 Date 15 第二章 数据类型、运算符、表达式 教师:赵军富 定义:用单引号包含的一个字符是字符型常量。 注意:只能包含一个字符。 例如:a, A, 1 (正确的) abc “a” (错误的) 字符型数据 字符型常量 字符型变量 2.5 字符型数据 2.5.1 字符常量 Date 16 第二章 数据类型、运算符、表达式 教师:赵军富 转移字符: 以“”开头的特殊字符称为转义字符。 printf(“%d t %d t”,a,b); printf(“%d n%d n”,a,b); 1 0 1 0 b 退格(backspace) 单引号 n 换行(newline) ddd 13位八进制数 t 制表符 (table) xhh 12位十六进制数 反斜杠字符 f 换页 ” 双引号 r 回本行开头(return) 例如 :a为1,b为0 常用的转移字符及其含义 2.5.1 字符常量 Date 17 第二章 数据类型、运算符、表达式 教师:赵军富 (1) 定义形式 (2) 占存储空间一个变量 char 注:一个字符变量只能包含一个字符 (3) 输入输出格式形式 %c A 65 01000001 a 97 01100001 ASCII 二进制 例如: 有两个字符型数据 A 和a 2.5.2 字符变量 定义:字符型变量用来存放字符常量,关键字用char来定义 。 Date 18 第二章 数据类型、运算符、表达式 教师:赵军富 main( ) char c ; c = c; printf ( “%c %d”, c,c ); C 99 题目中有多个c,哪些 是等价的?运行结果: 练习1 参考书p21 例2-4 2.5.2 字符变量 Date 19 第二章 数据类型、运算符、表达式 教师:赵军富 例如: 双引号内的一串字符 “china” 注意:1、n个字符组成的字符串常量, 在内存中占空间 为n+1 个字节。 c hi na 0 字符串结 束标记 2、 C 中没有专用的字符串变量。 例如:“This is C string” 串长 16 “a” 串长 1 “ ” (空格)串长 1 “” (不含空格)串长 0 2.5.3 字符串常量 Date 20 第二章 数据类型、运算符、表达式 教师:赵军富 2.6 运算符和表达式 算术运算符 赋值运算符 关系运算符 逻辑运算符 逗号运算符 条件运算符 求字节运算符 C语言运算符 基本运算符 位运算符 位逻辑运算符 位移位运算符 位自反运算符 专用运算符 强制运算符 下标运算符 成员运算符 指针运算符 Date 21 第二章 数据类型、运算符、表达式 教师:赵军富 1、运算符 运算符 运算对象 X= 5 + b * c 对数据进行 运算的符号 被加工 的数据 表达式 2.6.1 运算符、表达式概述 Date 22 第二章 数据类型、运算符、表达式 教师:赵军富 优先级: 运算符的执行顺序 结合性: 优先级相同时的结合方向 运算结果的类型 X=5+8 a100 X=a+b*c a+b-c 471 a=b=8 2.6.1 运算符、表达式概述 Date 23 第二章 数据类型、运算符、表达式 教师:赵军富 2、 学习运算符应掌握的要点: (1) 运算符的种类与功能 (2)运算符与运算对象的关系 个数 类型 A + B, (ab) ? a: b 目 不同类型的变量,所 允许的操作不同 单目运算符: +i,i- 双目运算符:+,- 三目运算符:xy?a:b 注意:(1)单目运算符的优先级高于双目运算符。 (2)单目运算符从右向左结合。 (3)双目运算符从左向右结合。 2.6.1 运算符、表达式概述 Date 24 第二章 数据类型、运算符、表达式 教师:赵军富 (1) 共有5个:+,-,*,/,% (2)“-”作为 负号时为单目 单目: - 双目:*, /, %双目:+,-(4) 优先级: (5) 结合性: 从左向右 (3) %运算只适用于整型数 取模(求余数) a=10%4 a的值为2 2.6.2 算术运算符及其表达式 1、基本的算术运算符 2、算术表达式 30-6/8+a 30-0+2 2.6.2 算术运算符及其表达式 Date 25 第二章 数据类型、运算符、表达式 教师:赵军富 1、关系运算:是一种比较运算,将两个值(表达式)进行比 较, 判 断比较的结果是否符合给定的条件。 2.6.3 关系运算符及其表达式 大于 , 大于等于 =,小于 bc (3) 结合性:从左向右 Date 26 第二章 数据类型、运算符、表达式 教师:赵军富 (1) 关系表达式的结果是一个逻辑值,根据关系是否满足,分 别取 1,或 0 2 2、关系表达式、关系表达式:关系运算符与运算分量构成:关系运算符与运算分量构成. . int i=1,j=7,a; a=i+(j%4!=0) a的值? 结果:a=2 (2) 使用关系表达式应注意 1) 数学上,判断x是否在区间 a,b 时,习惯上写成 a0 的值为逻辑 1 2.6.3 关系运算符及其表达式 Date 27 第二章 数据类型、运算符、表达式 教师:赵军富 1、逻辑运算符 (1) 有三个 x的值为 6 float y, y=5; y的值为 5.000000 (3) 赋值运算的优先级 比算术运算低 (4) 赋值运算的结合性 从右向左 X = y = 5 2.6.5 赋值运算符及其表达式 Date 29 第二章 数据类型、运算符、表达式 教师:赵军富 2.0/6.0 * 6.0 = 1.0的逻辑值为0 (5) 当判断两个浮点数是否相等时,由于存储上的误差,可能 会有错误的结果,例如:数学上:恒等式 1.0 / 6.0 * 6.0 = 1.0 (6) 在数学中,6 3 8 9无效,但C中是允许 的 (7) 关系表达式的结果可以当成整型数 int a=5,b=6,c=8,d; d = a c 逻辑1 18 逻辑0 d的值 为0 2.6.5 赋值运算符及其表达式 Date 30 第二章 数据类型、运算符、表达式 教师:赵军富 2、复合赋值运算符和复合赋值表达式 赋值运算符两侧 出现相同的变量 x=x+n x=x-n x=x*n x=x/n x=x%n x + = n x - = n x * = n x / = n x% = n 算术运算与赋值运算 相结合 X与n均为整数 x=x+n n 为常数 x+=n 2.6.5 赋值运算符及其表达式 Date 31 第二章 数据类型、运算符、表达式 教师:赵军富 main( ) int a, b, c, d, e; a=2; b=5 ;c= 6;d=10; a + =b; b- =c; c * =d; d / =a; a%=c; printf(“%d,%d,%d,%dn”, a , b , c , d); 7,-1,60,1 2.6.5 赋值运算符及其表达式 Date 32 第二章 数据类型、运算符、表达式 教师:赵军富 1. 变量自身加(减)1 k =k+1 k + 先使用变量k的值,再加 1 + k 先加1,再使用变量 k的值 k = k-1 k - - 先使用变量k的值,再减 1 - - k 先减1,再使用变量k 的值 k=3; printf( “%d”, k +); 输出 3 后, k 的值为 4 i=3; printf( “%d”, + i); 输出4 2.6.6 自增、自减运算符 Date 33 第二章 数据类型、运算符、表达式 教师:赵军富 2. 只能用于变量,不能用于表达式和常量 3. 优先级:高于双目算术运算符 4. 结合性:从右向左 (i+k) + , - - 3 2.6.6 自增、自减运算符 Date 34 第二章 数据类型、运算符、表达式 教师:赵军富 s = a + b ; s = a+ +b ; s = +a +b ; s = - -a +b ; s = a- - +b ; s = a + b ; a=5, b=5 5+5=10 5+5=10 7+5=12 6+5=11 6+5=11 5+5=10 a b s 5 5 10 5 5 10 7 5 12 6 5 11 6 5 11 5 5 10 2.6.6 自增、自减运算符 Date 35 第二章 数据类型、运算符、表达式 教师:赵军富 1、逗号运算符 (表达式 1,表达式 2,表达式 3,表达式 n) 作用:用于连接几个表达式 2、求解过程 顺序求解几个表达式 3、优先级 逗号运算符的优先级最低 4、结合性从左向右 5、逗号表达式 逗号表达式的值为最后一个表达 式的值(表达式n 的值) X = ( ( a=4*5 , a*2 ) , a+6 )a为? x为? 2.6.7 逗号运算符和表达式 Date 36 第二章 数据类型、运算符、表达式 教师:赵军富 自学参见书p29 2.6.8 位运算符和位运算 Date 37 第二章 数据类型、运算符、表达式 教师:赵军富 X=(表达式1)?(表达式2):(表达式3) 将条件语句化成赋值语句 1. 格式: 判断表达式1的值,若为非0,将表达式2的值赋给 x,否则,将表达式3的值赋给x 2 功能: x=(ab)?a:b 当 a=9,b=5时,x=9 条件运算要求有三个运算分量,并且不论条件是否成立,都必 须是为同一个变量赋值 2.6.9 条件运算符和表达式 Date 38 第二章 数据类型、运算符、表达式 教师:赵军富 3 条件运算符的优先级:高于赋值,低于其他 4 结合性:从右向左 z=(ab)?a:(ad)?c:d 5 数据类型可以不同:xy?a:b 执行:int x=10,y=9; int a,b,c; a=(- -x=y+)?-x:+y; b=x+; c=y; 后a,b,c? a, b, c A) 9, 9, 9 B) 8, 8, 10 C) 8,10, 9 D) 1,11,10 X为9 y为10 X为8 2.6.9 条件运算符和表达式 Date 39 第二章 数据类型、运算符、表达式 教师:赵军富 例1.若w,x,y,z,m均为int型变量,则执行下面语句后的m值为: w=1;x=2;y=3;z=4; m=(wx)? w: x; m=(my)? m : y; m=(mz)? m:z; A) 1 B) 2 C) 3 D) 4 例2. 若w=1,x=2,y=3,z=4,则表达式 wx?w:yz?y:z的值是: A) 4 B)3 C)2 D)1 2.6.9 条件运算符和表达式 Date 40 第二章 数据类型、运算符、表达式 教师:赵军富 1、求字节运算符sizeof(),是一个单目运算符。 2、一般形式:sizeof(变量名) 或sizeof(类型名)。 例1:int x,y; y=sizeof(x) ; 则 y=4; 例2: 若 y=sizeof(int) ; 则 y=4; 若 y=sizeof(char) ; 则 y=1; 例如3:main() int x; x=sizeof(char); printf(“%d“,x); 2.6.9 求字节运算符 Date 41 第二章 数据类型、运算符、表达式 教师:赵军富 (1) 隐式转换(算术转换) 转换原则:级别低的向级别高的转换 double float long unsigned int char, short 例如:int i; float f; double d; long e; 表达式:10+a+i*f-d/e 的结果为: double 1、各类数值数据混合运算时的类型转换,不同数据类型 需先转换成同一类型,然后进行运算。 2.7 数据类型转换 自动进行-隐式转换 强制进行-显式转换 2.7.1 自动类型转换 Date 42 第二章 数据类型、运算符、表达式 教师:赵军富 例如:(int) (10+a+i*f-d/e) 例如:int i;float f; 则(int)f%i 取模运算要求运算分量是整数,所 以先将 f 转换为整型,再做%运算 。 (2)赋值转换 原则:赋值符号右边的类型向左边的转换 int x; float y = 5.3; x=y; int x=5; float y; y=x; 2.7.1显式转换(强制转换) Date 43 第二章 数据类型、运算符、表达式 教师:赵军富 参考书 p38页 例题,上机练习。 2.8 常见错误 Date 44 第二章 数据类型、运算符、表达式 教师:赵军富 一 、C中的基本数据类型,每一种类型的定义方式(关键字), 在存储空间中所占的字节数,存储形式,取值范围。s 二、 C中的运算符的几个要点(功能,与运算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年离婚财产分割及孩子抚养协议书
- 施工劳务承包合同协议书样本
- 产业孵化基地入住协议
- 使用授权协议书要点解析
- 房屋互换合同格式
- 员工实习期劳务协议
- 中外专有技术转让协议
- 标准版委托检验检测协议书
- 5.2 凝聚价值追求 (大单元教学设计) 2024-2025学年统编版道德与法治九年级上册
- 建筑项目施工合同书范本
- 浮动码头施工方案
- Poka-Yoke防错技术(完整版)
- 保安交接班记录表(2)
- 神明—EZflame火焰检测系统
- 个人简历求职简历课件.ppt
- 2018年江苏高考满分作文:在母语的屋檐下
- 新青岛版五四制2021-2022四年级科学上册实验指导
- 小学四年级音乐课程标准
- 民用机场竣工验收质量评定标准
- 双向细目表和单元测试卷及组卷说明
- 离子色谱法测定空气中二氧化硫
评论
0/150
提交评论