第二章数据类型、运算符与表达式.ppt

上传人:sccc 文档编号:5663393 上传时间:2023-08-07 格式:PPT 页数:38 大小:1.91MB
返回 下载 相关 举报
第二章数据类型、运算符与表达式.ppt_第1页
第1页 / 共38页
第二章数据类型、运算符与表达式.ppt_第2页
第2页 / 共38页
第二章数据类型、运算符与表达式.ppt_第3页
第3页 / 共38页
第二章数据类型、运算符与表达式.ppt_第4页
第4页 / 共38页
第二章数据类型、运算符与表达式.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《第二章数据类型、运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《第二章数据类型、运算符与表达式.ppt(38页珍藏版)》请在三一办公上搜索。

1、C语言程序设计,贾宗福,哈尔滨学院软件学院软件工程专业课程(必修课),第二章 数据类型、运算符与表达式,C语言的数据类型常量与变量 整型数据 实型数据字符型数据算术运算符和算术表达式 C运算符和C表达式,C语言的数据类型,一、数据类型,数据:是程序处理的对象。例如:整数、实数、字符串、逻辑值。数据类型:是指将数据根据表达形式的不同而划分的类别。数据类型(数据结构)是指数据的组织形式。规定了一定的取值范围(值域)和在该值域上所进行的各种操作。,一般分为:,二、数据类型分类,指针类型(*)数组类型()结构体类(struct)共用体类型(union)函数类型,基本类型枚举类型(enum)派生类型空类

2、型(void),整型实型,基本整型(int)短整型(short int)长整型(long int)字符型(char),单精度型(float)双精度型(double)长双精度型(long double),C语言的数据类型,一、常量,常量区分为不同的类型分类:字面常量(直接常量)、符号常量,常量与变量,1定义 在程序运行过程中,其值不发生改变的量称为常量。,说明:,例:字面常量 整型常量:12、0、-3 实型常量:4.6、-1.23;字符常量:a、b,#define是预处理命令,与语句区分开。它占独立一行,不用分号结束。标识符的值在其作用域内不能改变(不是变量),也不能再被赋值。习惯上符号常量名用

3、大写,变量用小写。使用符号常量的好处是:含义清楚(见名知意);在需要改变一个常量时能做到“一改全改”。,2符号常量,一、常量,格式:#define 标识符 常量功能:用一个指定的标识符来代表一个常量。,说明:,常量与变量,2符号常量,一、常量,常量与变量,例:,#define PRICE 30#includevoid main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);,二、变量,常量与变量,1定义 在程序运行过程中,其值可以改变的量称为变量。,说明:,一个变量应该有一个名字,在内存中占据一定的存储单元。在该存储单

4、元中存放变量的值。区分变量名、变量地址、存储单元、变量值的关系。变量名命名原则?,关键字:32个英文单词,系统内具有特定含义,不能另作它用。标识符:程序员定义的单词,程序正文中的一些实体,包括符号常量名、变量名、函数名、数组名、类型名、文件名等。,二、变量,常量与变量,2标识符的命名原则,(1)C语言的词法记号,以大小写字母或下划线开始;由字母、数字和下划线三种字符组成;区分大小写字母;见名知意,不能与C语言的关键字相同;标识符长度无统一规定,但最多32个字符。,英文字母:AZ az 数字:09特殊字符:(空格)!#%&*_(下划线)+-=/”(),二、变量,常量与变量,2标识符的命名原则,(

5、2)C语言的字符集,(3)命名原则,变量必须先定义,后使用。定义多个同类型的变量时,变量之间用逗号分隔。凡未被事先定义的,不作为变量名。指定每一变量属于一个类型,这就便于在编译时,据此检查该变量所进行的运算是否合法。,二、变量,常量与变量,3、定义变量,格式:数据类型名 变量名表;,功能:在编译时按照指定的类型为变量分配相应的存储单元。,说明:,#define PRICE 30#includemain()int num,total;float v,r,h;num=10;total=num*PRICE;printf(total=%d,total);r=2.5;h=3.2;v=3.14159*r*

6、r*h;printf(”v=%fn”,v);,变量名:以字母或下划线开头,由数字、字母、下划线构成。最多32个字符,多余不识别.一般小写。,名字常用大写,常量与变量,例:,#define PRICE 30#includemain()int num,total;float v,r,h;num=10;total=num*PRICE;printf(total=%d,total);r=2.5;h=3.2;v=3.14159*r*r*h;printf(”v=%fn”,v);,根据值的大小自动确定类型十进制:123,456八进制:0开头十六进制:0 x开头无unsigned型,但非负数可对unsigned

7、变量赋值,int、unsigned int 2字节short【int】unsigned short【int】2字节long【int】unsigned long【int】4字节,整型数据,一、举例说明,二、整型数据的定义及取值范围,类型定义符 位数数值范围I/O格式符有符号:基本整型 int16位-3276832767%d 短整型 short16同上%hd长整型 long32-231(231-1)%ld无符号:unsigned int16065535%u unsigned short16 同上%hu unsigned long320(232-1)%lu,整型数据,#define PRICE 30

8、#includemain()int num,total;float v,r,h;num=10;total=num*PRICE;printf(total=%d,tatal);r=2.5;h=3.2;v=3.14159*r*r*h;printf(”v=%fn”,v);,十进制形式指数形式:123E3(123103)不区分单、双精度,赋值时截取有效长度。如:float a;a=111111.111;,7位有效数字,float 4字节 7位有效数字double 8字节 15位有效数字long double 16字节 19位有效数字,实型数据,一、字符常量单引号括起来的一个字符,如:a,D,?,$,转义

9、字符:一种特殊形式的字符变量,是以一个“”开头的字符序列。在屏幕上无法显示,在程序中无法表示的字符。见P_30,二、字符变量 用来存放字符常量,例:char c1,c2;c1=a;c2=A;,字符型数据,三、字符数据在内存中的存储形式 以ASCII码存储,占1字节,四、字符数据的使用方法字符数据和整型数据之间可以通用,可以按字符形式输出,也可以按整型输出。,字符数据与整型数据可以互相赋值。,五、字符串常量例:CHINA a a,所以:char c;c=a;,字符型数据,例1,main()char c1,c2;c1=97;c2=98;printf(%c,%cn,c1,c2);,运行结果:a,b,

10、字符型数据,例2,运行结果:97 98,main()char c1,c2;c1=97;c2=98;printf(%d%dn,c1,c2);,字符型数据,例3,运行结果:a,97a,97,main()int i;char c;i=a;c=97;printf(%c,%dn,c,c);printf(%c,%dn,i,i);,字符型数据,算术运算符与算术表达式,一、算术运算符,1、基本的算术运算符,+-*/%(取余),(若整数相除,结果取整),说明:/整除 若/的两操作数都为整数,则为整除 如:5/2=2,5.0/2.0=2.5 例 int i=15;float f;f=i/10;结果为:f=1 如果

11、将第三条语句改为 f=i/10.0;或f=i/-10;则结果为:f=1.5,或f=-1,算术运算符与算术表达式,1、基本的算术运算符,说明:%取余 求两个整数整除后的余数,余的符号与被除数相同 如:3%4=3 4%4=0例#include void main()int n;n=40%5;printf(“n=%dn,n);n=40%7;printf(“n=%dn,n);n=40%-7;printf(“n=%dn,n);n=-40%7;printf(“n=%dn,n);n=-40%-7;printf(“n=%dn,n);,输出结果:n=0 n=5 n=5 n=-5 n=-5,一、算术运算符,算术运

12、算符与算术表达式,2、自增、自减运算符、,一、算术运算符,+i,-i 在使用i之前,先使i的值加(减)1 i+,i-在使用i之后,使i的值加(减)1,例:#include void main()int i=3,j;j=+i;printf(“j=%d,i=%dn,j,i);j=i-;printf(“j=%d,i=%dn,j,i);,输出结果:j=4,i=4 j=3,i=2,算术运算符与算术表达式,2、自增、自减运算符、,一、算术运算符,说明:,+、-只能用于变量,而不能用于常量或表达式+、-的结合方向是“自右至左”,例:8+-5(a+b)+-(c-4),算术运算符与算术表达式,二、算术表达式,1

13、、算术表达式,用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称C算术表达式。运算对象包括:常量、变量、函数等。,例如:a+b(a*2)c(x+r)*8-(a+b)7+i sin(x)+sin(y)(+i)-(j+)+(k-),算术运算符与算术表达式,二、算术表达式,2、运算符的优先级,语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。即按从高到低次序执行。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。,算术运算符的优先级:先乘除余,后加减 负号、+、-高于乘除余,见书:

14、P302 附录C 运算符和结合性,算术运算符与算术表达式,二、算术表达式,3、运算符的结合性,例如:表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。,语言中各运算符的结合性分为两种:(1)左结合性:从左至右(2)右结合性:从右至左(一元、条件运算符、赋值运算符),算术运算符的结合性:自左至右,即先左后右,而自右至左的结合方向称为“右结合性”。最典型的右结合性运算符+、-和赋值运算符。例如:-i+相当于-(i+)x=y=z由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。,算术运算符与算术表达式,二、算术表达式,

15、3、运算符的结合性,算术运算符与算术表达式,三、各类数值型数据间的混合运算,1、自动转换,在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的方法有两种,一种是自动转换,一种是强制转换。,整型、实型与字符型数据间可以混合运算,先转换成同一类型,再进行运算,转换规则:,char和short型转换为int型float型一律转换为double型整型(包括int,short,long)数据与double型数据进行运算,先将整型转换为double型,字节少的数据转换成字节多的类型,算术运算符与算术表达式,三、各类数值型数据间的混合运算,2、强制类型转换运算符,格式:(类型名)(表达式),

16、功能:是把表达式的运算结果强制转换成类型说明符所表示的类型。,例:(double)a(将a转换成double类型)(int)(x+y)(将x+y的值转换成整型)(float)(5%3)(将5%3的值转换成float型),说明:在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。,算术运算符与算术表达式,三、各类数值型数据间的混合运算,2、强制类型转换运算符,例:强制类型转换。#include void main()float x;int i;x=3.6;i=(int)x;printf(x=%f,i=%d,x,i);结果:x=3.600000,i=3,C运算符和C表达式,一、

17、C运算符,1、按功能分类,(1)算术运算符+-*/%(2)关系运算符=!=(3)逻辑运算符!&|(4)位运算符|&(5)赋值运算符=复合赋值(6)条件运算符?:(7)逗号运算符,(8)指针运算符*&(9)求字节数运算符 sizeof(10)强制类型转换运算符(类型)(11)分量运算符-(12)下标运算符(13)其他 如函数调用运算符(),C运算符和C表达式,一、C运算符,2、按操作数分类,(1)一元(单目)运算符 操作数 运算符 或 运算符 操作数(2)二元(双目)运算符 操作数 运算符 操作数(3)三元(三目)运算符 操作数?操作数:操作数,C运算符和C表达式,二、C表达式,1算术表达式 如

18、:2+6.7*3.5+sin(0.5)2关系表达式 如:x0,y0&y04赋值表达式 如:a=5.65逗号表达式 如:a=3,b=4,c=8,C语言有以下几类表达式:,C运算符和C表达式,三、有关表达式使用中问题的补充说明,产生副作用的原因:引入了具有副作用的运算符。(1)自增自减(+、-)(2)赋值和复合赋值,在表达式中包含过多的+、-,很容易出错。C语言中运算符有一个字符和两个字符组成,组合原则是自左而右。C语言中函数参数的求值顺序是自右而左。,表达式的副作用:,无副作用:在表达式求值过程中,只提取变量的值,不改变变量的值。有副作用:在表达式求值过程中,不但提取变量的值,还改变变量的值。,

19、目的:提高运算效率。,例:,#includevoid main()int i,j,k1,k2,k3,k4,k5;i=3;k1=(i+)+(i+)+(i+);printf(k1=%d,i=%dn,k1,i);i=3;k2=(+i)+(+i)+(+i);printf(k2=%d,i=%dn,k2,i);i=3;j=4;k3=i+j;printf(k3=%dn,k3);,C运算符和C表达式,i=3;j=4;k4=(i+)+j;printf(k4=%dn,k4);i=3;j=4;k5=i+(+j);printf(k5=%dn,k5);i=3;printf(%d,%dn,i,i+);,运行结果:k1=9,i=6k2=15,i=6k3=7k4=7k5=84,3,C运算符和C表达式,作 业,复习:第2章 数据类型、运算符与表达式 做题:习题二准备:上机讲授和书上的例题、习题二 实验2 数据的存储与运算 预习:第3章 顺序程序设计,第2章 数据类型、运算符与表达式,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号