C语言程序结构.pptx_第1页
C语言程序结构.pptx_第2页
C语言程序结构.pptx_第3页
C语言程序结构.pptx_第4页
C语言程序结构.pptx_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

实用性C语言强化 程序结构 学习导图 学习目标 掌握基本编程思路掌握2种选择结构语句掌握3种循环结构语句掌握基本的算法 前导知识简述 本章涉及到的C关键字面向过程程序设计语言计算机处理问题的过程算法表示流程图基本结构和控制语句 本章涉及到的C关键字 本章一共涉及到10个关键字 分别是 程序结构控制关键字条件选择控制ifelseswitchcasedefault循环控制forwhiledocontinuebreak 面向过程程序设计语言 C语言 面向过程的程序设计语言以事件为中心过程模块化实现步骤 程序猿早上起床 穿衣 刷牙 洗脸 上班 加班 回家C 面向对象的程序设计语言以事物为中心事物对象化对象的属性 行为 对象 程序猿行为 起床穿衣刷牙洗脸上班加班回家属性 手 脚 脸 钱 计算机处理问题的过程 计算机处理问题的过程 编程要诀 自定向下 逐步求精写程序跟写文章差不多 先构思 需找处理方案 列大纲 确定算法 写文章 编写程序 检查修改 分析结果 程序 数据结构 算法 做什么 如何做 算法表示 算法的概念 进行操作的方法和操作步骤算法的表示方式伪代码 pseudocode 用人类语言的形式 通常是英语 来表达解决问题的步骤 伪码不在计算机上执行 仅供程序员缩写程序之前构思时用 流程图 flowchart 用图示的方式表示算法 优点 不易出错 便于编程 便于别人阅读和检查程序 伪码语句示例ifstudent sgradesgreaterthanorequalto60display Passed elsedisplay Failed 算法表示 编程的一般步骤 用伪码和自顶向下 逐步求精的方法来制定算法 然后再编写相应的C语言程序 复杂程序处理部分宜用流程图表示程序处理的过程 对于一般的程序而言 都不外于三大步骤 输入根据算法输入进行数据处理输出处理结果 基本结构和控制语句 三种基本结构九种控制语句顺序结构选择结构循环结构辅助控制语句 数列求和 实例分析if else选择结构for循环语句算法分析程序代码归纳小结 实例分析 需求 输入某正整数n 计算1 1 2 1 2 3 1 2 3 4 1 2 n的值 知识点 学习ifelse条件判断语句 for循环语句程序输出结果 实例分析输入某整数n时 判断n为正数 需要if判断语句 计算时 分析数据 将一个大数列分成多个小数列 先对个小数列进行累加 再对大数列进行累加 使用2层for循环 if else选择结构 概述ifelse是C语言中的条件选择语句 判断某一条件是否成立 而执行相应的语句 if else中有三种基本形式 当条件expr成立时 即条件为真 执行相应的语句 if执行语句只能是单语句或者是复合语句 不可以是多条语句 if expr statement1 if expr statement1 elsestatement2 if expr1 statement1 elseif expr2 statement2 elseif expr3 statemen3 elsestatemenN if else实例1 下面程序的作用是什么 通过执行程序可以发现其作用 将小写字母转换成大写字母 if else实例2 求程序输出结果 执行结果 2因为在嵌套if语句中 else总是与最靠近它的if匹配 if else实例3 查看程序是否有问题 结果 错误注意 if执行语句只能是单语句或者是复合语句 不可以是多条语句 if else实例4 if执行语句只能是单语句或者是复合语句 不可以多条语句 正因为如此 经常会出现不必要的错误 所以这里建议if中所有语句使用复合语句 即使用 包含起来 例子 if else常见错误 if else使用过程中常见以下错误 if else includeintmain inta 1 b 3 c 5 if a 1 if b 2 printf a n elseif c 5 printf b n return0 求程序执行结果 includeintmain inta 1 b 3 c 5 if a 2 if b 2 printf a n elseif c 5 printf b n elseif b 3 printf c n return0 求程序执行结果 for循环语句 我们做某件事情 可能是重复C语言中的循环语句for最为灵活 通常用于循环次数已经确定的情况 语句格式 for 表达式1 表达式2 表达式3 循环语句for的循环语句与if相同 可以是单语句 或者是复合语句 出现多条语句 只会执行第一条 for循环语句 表达式 for循环的一般形式为 for 表达式1 表达式2 表达式3 循环语句语句解析 表达式1 在第一次执行for循环时会执行 通常做变量赋值用 只执行为一次 表达式2 每次循环的条件 若条件成立 执行循环语句 不成立则退出循环 表达式3 每次执行完循环语句之后会执行 通常做变量值累加 注意 每个表达式中间的 号不可缺少 如 for i 0 i 10 i printf thisisfortestprogram n for循环语句 表达式 for循环完整的流程应该是 1 2 循环句语 3 2 循环语句 3 2 3 2 一般形式可以理解为 for 初始化 循环条件 循环增值 循环语句注意 一个完整的for循环 在没有任何控制语句的情况下 最后执行的都应该是表达式2 for i 0 i 10 i printf thisisfortestprogram n 求最后的i的值 for循环语句 例子1 求下列程序运行结果 运行结果 for循环语句 例子2 要点 for的三个表达式都可以为空 如 无限循环 死循环 写法 for循环语句 常见错误 for循环常见错误有 算法分析 需求 输入某正整数n 计算1 1 2 1 2 3 1 2 3 4 1 2 n的值 样本拆分1 1 2 1 2 3 1 2 3 4 1 2 n 编程思路 提示用户输入n值用户输入n值判断n值是否有效循环 循环 累加小样本 累加大样本 程序代码 程序代码改进 归纳小结 if和for是使用最多的两种结构if else属于程序选择结构for属于程序循环结构特别注意if else和for的常见错误 避免实际运用中出现 乘法口诀 实例分析程序代码及改进归纳小结 实例分析 需求 打印乘法口诀表 程序输出结果 实例分析分析乘数与被乘数之间的关系 for循环和if选择运用 程序代码 执行并分析程序 程序代码改进1 执行并分析程序 程序代码改进2 执行并分析程序 程序代码改进3 执行并分析程序 思考 不用循环可以实现乘法口诀表吗 程序思想 不循环可以实现乘法口诀表 只要一行一行printf打印就可以了 同样的一个程序 100个人写就会有100种程序 每个人做事 解决问题的思考方式不同 而程序是我们使用计算机解决问题 因此每个人写的出的程序都不会同 计算机是一个工具 C语言也是工具 就像做菜 烧一盘简单的番茄炒西红柿 材料 烧菜的工具都一样 相信每个人炒出来的味道都会不一样 归纳小结 实现一个功能的方法有无数种 我们需要权衡各方面因素 CPU效率内存容量代码维护性写程序需要大胆的去构思和设想 没有不可能 猜大小游戏 实例分析随机数的产生while循环语句do while循环语句while 与dowhile 对比算法分析程序代码归纳小结 实例分析 需求 随机6个数值 每个数值取值范围为1 6 用户输入可以输入b m s键来判断随机数的大小 通过q键来退出程序 b 大范围27 36m 中范围17 26s 小范围6 16q 退出知识点 while do while 循环随机数执行结果 实例分析 需要产生6个随机数 使用随机数函数产生 程序正确情况下无限循环 直接到按下 q 键 需要条件循环 随机数的产生 随机数的产生我们需要用到两个函数 srand随机初始化函数rand产生随机数函数voidsrand unsignedseed 用法 它需要提供一个种子 这个种子会对应一个随机数 如果种一样 产生的随机数就会一样 通常使用系统时间作为随机种子 如 srand unsigned time NULL intrand void 用法 返回随机数 可以通过 符号来限制随机数大小 产生的随机数从0开始 若需要从1需要 在函数后面 1 如随机生成1 99 rand 99 1 随机数的产生 实例 程序代码如下 执行结果 while循环语句 一般形式 while 表达式 循环体 特点 先判断表达式 后执行循环体 条件不成功循环体不执行 循环体与if for一样为单语句或复合语句 无限循环语句 while 1 循环体 退出循环条件 表达式不成立 为零 循环体内遇到break return goto等控制语句时 do while循环语句 一般形式 do 循环体语句 while 表达式 特点 基本特点与while相同 先执行循环体 后判断表达式 至少执行一次循环体 循环体语句 执行过程 while 与dowhile 对比 while dowhile 两题都是逆顺输出数字 分析有什么区别 哪个是对的 哪个是错的 算法分析 需求 随机6个数 每个数取值范围为1 6 用户输入b m s和q b 大范围27 36m 中范围17 26s 小范围6 16q 退出编程思路 循环 用户输出是否为q 随机产生数提示用户输入b m s q判断用户输入与随机数范围是对相等打印结果 程序代码 归纳小结 while为当型 do while 为直到型 while先判断后执行 do while先执行后判断 while和do while 都是条件循环 for即是条件循环也是计数循环 当我们确定需要循环的次数时 使用for循环当我们不确定需要循环的次数时 使用while循环 循环控制语句 break和continue语句continue控制语句示例break控制语句示例 break和continue语句 break语句功能 在循环语句和switch语句中 终止并跳出循环体或开关体 说明 break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中continue语句功能 结束本次循环 跳过循环体中尚未执行的语句 进行下一次是否执行循环体的判断 仅用于循环语句中 continue控制语句示例 执行如下程序 并对其进行跟踪 程序跟踪 i i 3输出i1 2222 303 414 5255 60 break控制语句示例 执行如下程序 执行结果 模拟ATM界面 实例分析switch case语句switch与if的区别程序代码 实例分析 需求 通过对自动柜员机 ATM 界面的模拟来学习switch语句的用法 知识 switchcase程序输出结果 实例分析 switch是条件分支语句 也称开关语句 与if的区别是可以对同一个表达式进行多种不同的分支选择 switch case条件分支语句 switch的中文意思是开关 因此switch语句又叫开关语句 switch语句是专门用来处理多分支的语句 switch语句的一般形式 e作为switch语句的跳转指示 而case作为转跳的标记表示跳转到哪一个语句来执行 当e与case后的值为一样时 执行该case后的语句组 switch case条件分支语句 includeintmain inte 4 switch e case1 printf thisis1 n case2 printf thisis2 n case3 printf thisis3 n default printf unknown n return0 打印结果为 unknown switch case例子1 执行下列程序 当输入 C 时 执行结果为 switch case switch case只是单纯的条件跳转 跳转相匹配的语句上 然后接着往下执行 并不会像if一样跳出语句体 所以当我们执行完相匹配case语句后 不希望再往下执行 而是跳转switch时 可以在在case语句后加break switch case例子1修改 对前面的实例进行修改 以满足我们的需求 修改 在每一个case语句组后面加上break switch case例子2 思考练习 说明每个case常量表达式的值必须互不相同 否则会出现互相矛盾的结果 允许多个case共用一个执行语句 switch与if的区别 程序代码 常用算法 枚举法 穷举法 归纳法 递推法 常用算法 枚举法 穷举法 笨人之法 把所有可能的情况一一测试 筛选出符合条件的各种结果进行输出 归纳法 递推法 智人之法 通过分析归纳 找出从变量旧值出发求新值的规律 穷举法 百元买百鸡 需求 用一百元钱买一百只鸡 已知公鸡5元 只 母鸡3元 只 小鸡1元 3只 实例分析 这是个不定方程 三元一次方程组问题 三个变量 两个方程 x y z 1005x 3y z 3 100设公鸡为x只 母鸡为y只 小鸡为z只 图示 穷举法 百元买百鸡 程序 讨论 此为 最笨 之法 要进行101 101 101 1030301次 100多万次 运算 穷举法 百元买百鸡 程序改进1 讨论令z 100 x y只进行101 101 10201次运算 前者的1 穷举法 百元买百鸡 程序改进2 讨论x最大20 y最大33 只进行20 33次运算 归纳法 兔子繁殖问题 需求 兔子繁殖问题 斐波那契数列问题 著名意大利数学家斐波那契 Fibonacci 1202年提出一个有趣的问题 某人想知道一年内一对兔子可以生几对兔子 他筑了一道围墙 把一对大兔关在其中 已知每对大兔每个月可以生一对小兔 而每对小兔出生后第三个月即可成为 大兔 再生小兔 问一对小兔一年能繁殖几对小兔 分析 表示大兔 表示小兔 归纳法 兔子繁殖问题 由分析可以推出 每月新增兔子数量Fn 1 1 2 3 5 8 13 21 34 斐波那契数列 月份n兔子数Fn1F1 12F2 13F3 2 F1 F24F4 3 F2 F35F5 5 F3 F4 nFn Fn 1 Fn 2 归纳法 兔子繁殖问题 程序 关于 C编译规范中 常出现两种 的格式 两种风格 随自己喜好 但有些公司对这些有明确规定 if 1 statement1 statement2 statementN if 1 statement1 statement2 statementN 总结整理 在此节中 我们通过实例学习了两种选择语句ifelseswitchcasedefault三种循环语句forwhiledo while两种循环控语句breakco

温馨提示

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

评论

0/150

提交评论