




已阅读5页,还剩119页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 C+简单程序设计 C+语言程序设计 2 本章主要内容 C+语言概述 (熟悉) 基本数据类型和表达式 (重点) 数据的输入与输出 (熟悉) 算法的基本控制结构 (重点) 自定义数据类型 (了解) 3 C+语言的产生 C+出于 C而胜于 C 引入类机制,最初被称为“带类的 C” 1983年正式取名为 C+ 从 1989年开始 C+语言的标准化工作 1994年制定了 ANSI C+标准草案 1998年 11月被( ISO)批准为国际标准 C+语言概述 4 C+的诞生 C+的创始人: Bjarne stroustrup ( AT&T Bell实验室) 5 C+的特点 全面兼容 C 它保持了 C的简洁、高效和接近汇编语言等特点 对 C的类型系统进行了改革和扩充 C+也支持面向过程的程序设计,不是一个纯正的面向对象的语言 支持面向对象的方法 C+语言概述 6 C+程序实例 例 2-1 /2_1.cpp #include using namespace std; int main() coutWelcome to c+!endl; return 0; 运行结果: Welcome to c+! C+语言概述 7 C+程序的组成 程序主体 函数、类(数据成员、成员函数) 程序总是从 main函数开始执行,而不论 main函数在整个程序中的位置如何。 语句以英文分号结束;书写格式自由 预处理命令 以 #开头的语句 注释 单行 / 多行 /* */ ( C语言原有的注释方式) 8 C+字符集 大小写的英文字母: A Z, a z 数字字符: 0 9 特殊字符: 空格 ! # % & * _(下划线 ) + = - / ; . , : ? ( ) C+语言概述 9 词法记号 关键字 C+预定义的单词 标识符 程序员声明的单词,它命名程序正文中的一些实体 文字 在程序中直接使用符号表示的数据 操作符 用于实现各种运算的符号 分隔符 () , : ; 用于分隔各个词法记号或程序正文 空白符 空格、制表符( TAB键产生的字符)、换行符( Enter键所产生的字符)和注释的总称 C+语言概述 10 标识符的构成规则 以大写字母、小写字母或下划线 _开始 可以由以大写字母、小写字母、下划线_或数字 0 9组成。 大写字母和小写字母代表不同的标识符。 大小写敏感 C+语言概述 11 用户自定义标识符 合法的: apple、 _Student、 _123、 No1、 max_num 不合法的: 51job、 max-num、 abc$、 float、 true 良好的标识符命名习惯 1、 Unix常用的命名法 my_age、 num_of_student 2、 驼峰式命名法 myAge、 numOfStudent 3、 匈牙利标记法 iMyCar、 bIsRight 12 2.2 基本数据类型 什么是数据类型? 数据是程序处理的对象,根据其本身的特点进行分类,形成不同的数据类型。 例:数学中有自然数、整数、实数 基本数据类型 整型: int 字符型: char 实型:单精度 float、双精度 double 逻辑型: bool 13 基本类型 有序型 字符型 (char) 整型 (int、 short、 long) 布尔型 (bool) 浮点型 单精度型 (float) 双精度型 (double) 构造类型 枚举型 (enum) 数组 结构体 (struct) 共用体 (union) 类 (class) 指针类型 14 修饰符 在 C+中描述为了更加准确的描述数据类型,提供了 4个关键字用来修饰基本的数据类型: 1、长型 long 2、短型 short 3、有符号 signed 4、无符号 unsigned 15 1、 short: 仅用来修饰 int, 称为短整型 , 占 2字节内存 , 也可直接简写为 short; 2、 long: 仅修饰 int和 double, 在不同的编译环境中使用 long修饰的数据所占内存不同 。 3、 unsigned: 用来修饰 char、 short和 int, 表示该数据类型为无符号数 。 4、 signed: 用来修饰 char、 short和 int, 表示该数据类型为有符号数 , 为缺省设置 。 16 数据类型 整型数据及取值范围 类型 说明符 位数 数值范围 短整 short 16 -32768 32767 基本 int 32 -231 (231-1) 长整 long 32 -231 (231-1) 无符号 unsigned short 16 0 65535 unsigned int 32 0 (232-1) unsigned long 32 0 (232-1) 基本数据类型和表达式 17 数据类型和内存空间 不同的数据类型,加上不同的修饰符,在内存中占用的空间不同,其所能表示的数值范围也不同。 内存单元的单位是字节,因此用来表示数据类型的长度的单位也是字节。 整型 int的长度等于机器的字长: 16位机: int=2字节; 32位机: int=4字节 。 long int在 32位系统中一般为 4字节,但在 64位系统一般位 8字节。 float和 double型数据的有效位数分别为 6位、 15位 18 unsigned int与 signed int的比较 指定为 signed的数据以补码形式存放,存储单元中的最高位 (bit)用来表示数值的符号。指定为 unsigned的数据,全部二进制位都用来表示数值本身。例:短整型数据占两个字节 19 float 4字节 精度: 3.4 10 38 6位有效数字 double 8字节 精度: 1.7 10 308 15位有效数字 long double 8字节 精度: 1.7 10 308 15位有效数字 数据类型 实型数据 实型常量: 1.23默认为 double型 1.23F或 1.23f为 float型 1.23L为 long double型 20 常量 1. 在程序运行过程中,值不能被改变的量称为常量。 2. 文字常量是指可直接使用的常量。 3. 文字常量分为整形、实型、字符型和字符串型常量。 21 常量 1整型常量 ( 1)十进制整数,如: 789, -456 ( 2)八进制整数,如: 0102, -026 ( 3)十六进制整数,如: 0x789, -0xAB ( 4)长整型与无符号型整数 长整型整数,如: 12L, 0234L, -0xABl 无符号型整数,如: 12U, 0234U,0xABU 22 常量 2实型常量 在内存中以浮点形式存放,均为十进制数,无数制区分。 ( 1)小数形式: 1.65, 1., .123 ( 2)指数形式: 1.23e5、 1.23e-5、 1e3 23 数据类型 字符型数据 字符常量 单引号括起来的一个字符, 如: a, D, ?, $ 字符变量 用来存放字符 例: char c1,c2; c1=a; c2=A; 字符数据在内存中的存储形式 以 ASCII码存储,占 1字节,用 7个二进制位 基本数据类型和表达式 24 字符串常量 例 :CHINA a a 所以: char c; c=a; C H I N A 0 a 0 a 数据类型 字符型数据 基本数据类型和表达式 25 转义字符 a 响铃(喇叭声) n 回车 t 向右跳过一个水平制表符 nnn 八进制数表示 注意 :每一位数字 n=、 、 =、 =、 、 =、 2、 =、 != 关系表达式的结果类型为 bool,只能为 true或 false 注意:不要把 = 当成等号用! 例:设 int a=0; 则 a=0为 true ,而 a=0为 false 35 int a=1, b=2, c=3; cout(a=b)endl; cout(a!=b)endl; cout=b)endl; cout(ab)endl; coutba)3&2|84 true 例 3: 3&0&9 false 例 2、 3涉及 表达式短路 概念: 如果多个表达式用 & 或 | 连接,为了提高判断效率,只要能够确定表达式的结果,运行就不再继续了。 例 4: 闰年的判别:设年份为 y,当下式为真时为闰年: y%4=0 & y%100 !=0 | y%400=0 38 增 1、减 1运算 运算符: +和 -分别表示将操作数增 1、减 1 操作对象:整型或字符型变量 根据操作数的位置不同,分为前置和后置两种 +i 先自身加 1,再将加 1的值作为表达式的值 i+ 将 i作为表达式的值,然后自身再加 1。 -i 先自身减 1,再将加 1的值作为表达式的值 i- 将 i作为表达式的值,然后自身再减 1。 结合性:从右向左 39 #include using namespace std; void main() int i =1; couti=iendl; couti+: i+endl; couti=iendl; cout +i: +iendl; couti=iendl; 1 1 2 3 3 40 试一试 :运行结果是什么? #include using namespace std; int main() int i,j,x,y; i=j=1; x=(+i)+(+i); y=(j+)+(j+); coutijxyendl; coutx+x+endl; return 0; why? 1 2 41 赋值运算符和赋值表达式 赋值运算符: 就是 = 例如: float f=3.15 左值: 可以合法的放在 =左边的操作数 右值: 可以合法的放在 =右边的操作数 常量为右值 , 所以不能放在 =左边被赋值; 变量既有左值又有右值 , 可以放在任何位置 。 左值是使用其地址 , 右值是使用其内容 。 42 a=b=c=5 (赋值表达式值为 5, a, b, c值均为 5) a=5+(c=6) (表达式值为 11, a值为 11, c值为 6) a=(b=4)+(c=6) 表达式值为 10, a b c值为 10, 4, 6) 思考: 1) a=3,b=2; f=a=b; g=a=b; ( 连续赋值 ) f=? g=? 2) 执行 (a=3*5)=4*3后 , a的值是多少 ? 写成 a=3*5=4*3 可以吗 ? 43 赋值表达式 C+将赋值表达式作为表达式的一种,使赋值操作不仅可以出现在赋值语句中,而且可以以表达式形式出现在其他语句(如输出语句、循环语句等)中。这是 C+语言灵活性的一种表现。 注意:用 cout语句输出一个赋值表达式的值时,要注意运算符与 的优先级,保险的办法是将该赋值表达式用括号括起来。 例:如果写成 couta=b;将编译出错! 44 复合赋值运算 在 C+中可以将算术运算符和赋值运算符结合在一起进行运算 , 因此 C+还提供 10种复合的赋值运算符 +=, -=, *=, /= , %=等 。 好处:能产生质量较高的目标代码 。 例如: x+=y 相当于 x = x+y x-=y 相当于 x = x-y x*=y 相当于 x = x*y x/=y 相当于 x = x/y x%=y 相当于 x = x%y 注意: a*=x+2等价于 a=a*(x+2)而非 a=a*x+2 赋值号右端的表达式相当于带括号的 45 赋值运算符和赋值表达式 复合的赋值运算符 有 10种复合运算符: +=, -=, *=, /=, %=, =,&=,=,|= 例 a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) 基本数据类型和表达式 46 逗号运算符与逗号表达式 逗号运算符 , 又叫 顺序求值运算符 优先级最低 。 格式: 表达式 1, 表达式 2, , 表达式 n; 依次计算表达式 1, 表达式 2, , 表达式 n的值 , 并将表达式 n的结果作为逗号表达式的结果 例 1:逗号表达式 a=3*5, a*4的值 ? 60 例 2: int a, b, c, x, y; a=3, b=4, c=a+b; x=b+c, a; x值为 11,表达式值为 3 y=(b+c, a) y和整个表达式值都为 3 47 x=(a=3, 6*3) a值为 3, x值为 18 x=a=3,6*a a值为 3, x值为 3 逗号表达式其实是把若干个表达式 串联 起来。使用逗号表达式是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值,逗号表达式最常用于 for循环语句中。 在用 cout输出一个逗号表达式的值时,要将该逗号表达式用括号括起来,如 cout(3*5, 43-6*5, 67/3)b?a:b; 基本数据类型和表达式 49 sizeof 运算符 作用:获取不同数据类型或表达式所占据的字节长度 格式: sizeof (类型名 ) 或 sizeof (表达式 ) 结果值: “类型名”所指定的类型或“表达式”的结果类型所占的字节数。 例: sizeof (char) sizeof(bool) sizeof(float) sizeof(int) 、 sizeof(short)、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全面扩充2025年VB考试范围试题及答案
- 数字化转型下的工作规划计划
- 湖北省武汉市江汉区度第一期期2025年数学七下期末教学质量检测试题含解析
- 山东省莱芜市莱城区腰关中学2025年数学七下期末考试模拟试题含解析
- 小班环保知识宣传与实践计划
- 企业品牌建设的阶段性总结计划
- 2025年软件设计师考试战略与试题及答案
- 2024年云南省投资促进局下属事业单位真题
- 2024年西藏自治区教育厅下属事业单位真题
- 2024年上饶师范学院辅导员考试真题
- 2025年湖北省各市(州、区)供电服务有限公司招聘笔试参考题库含答案解析
- 私人合同协议书模板
- 神经鞘瘤MRI诊断要点及鉴别诊断课件
- 120个常见文言实词例释-高考语文考前复习速记清单
- 《企业绩效评价标准值(2023年版)》
- 2024《整治形式主义为基层减负若干规定》全文课件
- 3.作文指导-写一种小动物课件
- DZ∕T 0227-2010 地质岩心钻探规程(正式版)
- word个人简历空白
- 国际贸易学(第四版)课件
- 中国铁塔铁塔培训资料
评论
0/150
提交评论