




已阅读5页,还剩161页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
u数据类型 u常量与变量 uC+的运算符和表达式 本章内容要点: 第二章 数据类型与表达式 所有的语言系统都是由字符集和规则集组成的; 字符根据规则组合形成表达式、语句; 由各种语句构成函数和程序. 2.1 C+的字符集与词汇 C+语言的字符集是ASCII码的子集,有: 26个小写字母: a b c d e f g h i j k l m n o p q r s t u v w x y z 26个大写字母: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 10个数字: 0 1 2 3 4 5 6 7 8 9 其他符号: 空格 ! # % ? _ | . 2.1 C+2.1 C+的字符集与词汇的字符集与词汇 1关键字又称保留字 关键字是系统预定义的单词。C+不允许对关键字重定义。 2.1 C+2.1 C+的字符集与词汇的字符集与词汇 C+常用的关键字: auto break case char class const continue default delete else enum explicit extern float for friend goto if inline int long new operator private protected public register return short signed sizeof static struct switch this typedef union unsigned virtual void while 2标识符 由程序员定义的命名符 2.1 C+2.1 C+的字符集与词汇的字符集与词汇 语法:以字母或下划线开始,由字母、数字和下划线组成的符号串 注意: break main int 等 不能用于命名程序中的自定义 函数、变量、常量 (1) 不能使用关键字作用户标识符; (2) C+中,字母大小写敏感; (3) C+没有规定标识符的长度,不同编译系统有不同的识别长度; (4) 标识符尽可能做到见文知义。 Aa 和 aa 是两个不同的标识符 2标识符 由程序员定义的命名符 2.1 C+2.1 C+的字符集与词汇的字符集与词汇 语法:以字母或下划线开始,由字母、数字和下划线组成的符号串 例 判断以下标识符的正确性: 合法标识符有: a x1 no_1 _a2c sum Name name 不合法标识符有:2a x+y a,b a i=A; j=B; cout void main () char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; cout = | 20.06 ; a ; int Xcoord = 23 ; Xcoord ; 2.5.1 2.5.1 赋值表达式赋值表达式 赋值表达式的作用是把数据值写入变量,修改对象的值 一般形式为:变量 = 表达式 例 int x = 10, y = 20; x=y; y=x; cout 5 +10 ; -13 4 ; 4 7 ; *3 * 4 ; 5 * 11 ; /8 / 2 ; 6 / 4 ; 4 / 5 ; -11 / 2 ; 或 6 / 0 ; %10 % 3 ; 23 % 4 ; 5 % 0 ; sizeof sizeof (256) sizeof (int) 当双目运算符的两个操作数都是整型, 结果值为整型 运算例子结果 +2 + 3 ; 5 +10 ; -13 4 ; 4 7 ; *3 * 4 ; 5 * 11 ; /8 / 2 ; 6 / 4 ; 4 / 5 ; -11 / 2 ; 或 6 / 0 ; %10 % 3 ; 23 % 4 ; 5 % 0 ; sizeof sizeof (256) sizeof (int) 简单截取整 数部分 当双目运算符的两个操作数都是整型, 结果值为整型 运算例子结果 +2 + 3 ; 5 +10 ; -13 4 ; 4 7 ; *3 * 4 ; 5 * 11 ; /8 / 2 ; 6 / 4 ; 4 / 5 ; -11 / 2 ; 或 6 / 0 ; %10 % 3 ; 23 % 4 ; 5 % 0 ; sizeof sizeof (256) sizeof (int) 由编译器选择 当双目运算符的两个操作数都是整型, 结果值为整型 运算例子结果 +2 + 3 ; 5 +10 ; -13 4 ; 4 7 ; *3 * 4 ; 5 * 11 ; /8 / 2 ; 6 / 4 ; 4 / 5 ; -11 / 2 ; 或 6 / 0 ; %10 % 3 ; 23 % 4 ; 5 % 0 ; sizeof sizeof (256) sizeof (int) 除数为 0, 溢出,无值定义 当双目运算符的两个操作数都是整型, 结果值为整型 运算例子结果 +2 + 3 ; 5 +10 ; -13 4 ; 4 7 ; *3 * 4 ; 5 * 11 ; /8 / 2 ; 6 / 4 ; 4 / 5 ; -11 / 2 ; 或 6 / 0 ; %10 % 3 ; 23 % 4 ; 5 % 0 ; sizeof sizeof (256) sizeof (int) 求模 (求余数) 当双目运算符的两个操作数都是整型, 结果值为整型 运算例子结果 +2 + 3 ; 5 +10 ; -13 4 ; 4 7 ; *3 * 4 ; 5 * 11 ; /8 / 2 ; 6 / 4 ; 4 / 5 ; -11 / 2 ; 或 6 / 0 ; %10 % 3 ; 23 % 4 ; 5 % 0 ; sizeof sizeof (256) sizeof (int) 除数为0,无值定义 当双目运算符的两个操作数都是整型, 结果值为整型 运算例子结果 +2 + 3 ; 5 +10 ; -13 4 ; 4 7 ; *3 * 4 ; 5 * 11 ; /8 / 2 ; 6 / 4 ; 4 / 5 ; -11 / 2 ; 或 6 / 0 ; %10 % 3 ; 23 % 4 ; 5 % 0 ; sizeof sizeof (256) sizeof (int) 操作数可以是 常量,变量,类型 除求余 % 运算外,浮点数可以进行各种算术运算 运算例子结果 +2.0 + .3 ; 5.1 +10.0 ; -13.6 4.2 ; 4.0 7.0 ; *3.0 * 4.4 ; 7.5 * 11.0 ; /8.6 / 2.0 ; 5.0 / 4.0 ; -11.0 / 4.0 ; 6.0 / 0.0 ; sizeof sizeof (3.1415) sizeof (double) 当双目运算符的两个操作数都是整型, 结果值为整型 2.5.3 2.5.3 类型转换类型转换 表达式求值之前,要对操作数进行必要的类型转换:P33 图2.7 目的:(1)将短数扩展为机器处理的长度 (2)使运算符两端的操作数具有相同的类型 原则:(1)开始运算前,扩展数据长度: char、short int unsigned char、unsigned short unsigned int float double long unsigned long 参与算术运算的只有5种类型数据 (2)算符两端运算量类型不同时: “向高看齐”,向表达能力强的类型转换 逐个算符转换 (3)赋值转换具有强制性 例如 float Temp = 23.3 ; double Volume = 3.2 ; long double ldConstant = 6.23E23 ; cout 大于= 大于等于= 3 = x + 1 2 7 8 的结果为: 0 1 讨论: 5 2 7 8 是一个无意义的数学式子,但在C+中是合法表达式 应尽量避免使用这种意义不清的表达式 0 2.5.5 2.5.5 关系表达式关系表达式 注意关系运算的正确使用: (3) 关系表达式的结果为整数,所以也可以看作整型表达式 。 例:int i = 1 , j = 7 , a ; a = i + ( j % 4 != 0 ) ; 讨论:应尽量避免使用这种意义不清的表达式 3 1 2 2.5.5 2.5.5 关系表达式关系表达式 注意关系运算的正确使用: (4) 字符数据按ASC码值进行比较 例: a 0值为 1 (true) A 100 值为 0 (false) 2.5.5 2.5.5 关系表达式关系表达式 注意关系运算的正确使用: (5) 实数比较的误差 例: 1.2345678901234567897 = 1.2345678901234567898 值为 1 (true) 这是数据有效位数引起的误差。 讨论:实数比较宜采用求误差值形式: fabs ( x - y ) 1-2 1 例: 写出描述点 A(x,y) 落在图中绿色部分 ( 不压线 ) 的 C + + 表达式: 2.5.6 2.5.6 逻辑表达式逻辑表达式 逻辑运算规律:逻辑运算规律: E1 x + ; 2.5.6 2.5.6 逻辑表达式逻辑表达式 逻辑运算规律:逻辑运算规律: E1 x + ;x x + +; 结果:逻辑表达式值为0 x 的值为 2,y 的值为 1 2.5.6 2.5.6 逻辑表达式逻辑表达式 结果:逻辑表达式值为0 结果:逻辑表达式值为1 逻辑运算规律:逻辑运算规律: E1 x + x = y = 1 ;x - - | y - - ; 结果:逻辑表达式值为0 2.5.6 2.5.6 逻辑表达式逻辑表达式 复合赋值运算 双目算符 op 的表达式:A = A op B 可以缩写成:A op = B += += -=-=*=*=/=/=%=%= = cout a b; cout = 0 ? a + b : a - b ) b ? a : b 求 a 的符号: sig = a 0 ? 1 : ( a = A 注意:变量的值和表达式的值 (1) a = 3 * 5, a * 4(2) ( a = 3 * 5 , a * 4 ) , a + 5 (3) b = ( a = 3, 6 * 3 ) (4) b = a = 3 , 6 * a 15, a=1560 60 15, a=15 60 6020 20 3, a=318 18b=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025儿童医院复合麻醉技术技能考核
- 2025年九江市江汇物流供应链有限公司第二次公开招聘派遣制工作人员的考前自测高频考点模拟试题及答案详解(必刷)
- 2025人民医院急危重症救治能力考核
- 2025儿童医院骨质疏松治疗药物合理应用考核
- 2025广西玉林北流市山围镇卫生院公开招聘5人考前自测高频考点模拟试题及完整答案详解一套
- 石家庄市中医院术前准备技能考核
- 重庆市人民医院设备日常维护考核
- 重庆市人民医院胸腰椎椎弓根螺钉置入精准度考核
- 承德市人民医院移植肾病理Banff分级应用考核
- 2025年信阳浉河区招聘城市社区工作人员128人模拟试卷附答案详解
- Unit 1~2单元月考测试(含答案) 2025-2026学年译林版(2024)八年级英语上册
- 工程预算审核服务方案(3篇)
- 2025-2026学年七年级英语上学期第一次月考 (上海专用)原卷
- 2025年电梯培训考核题目及答案
- VTE课件讲解教学课件
- 2024人教版七年级英语上册 Unit7课时4SectionB(1a-1d)分层作业(含答案)
- 高原性肺水肿
- 2025年教科版小学三年级上册《科学》第三单元第2课认识气温计课件
- 平面直角坐标系 课件 2025-2026学年北师大版数学八年级上册
- 2025-2026学年北师大版(2024)小学数学二年级上册教学计划及进度表
- 2025成人高等学校专升本招生统一考试政治试题及答案解析
评论
0/150
提交评论