第三讲 C语言程序的 基本控制结构,参考书 《计算机程序设计基础》第三章 《C程序设计》第四章、第五章,本讲主要内容,结构化程序设计 if 语句 switch 语句 while 语句 do-while 语句 for 语句 break 和 continue 语句,结构化程序设计,计算机程序=算法+数据结构 计算机程序设计=算法+数据结构 +程序设计方法学,结构化程序设计 —结构化算法(一),算法就是解决问题的方法。 例如:秦九韶在《九章算术》中记载的,求最大公 约数的辗转相除法: 第一步:算法开始。 第二步:输入原始数据:取得所给定的自然数 m 和 n。 第三步:当 m≠n 时,顺序执行第四步;反之,转到第六步。 第四步:若 mn ,则 m←m-n ;否则 n←n-m。 第五步:返回第三步。 第六步:输出结果:所求最大公约数为 m。 第七步:算法结束。,算法的特征: 有穷性 如:Sin x=x/1-x3/3!+x5/5!-x7/7!+… 不是算法。 N!=1×2×3×…×N 是算法。 确定性 如:菜谱中说“加少许盐”不严格,不是算法。 可执行性 0个或多个输入 1个或多个输出,结构化程序设计 —结构化算法(二),算法类型: 数值算法、非数值算法。 基本结构: 结构化算法必须只能由下列三种基本控制 结构所构成: 顺序结构 分支结构 循环结构,结构化程序设计 —结构化算法(三),结构化程序设计 —结构化算法(三),结构化算法的本质属性: 有且仅有一个入口 有且仅有一个出口 无死块(即永远无法执行到的块) 无死循环块,算法描述工具: 流程图 N-S图 PDL 语言,结构化程序设计 —结构化算法(四),结构化程序设计 —结构化程序设计技术与方法,模块化结构设计方法 在程序设计中,将一个复杂的算法(或程序)分解成若干个相对独立、功能单一的模块,利用这些模块即可适当地组合成所需要的全局算法(或)程序。 自顶向下结构设计方法 从总体出发,居高临下,逐层分解和逐步细化。 逐步求精结构设计方法 实质上也是一种自顶向下的设计方法。 首先抛开细节设计出抽象算法,然后把抽象数据和操作逐步具体化,直到可以由计算机具体实现为止。,if (表达式) 语句 例:if (xy) printf(“%d“,x); if (表达式) 语句1 else 语句2 例:if (xy) printf(“%d“,x); else printf(“%d“,y); if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式2) 语句3 … else 语句 n,if 语句 ——三种形式,一般形式 if ( ) if ( ) 语句 1 else 语句 2 else if ( ) 语句 3 else 语句 4 注意 语句 1、2、3、4 可以是复合语句每层的 if 与 else 配对,或用 { } 来确定层次关系,条件运算符,一般形式: 表达式1?表达式2:表达式3 执行顺序: 先求解表达式1,若值为非0,则求解表达式2,表达式2的值为最终结果; 若值为0,则求解表达式3,表达式3的值为最终结果。 注意: 条件运算符优级高于赋值运算符,低于关系运算符和算术运算符; 结合方向为自右至左; 只能取代简单的if语句:内嵌语句为赋值语句,且两个分支都给同一 个变量赋值; 表达式1、2、3的类型可以不同,条件表达式的最终类型为 2 和 3 中 较高的类型。,一般形式 switch (表达式) { case 常量表达式 1:语句1 case 常量表达式 2:语句2 ┆ case 常量表达式 n:语句n default : 语句n+1 },switch 语句,,,,,,执行顺序 以case中的常量表达式值为入口标号,由此开始顺序执行。 因此,每个case分支最后应该加break语句。,使用switch语句应注意的问题,case分支可包含多个语句,且不用{ } 表达式、判断值都是int型或char型 若干分支执行内容相同可共用一组语句,while 语句,形式 while (表达式) 语句,执行顺序 先判断表达式的值,非 0 再执行语句。 —— 实现“当型”循环。,类似于直到型循环,但不同。,do-while 语句,一般形式 do 语句 while (表达式),执行顺序 先执行语句,后判断条件。 表达式非0时,继续执行循环体。 while 语句与 do-while 语句的比较,,While 语句执行顺序 先判断表达式的值,非 0 再执行语句 —— 实现“当型”循环。,直到型循环是当条件表达式为“真”时,停止循环。,,for 语句,形式 for (表达式1;表达式2;表达式3) 语句,流程图 P70 图5.6 注意事项 P70-71,break 和 continue 语句,break语句 使程序从循环体和switch语句内跳出,继续执 行逻辑上的下一条语句。不能用在别处。 continue 语句 结束本次循环,接着进行是否执行下一次循环 的判断。,《C 程序设计》 P64 4.5- 4.8 《C 程序设计》 P79 5.2 , 5.6 , 5.10 , 5.15 复习:《C 程序设计》第四、五章 《计算机程序设计基础》第三章 熟悉一种C语言编译环境的调试方法。,作 业,

展开阅读全文

C需语言程序中的基本控制结构有哪些,C语言程序的基本控制结构1.ppt相关推荐

  1. 习题 11.1 将例11.1的程序片断补充和改写成一个完整、正确的程序,用公用继承方式。在程序中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值,程序应输出以上。。

    C++程序设计(第三版) 谭浩强 习题11.1 个人设计 习题 11.1 将例11.1的程序片断补充和改写成一个完整.正确的程序,用公用继承方式.在程序中应包括输入数据的函数,在程序运行时输入num, ...

  2. 习题 11.1 将例11.1的程序片断补充和改写成一个完整、正确的程序,用公用继承方式。在程序中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值。

    习题 11.1 将例11.1的程序片断补充和改写成一个完整.正确的程序,用公用继承方式.在程序中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值,程序应输出以上5个 ...

  3. 小程序中实现两个或者多个小程序之间互相跳转

    前言: 小程序中实现两个或者多个小程序之间互相跳转,a小程序带参跳转到b小程序中. 官方入口:wx.navigateToMiniProgram(Object object) 点我https://dev ...

  4. c语言程序中的算数表达式X Y-Z,C语言程序设计实验教程习题1~10.docx

    C语言程序设计实验教程习题1~10 第一章一.选择题1.最早开发C语言是为了编写下面那一种操作系统( C) A .Windows B.DOS C.UNIX D.Linux2.下面哪一项不属于C语言的特 ...

  5. c语言程序中的错误可分为,《C语言程序设计(本)》模拟试卷1.doc

    <C语言程序设计(本)>模拟试卷1 <C语言程序设计(本)>模拟试卷1 总分:100分 时间:90分钟 一.单项选择题 :(每题2分,共18分) 1.下列字符列中,可以作为&q ...

  6. 在c语言程序中main函数的位置,在C语言程序中,main函数的位置_________。

    在C语言程序中,main函数的位置_________. 答:可以放在任意位置 一切邪教组织及其活动都是诡秘的.邪恶的.危害社会的.非法的 答:正确 产品可以根据其耐用性和是否有形而分为( ) 答:非耐 ...

  7. c语言程序中复合句用什么表示,c语言程序设计(包云)c第1章概述

    <c语言程序设计(包云)c第1章概述>由会员分享,可在线阅读,更多相关<c语言程序设计(包云)c第1章概述(50页珍藏版)>请在人人文库网上搜索. 1.c语言计算机编程,讲座: ...

  8. c语言程序中函数调用本身叫什么,在C语言中函数调用方式有什么区别

    在使用VC进行函数定义时,通常会指定该函数调用方式,那么在C语言中函数调用方式有什么区别呢?下面小编找到了一下教程,分享给大家,希望可以帮助到大家. 通常在使用VC进行函数定义时会指定该函数调用方式, ...

  9. c语言程序中的算数表达式X Y-Z,C语言程序设计-中国大学mooc-题库零氪

    第一周:从问题到C语言程序设计 1.1 计算机的问题求解方法随堂测验 1.结构化程序设计方法包含三种基本结构: A.顺序结构 B.选择结构 C.循环结构 D.跳转结构 2.算法的描述方法除了自然语言之 ...

  10. c语言栈中符号 的作用是什么,C语言数据结构----栈的应用(程序的符号匹配检测)...

    本节主要讲利用栈来实现一个程序中的成对出现的符号的检测,完成一个类似编译器的符号检测的功能,采用的是链式栈. 一.问题的提出以及解决方法 1.假定有下面一段程序: #include #include ...

最新文章

  1. SAP RETAIL 供应商寄售库存的UB STO
  2. IT人怎能忘记这些开源?
  3. ios 企业签名需要源文件么_苹果企业签名之iOS证书申请和签名文件生成
  4. How to download BOM from ERP to CRM
  5. 7 种分布式全局 ID 生成策略,你更爱哪种?
  6. Android Dialog Activity
  7. 帆软注册文件_注册信息- FineReport帮助文档|报表开发|报表使用|学习教程
  8. 程序员工作交接文档怎么写_浅谈程序员该如何做好工作交接?
  9. Java设计模式之七大设计原则
  10. python因子分析_python中的因子分析简介
  11. C++ 输出tm结构的各个组成部分
  12. STM32F103通过M26实现远程在线IAP
  13. 目标检测经典论文——YOLOv3论文翻译(纯中文版):YOLOv3:增量式的改进(YOLOv3: An Incremental Improvement)
  14. 「维基解密」:西游记死亡人数
  15. ext表格内容自动换行
  16. G2:一个由纯 javascript 编写、强大的语义化图表生成工具
  17. javascript遍历方法
  18. html与css游戏开发工具,html/css/js开发者必备的10款最佳工具
  19. 常见的5种网站页面布局方式及特点分析
  20. cydia服务器未响应,cydia错误常见问题解决办法汇总

热门文章

  1. ArcGIS Server9.3+ArcGIS Desktop9.3破解安装(for microsoft .net)
  2. c#子线程和主线程创建窗体时顶层显示的区别
  3. c++全局变量的正确声明
  4. office2010表格计算机,2010年职称计算机考试:Word编辑表格
  5. Glide加载圆形图片并且带白色边框(绝对实用)
  6. mysql数据库发布到web服务器上_web应用发布至服务器
  7. 安卓 spinner下拉框 做模糊查询_想做短视频不知道用什么工具?11个免费制作工具收藏起来...
  8. java delphi 三层_三层架构delphi+Java+Oracle模式的实现
  9. Android开发之ADB常用命令
  10. 深入理解session过期机制