Page 1

C语言程序设计 清华大学 郑莉 安颖莲第三讲 C语言程序的基本控制结构参考书,计算机程序设计基础,第三章

,C程序设计,第四章、第五章

Page 2

C语言程序设计 清华大学 郑莉 安颖莲本讲主要内容

结构化程序设计

if 语句

switch 语句

while 语句

do-while 语句

for 语句

break 和 continue 语句

Page 3

C语言程序设计 清华大学 郑莉 安颖莲结构化程序设计

计算机程序=算法+数据结构

计算机程序设计=算法+数据结构

+程序设计方法学

Page 4

C语言程序设计 清华大学 郑莉 安颖莲结构化程序设计

— 结构化算法(一)

算法就是解决问题的方法。

例如,秦九韶在,九章算术,中记载的,求最大公约数的辗转相除法:

第一步,算法开始。

第二步,输入原始数据:取得所给定的自然数 m 和 n。

第三步,当 m≠n 时,顺序执行第四步;反之,转到第六步。

第四步,若 m>n,则 m←m -n ;否则 n←n -m。

第五步,返回第三步。

第六步,输出结果:所求最大公约数为 m。

第七步,算法结束。

Page 5

C语言程序设计 清华大学 郑莉 安颖莲算法的特征:

有穷性如,Sin x=x/1-x3/3!+x5/5!-x7/7!+… 不是算法。

N!=1× 2× 3× … × N 是算法。

确定性如:菜谱中说,加少许盐,不严格,不是算法。

可执行性

0个或多个输入

1个或多个输出结构化程序设计

— 结构化算法(二)

Page 6

C语言程序设计 清华大学 郑莉 安颖莲

算法类型:

–数值算法、非数值算法。

基本结构:

结构化算法必须只能由下列三种基本控制结构所构成:

–顺序结构

–分支结构

–循环结构结构化程序设计

— 结构化算法(三

)

Page 7

C语言程序设计 清华大学 郑莉 安颖莲结构化程序设计

— 结构化算法(三)

结构化算法的本质属性:

有且仅有一个入口

有且仅有一个出口

无死块(即永远无法执行到的块)

无死循环块

Page 8

C语言程序设计 清华大学 郑莉 安颖莲算法描述工具:

流程图

N- S图

PDL 语言结构化程序设计

— 结构化算法(四)

Page 9

C语言程序设计 清华大学 郑莉 安颖莲结构化程序设计

— 结构化程序设计技术与方法

模块化结构设计方法在程序设计中,将一个复杂的算法(或程序)分解成若干个相对独立、功能单一的模块,利用这些模块即可适当地组合成所需要的全局算法(或)程序。

自顶向下结构设计方法从总体出发,居高临下,逐层分解和逐步细化。

逐步求精结构设计方法实质上也是一种自顶向下的设计方法。

首先抛开细节设计出抽象算法,然后把抽象数据和操作逐步具体化,直到可以由计算机具体实现为止。

Page 10

C语言程序设计 清华大学 郑莉 安颖莲

if (表达式 ) 语句例,if (x>y) printf("%d",x);

if (表达式 ) 语句 1 else 语句 2

例,if (x>y) printf("%d",x);

else printf("%d",y);

if (表达式 1) 语句 1

else if (表达式 2) 语句 2

else if (表达式 2) 语句 3

else 语句 n

if 语句

—— 三种形式

Page 11

C语言程序设计 清华大学 郑莉 安颖莲

一般形式

if ( )

if ( ) 语句 1

else 语句 2

else

if ( ) 语句 3

else 语句 4

注意

– 语句 1,2,3,4 可以是复合语句每层的 if 与

else 配对,或用 { } 来确定层次关系

if 语句

—— 嵌套

Page 12

C语言程序设计 清华大学 郑莉 安颖莲条件运算符

一般形式:

表达式 1?表达式 2:表达式 3

执行顺序:

先求解 表达式 1,若值为非 0,则求解 表达式 2,表达式 2的值为最终结果;

若值为 0,则求解 表达式 3,表达式 3的值为最终结果。

注意:

– 条件 运算符优级 高于 赋值 运算符,低于 关系 运算符和 算术 运算符;

– 结合方向为 自右至左;

– 只能取代简单的 if语句:内嵌语句为赋值语句,且两个分支都给同一个变量赋值;

– 表达式 1,2,3的类型可以不同,条件表达式的最终类型为 2 和 3 中较高的类型。

Page 13

C语言程序设计 清华大学 郑莉 安颖莲

一般形式

switch (表达式 )

{ case 常量表达式 1:语句 1

case 常量表达式 2:语句 2

case 常量表达式 n:语句 n

default,语句 n+1

}

switch 语句

执行顺序以 case中的 常量表达式值 为入口标号,由此开始顺序执行。

因此,每个 case分支最后应该加 break语句。

每个常量表达式的值不能相同,次序不影响执行结果。

可以是多个语句,但不必用 { }。

可以是 整型、字符型、枚举型

Page 14

C语言程序设计 清华大学 郑莉 安颖莲使用 switch语句应注意的问题

case分支可包含多个语句,且不用 { }

表达式、判断值都是 int型或 char型

若干分支执行内容相同可共用一组语句

Page 15

C语言程序设计 清华大学 郑莉 安颖莲

while 语句

形式

while (表达式 ) 语句可以是复合语句,其中必须含有改变条件表达式值的语句。

执行顺序先判断表达式的值,非 0 再执行语句。

—— 实现,当型,循环。

Page 16

C语言程序设计 清华大学 郑莉 安颖莲

类似于直到型循环,但不同。

do-while 语句

一般形式

do 语句

while (表达式 )

可以是复合语句,其中必须含有改变条件表达式值的语句。

执行顺序先执行语句,后判断条件。

表达式非 0时,继续执行循环体。

while 语句与 do-while 语句的比较

While 语句执行顺序先判断表达式的值,非 0 再执行语句

—— 实现,当型,循环

直到型循环是当条件表达式为“真”时,停止循环。

Page 17

C语言程序设计 清华大学 郑莉 安颖莲

for 语句

形式

for (表达式 1;表达式 2;表达式 3) 语句循环前先求解非 0时执行循环体每次执行完循环体后求解

流程图

P70 图 5.6

注意事项

P70- 71

Page 18

C语言程序设计 清华大学 郑莉 安颖莲

break 和 continue 语句

break语句使程序从循环体和 switch语句内跳出,继续执行逻辑上的下一条语句。不能用在别处。

continue 语句结束本次循环,接着进行是否执行下一次循环的判断。

Page 19

C语言程序设计 清华大学 郑莉 安颖莲

,C 程序设计,P64 4.5- 4.8

,C 程序设计,P79 5.2,5.6,

5.10,5.15

复习:,C 程序设计,第四、五章

,计算机程序设计基础,第三章

熟悉一种 C语言编译环境的调试方法。

作 业

C语言控制结构程序设计,第3讲 C语言程序的基本控制结构_C语言程序设计(上)_pps_大学课件预览_高等教育资讯网...相关推荐

  1. 闽江学院c语言期末试卷,Matlab期末复习08_闽江学院:matlab6.5(周赢武)_ppt_大学课件预览_高等教育资讯网...

    Matlab期末复习 2008.06.04 第 1章 MATLAB语言概述 第 2章 基本语法 第 4章 Matlab的其它函数库 第 6章 Matlab在信号与系统中的应用 第 9章 Matlab工 ...

  2. 大学c语言第三章作业,第三章_C语言标准课件_ppt_大学课件预览_高等教育资讯网...

    第三章 C语言 的数据类型. 运算符和表达式第一节 标识符定义,用来标识常量名.变量名.函数名. 数组名.文件名等对象的有效字符序列命名规则: 1)由字母(大小写).数字.下划线 2)第一个 字符必须 ...

  3. 北京科技大学C语言程序设计,第1章_北京科技大学计算机系:C语言程序设计(李玲)_ppt_大学课件预览_高等教育资讯网...

    第 1章 预备知识北京科技大学 计算机系 C 语言程序设计 2009-7-29 2说明: 本课件的配套教材为: –,C语言程序设计教程> –,C语言程序设计教程习题解答与实验指导> 北京人 ...

  4. c语言程序设计课件数组,第五章 数组_《C语言程序设计(Visual C++ 6.0环境)》电子教案_ppt_大学课件预览_高等教育资讯网...

    1 2 3 0 [ ], (1) ( ) int a[6]; a[0]0 1 4 5 a[1] a[2] a[3] a[4] a[5] 2 3 a =* sizeof() 5.1 4 [ ] int ...

  5. 计算圆环面积的c语言程序,C0610求圆环面积_C语言程序设计源代码_doc_大学课件预览_高等教育资讯网...

    #include void main() { double r2,r1,s; double area_ring (double x,double y); /*函数原型,求圆环面积*/ printf(& ...

  6. 输入三门成绩求平均成绩的C语言代码,C0417求平均成绩_C语言程序设计源代码_doc_大学课件预览_高等教育资讯网...

    #include"stdio.h" void main() { int x,y,z,sum,ave,corr,need; printf("请输入学生的三门功课的考试成绩: ...

  7. java利己线程_第10章 多线程2_Java程序设计与应用开发_ppt_大学课件预览_高等教育资讯网...

    第十章 多线程 杨 娟 it@126.com Java 程序设计 教学内容 ? 线程的概念 ? 多线程的实现 ? 线程的生命周期 ? 线程的中断 ? 线程的优先级 ? 同步线程 ? 小结 10.1 线 ...

  8. 鞍山c语言培训,10_鞍山科技大学:C语言与数据结构_ppt_大学课件预览_高等教育资讯网...

    返回本章首页 下一页 上一页 第 10章 位运算 为了节省内存空间,在系统软件中常将多个标志状 态简单地组合在一起,存储到一个字节(或字)中.C 语言是为研制系统软件而设计的,所以她提供了实现将 标志 ...

  9. lisp语言画键槽_用LISP语言自定义AutoCAD命令_AutoCAD实用参考资料_doc_大学课件预览_高等教育资讯网...

    用LISP语言自定义AutoCAD命令AutoLISP语言作为AutoCAD的二次开发工具,虽然在功能.运行速度和保密性等方面比起ARX等工具要逊色一些,但由于它易学易用,交互性好,灵活性强,对于那些 ...

最新文章

  1. 微软MSRA成立理论中心,陈卫负责马志明等四院士加盟
  2. 片滚动插件myScroll
  3. 【完结】有三AI阿里云的深度学习基础课程暂时完结,欢迎扩散学习
  4. 玩转Keras之Seq2Seq自动生成标题 | 附开源代码
  5. 回流Reflow和重绘Repaint
  6. Flutter Mac下环境配置
  7. 西门子博图的FB块_西门子S7-300/400PLC OB-FB-FC-DB块介绍
  8. MyOffic(经理评分)
  9. 春春幼儿园堆积木大赛_春云边车
  10. windows写文件到ubuntu之samba
  11. 能导出_Handoff 插件上线!足不出 Figma 就能导出设计标注
  12. HDU2066--一个人的旅行(Dijkstra)
  13. 吃鸡游戏计算机配置,运行端游吃鸡要什么配置
  14. unity材质丢失素材变成粉红色的解决方法
  15. tp5阿里云短信验证码
  16. 远程工具securtCRT配置
  17. python爬取股票平均成本怎么算_用Python做股市数据分析(二)
  18. 记录一下何同学采访苹果CEO库克的对话,感兴趣的快来围观
  19. 资深猎头解密:什么样的简历一投就中?
  20. 【毕业设计】大数据股票分析与预测系统 - python LSTM

热门文章

  1. SAP UI5 初学者教程之二十八 - SAP UI5 应用的集成测试工具 OPA 介绍试读版
  2. SAP 电商云 Spartacus UI 的 checkout 设计
  3. ts-node 学习笔记 - 如何解决在 Windows10 下不能直接运行 ts-node 的问题
  4. SAP Spartacus Page Layout学习笔记
  5. 一个简单的小技巧,监控网页所有动态标签创建的调用处
  6. SAP Spartacus里的concurrently依赖
  7. SAP Analytics Cloud Model的delta upload(增量导入)功能
  8. 在SAP CDS view上添加扩展字段后激活,背后的实现原理
  9. HubSpot company数据在UI上的展示和通过API方式进行获取
  10. SAP UI5 oSelectedItem.getBindingContext(json)