C语言控制结构程序设计,第3讲 C语言程序的基本控制结构_C语言程序设计(上)_pps_大学课件预览_高等教育资讯网...
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_大学课件预览_高等教育资讯网...相关推荐
- 闽江学院c语言期末试卷,Matlab期末复习08_闽江学院:matlab6.5(周赢武)_ppt_大学课件预览_高等教育资讯网...
Matlab期末复习 2008.06.04 第 1章 MATLAB语言概述 第 2章 基本语法 第 4章 Matlab的其它函数库 第 6章 Matlab在信号与系统中的应用 第 9章 Matlab工 ...
- 大学c语言第三章作业,第三章_C语言标准课件_ppt_大学课件预览_高等教育资讯网...
第三章 C语言 的数据类型. 运算符和表达式第一节 标识符定义,用来标识常量名.变量名.函数名. 数组名.文件名等对象的有效字符序列命名规则: 1)由字母(大小写).数字.下划线 2)第一个 字符必须 ...
- 北京科技大学C语言程序设计,第1章_北京科技大学计算机系:C语言程序设计(李玲)_ppt_大学课件预览_高等教育资讯网...
第 1章 预备知识北京科技大学 计算机系 C 语言程序设计 2009-7-29 2说明: 本课件的配套教材为: –,C语言程序设计教程> –,C语言程序设计教程习题解答与实验指导> 北京人 ...
- 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 ...
- 计算圆环面积的c语言程序,C0610求圆环面积_C语言程序设计源代码_doc_大学课件预览_高等教育资讯网...
#include void main() { double r2,r1,s; double area_ring (double x,double y); /*函数原型,求圆环面积*/ printf(& ...
- 输入三门成绩求平均成绩的C语言代码,C0417求平均成绩_C语言程序设计源代码_doc_大学课件预览_高等教育资讯网...
#include"stdio.h" void main() { int x,y,z,sum,ave,corr,need; printf("请输入学生的三门功课的考试成绩: ...
- java利己线程_第10章 多线程2_Java程序设计与应用开发_ppt_大学课件预览_高等教育资讯网...
第十章 多线程 杨 娟 it@126.com Java 程序设计 教学内容 ? 线程的概念 ? 多线程的实现 ? 线程的生命周期 ? 线程的中断 ? 线程的优先级 ? 同步线程 ? 小结 10.1 线 ...
- 鞍山c语言培训,10_鞍山科技大学:C语言与数据结构_ppt_大学课件预览_高等教育资讯网...
返回本章首页 下一页 上一页 第 10章 位运算 为了节省内存空间,在系统软件中常将多个标志状 态简单地组合在一起,存储到一个字节(或字)中.C 语言是为研制系统软件而设计的,所以她提供了实现将 标志 ...
- lisp语言画键槽_用LISP语言自定义AutoCAD命令_AutoCAD实用参考资料_doc_大学课件预览_高等教育资讯网...
用LISP语言自定义AutoCAD命令AutoLISP语言作为AutoCAD的二次开发工具,虽然在功能.运行速度和保密性等方面比起ARX等工具要逊色一些,但由于它易学易用,交互性好,灵活性强,对于那些 ...
最新文章
- 微软MSRA成立理论中心,陈卫负责马志明等四院士加盟
- 片滚动插件myScroll
- 【完结】有三AI阿里云的深度学习基础课程暂时完结,欢迎扩散学习
- 玩转Keras之Seq2Seq自动生成标题 | 附开源代码
- 回流Reflow和重绘Repaint
- Flutter Mac下环境配置
- 西门子博图的FB块_西门子S7-300/400PLC OB-FB-FC-DB块介绍
- MyOffic(经理评分)
- 春春幼儿园堆积木大赛_春云边车
- windows写文件到ubuntu之samba
- 能导出_Handoff 插件上线!足不出 Figma 就能导出设计标注
- HDU2066--一个人的旅行(Dijkstra)
- 吃鸡游戏计算机配置,运行端游吃鸡要什么配置
- unity材质丢失素材变成粉红色的解决方法
- tp5阿里云短信验证码
- 远程工具securtCRT配置
- python爬取股票平均成本怎么算_用Python做股市数据分析(二)
- 记录一下何同学采访苹果CEO库克的对话,感兴趣的快来围观
- 资深猎头解密:什么样的简历一投就中?
- 【毕业设计】大数据股票分析与预测系统 - python LSTM
热门文章
- SAP UI5 初学者教程之二十八 - SAP UI5 应用的集成测试工具 OPA 介绍试读版
- SAP 电商云 Spartacus UI 的 checkout 设计
- ts-node 学习笔记 - 如何解决在 Windows10 下不能直接运行 ts-node 的问题
- SAP Spartacus Page Layout学习笔记
- 一个简单的小技巧,监控网页所有动态标签创建的调用处
- SAP Spartacus里的concurrently依赖
- SAP Analytics Cloud Model的delta upload(增量导入)功能
- 在SAP CDS view上添加扩展字段后激活,背后的实现原理
- HubSpot company数据在UI上的展示和通过API方式进行获取
- SAP UI5 oSelectedItem.getBindingContext(json)