




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 数据类型、运算符与表达式,数据类型 常量与变量 整型数据 实型数据 字符型数据,变量赋初值 各类数值型数据间的混合运算 算术运算符和算术表达式 赋值运算符和赋值表达式 逗号运算符和逗号表达式,回顾,程序是为执行一项任务而编写的有序指令集 算法是解决问题的具体方法和步骤 流程图是算法的图形化表现形式 C语言的特点 C程序的编译和运行过程 编译器将源程序转换成机器能理解的程序 连接器用于连接相关的目标文件以生成可执行程序,目标,理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 熟练掌握自增和自减运算 熟练掌握复合赋值表达式,3.1 C的数据类型,指针类型,空类型void,定义类型typedef,数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作,返回,基本数据类型,整型,字符型,实型,有,无,说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例,3.2 常量与变量,标识符 定义:用来标识变量、常量、函数等的字符序列 组成: 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线 大小写敏感 不能使用关键字,讨论:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab above $123 _toDay,M.D.John,3days,#33,char,$123,ab,返回,长度:Turbo C中最长32个字符 命名原则: 见名知意,采用简洁有含义的英文单词(或缩写) 不宜混淆 如l与I, o与0,标识符命名实例 stu_name, sum, total, day, count, sort,常量 在程序运行过程中,其值不能改变的量称为常量 常量可为任意数据类型 字面常量(直接常量) 整型: 12、0、-3 实型: 4.6、-1.23 字符型:a、d 字符串常量:”Hello”、”Good Morning!”,符号常量:标识符代表常量 定义格式: #define ,符号常量定义举例 #define PI 3.1415926 #define STAR *,说明:符号常量一般使用大写英文字母表示,以区别一般用于小写字母表示的变量。,符号常量使用,#define PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(“total=%d“,total); ,运行结果:total=300,符号常量的使用能给程序员带来哪些好处?,变量 其值可以改变的量称为变量 变量也可以为任意数据类型 变量定义的一般格式 数据类型 变量1,变量2,变量n;,决定分配字节数 和数的表示范围,变量定义举例: int a,b,c; float data;,变量的使用:作强制定义,也就是“先定义,后使用”,例1 int student; stadent=19; /Undefined symbol stadent in function main,例2 float a,b,c; c=a%b; /Illegal use of floating point in function main,变量,程序,编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修改这个数据的值。,通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。,存储 Rate,Rate * 5%,将值存储为DiscAmt,Rate-DiscAmt,10,0.5,将值存储为Result,9.5,声明和使用变量,声明变量: Datatype variablename; 定义时初始化变量: Datatype variablename = value; 定义后初始化变量: variablename = value;,给变量赋值,除了给一个直接的值以外,还可以通过计算获得。,变量命名,在 C 语言中,变量命名需要遵循一定的规则,有效名称,principal,cost_price,marks_3,lastname,city,无效名称,123rate,currency$,discount%,zip code,变量的命名规则: 变量名可以由字母、数字和 _(下划线)组合而成 变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等 变量名必须以字母或 _(下划线)开头 变量名不能包含空白字符(换行符、空格和制表符称为空白字符) C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名 C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量,整型数据 整型常量,问题: 0123 = ( )10 0x123 = ( )10 0Xff = ( )10,3.3 整型数据,返回,整型常量的类型 根据其值所在范围确定其数据类型 在整常量后加字母l或L,认为它是long int 型常量,例 12 与 12L,例 30000 为int型 65536 为long int型,整型变量 整型变量在内存中以二进制的形式存放 根据占用的字节数不同,分为不同类别,整型变量的定义,整型变量定义举例: int a,b; unsigned short c,d; long e, f;,例: main() int a,b,c,d; unsigned u; a=12; b=-24; u=10; c=a+u; d=b+u; printf(“a+u = %d, b+u = %dn”,c, d); ,运行结果:a+u = 22, b+u = -14,实型数据 实型常量 表示形式: 十进制数形式:(必须有小数点) 指数形式:(e或E之前必须有数字;指数必须为整数) 实型常量的整数部分为时可以省略,且E或e后面指数必须为整数。,十进制数形式实型常量 0.123, .123, 123.0, 0.0, 123.,指数形式实型常量 12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 , .e3,3.4 实型数据,返回,实型数据 实型常量 规范化的指数形式: 即在字母e(或)之前的数据部分中,小数点左边有 且仅有一位非零的数字。,指数形式实型常量 12.3e3 ,123E2, 1.23e4 , 0.123e-3,实型常量的类型 实型常量部分float和double型,一个实型常量可以赋给一个float型或double型变量。根据变量的类型截取实型常量中相应的有效数字。,实型变量 float: 占4字节,提供7位有效数字 double:占8字节,提供1516位有效数字,基本数据类型,数据属于不同类别,Africa,The quick brown fox,TRUE,数据,非数值,数值,整型,非整型,9002.12,999,9/12/2003,2.175,123,Jackie Chan,char,数据类型,非数值,数值,整型,int,short int,long int,double,float,非整型,3.5 字符型数据,字符常量 字符变量 字符串常量,返回,字符常量 定义:用单引号括起来的单个普通字符或转义字符。 字符常量的值:该字符的ASCII码值 转义字符:反斜线后面跟一个字符或一个代码值表示,如 a A ? n 101,如 A65, a97, 048 , n10,如 101 -A 012 -n 376 - x61 -a 60 -0 483 -(),例: A-101-x41-65,例 转义字符举例(ch2_001.c,ch2_004.c) main() printf(“101 x42 Cn“); printf(“I say:“How are you?“n“); printf(“C Programn“); printf(“Turbo C“); ,运行结果:(屏幕显示) A B C Isay:”How are you?” C Program Turbo C,例 main() printf(“Yb=n”); ,运行结果: 屏幕显示:= 打印机输出:,America Standard Code for Information Interchange,注意事项: 单撇号中的字符不能是或者 一个字符占一个字节,存其对应的ASCII码 思考:9和9的区别 字符型数据可像证书一样在程序中参与相关的运算,a 32 结果为65,字符变量 字符变量存放字符ASCII码 char与int数据间可进行算术运算,例1 a=D; /* a=68; */ x=A+5; /* x=65+5;*/ s=!+G /* s=33+71;*/,例2 main() char c1, c2; c1=97; c2=98; printf(“%c %d”, c1, c2); ,/*ch2_003.c*/ #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); ,运行结果: total=37.500000, ch1=d,例子,字符串常量 定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符串结束标志 字符常量与字符串常量不同,例: char ch; ch=“A”;,没有字符串变量,用字符数组存放,如果定义了变量,但是没有对它赋初值,则它的值是一个不确定的数值,3.6 变量赋初值,返回,例 main() int x,y; printf(“%d,%d”,x,y); ,运行结果:64,3129,3.7 各类数值型数据间的混合运算,隐式转换 什么情况下发生 运算转换-不同类型数据混合运算时 赋值转换-把一个值赋给与其类型不同的变量时 输出转换-输出时转换成指定的输出格式 函数调用转换-实参与形参类型不一致时转换,a 32,int age; age = 11.1,char name=a; printf(“%dn”,name);,返回,运算转换规则:不同类型数据运算时先自动转换成同一类型。,char ch; int i; float f; double d;,ch/i + f*d - (f+i),例,显示转换 可以利用强制类型转换将一个表达式转换成所需类型 一般形式:(类型名)(表达式) 例: (int)(x+y) (int)x+y (double)(3/2) (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变,例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); ,精度损失问题,结果:x=3.600000,i=3,3.8 算术运算符和算术表达式,C运算符简介,学习运算符应注意 运算符功能 与运算量关系 要求运算量个数 要求运算量类型 运算符优先级别 结合方向 结果的类型,返回,基本的算术运算符 + 加法运算或正值运算符 - 减法运算或负值运算符 * 乘法运算符 / 除法运算符,求商,两个整数相除结果为整数 % 模运算符,求余,要求两则均为整型数据,3+5、+3,5-2、-3,3*5,5/3,7%4,例 5/2 = -5/2.0 =,例 5%2 = -5%2 = 5%-2 = 1%10 = 5%1 = 5.5%2,2,-2.5,1,-1,1,0,(),1,取模的余数符号由分子(被除数决定),算术表达式和运算符的优先级和结合性 算术表达式:用算术运算符和括号将运算对象连接起来的、符合C语法规则的式子。 求表达式的值: 先按运算符的优先级别高低次序执行; 再一个运算对象两则的运算赋的优先级别相同,则按规定的“结合方向”处理。,a*b/c-1.5+a,a b * c / d,自增+、自减运算符 作用:使变量值加1或减1 种类: 前置 +i, -i (先执行i+1或i-1,再使用i值 后置 i+,i- (先使用i值,再执行i+1或i-1),例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,注意说明: 只能用于变量,不能用于常量或表达式; 结合方向“自右向左”; 优先级别: - - + - - * / % - + - 自增(减)运算常用于循环语句中循环变量自动加(减)1或指针变量,使指针指向下一个地址,5+ () (a+b)+ () i+ (),例1: -i+ i=3; printf(“%d”,-i+);,例1解答: -i+ -(i+) i=3; printf(“%d”,-i+); /-3,有关表达式使用中的问题说明 表达式中包含多个自加、自减运算时,很容易出错,i+j,应如何结合? 调用函数时,实参数地求值顺序,c并无统一规定,3.9 赋值运算符和赋值表达式,简单赋值运算符“” 作用:将一个数据赋给一个变量,常量或表达式,只能是变量,不能是常量或表达式,例 3=x-2*y; a+b=3;,例 a3; a(a+b)*c,返回,赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型,例1 float f; int i; i=10; f=i; 则 f=10.0,例2 int i; i=2.56; /结果i=2;,结合方向:自右向左 优先级: 14,例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2),/表达式值为5,a,b,c值为5,/ b=5;a=5,/表达式值11,c=6,a=11,/表达式值10,a=10,b=4,c=6,/表达式值5,a=5,b=10,c=2,复合的赋值运算符 += -= *= /= %= = &= = |=,赋值表达式 定义:由赋值运算符将一个变量和一个表达式连接起来的式子,叫赋值表达式。 一般形式: 赋值表达式的值与变量值相等,且可嵌套,例: a=12; a+=a-=a*a,/a=-264 等价于a=a+(a=a-(a*a),例: int a=2; a%=4-1; a+=a*=a-=a*=3;,/a=0 等价于a=a+(a=a*(a=a-(a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目计划制定与实施试题及答案
- 高级审计师真实案例分享试题及答案
- 航空器维修与制造的关联性试题及答案
- 并列句与复合句:课件中的语法解析
- 皮带机培训班
- 血糖监测与护理注意事项试题及答案
- 惠州学院陈教员数据结构课件-数据结构复习
- 小学国学课件-汉服文化介绍
- 职业教育教学改革培训总结
- 2025年丁二酸二甲酯合作协议书
- 北师大版(2019) 必修第二册 Unit 5 Humans and Nature Lesson 3 Race to the Pole Writing Workshop课件
- 威努特防火墙配置手册
- 新疆维吾尔阿克苏地区2023-2024学年三年级数学第一学期期末学业水平测试试题含答案
- Mysql 8.0 OCP 1Z0-908 CN-total认证备考题库(含答案)
- 起重机械质量安全风险管控清单(制造(含安装、修理、改造))
- 第26届国际电接触会议暨第四届电工产品可靠性与电接触国际会议联合会议通讯录
- 2023年生态环境综合行政执法考试参考题库(400题)
- 2023-2024学年新疆维吾尔自治区乌鲁木齐市小学语文六年级期末通关试卷附参考答案和详细解析
- 建筑学专业基础知识必学必会考试题库(500题)
- 2023年黑龙江省黑河市辅警协警笔试笔试真题(含答案)
- 学会扬长避短 课件
评论
0/150
提交评论