预处理与流程控制语句.ppt_第1页
预处理与流程控制语句.ppt_第2页
预处理与流程控制语句.ppt_第3页
预处理与流程控制语句.ppt_第4页
预处理与流程控制语句.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第3章预处理与语句 教学内容算法设计C 的标准输入 输出流对象cin coutC 程序的构成顺序结构选择结构循环结构 2 第3章预处理与语句 重点 难点算法设计顺序结构选择结构循环结构 3 第3章预处理与语句 教学目标掌握算法设计了解预处理熟练掌握C 的标准输入输出流对象熟练掌握C 程序的构成熟练掌握C 的3种基本结构会用C 解决实际问题 4 第3章预处理与语句 3 1预处理3 2程序的三种基本结构及流程图3 3顺序结构及语句实现3 4分支结构及语句实现3 5循环结构及语句实现3 6辅助控制语句3 7程序实例 5 3 1预处理 预处理命令不是C 语言本身的组成部分 不能直接对它们进行编译 他们是在程序被正常编译之前执行的 故称为预处理命令 预处理命令都是以 开头 末尾不加分号的命令行 C 提供了3种预处理命令 宏定义 文件包含 条件编译 6 3 1 1宏定义 1 不带参数宏定义 格式 define标识符字符序列功能 用指定标识符 宏名 代替字符序列 宏体 在编译预处理时 将宏名用字符串替换 宏名通常用大写以区别于变量名 例如 definePI3 1415926 7 8 2 有参宏 在编译预处理时 将宏名用字符串中与参数表相同的字符序列替换 实例3 2 求圆面积 格式 define definePI3 1415926 defineAREA r r r PI includevoidmain floatr 2 cout AREA r 9 1 带参数的宏只给出参数名 不能指定参数的类型 与函数的区别 2 要注意宏替换所代来的副作用 解决的方法 加 definePI3 1415926 defineAREA a b a b改为 a b includevoidmain floatc c AREA 2 3 3 10 cout c endl 3 宏名与 之间不能有空格 函数可以有 说明 有参宏 10 1 定义形式不一样 带参数的宏只给出参数名 不能指定参数的类型 2 处理程序不一样 宏 编译预处理程序处理 函数 编译程序处理 3 处理方式不一样 宏 不进行语法检查 函数 检查语法 4 函数可以有返回值 宏没有返回值的概念 5 多次调用同一个宏 会增加程序的长度 函数调用不会增加程序的长度 宏与函数的区别 11 3 1 2文件包含 所谓 文件包含 处理是指一个源文件可以将另外一个源文件的全部内容包含进来 即将另外的文件包含到本文件之中 12 3 1 2文件包含 在C 中被包含文件可以是 源文件 c 头文件 h 格式 include 只在系统的include子目录下搜索文件 include 文件名 先在当前目录下搜索文件 然后在系统的include子目录下搜索 13 3 1 2文件包含 所谓 头文件 是指存放与标准函数有关的信息 或存放符号常量 类型定义 类定义及其与程序环境相关的信息的文件 头文件一般包含以下几类内容 1 对类型的声明 2 函数声明 3 内置 inline 函数的定义 4 宏定义 用 define定义的符号常量和用const声明的常变量 5 全局变量定义 6 外部变量声明 如externinta 7 还可以根据需要包含其他头文件 14 15 3 1 3条件编译 当标识符已被 define定义过时 编译程序段1 否则编译程序段2 1 宏名作为编译条件 格式1 ifdef else endif 16 当标识符未被 define定义过时 编译程序段1 否则编译程序段2 条件编译 格式2 ifndef else endif 17 条件编译 2 表达式作为编译条件 格式3 if else endif 当表达式的值为真 则编译程序段1 否则编译程序段2 18 19 20 21 3 2程序的三种基本结构及流程图 3 2 1C 语句概述C 语句可以分为以下4种 1 表达式语句sum sum n 2 流程控制语句3 复合语句 4 其他语句 22 C 语句概述 复合语句复合语句也称为块语句 是由一对 括起来的零个或多个语句组成 在语法上 复合语句被视为一条语句 例如 z x y if z 100 z z 100 cout z 注意 复合语句中最后一个语句中最后的分号不能省略 23 C 语句概述 复合语句可以嵌套使用 复合语句一般用于下列两种情况 1 当语句上要求一条语句 但又难于用一条简单语句表达时 用复合语句 2 当声明的名字仅在某一范围内使用时 使用块语句使其形成局部化的块结构 24 25 3 2 2程序的三种基本结构 图3 2三种基本结构 26 三种基本结构共同的特点 1 只有一个入口点 一个出口点 2 对于每个操作都有一条路径 即从入口到出口要通过每个操作 27 3 2 3流程图 28 3 2 4程序的组成 程序一般由3部分组成 输入 已知处理 求解输出 必须的 答 29 3 3顺序结构及语句实现 功能 顺序执行A B操作 30 3 3 1标准输出流对象cout C 的输出和输入是用 流 stream 的方式实现的 流是指来自设备或传送给设备的数据流 C 的输入输出流库中提供了标准输入cin和标准输出cout流对象 iostream h 31 cout是标准输出流对象 用于向标准输出设备 显示器输出数据 数据的输出是通过插入运算符 将字符插入到输出流中的 标准输出流对象cout 32 标准输出流对象cout 格式 cout 表达式1 表达式2 说明 1 在一个cout中 可以连续使用多个插入运算符 输出多个数据 2 输出多个表达式时 各表达式之间无空格输出 3 cout可以输出任何基本类型的数据 33 例3 3 1 标准输出流cout示例 includevoidmain charch1 ch2 intx y cout ch1 ch2 x ch2 ch1 y ch1 ch2 cout x x endl cout y y endl 结果 inputch1 ch2 ht x 12y 220 34 例3 3 2 标准输出流cout示例 includevoidmain inti 3 floatr 2 0 p cout 2 i 2 i endl i r i cout i r i i n r i 3 cout r r i 3 r endl i 2 3 cout i 2 3 i endl r 6 3 cout r r ends p 6 0 3 cout p p endl 结果 2 i 6i r i 0r r i 3 0 666667i 2 3 2r 2p 2 35 标准输出流cout 说明 1 操纵符ends作用于输出流时 输出一个空字符 0 2 操纵符endl作用于输出流时 输出一个回车换行符 n 并刷新流 3 输出浮点型数据时 插入运算符试图输出占最小空间的值 所以输出6 0 3的值是2 而不是2 0 36 例3 3 3 标准输出流cout oct hex 示例 includevoidmain inta 3 m k m a 3 5 4 6 a 5 inti 5 k i i 2 cout i i endl cout k k endl cout a a endl cout m m endl cout oct cout i i endl cout k k endl cout a a endl cout m m endl cout hex cout i i endl cout k k endl cout a a endl cout m m endl dec i 6k 0a 15m 75oct i 6k 0 a 17m 113hex i 6k 0a fm 4b 37 iomanip库中常用的操纵符及其功能 在C 的iomanip库中定义了一些输出流操纵符 manipulator 用于控制提取字符的行为 这些操纵符可以作为右操作对象出现在提取运算符 的右边 当程序中使用这些操纵符时 要包含iomanip h头函数 38 iomanip库中常用的操纵符及其功能 表中的操纵符具有持续性 即对于所输出的数据都按其指定方式显示 直到指定了另外的显示方式为止 39 例3 3 4 iomanip库中常用的操纵符示例 include includevoidmain floatx y floatfx cout x y fx x y cout 123622569 32564 65980000 32 0 0000001235647 endl cout auto fx fx y y endl cout scientific setiosflags ios scientific cout fx fx y y endl cout fixed setiosflags ios fixed cout fx fx y y endl 40 例3 3 5 示例结果 结果 inputx y 316 1 23623e 008 6 598e 0071 23565e 007auto fx 5 16667y 6scientific fx 5 166667e 000y 6 000000e 000fixed fx 5 16667y 6 41 标准输出流cout 说明 1 浮点数默认的输出方式是自动方式 即输出6位有效位数字 超过6位的按四舍五入截断 2 自动方式下 如果输出比较大 比较小或接近于0的数时 系统会自动按科学法表示 3 对于浮点数 操纵符setiosflags ios scientific 和setiosflags ios fixed 分别设置其输出方式为科学表示法或定点表示法 42 3 3 2标准输入流对象cin cin是标准输入流对象 用于从标准输入设备 键盘上读取数据 当用户在键盘上输入字符时 输入的字符顺序形成了输入流 数据的输入是通过提取运算符 从输入流中提取的 43 标准输入流对象cin 说明 1 在一个cin中 可以连续使用多个提取符 输入多个数据 2 提取符 后面的表达式可以是获得数据的变量或对象 3 cin可以输入任何基本类型的数据 格式 cin 表达式1 表达式2 44 45 标准输入流对象cin 说明 1 输入多个数据时 每两个数据之间用空格 制表符或换行符隔开 2 提取符 从流中提取字符时 只提取除空格 制表符或换行符之外的字符 而空格 制表符或换行符被跳过 3 提取字符时 整数的首字符可以是符号字符 或 或整数字符 浮点数的首字符可以是小数点或整数字符 4 输入字符型数据时 不要用单引号 括起来 46 47 iostream库中常用的操纵符及其功能 iostream库中定义了一些输入输出流操纵符 manipulator 用于控制流的格式 这些操纵符可以作为右操作对象出现在提取运算符 和插入运算符 的右边 48 iostream库中常用的操纵符及其功能 49 说明 1 从键盘输入十六进制或八进制数据时 不需要加前缀0 x或0 2 操纵符dec hex和oct具有持续性 即对于所输入的数据都按其指定的基数表示 直到指定了另外的基数为止 例如 cin oct x y 输入两个八进制数cin hex a b 输入两个十六进制数 iostream库中常用的操纵符及其功能 50 3 3 3scanf和printf函数 在C语言中是用printf函数进行输出 用scanf函数进行输入的 C 保留了C语言的这一用法 scanf函数一般格式是 scanf 格式控制 输入表列 printf函数的一般格式是 printf 格式控制 输出表列 51 例3 3 7 scanf和printf函数示例 include 包含的头文件是stdio hintmain inta floatb charc 注意在变量名前要加地址运算符 52 算法 输入a b c的值求b2 4ac求x的值输出 例3 3 8 求一元二次方程式ax2 bx c 0的根 a b c的值在运行时由键盘输入 它们的值满足b2 4ac 0 53 例3 3 9 程序 include includevoidmain floata b c x1 x2 cin a b c x1 b sqrt b b 4 a c 2 a x2 b sqrt b b 4 a c 2 a cou

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论