第2章数据类型、运算符和表达式.ppt

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

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

1、1,C语言程序设计,主讲:闫雒恒,2,程序的概念,程序:是按某种顺序排列的,使计算机能执行某种任务的指令集合。程序=算法+数据结构程序设计语言:编写计算机程序所用的语言,程序设计语言按语言的级别可分为低级语言和高级语言。常见高级语言:BASIC、FORTRAN、PASCAL、C、C+、JAVA等。,3,第2章 数据类型、运算符和表达式,4,2.1:一个简单的C程序例子,#include/*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值:整型数a和b之和*/int Add(int a,int b)return(a+b);/*主函数*/main()int x,y,sum=0;pr

2、intf(Input two integers:);scanf(%d%d,/*输出x和y相加之和*/,并列的两个函数其中一个是程序的入口,程序注释,5,说明,1.C程序由函数构成。2.一个C程序有且只有一个main函数,但可有多个自定义函数。3.C程序总是从main函数开始执行4.每个C语句均以分号结束。5.养成良好的程序书写风格。如:一行一条语句 在适当的位置加注释/*/,6,2.2 C程序常见符号分类,关键字(Keyword)又称为保留字,C语言中预先规定的具有固定含义的一些单词数据类型修饰符int,控制语句return等 标识符(Identifier)系统预定义标识符,main,prin

3、tf 等 用户自定义标识符,Add,x,y 等运算符(Operator)34种,详见附录2 分隔符(Separator)空格、回车/换行、逗号等 其它符号 大花括号“”和“”通常用于标识函数体或者一个语句块“/*”和“*/”是程序注释所需的定界符 数据(Data)变量(Variable)常量(Constant),7,2.3 数据类型,2.3.1 引入数据类型的目的便于对数据按不同方式和要求进行处理不同类型的数据代表不同的数据表示形式合法的取值范围占用内存空间大小可参与的运算种类,8,9,2.3.3 类型修饰符,shortshort int,短整数,一般2个字节长。通常简写为shortlong

4、long int,长整数,一般是4个字节长。通常简写为long long double,长双精度(高精度)浮点数,一般是10个字节长。signed 用来修饰char、int、short和longunsigned 用来修饰char、int、short和long,10,2.3.4 标识符命名,是由字母、下划线和数字三种字符组成;第一个字符必须为字母或下划线;不允许与关键字重名;C区分大小写。,例:a3B _b+a b?Int,11,2.4 常量,C程序中数据以常量和变量形式表示,定义:程序执行过程中值不发生改变的数据,12,C语言中可以用3种数制表示整型常量(1)十进制整型常量。(2)十六进制整型

5、常量。(以0 x开头)例:0 x123(3)八进制整型常量。(以0开头)例:0123,如果在整型常量加上后缀L或l表示该常量为长整型常量,加上后缀U或u表示无符号整型常量。例:123l,2.4.1 整型常量,例:-18 0789 0 x1f,13,2.4.2 实型常量,(1)小数表示法:例:-2.5、3.0、4.、.34,(2)科学计数法:例:-2.510-3-2.5E-3 注意字母e(或E)之前必须有数字,且e后面指数必须为整数 例:1103 E3 1E3.0 1E3,只能用十进制表示。,14,2.4.3 字符常量,以单引号括起来的单个字符 A 1特殊字符常量:n 换行 r 回车 b 退格

6、t 制表(横向跳格)单引号(单撇号)双引号(双撇号)ddd 13位八进制数所代表的ASCII码字符 xhh 12位十六进制数所代表的ASCII码字符 f 走纸换页 反斜杠字符,例:101 x41 A,15,2.4.4 字符串常量,由一对双引号括起来(“”)的字符序列。例:“Welcome”“HELLO”说明:(1)字符序列中的字符个数称字符串长度。例:课后P47,4(2)“”称为空串,即字符串长度为0。(3)字符串常量中的字符是连续存储的,并在最后自动加上字符0作为字符串结束标志。,16,2.4.5 符号常量(宏常量),定义:用一个标识符代表一个常量。#include#define PI 3.

7、1415926void main()float s,r,l;r=10.0;l=2.*PI*r;s=PI*r*r;printf(l=%f s=%fn,l,s);printf(PI=%fn,PI);课本 P25 中常见错误,#define 标识符 字符串,17,2.4.6 枚举常量,当某些量仅由有限个数值组成时,可用枚举类型表示。枚举类型定义:enum 枚举标记枚举常量1,枚举常量n;例:enum weeks SUN,MON,TUE,WED,THU,FRI,SAT;enum weeks today;说明:中的每个符号代表一个整数值,而不是字符串;,18,2.5 变量,定义:随着程序的执行,值会发生

8、改变的量。变量的本质:定义一个变量就是在内存开辟若干内存单元,用来存放相应类型数据。变量的属性三要素:变量名,变量的地址,变量的值。变量使用原则:“先定义,后使用”,19,2.5.1 变量声明与初始化,一般语法:类型关键字 变量名1,变量名2,变量名n;整型:int 实型:单精度 float 双精度 double 字符型:char例:,20,变量的初始化:在定义变量的同时为其赋初值。一般语法:类型关键字 变量名1=常量1,变量名n=常量n;例:,21,1 整型变量,用于存放整型数据的变量称为整型变量。(1)基本整型变量 int 变量表列;(2)长整型 long int 变量表列;(3)短整型

9、short int 变量表列;(4)无符号整型 unsigned int/long/short 变量表列;例:,22,2 实型变量,用于存放实型数据的变量称为实型变量。实型变量 单精度 7位有效数字 双精度 1516位有效数字单精度变量的定义:float 变量表列;例:float a1,a2;双精度变量的定义:double 变量表列;例:double b1,b2;,23,char 变量表列;例:char c1,c2;说明:字符变量存放的是字符的ASCII码,因此字符变量可以和整型变量通用 例:A+1 C-A 例2.4 e2_4.c 例2.5 e2_5.c,3 字符型变量,24,2.5.3 注意

10、事项,1.变量须“先定义,后使用”;2.int型变量默认为有符号整型变量;3.可用sizeof计算类型或变量所占内存的字节数。sizeof(类型名)sizeof 变量名 例2.3 e2_3.c,25,4.实型数据在内存中的存储方式,定点表示法:约定小数点隐含在某一固定位置上浮点表示法:小数点位置可以任意移动,N=M2J,数符,尾数,阶符,阶码,26,例:256.8125=(100000000.1101)B=0.1000000001101 2 1001 0 0001001 0 1000000 00110100 00000000,5.float 提供7位有效数字 double 提供16位有效数字

11、例2.6:e2_6.c,27,2.6 运算符和表达式,程序的核心,处理,输入,输出,28,1.运算符的优先级 运算符的优先级是指不同的运算符在表达式中进行运算的先后次序。例:a+b*c 2.运算符的结合性 当一个运算对象的两侧的运算符的优先级相同时,运算的结合方向称为结合性。自左向右:+、-、*、/自右向左:,2.6.1 运算符的优先级和结合性,29,基本算术运算符有:+-*/%:求余 9%4 11%3说明:(1)两个整型数据相除依然得整型数据;例:5/3=1 2/3=0(1/3)+(1/3)+(1/3)(2)求余运算只适用于整型数据,运算结果的符号与被除数的符号相同。例:13%-7 6-13

12、%7-6(3)优先级:(4)结合性:自左至右,2.6.2 算术运算符及算术表达式,30,例:,31,C语言中的关系运算符共有六种,它们是:=b x=(y+z)m!=n p=q说明:(1)关系运算结果有两个:“真”-1“假”-0 例:int x=10,y=5;xy,2.6.3 关系运算,32,(2)C中,非零值表示“真”,零表示“假”。例:判断num是否为奇数(3)优先级:前4个高于后2个(4)结合性:自左至右 例:int i=1,j=2,k=3;i=kj 4j+k,33,2.6.4 逻辑运算,在C语言中,逻辑常量只有两种:值非零表示“真”,值为零表示“假”。其基本的逻辑运算符有以下3个:&(逻

13、辑与)两个量都为真时为真(1),否则为假(0)|(逻辑或)两个量中只要有一个为真时为真(1),只有都为假时为假(0)!(逻辑非)一个量为真时为假(0),假时为真(1),34,“与”运算规则 0 i&j k|j,35,(1)C语言对逻辑表达式求解,并不是所有的运算符都被执行,只是在必须执行后面的运算符才能求出表达式时,才执行其后的运算,否则将不执行后面的运算。例:int a=1,b=2,c=3,d=4;int m=1,n=1;(m=ab)&(n=cd)(2)优先级:!&|(3)结合性:&|自左向右!自右向左,说明:,36,例:写出判断某一年year是否是闰年的逻辑表达式 闰年的条件(1)能被4整

14、除,但不能被100整除 或(2)能被400整除(year%4=0&year%100!=0)|year%400=0,37,2.6.5 赋值运算,功能:将表达式的值传递给变量赋值运算符:“”。赋值表达式为:变量名表达式例:int x,y;x=10;y=x+5;说明:(1)在C语言中,“”为赋值运算符,而不是等号;(2)赋值运算符“”左边必须是变量名,不能是表达式;例:x+y=5;,38,(3)赋值运算符“”两端的类型不一致时,系统将表达式的类型自动转换为左侧变量的类型。例:int k;k=3.5;(4)赋值表达式有值,可以进一步参与运算 例:i=4+(j=7)i=(j=3)+(k=8)(5)结合性

15、:自右至左,当连续有多个赋值运算时,是从右至左逐个赋值.例:x=y=5;int x;double y;y=x=3.14;,39,C语言允许在赋值运算符之前加上其它运算符,构成复合的赋值运算符 例:a=a+10 a+=10 x=x*(y+1)x*=y+1 常用复合赋值运算符+=-=*=/=%=例:int a=1,b=2;a+=a-=b+2;,40,2.6.6 自增、自减运算,“+”增1运算符“-”减1运算符 运算对象只能是整型或字符型变量 运算符可在运算对象前面:+n;-m;运算符可在运算对象后面:n+;m-;,41,说明:(1)当增1运算符或减1 运算符位于运算对象之前时,表示在使用该运算对象

16、之前使它的值先增1或减1,然后再使用它,即使用的是增1或减1后的值。(先自增,再使用)x=+n;n=n+1;x=n;(2)当增1运算符或减1 运算符位于运算对象之后时,表示在使用该运算对象之后才使它的值先增1或减1,即使用的是增1或减1前的值。(先使用,再自增)x=n+;x=n;n=n+1;,42,#include void main()int a,b,c;b=5;c=5;a=+b+c-;printf(%d,%d,%dn,a,b,c);a=(b-)-c;printf(%d,%d,%dn,a,b,c);a=(-b+)+c;printf(%d,%d,%dn,a,b,c);,(3)单目运算都是“右结

17、合”的。例:m=-n+;,43,2.6.7 强类型转换符,一般形式为:(类型名)表达式 或:(类型名)(表达式)但:类型名(表达式)例:(int)(x+y)说明:强类型转换并不改变变量本身的值。例:e2_7.c,44,2.6.8 位运算,&按位与运算|按位或运算按位异或运算,按位右移运算按位求反,对字节或字内的二进制位进行运算。经常用于二进制位的测试、抽取、设置或移位等操作,45,说明:,(1)按位“与”:常用于某二进制位“清零”(2)按位“或”:常用于某二进制位“置1”(3)按位“左移”:每左移1位相当于乘以2,左移n位相当于乘2n(4)按位“右移”:每右移1位相当于除以2,右移n位相当于乘

18、2n(5)注意逻辑运算与位运算的区别 例:int x=12,y=8;!x,x|y,x&y x,x|y,x&y,46,一般形式:表达式1,表达式2,表达式n 计算过程:先计算表达式1,再计算表达式2,最后计算表达式n,逗号表达式的值为最右边表达式n的值。例:int a;a=2,a+=1,a+2说明:(1)优先级:最低 例:x=3+4,5+7,10*4 x=(3+4,5+7,10*4)(2)结合性:自左至右,2.6.9 逗号运算符,47,整型、单精度、双精度及字符型数据可以进行混合运算。当表达式中的数据类型不一致时,首先转换为同一类型,然后再进行运算。C语言有两种方法实现类型转换:一是自动类型转换,另一是强制类型转换。,2.7 类型转换,1.自动类型转换 C编译系统自动完成。转换原则:字节数少的数据类型转换成字节数多的数据类型。,48,例:A+B=65+66=131 int a;unsigned b;a+b int x;1.0/x 1.0/3+1.0/3+1.0/3,49,2.赋值转换(1)右侧表达式自动转换为与左侧变量类型相一致的类型。(2)字节数多的数据类型赋值转换成字节数少的数据类型,将会可能造成信息丢失、溢出等错误。例:int n;char c;double x;c=n;n=x;,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号