《第二章 数据类型运算符PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第二章 数据类型运算符PPT讲稿.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章 数据类型运算符第1页,共45页,编辑于2022年,星期二内容:一、数据:程序的任务是对数据进行处理,程序的任务是对数据进行处理,数据是程序处理的对象数据是程序处理的对象。、什么是数据?程序数据算法1)不同类型数据在内存中占不同存储空间存储空间,有不同的存储形式存储形式。2)不同类型数据对应不同的取值范围取值范围。3)数据类型确定了允许对其进行的操作操作。、什么是数据类型?第2页,共45页,编辑于2022年,星期二指针类型指针类型空类型空类型(无值类型)(无值类型)void void数据类型数据类型构造类型构造类型枚举类型枚举类型 enum enum数组类型数组类型结构体类型结构体类型
2、struct struct共用体类型共用体类型 union union基本类型基本类型整型整型 int int字符型字符型 char char实型(浮点型)实型(浮点型)单精度实型单精度实型 float float双精度实型双精度实型 double double、C语言的数据类型:第3页,共45页,编辑于2022年,星期二、数据分类:)分类:数据数据变量常量字面常量符号常量)举例:变量:int x;float y;char ch;/分别定义了整型变量x;实型变量y,;字符型变量ch。常量:12、15.2、A;/分别为整型,实型、字符型常量#define PI;/字符型变量,变量名为ch,数据类
3、型为字符型.第4页,共45页,编辑于2022年,星期二二、变量的命名:任何变量都要先定义,后使用,在使用中,要指定该变量的类型(将在后面内容详细讨论),也要指定变量的名字。变量命名要遵守如下规则:)以字母或下划线开始,且由数字、字母或下划线构成;)不能与系统的个关键字相同;)名称区分字母大小写;)尽量考虑名称的实意性。练习:判断下列是否为合法的变量名:price、a1、12a、_12a、_a12、for、For;第5页,共45页,编辑于2022年,星期二三、整型数据:、整型常量:十进制十进制如如1234八进制八进制加前导加前导0 如如01234,0125十六进制十六进制加前导加前导0 x 如如
4、0 x123,0 xffff注意:二进制不是合法的整型常量表示形式。练习:判断下列是否为合法的整型常量:12、011B、067、078、78、0 x123、efff、0 xeff、0 xEfd;表示形式第6页,共45页,编辑于2022年,星期二、整型变量:即能够存储整数的变量;1)定义方法(共六种)定义方法(共六种)基本整型基本整型长整型长整型短整型短整型无符号整型无符号整型无符号短整型无符号短整型无符号长整型无符号长整型int long intshort intunsigned intunsigned short unsigned long第7页,共45页,编辑于2022年,星期二 类型说明
5、符类型说明符 长度长度 数的范围数的范围基本型基本型 intint 2 2字节字节 -32768-327683276732767短整型短整型 short short 2 2字节字节 -2-215152 21515-1-1 长整型长整型 long long 4 4字节字节 -2-231312 23131-1-1无符号整型无符号整型 unsigned unsigned 2 2字节字节 0 06553565535无符号短整型无符号短整型 unsigned short unsigned short 2 2字节字节 0 06553565535无符号长整型无符号长整型 unsigned long unsi
6、gned long 4 4字节字节 0 0(2 23232-1-1)所所 占存储空间和取值范围占存储空间和取值范围:第8页,共45页,编辑于2022年,星期二)举例:举例:int a=5;/定义int变量a并为其赋初值;long int b=34567;unsigned int c=128;注意:为变量赋初值时,保证该初始值在变量可以表示的数值范围内。第9页,共45页,编辑于2022年,星期二第二章数据类型、运算符(2)学时数:课时;重难点:字符型数据的表示方法;字符串常量的理解;实型数据的表示方法;第10页,共45页,编辑于2022年,星期二一、实型数据:、实型常量:小数形式:123.56、
7、123.、.56;指数形式:7.5e+3、2.3e-2;注意:小数表示时:必须要有小数点,整数和分数至少要一个;指数表示时:字母e(或E)之前必须有数字,后面必须为整数。练习:判断下列是否为合法的实型常量:12、123.5、.56、-e2、-1.23e+5、1.55e+0.5;第11页,共45页,编辑于2022年,星期二2、实型变量:即能够存储小数的变量;1 1)定义方法)定义方法单精度双精度floatdoublefloat 6-7位位double 15-16位位即表示该类型的变量只有从左到右对应位数字是准确的;即表示该类型的变量只有从左到右对应位数字是准确的;)表示的精度)表示的精度如:fl
8、oat f=1234567.23;/只能有效的保存前6-7位数字。第12页,共45页,编辑于2022年,星期二二、字符型数据:、字符型常量:)普通字符常量(用单引号包含的一个字符)用单引号包含的一个字符)如:如:a、A、1等;第13页,共45页,编辑于2022年,星期二)转义字符(有些以有些以“”开头的特殊字符)开头的特殊字符)如:如:n 换行t 横向跳格r 回车 反斜杠ddd ddd表示1到3个八进制数字xhh hh表示1到2个十六进制数字第14页,共45页,编辑于2022年,星期二注意:字符常量必须以单引号括起来;u除ddd和 xhh 外,其他的都只能包含一个字符;u转义字符要以为为标志;
9、u注意ddd和 xhh中字符的有效性;练习:判断下列是否为合法的字符型常量:12、t、”a”、ab、t、v、123、128、ff;第15页,共45页,编辑于2022年,星期二、字符型变量:1)定义方法:char a;/定义了一个字符型变量ch;2)赋初值:a=a;/将字符型常量a;3)存储方式(在内存中以相应的在内存中以相应的ASCII值存储值存储)a ASCII值为值为 97 0 1 1 0 0 0 0 1 注意:变量名称 字符常量第16页,共45页,编辑于2022年,星期二 char a=a;等效于char a=97;a的 ASCII值为值为97,在内存中是以97的二进制形式存放,但一个字
10、符只占据一个字节的空间,因此字符型和整形在0-127范围内可以通用;4)与整形通用:第17页,共45页,编辑于2022年,星期二 5)使用:main()char c ;c=c;printf(“%c%d”,c,c);程序中有多个程序中有多个c分分别表示什么意思别表示什么意思?第18页,共45页,编辑于2022年,星期二三、字符串常量三、字符串常量1、定义、定义 由双引号引起的一串字符由双引号引起的一串字符 “china”2、长度、长度 n个字符组成的字符串常量个字符组成的字符串常量,在内存中占空间为在内存中占空间为n+1 个字节。个字节。c hin a0“This is C stringThis
11、 is C string”串长串长 16 16“a a”串长串长 2 2 “”(空格)串长(空格)串长 2 2 “”(不含空格)串长(不含空格)串长 1 1第19页,共45页,编辑于2022年,星期二第二章数据类型、运算符(3)学时数:课时;重难点:数值的混合运算运算符、表达式的理解;算术、自增(自减)运算符;第20页,共45页,编辑于2022年,星期二表达式:表达式:10+a+i*f-d/e 的结果为:的结果为:double一、一、混合运算混合运算如:37+3.5*A,对于该表达式,最后结果的数据类型为什么呢?规则:当两个操作数中有一个为实型时,将两个同时转化为double型进行运算,否则如
12、果有一个为long int 型时,同时转化为long int 型,否则同时转化为int 型.第21页,共45页,编辑于2022年,星期二1、运算符与操作数运算符运算符 操作数操作数X=5 +b *c 二、二、运算符和表达式运算符和表达式算术运算符算术运算符赋值运算符赋值运算符关系运算符关系运算符逻辑运算符逻辑运算符逗号运算符逗号运算符条件运算符条件运算符.C C 中运算符中运算符共34种2、表达式运算符和操作数构成运算符和操作数构成表达式,表达式,如如a+ba+b第22页,共45页,编辑于2022年,星期二3、运算符学习要点:、运算符学习要点:u 运算符的功能:即达到什么效果,如、等;u属于几
13、目运算符:即运算符所需要操作数的个数,如+为双目、为单目运算符;第23页,共45页,编辑于2022年,星期二3、运算符学习要点:、运算符学习要点:u运算符的优先级:几个运算符结合在一起时其运算顺序u运算符的结合方向:几个优先级相同的运算符结合在一起时其结合的顺序.第24页,共45页,编辑于2022年,星期二三、三、算术运算符算术运算符、符号表示:符号表示:共有共有5个:个:+,-,*,/,%2 2、均为双目运算符号;均为双目运算符号;*,/,%+,-、优先级:、结合方向结合方向:从左向右从左向右 注意:注意:u%运算只适用于整型数运算只适用于整型数;u /的运算结果类型要注意的运算结果类型要注
14、意取模(求余数)取模(求余数)a=10%4a的值为的值为2高于第25页,共45页,编辑于2022年,星期二四、四、自增、自减运算符自增、自减运算符+: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 的值为的值为 4i=3;printf(“%d”,+i);输出输出4、符号表示:符号表示:+、
15、-如:如:第26页,共45页,编辑于2022年,星期二2 2、为单目运算符号;为单目运算符号;、优先级:高于所有的多目运算符高于所有的多目运算符、结合方向结合方向:从右向左从右向左 注意:注意:u +、-只能对变量运算,不能是常量或表达式运算;只能对变量运算,不能是常量或表达式运算;u 注意前加、后加的区别;注意前加、后加的区别;判断是否合法:判断是否合法:(i+k)+,-3;第27页,共45页,编辑于2022年,星期二 main()int a,b,s ;a=5;b=5;s=a+b;printf(“%d,%d,%dn”,a,b,s);s=+a+b;printf(“%d,%d,%dn”,a,b,
16、s);s=-a+b;printf(“%d,%d,%dn”,a,b,s);s=a+b;printf(“%d,%d,%dn”,a,b,s);、例题分析:第28页,共45页,编辑于2022年,星期二第二章数据类型、运算符()学时数:课时;重难点:赋值运算符、逗号运算符;表达式的类型转换;关系运算符;逻辑运算符;运算符的综合应用.第29页,共45页,编辑于2022年,星期二一、一、赋值运算符赋值运算符、符号表示:符号表示:一般:;复合:一般:;复合:+=、-=、*=、/=、%=2 2、均为双目运算符号;均为双目运算符号;、优先级、优先级:低于算术运算符、结合方向结合方向:从右向左 注意:注意:u 赋值
17、运算符左边的操作数必须为变量赋值运算符左边的操作数必须为变量;u a+=b a+=b等效于:等效于:a=a+b;a=a+b;第30页,共45页,编辑于2022年,星期二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);、例题分析:、例题分析:第31页,共45页,编辑于2022年,星期二一、引入:一、引入:要求:由用户输入三角形的三边边长,求出该三角形的面积,但是,要求:由用户输入三角形的三边边长,求出该三角形的面积,但是,当用户输入的数据不合法呢,如何去判断数
18、据的合法呢?当用户输入的数据不合法呢,如何去判断数据的合法呢?二、关系运算符二、关系运算符)作用:用于测试两个变量或一个变量和一个常量之间的关系2)符号表示:符号表示:运算符关系运算大于=大于等于小于=小于等于=等于!=不等于第32页,共45页,编辑于2022年,星期二3)关系表达式:关系表达式:进行关系运算的操作数可以为常量或变量,也可以为其他类型的表达式;关系表达式的结果只有“真”和“假”两种,若为真,这以“”表示,若为假,则以“”表示;第33页,共45页,编辑于2022年,星期二当a=3,b=4,c=5时,则:ab的值为0a=c的值为0(ab)!=c的值为1(ab)=c的值为0求(a3&
19、x7,表示x大于并且x72)符号表示:符号表示:ab!aa&ba|b真真假真真真假假假真假真真假真假真真假假第35页,共45页,编辑于2022年,星期二)逻辑表达式:ab!aa&ba|b非非非非处理原则:先判断参与逻辑运算操作数的真、假,按照“非即真,即假”的原则处理,所以其真值表可以改写为:第36页,共45页,编辑于2022年,星期二处理方法:1)采用“非即真,即假”;2)处理中的”短路“效应;a&b&c&d,只有当左边a为真后,才需要往后面继续进行判断,否则表达式的值已经确定(为0),不需要进行后面的判断;a|b|c|d,只有当左边a为假后,才需要继续往后面进行判断,否则表达式的值已经确定
20、(为1),不需要进行后面的判断;第37页,共45页,编辑于2022年,星期二求下列表达式的值:(5)&()正确表示:8=x=20第38页,共45页,编辑于2022年,星期二1)如:若m=3,n=4,a=0,判断下列表达式的值和a、b、c的值:n+&a&m+m+|n+|a+2)2)用逻辑表达式表示闰年的条件;用逻辑表达式表示闰年的条件;)例题分析:例题分析:第39页,共45页,编辑于2022年,星期二二、二、逗号运算符逗号运算符、符号表示:符号表示:(s1,s2,s3.,sn)从左到右依次计算各个表达式的值,整个逗号表达事的值为最后一个表达式的值;2 2、操作数个数:操作数个数:双目运算符;、优
21、先级、优先级:优先级最低;优先级最低;、结合方向结合方向:从左向右第40页,共45页,编辑于2022年,星期二三、三、表达式中的类型转换表达式中的类型转换、引入引入判定该表达式结果的的数据类型:3+4.5*a即当运算符两边的操作数类型不一致时,该运算如何处理?、隐式转换(算术转换)、隐式转换(算术转换)第41页,共45页,编辑于2022年,星期二、显式转换(强制转换)、显式转换(强制转换)(int)(10-+a+i*f-d/e)将该结果强制转换为整型将该结果强制转换为整型若有:若有:int i;float f;则则(int)f%i取模运算要求运算分量是取模运算要求运算分量是整数整数,所以先将所
22、以先将 f 转换为整型,再做转换为整型,再做%运运算算方法:方法:(转换为的类型转换为的类型)被转换的表达式被转换的表达式第42页,共45页,编辑于2022年,星期二 、C中的基本数据类型,每一种类型的定义方式(关键字中的基本数据类型,每一种类型的定义方式(关键字),在存储空间中所占的字节数,存储形式,取值范围。在存储空间中所占的字节数,存储形式,取值范围。、C中的运算符的几个要点(功能,与运算分量的关系,优中的运算符的几个要点(功能,与运算分量的关系,优 先级先级,结合性,运算结果的类型)。,结合性,运算结果的类型)。、自增,自减运算的特点,灵活使用自增,自减运算的特点,灵活使用k+,+k。
23、、复合的赋值运算规则。、复合的赋值运算规则。、不同类型数据转换时的优先顺序不同类型数据转换时的优先顺序四、四、本章小结本章小结第43页,共45页,编辑于2022年,星期二1、C语言规定,在源文件中,语言规定,在源文件中,main()的位置()的位置:()A、必须在最开始、必须在最开始 B、必须在库函数后、必须在库函数后 C、可以在任意位置、可以在任意位置 D、必须在所有函数最后、必须在所有函数最后2、一个、一个C程序的执行是从:程序的执行是从:()A、从主函数开始,在主函数中结束;、从主函数开始,在主函数中结束;B、从第一个函数开始,到最后一个函数结束;、从第一个函数开始,到最后一个函数结束;
24、C、从主函数开始,到最后一个函数结束;、从主函数开始,到最后一个函数结束;D、从第一个函数开始,到主函数中结束。、从第一个函数开始,到主函数中结束。3、下面选项中,全为不合法的用户标识符的选项是:、下面选项中,全为不合法的用户标识符的选项是:()A)、A B)、float C)、b-a D)、-123 p_0 1a0 goto temp do _a int INT 4、以下叙述种不正确的是:、以下叙述种不正确的是:()A、在、在C程序中,逗号运算符优先级最低;程序中,逗号运算符优先级最低;B、在、在C程序中,程序中,AHP和和ahp代表两个不同的变量;代表两个不同的变量;C、若变量、若变量a、
25、b类型同,则表达式类型同,则表达式a=b是将是将b值放入值放入a中,中,b不变;不变;D、输入数据时,整型变量只能输入整数,实型变量则只能输入实数。、输入数据时,整型变量只能输入整数,实型变量则只能输入实数。五、本章习题五、本章习题第44页,共45页,编辑于2022年,星期二5、设有说明:、设有说明:char w;int x;float y;double z;则表达式:则表达式:w*x+z-y的值的类型为的值的类型为:()A、float B、char C、int D、double6、在、在C语言中,语言中,int型数据在内存中占用型数据在内存中占用2字节存储单元,则字节存储单元,则int型数据的取型数据的取值范围为:值范围为:_。7、若、若a为为int型变量,则如下表达式的值为:型变量,则如下表达式的值为:_。(a=4*5),a+=5,a+68、若有如下定义:、若有如下定义:int b=7;float a=2.5,c=4.7;则表达式则表达式:a+(int)(b/3*(a+c)/2)%4 的值为:的值为:_。第45页,共45页,编辑于2022年,星期二
限制150内