收藏 分享(赏)

【程序设计基础】第3章_数据类型、运算符与表达式 (3).ppt

上传人:dreamzhangning 文档编号:3344232 上传时间:2018-10-16 格式:PPT 页数:37 大小:317.50KB
下载 相关 举报
【程序设计基础】第3章_数据类型、运算符与表达式 (3).ppt_第1页
第1页 / 共37页
【程序设计基础】第3章_数据类型、运算符与表达式 (3).ppt_第2页
第2页 / 共37页
【程序设计基础】第3章_数据类型、运算符与表达式 (3).ppt_第3页
第3页 / 共37页
【程序设计基础】第3章_数据类型、运算符与表达式 (3).ppt_第4页
第4页 / 共37页
【程序设计基础】第3章_数据类型、运算符与表达式 (3).ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、第三章,数据类型、运算符与表达式,本章要点,数据的描述规则 数据的操作规则,主要内容,3.1 C的数据类型 3.2 常量与变量 3.3 数据类型的转换 3.4 运算符和表达式,3.1 C的数据类型,C语言提供了以下一些数据类型:,数据类型,构造类型,指针类型,空类型(无值类型) void,枚举类型 enum,数组类型,结构类型 struct,联合类型 union,3.2 常量与变量,命名的规定:有效的名字称为标识符,标识符在C语言中可作为变量名、常量名、函数名、参数名、类型名、枚举名和标号等语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。例:sum,_tot

2、al, month, Student_name,lotus_1_2_,BASIC, li_ling M.D.John, ¥123,3D64,ab,3.2 常量与变量,3.2.1 常量 在程序运行过程中,其值不能被改变的量称为常量 常量区分为不同的类型:,整型 100,125,-100,0 实型 3.14 , 0.125,-3.789 字符型 a, b,2 字符串 “a”, “ab”,“1232”,符号常量:用一个标识符代表一个常量,习惯上用大写字母表示,例1 符号常量的使用 #define PRICE 30 #include void main () int num, total; num=1

3、0; total=num * PRICE; printf(“total=%dn“,total); ,不能给符号常量赋值,字符常量 (1)用单引号包含的一个字符是字符型常量 (2)只能包含一个字符,例,a,A, 1 abc、“a”,有些以“”开头的特殊字符称为转义字符,n 换行 t 横向跳格 r 回车 反斜杠 单引号字符 ” 双引号字符 ddd ddd表示1到3位八进制数字 xhh hh表示1到2位十六进制数字,转义字符,例2 转义字符的使用 #include void () printf( ab ct derftgn); printf(htibbj kn); ,打印机上的显示结果:fab c

4、gdeh jik,显示屏上的运行结果:f gde j k,3.2 常量与变量,3.2.2 变量变量:内存中具有特定属性的一个存储单元,用来存放数据这就是变量的值,在程序运行期间,这些值是可以改变的。,注: 编译系统将大写字母和小写字母认为是两个不同的字符 int sum,Sum; 建议变量名的长度最好不要超过8个字符。 变量起名尽量有含义 变量要“先定义,后使用” 。,类型 类型说明符 长度 数的范围基本型 int 2字节 -3276832767短整型 short 2字节 -215215-1 长整型 long 4字节 -231231-1无符号整型 unsigned int 2字节 065535

5、无符号短整型 unsigned short 2字节 065535无符号长整型 unsigned long 4字节 0(232-1),4,4,整型变量:,例3 整型数据的溢出 #include void main() int a,b; a=0x7fffffff; b=a+1; printf(“%d,%dn“,a,b); ,说明:运行结果与int型数据所占的内存空间大小有关,如果a为能表示的最大值,则b溢出,类型 位数 数的范围 有效数字 float 32 10-37 1038 67 位 Double 64 10-30710308 1516位 long double 128 10-49311049

6、32 1819位,浮点型变量的分类浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类形式。,字符变量 字符变量的定义形式如下:char c1,c2;可以用下面语句对c1,c2赋值:c1a;c2 b ; 一个字符变量在内存中占一个字节。存储的是该字符的相应的ASCII代码。使字符型数据和整型数据之间可以通用,注意: 一个字符数据既可以以字符形式输出,也可以以整数形式输出。,例4 向字符变量赋以整数。 #include void main() char c1,c2; c1=65; c2=66; printf(“%c %cn”,c1,c2); p

7、rintf(“%d %dn”,c1,c2); ,说明:在第和第4行中,将整数65和66分别赋给c1和c2,它的作用相当于以下两个赋值语句:c1A;c2B;因为A和B的ASCII码为65和66,运行结果:A B65 66,3.2.3字符串常量 字符串常量是一对双撇号括起来的字符序列. 合法的字符串常量:“How do you do.”, “CHINA”, “a” , “$123.45” 可以输出一个字符串,如printf(“How do you do.”); 规定:在每一个字符串常量的结尾加一个 “字符串结束标志”,以便系统据此判断字符串是否结束。作为字符串结束标志。,注意:不能把一个字符串常量

8、赋给一个字符变量。,char c c=a; c”a”;c”CHINA”;,3.2.4 变量赋初值,(1) 定义变量的同时使变量初始化int a=3; / 指定为整型变量,初值为 float f=3.56; / 指定为浮点型变量,初值为.56 char c= a; / 指定为字符变量,初值为a,(2)可以使被定义的变量的一部分赋初值。int a,b,c=5; /指定、为整型变量,但只对初始化,c的初值为,(3) 对几个变量赋以同一个初值int a=3,b=3,c=3;,int a=b=c=3;,3.3 数据类型的转换,不同数据类型的数据(包括常量和变量)之间进行各种运算时,C语言编译系统自动进行

9、数据类型的转换。,转换原则: 参加运算的两个数据中,数据长度较短的数据转换为它们之中数据较长的数据类型,然后进行运算,结果为数据较长的数据类型赋值运算中,C系统自动把等号右边的数据转换成左边的类型,然后送给左边变量。,3.3.1自动转换,关于自动转换的说明,字符型与整型 可以用字符的地方就可以用整数 整数转换成字符时,超出8位就将高位丢掉 实型与整型 实型转换为整型舍弃小数部分 整型转换为实型数值不变,但以浮点数形式存储 无符号整型与一般整型 无符号整型转换为一般整型原样送值 一般整型转换为无符号整型原样送值,#include void main() int a, b, sum; float

10、ave; a=5; b=6; sum=a+b; ave=sum/2; printf(“%d, %fn“ , sum, ave); ,3.3.2强制转换,(数据类型)变量名或(表达式)(double) 将转换成double类型 (int)(x+y) 将x+y的值转换成整型 (float)(5%3) 将5%3的值转换成float型说明:无论是自动转换还是强制转换,仅仅是为了本次运算或赋值的需要,对变量的数据进行临时转换,并不改变定义该变量时规定的数据类型。,例5 强制类型转换。 #include void() ; ; ; (); printf(“x=%f, i=%dn“,x,i); ,运行结果:x

11、3.600000, i=3,3.4 运算符和表达式,(1)算术运算符 (+ - * / %) (2)关系运算符 ( = |) (5)赋值运算符 (及其扩展赋值运算符) (6)条件运算符 (?:) (7)逗号运算符 (,) (8)指针运算符 (*和) (9)求字节数运算符() (10)强制类型转换运算符( (类型) ) (11)分量运算符(-) (12)下标运算符( ) (13)其他 (如函数调用运算符(),3.4.1 运算符 基本操作均可作为运算符,3.4 运算符和表达式,表达式(expression) 由变量、常量和各种运算符构成的式子 如,算术表达式,赋值表达式,逗号表达式等语句(stat

12、ement) C语言中一个表达式后跟一个分号可构成一条语句 ; 在C语言中,分号是语句的结束符 一行可有多个语句,3.4.2 表达式和语句,3.4.3 赋值运算符和表达式,普通赋值运算符 = 将一个数据或表达式的值赋给一个变量 a = 0; b = c+d;可以连用,如a=b=c=5 如果赋值运算符两侧的类型不一致,需要进行类型转换,3.4.3 赋值运算符和表达式,复合赋值运算符 在赋值符“”之前加上其他运算符,可以构成复合的运算符。 (x运算符=y) (x = x 运算符 y), a += b (其中a为变量,b为表达式) a += b(将有下划线的“a+”移到“=”右侧)|_ a = a

13、+ b (在“=”左侧补上变量名a),凡是二元(二目)运算符,都可以与赋值符一起组合成复合赋值符。,语言规定可以使用种复合赋值运算符: ,*,|,例如: * ,等价于 ,等价于 *(),等价于 ,3.4.3 赋值运算符和赋值表达式,赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。“=3*5”是一个赋值表达式,对赋值表达式求解的过程是:求赋值运算符右侧的“表达式”的值;赋给赋值运算符左侧的变量。,一个表达式应该有一个值,3.4.3 赋值运算符和赋值表达式,条件赋值运算符a=m?x:y 如果m为真 a=x否则 a=yint max(int x,int y)int n;

14、n=(xy)?x:y;return(n);,3.4.4 算术运算符和表达式,(1)基本的算术运算符: (加法运算符,或正值运算符。如:、) (减法运算符,或负值运算符。如:、) * (乘法运算符。如:*) (除法运算符。如:) (模运算符,或称求余运算符,两侧均应为整型数据,如:的值为)。,(2) 算术表达式:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合语法规则的式子,称为算术表达式。*.5a,(3) 算术运算符的优先级和结合性。语言规定了各种运算符的优先级和结合方向(结合性) 见附录C在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。 算术运算符的结合方向为“

15、自左至右”,即先左后右 。,3.4.4 算术运算符和表达式,3.4.4 算术运算符和表达式,如: ,(在使用之前,先使的值加(减) ,(在使用之后,使的值加(减),常用于循环语句中使循环变量自动加。也用于指针变量,使指针指向下一个地址,注意: 自增运算符(),自减运算符(),只能用于变量,而不能用于常量或表达式,(4) 自增、自减运算符作用是使变量的值增或减,; (i=3)i的值先变成4, 再赋给,i、j的值均为; 先将 i的值3赋给,的值为,然后变为,3.4.5 逗号运算符和逗号表达式,逗号运算符:将两个表达式连接起来,又称为“顺序求 值运算符”如:5,,一般形式: 表达式,表达式,求解过程

16、:先求解表达式,再求解表达式。整个逗号表达式的值是表达式的值。,逗号表达式 的值为14,3.4.5 逗号运算符和逗号表达式,例:逗号表达式*5,*,分析:赋值运算符的优先级别高于逗号运算符, 因 此应先求解*5。,的值为5,然后求解*,得。整个逗号表达式的值为。,一个逗号表达式又可以与另一个表达式组成一 个新的逗号表达式如:(*,*),a+5,先计算出的值等于,再进行*的运算得60(但值未变,仍为15),再进行得,即整个表达式的值为。,3.4.5 逗号运算符和逗号表达式,逗号表达式的一般形式可以扩展为表达式,表达式,表达式,表达式它的值为表达式的值。,逗号运算符是所有运算符中级别最低的 例: (,*) ,*3,赋值表达式,将一个逗号表达式的值赋给,的值等于,逗号表达式,包括一个赋值表达式和一个算术表达式,的值为,整个逗号表达式的值为18。,3.4.5 逗号运算符和逗号表达式,注意:并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。如: printf(“%d,%d,%d”,a,b,c);,“,”并不是一个逗号表达式,它是printf函数的3个参数,printf(“%d,%d,%d”,(a,b,c),b,c),“(,)”是一个逗号表达式,它的值等于的值。,作业:,3.5 3.7 3.9 3.10,重视自学、重视细节,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报