C语言教程第2章数据类型、运算符与表达式.ppt

上传人:小飞机 文档编号:6503871 上传时间:2023-11-07 格式:PPT 页数:50 大小:484KB
返回 下载 相关 举报
C语言教程第2章数据类型、运算符与表达式.ppt_第1页
第1页 / 共50页
C语言教程第2章数据类型、运算符与表达式.ppt_第2页
第2页 / 共50页
C语言教程第2章数据类型、运算符与表达式.ppt_第3页
第3页 / 共50页
C语言教程第2章数据类型、运算符与表达式.ppt_第4页
第4页 / 共50页
C语言教程第2章数据类型、运算符与表达式.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

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

1、自然语言层次,程序设计语言层次,第2章 数据类型、运算符与表达式,第2章 数据类型、运算符与表达式,本章主要教学内容,基本数据类型 常量和变量 标识符命名 常用运算符和表达式 运算符的优先级与结合性,2.1 一个简单的C程序例子,#include/*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值:整型数a和b之和*/int Add(int a,int b)return(a+b);/*主函数*/main()int x,y,sum=0;printf(Input two integers:);scanf(%d%d,/*输出x和y相加之和*/,一个C语言程序必须有且仅有一个用main

2、作为名子的函数。,一个C程序可以包含零到多个用户自定义函数,可以调用系统提供的库函数,调用前要相应的关文件包含到文件中。,1.C程序是由函数构成的,2.函数由函数首部和函数体两部分组成,3.C程序书写格式与规则,分号结束用“/*”和“*/”包含起来的内容为注释,2.2 C程序常见标识符号分类,1.关键字2.标识符3.运算符4.分隔符5.其它符号6.数据,关键字C语言规定有固定含义的单词例:int return const(详见附录B),标识符预定义和用户自定义标识符例:预定义标识符 main、printf 用户自定义标识符 x,y,add,运算符丰富,共34种(13类):附录C例:算术运算符:

3、+、-、*、/、%关系运算符:,=,增1和减1运算符:+、-,用户自定义标识符命名规则英文字母、数字和下划线;标识符有长度限制“见名知意”标识符区分大小写尽可能与开发工具风格一致,分隔符空格,回车/换行,逗号等例:int a,b,c;其它符号大花括号“”和“”通常用于标识函数体或者一个语句块“/*”和“*/”是程序注释所需的定界符数据常量和变量,由英文字母、数字和下划线组成,大小写敏感不可以是数字开头直观,见名知意,便于记忆和阅读最好使用英文单词或其组合切忌使用汉语拼音 下划线和大小写通常用来增强可读性variablenamevariable_namevariableName不允许使用关键字作

4、为标识符的名字 int,float,for,while,if等某些功能的变量采用习惯命名如:for语句所采用的循环变量习惯用i,j,k,Windows 风格,UNIX 风格,标识符的命名规则,2.3 数据类型,数据为什么要区分类型?,不同类型的数据代表不同的:数据表示形式 合法的取值范围 占用内存空间大小 可参与的运算种类,从基本数据类型到抽象数据类型 无数据类型 基本数据类型 构造数据类型 抽象数据类型,数据类型,基本类型构造类型指针类型空类型,整型实型字符型枚举类型,基本整型长整型短整型无符号整型,单精度双精度,数组类型结构体类型共用体类型,2.3 数据类型,基本数据类型,常量变量,在计算

5、机中存储的数据,按存储的性质分,可分为:,2.4 常量,定义:常量是一种在程序中保持固定类型和固定值的数据。,类型整型常量实型常量字符常量字符串常量枚举常量,2.4 常量,常 量,整型常量18、-31长整型常量 123l、123L、123456l、123456L无符号型常量 123u、123U浮点常量十进制小数形式 123.45、456.78指数形式 1e-2、4.5e3单精度实型常量 123.45f、456.78F、1e-2f、4.5e3F长双精度型常量 123.45l、456.78L、1e-2l、4.5e3L,2.4 常量,八进制与十六进制常量,以数字“0”开始的整型常数是八进制数022、

6、-037010和10大小不一样因为八进制并不常用,所以此种表示法比较少见以“0 x”或者“0X”开始的整型常数是十六进制AF和af用来表示十进制的1015十六进制的形式比较常用,尤其在进行位一级的控制的时候0 x12、-0 x1F,-0 x1f,2.4 常量,字符常量,由单引号括起来的一个字符。,字符常数的表示方法a,A,5,%,$单引号内只能有一个字符,除非用“”开头就是一个普通整数,也可以参与各种数学运算每个字符具有一个0255之间的数值,可从ASCII表查出注意:5和整数5的区别字符的数学运算在密码学内用得比较多,字符常量,转义字符一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示

7、(P23表2-2),2.4 常量,字符串常量,用双引号括起来的0个或多个字符组成的字符序列I am a string表示空字符串转义字符也可以在字符串中使用引号只作为字符串开始和结束的标志C语言内部用0表示字符串的结束除注释外,是唯一可以出现中文的地方x和x是不同的里定义了一系列专门的字符串处理函数,2.4 常量,也称符号常量,是指用一个标识符号代表一个常量。(一般用大写字母表示),宏常量,宏定义的一般形式:#define 标识符 字符串,#include#define PI 3.14159#define R 5.3Main()printf(area=%fn,PI*R*R);,宏定义,无分号,

8、printf(area=%fn,3.14159*5.3*5.3);,宏替换,2.4 常量,枚举常量,一一列举,当某些量仅由有限个数据值组成通常用此类型。其描述的是一组整型值的集合。,枚举常量的定义举例1:enum responseno,yes,none;enum response answer;,response 为枚举数据类型answer为枚举类型的变量,枚举标记,可省略,枚举常量的定义举例2:enum no,yes,none answer;,省略枚举标记,枚举常量的定义举例3:enum response no=-1,yes=1,none=0;,定义时明确设置每一常量值,注意:枚举标记后面的

9、变量中的每一个符号代表的是一个整数值,这些符号只是一个整数的值的名子,不是字符串。,2.4 常量,从程序来窥其一斑 enum weeks MON,TUE,WED,THU,FRI,SAT,SUN;enum weeks today;enum response no,yes,none;enum response answer;today=TUE;answer=yes;if(answer=yes)printf(Today is Tuesday.n);else printf(Today is NOT Tuesday.n);,枚举常量,2.4 常量,const 常量,用const修饰定义的变量为常量con

10、st float pi=3.1425926;常量只能在定义时赋值,然后不能再改变其值常数、const常量、宏常量和枚举常量,都可以用来表示一个永远不会改变的数前者不建议直接使用,而用后三者代替,2.4 常量,2.5 变 量,变量是在程序执行过程中可以改变、可以赋值的量。在程序中每一个变量都有一个名子即变量名,程序对该变量访问(存入、读取)都是通过变量名进行的。每个变量在使用之前声明,2.5 变量,变量声明与初始化,变量定义语句形式1:类型关键字 变量名1,变量名2,;,变量定义语句形式2(定义的同时赋初值)类型关键字 变量名1=常量1,变量名2=常量2,;,变量名是由用户定义的标识符,用于标识

11、内存中一个具体的存储单元,其中存放的是数据称为变量的值。,float a,b,c;int sum;,int sum=0;float a=89.12;,2.5 变量,变量声明与初始化,使用变量的基本原则变量必须先定义,后使用所有变量必须在第一条可执行语句前定义声明的顺序无关紧要一条声明语句可声明若干个同类型的变量声明变量,是初始化变量的最好时机不被初始化的变量,其值为危险的随机数!char esc=a;int i=1;int sum=0;float eps=1.0e-5;,2.5 变量,使用变量时的注意事项,1.先定义后使用2.注意区分变量名和变量值3.int型变量隐含为有符号型的4.变量所占存

12、储空间的大小不能想当然。,#include main()printf(Data type Number of bytesn);printf(-n);printf(char%dn,sizeof(char);printf(int%dn,sizeof(int);printf(short int%dn,sizeof(short);printf(long int%dn,sizeof(long);printf(float%dn,sizeof(float);printf(double%dn,sizeof(double);,2.5 变量,5.注意实型数据内存存储格式,6.注意char型与int型数据之间的关系

13、,#include main()char ch=b;ch=b-32;printf(%c,%dn,ch,ch);,运行结果:B,66,ch=b-(a-A);,2.5 变量,7.注意实型变量数据的舍入误差,float型数据提供7位有效数字double型数据提供16位有效数字 使用不当导致舍入误差,#include main()float a;double b;a=123456.789e4;b=123456.789e4;printf(%fn%fn,a,b);,运行结果:1234567936.0000001234567890.000000,2.6 常用运算符及表达式,算术运算符,+,-,*,/,%加、

14、减、乘、除、求余运算四则混合运算中,先算乘除,后算加减,按从左向右的顺序计算,左结合,常用的标准数学函数,#include,算术运算的运算规则,1.运算的优先顺序为先*、/、%,后+、-,同等优先级从左到右运算。,举例:18*5/95/9*18,2.两个类型相同的操作数,运算结果类型也相同。,举例:5/9*82.5*8.0,2.6 常用运算符及表达式,3.两个类型不同的操作数,运算结果类型与其中类型较高的类型相同。,举例:5.0/9*182.5*8,4.求余运算的运算结果其值为相除所得余数,而符号与被除数的符号相同。,举例:-135=-3 13%(-5)=3,算术运算的运算规则,2.6 常用运

15、算符及表达式,2.6 常用运算符及表达式,算术表达式,用算术运算符将运算对象连接起来的式子称为算术表达式。运算对象可以常量、变量和函数。,举例,a+b,c+d,a+b/c+d,(a+b)/(c+d),a+b,2c,(a+b)/2c,(a+b)/(2c),(a+b)/(2*c),cos45+2ex,cos(45)+2*exp(x),cos(3.14*45/180)+2*exp(x),2.6 常用运算符及表达式,关系运算符,,=,、=优先于=、!=,关系运算符,例:,设a=3、b=2、c=1,计算下列表达式的值,(1)ab,(2)d=ab,(3)(ab)=c,(4)abc,1,1,1,0,注意=和

16、=,比较下列程序段:,2.6 常用运算符及表达式,逻辑运算也被称为布尔(Boolean)运算&(与运算)(a b&b c);a大于b,并且b大于c|(或运算)(a b|b c);a大于b,或者b大于c!(求反)(!a);如果a是0,结果非0;如果a是非0,结果是0并不改变a的值,逻辑运算符与逻辑表达式,2.6 常用运算符及表达式,2.6 常用运算符及表达式,实 例,ch是英文大写字母(ch=A)&(ch=Z)判断某一年year是否是闰年的条件是满足下列两个条件之一:能被4整除,但不能被100整除;能被400整除;(year%4=0)&(year%100!=0)|(year%400=0),2.6

17、 常用运算符及表达式,赋值运算符与赋值表达式,1、作用:将一个数据赋予一个变量,右结合,如:,A=B=C=5,A=(B=(C=5),2、“=”号两端数据类型不同时的转换规则,=:赋值号,(1)整型=实型 舍去小数部分,(2)实型=整型 值不变,依浮点形式存放,(3)整型=字符型 值放低8位,高8位为0,(4)字符型=整型 仅将低8位存入,2.6 常用运算符及表达式,复合赋值运算符,可用的10种复合赋值运算:,如:,A+=3,X*=y+8,A=A+3,X=X*(y+8),练习:设a=12 计算 a+=a-=a*a,-264,2.6 常用运算符及表达式,类型转换(赋值),在进行赋值操作时,会发生类

18、型转换将取值范围小的类型转为取值范围大的类型是安全的反之是不安全的如果大类型的值在小类型能容纳的范围之内,则平安无事但是,浮点数转为整数,会丢失小数部分,非四舍五入反之,转换后的结果必然是错误的,具体结果与机器和实现方式有关。避免如此使用,类型转换(自动),2.6 常用运算符及表达式,同种数据类型的运算结果,还是该类型不同种数据类型的运算结果,是两种类型中取值范围更大的那种long double double float long int short char把数据赋值给另外一种类型变量也会发生自动类型转换从小到大,顺利转换从大到小,可能丢失信息(好的编译器会发出警告),2.6 常用运算符及表

19、达式,类型转换(强制),可以把表达式的值硬性转为任意类型。,一般形式:(类型)表达式,#include main()int m=5;printf(m/2=%dn,m/2);printf(float)(m/2)=%fn,(float)(m/2);printf(float)m/2=%fn,(float)m/2);printf(m=%dn,m);,增1和减1运算符,2.6 常用运算符及表达式,形式:n+,n-,+n,-n+让参与运算的变量加1,-让参与运算的变量减1作为后缀运算符时,先取n的值,然后加/减1作为前缀运算符时,先加/减1,然后取n的值m=n+;等价于m=n;n+;m=+n;等价于n+;

20、m=n;,2.6 常用运算符及表达式,增1和减1运算符,例:写出执行后x,y的值int x,y,i=10;x=+i;y=i;,int x,y,i=10;x=i+;y=i;,x=11y=11,x=10y=11,2.6 常用运算符及表达式,增1和减1运算符(说明),(1)仅用于变量,不可用于常量或表达式。,(2)注意其结合性。(采用右结合),(3)常用于循环控制变量使用。,如:,-i+则为-(i+),i+j 则为(i+)+j,(4)良好的程序设计风格提倡:在一行语句中,一个变量只能出现一次加1或者减1运算,2.6 常用运算符及表达式,&按位与运算|按位或运算按位异或运算,按位右移运算按位求反,位运

21、算符,功能:各表达式分别求值,以表达式n的值作为整个表达式的值。多数情况下,并不使用整个逗号表达式的值,更常见的情况是要分别得到各表达式的值主要用在循环语句中,同时对多个变量赋初值等 for(i=0,j=0;i j;i+,j+),2.6 常用运算符及表达式,逗号运算符,一般形式:表达式1,表达式2,.,表达式n,逗号运算符,2.6 常用运算符及表达式,main()int a=2,b=4,c=2,x,y;y=(x=a+b),(b);printf(y=%d,x=%d,y,x);,例:,运行结果:,y=6,x=6,条件运算符,2.6 常用运算符及表达式,1、运算符:,?、:,表达式的一般形式:,3、

22、执行过程:,条件运算符,2.6 常用运算符及表达式,(1)max=ab?a:b;,(2)x?a:b,(3)x y?1:1.5,例:,2.6 常用运算符及表达式,常用运算符的优先级及结合性,P46页表2-12用括号来控制运算顺序更直观、方便,并减少出错的概率,多数运算符为左结合少数为右结合:一元运算符赋值运算符条件运算符,本章小结,变量的命名规则数据类型char,short,int,long,float,double,long doublesigned,unsignedenum常数、转义字符运算符算术运算符、关系运算符、逻辑运算符、增一/减一运算符、位运算符、赋值运算符、类型强转运算符、逗号运算符、条件运算符(?:)、sizeof类型转换优先级和结合性,本章作业,习题2:2.1、2.2、2.3,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号