第3章 结构化程序设计
第3章 结构化程序设计

循环体
是 P2 否
图3.7直到型循环结构示意图 直到型循环结构示意图
3.3 表述算法
• 通常用自然语言、计算机语言(代码)、伪代码[1]、传统流程图、 通常用自然语言、计算机语言(代码)、伪代码 、传统流程图、 )、伪代码 N-S流程图、PAD图等不同的方法来描述算法。 流程图、 图等不同的方法来描述算法。 流程图 图等不同的方法来描述算法 • 在例 中,采用了自然语言来表示算法。自然语言就是人们日常使 在例3.1中 采用了自然语言来表示算法。 用的语言,可以是汉语、英语,或其他语言。 用的语言,可以是汉语、英语,或其他语言。用自然语言表示算法通 俗易懂,但文字冗长,容易出现歧义性。自然语言表示的含义往往不 俗易懂,但文字冗长,容易出现歧义性。 太严格,要根据上下文才能判断其正确含义。此外, 太严格,要根据上下文才能判断其正确含义。此外,用自然语言来描 述包含分支和循环的算法,很不方便。因此, 述包含分支和循环的算法,很不方便。因此,除了那些很简单的问题 以外,一般不用自然语言描述算法。 以外,一般不用自然语言描述算法。 • [1] 伪代码是介于自然语言与计算机语言之间的文字符号。一般借助 伪代码是介于自然语言与计算机语言之间的文字符号。 一种高级语言的控制结构,而中间的操作用自然语言描述。 一种高级语言的控制结构,而中间的操作用自然语言描述。
P1 是 循环体
否
• 图3.6当型循环结构示意图 当型循环结构示意图
(2)直到型循环的执行过程为: )直到型循环的执行过程为: • 先执行循环体一次,然后判断控制循环的条件。 先执行循环体一次,然后判断控制循环的条件。 • 条件 成立,则继续上述循环体,直到条件不成立时,结束循环。 条件P2成立,则继续上述循环体,直到条件不成立时,结束循环。 成立
第3章顺序和选择结构程序设计

3.3 C语句
1.表达式语句
任何一个表达式加上一个分号就可以组成一条
语句。
例如: 表达式 a=b+c*(d+3) a+b+c i++
表达式语句 a=b+c*(d+3); a+b+c; i++;
函数调用也是表达式,在其后加一个分 号,就变成了函数调用语句。
eg:printf函数调用语句和scanf函数调 用语句
-1.0 (x<0) y= 0 (x=0) 1.0 (x>0)
运行结果: -88 y=-1.000000
3.4.4
if语句的嵌套
条件语句的嵌套就是在if语句中包含另一 个if语句。 从语法上讲,if语句中所包含的语句是一 个语句或一个复合语句,这个语句当然也 可以是另一个if语句,即内嵌if语句。
3.1 程序设计概述
程序设计的最终目的是能在计算机上计算出正确的 结果来。 1969年,Dijkstra首先提出了结构程序设计的概念, 强调从程序的结构和风格上来研究和设计程序。 首先应从全局上把握系统所具备的功能是什么,并 将系统划分成几个相对独立的子系统,而每个子系 统只涉及局部的环境和条件。 然后,进入第二步的实现阶段,即进行编码。在第 一阶段,只要知道“做什么”,而在实现阶段,才 考虑“如何做”。
用交换变量值的方法按顺序输出这两个数
交换变量值的思想: 不改变变量名,但变量值可改变的性质。 若a的值大于b的值,则a与b的值不交换;若a的值 小于b的值,则两者互相交换值。从而使得无论何 时,变量a的值始终大于变量b的值。最后,按先a 后b的顺序输出,即可实现按由大到小的顺序输出 的功能。 实现方法: 为了能够进行相互交换,必须引进一个临时变量 t。用以下三个赋值语句可实现交换。 t=a; a=b;b=t; /*t=a,a=b,b=t;*/
C++第三章课后答案

C++第三章课后答案C++第三章习题及答案1、什么是结构化程序设计?它有什么优缺点?所谓结构化程序设计,是一种自顶而下、逐步求精的模块化程序设计方法。
2、什么是对象?什么是类?简述对象与类之间的关系!对象是系统中用来描述客观事物的一个实体,它是用于构成系统的一个基本单位,而系统可以看作是由一系列相互作用的对象组成。
类定义了同类对象的公共属性和行为,属性用数据结构表示,行为用函数表示!《类=数据结构+对数据进行操作的函数》。
对象和类的关系相当于元素和集合的关系、变量和变量的“数据类型”的关系。
从程序设计的角度来说,类是一种复杂的自定义数据类型,对象是属于这种数据类型的变量。
3、什么是面向对象程序设计?面向对象程序设计方法具有哪些基本特征?请比较面向对象程序设计和面向对象过程程序设计有何异同?4、何谓成员变量?何谓成员函数?C++将对象的属性抽象为数据成员,将对象的行为抽象为成员函数。
5、C++中结构和类之间有何异同?结构在默认情况下的成员是公共的,而类在默认情况下的成员是私有的。
在C++中,结构是特殊的类。
6、在C++中如何定义类?如何实现定义的类?如何利用类申明对象?7、类的成员的访问权限有哪几种?请说明它们分别有什么作用?三种,privte:类的私有成员,只能被本类的成员函数访问或调用。
Public:公有成员,可以被本类的成员或其他类的成员函数(通过对象)访问或调用。
Protected:保护成员,可以被本类的成员函数或派生类的成员函数访问或调用。
8、何谓构造函数?何谓析构函数?请说明它们分别有什么作用?构造函数:不需要用户程序调用,就能在创建对象时由系统自动调用,其作用是在对象被创建时利用初始值去构造对象,使得在声明对象时就能自动完成对象的初始化。
析构函数:在对象的生存周期即将结束时由系统自动调用的,其作用是用来在对象被删除前做一些清理工作和数据保存工作。
9、如何定义一个内联成员函数?内联函:内联函数必须是和函数体申明在一起,才有效。
第3章 顺序结构程序设计

3.2 实现顺序结构程序设计的基本语 句
• 赋值语句 语句
赋值语句由赋值表达式加上一个分号构成,一般形式为: 变量=表达式; 变量=表达式; 例如: radius=14.5; i++; x+=2; 赋值语句是将右边表达式的值赋给左边的变量中去。赋值 语句要先对表达式加以计算求得其值,而后再将求得的值赋给 左边的变量中去,因此可以说赋值语句兼有计算功能。
例3.1
例3.2
例3.3
• 输出项表 输出项表中可以有多个输出项,各项之间用逗号分隔。 • 注意事项: ①格式控制中的格式说明符必须按从左到右的顺序,与输出 项表中的每个数据一一对应。 ②除x,e,g外,其他类型转换字符必须用小写字母。 ③类型转换字符紧跟在“%”后面时作为类型转换字符,否则 上一页 将 作为普通字符处理。
• 标准输入输出
C语言本身并不提供输入输出语句,其输入输出操作是由标 准库函数来实现的,在使用标准库函数时,要用预编译命令: 首页 上一页 #include将“stdio.h”文件包括到用户源文件中。
– 格式输出函数—printf()
形式: printf(“格式控制”[,输出项表]); printf( 格式控制” 输出项表] • 格式控制 ①普通字符:即需要原样输出的的字符信息。 ②格式说明符:即用%开头后面跟有一个字母,它规定了输 出项的输出形式。常用格式说明符见表3.1和表3.2。 ③转义字符:以“\”开头的字符序列。常用转义字符见表3.3。
上一页
–单个字符的输入—getchar()函数
形式: c=getchar(); c=getchar(); 执行上面的调用时,变量c将得到用户从键盘输入的一 个字符值,这里的c可以是字符型或整型变量。
第3章 结构化程序设计语句

图3-16 程序运行界面
3.3.2 上机练习二:捉拿肇事司机 上机练习二:
【练习题目】 练习题目】 题目 一辆卡车违反交通规则,撞死行人, 一辆卡车违反交通规则,撞死行人,司机畏罪驾车逃 当时有三个人目击这一车祸的发生, 跑。当时有三个人目击这一车祸的发生,但都没有看清卡 车的牌照号码,只记住牌照号码的部分特征, 车的牌照号码,只记住牌照号码的部分特征,甲记住牌照 号码的前两位数字是相同的, 号码的前两位数字是相同的,乙记住牌照号码的后两位数 字是相同的,丙是一位数学家,他说“ 字是相同的,丙是一位数学家,他说“车牌号码肯定是四 位数,而且恰好是一个整数的平方。 位数,而且恰好是一个整数的平方。”,并且丙已推导出 符合该条件的号码只可能有一个。 符合该条件的号码只可能有一个。根据这些信息来判定车 牌号并捉拿肇事司机。要求编写控制台应用程序。 牌号并捉拿肇事司机。要求编写控制台应用程序。
3.1 循序渐进学理论
3.1.1 if语句 语句
1.用if语句实现单分支选择结构 . 语句实现单分支选择结构 [格式 :(表达式 语句 格式]: 表达式 语句; 表达式) 格式
图3-1 单分支选择结构执行流 程图
编写一个程序实现如下功能: 【 例 3-1】 编写一个程序实现如下功能 : 输入一个成绩, 如果成绩大于等于60 60则输出 输入一个成绩 , 如果成绩大于等于 60 则输出 恭喜您,您通过了这次考试! “恭喜您,您通过了这次考试!”,否则不输 出任何信息。要求编写成控制台应用程序。 出任何信息。要求编写成控制台应用程序。
[格式2]:randomObj.Next(N) 格式2]: 2] 例如,有下列语句: 例如,有下列语句: Random randomObj=new Random() i=randomObj.Next(10 10) i=randomObj.Next(10); 其作用是产生一个0~9之间的随机整数并赋值给变量i 0~9之间的随机整数并赋值给变量 其作用是产生一个0~9之间的随机整数并赋值给变量i。 格式3] 3]: [格式3]:randomObj.Next(N,M) 例如,有下列语句: 例如,有下列语句: Random randomObj=new Random() i=randomObj.Next(5 10) i=randomObj.Next(5,10); 其作用是产生一个5~9之间的随机整数并赋值给变量i 5~9之间的随机整数并赋值给变量 其作用是产生一个5~9之间的随机整数并赋值给变量i。
结构化程序设计

结构化程序设计
结构化程序设计
结构化程序设计是一种软件开发方法,旨在通过模块化和顺序化的方式来设计和编写程序。
它强调程序应该被组织成一系列可重复使用和可维护的模块,以便增强开发效率和代码的可读性。
在结构化程序设计中,程序被划分为多个小的、相对独立的模块。
每个模块执行一个特定的任务,并且可以与其他模块进行通信和交互。
这种模块化的设计使得程序变得更加可靠和易于理解,因为每个模块都是独立的,它的功能可以被单独测试和验证。
,结构化程序设计还鼓励使用顺序、选择和重复等基本的控制结构来组织程序的执行流程。
顺序控制指的是按照代码的顺序依次执行语句,选择控制指的是根据条件选择执行不同的语句块,而重复控制则是通过循环执行一段代码多次。
结构化程序设计的目标是提高程序的可理解性和可维护性。
通过模块化的设计,可以将一个复杂的问题分解成多个简单的子问题,从而减少开发过程中的错误和bug。
结构化程序设计还使得程序的
测试和调试变得更加容易,因为每个模块都是相对独立的,可以单独进行测试和调试。
在实践中,结构化程序设计可以通过使用编程语言中的函数、类和模块等概念来实现。
通过将程序划分为多个函数或者类,可以实现程序的模块化和重用。
而通过使用模块化的设计,可以将程序的不同部分放入不同的模块中,从而提高代码的可读性和可维护性。
,结构化程序设计是一种重要的软件开发方法,可以提高程序的可读性、可维护性和可重用性。
通过将程序划分为多个模块,并使用基本的控制结构来组织程序的执行流程,可以更好地管理和开发复杂的软件系统。
结构化程序设计是每个程序员都应该熟悉和掌握的软件开发技术。
结构化程序设计的三种基本结构

结构化程序设计共有以下3种基本结构: 顺序结构 分支结构 (选择结构 )
循环结构,
(1)顺序结构,如图3.1(a)所示,该结构先执行A,再 执行B,两者是顺序执行的关系
A B 流程图
A B
N-S结构图
(2)分支结构,也叫选择结构,如图3.1(b)所示, 该结构先判断条件是否成立,当条件成立时执 行A,否则执行B。该结构只能执行A或B其中之 一
例如: m和n是整形变量,则: scanf (“%d%d”,m,n );是错误的, 应将“m,n”改为“&m,&n” 。
②如果在“格式控制串”中除了格式标识符、修饰符和格式 说明符以外还有其他字符,则应在输入数据时输入与这些字 符相同的字符。例如: scanf ("%d,%d",&m,&n );
输入时两个整数之间应加入“,”: 234,123↙ 因为,在scanf函数中的“格式控制串”中使用了逗号分 隔,所以必须在234后面加一个逗号。
表3.2 scanf函数常用的格式说明符
格式说明符 d o x c s f
功能说明 表示输入带符号的十进制整数 表示输入无符号八进制整数 表示输入十六进制无符号整数 表示输入单个字符 表示输入多个字符,即一个字符串 表示输入实数,可以用小数形式输入
表3.2 scanf函数常用③从键盘输入的数据类型和个数必须与参数表中的数 据类型和个数相匹配。例如:
scanf (“%d,%d”,&m,&n ); 输入数据时的形式:
234,10.5↙ (错误,因为数据类型不匹配) 234,105,123↙ (错误,因为数据个数不匹配) 234,123↙ (正确) ④可以指定输入数据所占的列数,系统自动按指定列 数截取数据。例如:
第3章程序设计初步第1-7节

第3章程序设计初步第1-7节一、选择题1、C语言中用于结构化程序设计的3种基本结构是( D )A) for,while,do-while B) if,for,continueC) if,switch,break D)顺序结构、选择结构、循环结构2、流程控制语句的基本控制结构有三种,不属于这一种结构的是( D )。
A) 顺序结构 B) 选择结构 C) 循环结构 D) 计算结构3、输入输出格式控制是在哪个头文件中定义的?( B )。
A) iostream B) iomanip C) istream D) ostream4、输入输出时需要包含哪个头文件?( A )。
A) iostream B) iomanip C) istream D) ostream5、对于语句cout<<endl<<x;中的各个组成部分,下列叙述中错误的是( D )。
A)”cout”是一个输出流对象 B) ”endl”的作用是输出回车换行C)”x”是一个变量 D) ”<<”称作提取运算符解析:”>>”称作提取运算符. ”<<”称作插入运算符6、下列有关输入、输出的说法错误的是( C )。
A) C++语言本身没有提供输入、输出语句B) C++语言中输入输出功能是通过输入输出流库中的流对象cin和cout实现的C) 函数putchar()只能用来输出字符型变量的内容D) 函数getchar()一次只能输入一个字符7、在ios中提供控制格式的标志位中,哪个是转换为十六进制形式的标志位?(A )。
A) hex B) oct C) dec D) left8、关系表达式的求值结果为( B )。
A)1或-1 B)1或0 C)任意正整数或0 D)任意负整数或09、设变量a和b的值满足a<b,判断变量x的值是否位于闭区间[a,b]的表达式是(C )。
A)a<x<y B)a<=x<=b C)x>=a&&x<=b D)a<x&&x<b10、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( D )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择结构语句
if
if…else
if..else if..else
3.4 选择结构语句
• 3.4.1 if条件语句
if语句——单分支结构
开始
判断条件
真
执行语句
假
结束
3.4 选择结构语句
• 3.4.1 if条件语句
if…else语句——双分支结构
开始
判断条件
真
执行语句 1
假
执行语句 2
结束
3.4 选择结构语句
goto break continue
Байду номын сангаас
跳转 语句
3.6 进阶案例(一)
• 打印水仙花数
− 学完了C语言程序设计的流程,接下来通过一个打印水仙花数的案例来 加深对C语言流程控制程序的理解。所谓的水仙花数是指一个n位数(n ≥ 3),它的每个位上的数字n次幂之和等于本身。例如,3位数153是水 仙花,各位数字的立方和13+53+33=153。
while for
dowhile
循环 语句
3.5 循环结构语句
• 3.5.1 while循环语句
− while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就 会一直执行,直到条件不成立,while循环才会结束。
开始
循环条件
真
执行语句
假
结束
3.5 循环结构语句
• 3.5.2 do-while循环语句
第三章 结构化程序设计
算法——程序设计的灵魂
顺序结构语句
选择结构语句
循环结构语句
学习目标
3
算法:
程序设计的灵魂
选择结构语句 循环结构语句
1
掌握 顺序结构语句 C语言的基本语句
2
目录
算法——程序设计的灵魂
☞点击查看本小节知识架构
C语言的基本语句
顺序结构语句
选择结构语句
☞点击查看本小节知识架构
目录
3.7 进阶案例(二)
• 查找100以内的素数
− 打印完水仙花后,接下来紧追一步打印出1-100之间的所有素数。所谓 素数,是只能被1和它本身整除的数。
3.8 本章小结
本章首先讲解了算法、程序的执行流程图,然后讲 解了C语言中最基本的三种流程控制语句,包括顺
序结构语句、选择结构语句和循环语句。通过本章
●
switch无法处理浮点数,只能进行整数的判断,case标签值必须是 常量;而if语句则可以对浮点数进行判断。
3.5 循环结构语句
− 在实际生活中经常会将同一件事情重复做很多次,比如走路会重复使用 左右脚,打乒乓球会重复挥拍的动作等。同样在C语言中,也经常需要 重复执行同一代码块,这时就需要使用循环语句。循环语句分为while 循环语句、do…while循环语句和for循环语句三种
程序 = 算法 + 数据结构;
[点击查看介绍]
3.1 算法
• 流程图
− 流程图是描述问题处理步骤的一种常用图形工具,它是由一些图框和 流程线组成的。使用流程图描述问题的处理步骤,形象直观,便于阅
读。
起止框
输入/输出框
判断框
处理框
流程线
连接点
3.2 C语言的基本语句
• C语言的基本语句
− C语言的语句类型如下图所示。
• 3.4.1 if条件语句
if…else if…else语句——多分支结构
开始 真 判断条件1 假 判断条件2 假 判断条件3 真 执行语句3 真 执行语句2 执行语句1
假…… 真 判断条件n 假 执行语句n+1 执行语句n
结束
3.4 选择结构语句
• 3.4.2 if语句的嵌套
− 在一个if语句中还可以包含一个或多个if语句,这称为if语句的嵌套。
开始
初始化表达式
循环条件
假
真
执行语句
操作表达式
结束
3.5 循环结构语句
• 3.5.4 循环嵌套
− 有时为了解决一个较为复杂的问题,需要在一个循环中再定义一个循 环,这样的方式被称作循环嵌套。
循环语句
循环语句
3.5 循环结构语句
• 3.5.5 跳转语句
− 跳转语句用于实现循环执行过程中程序流程的跳转,在C语言中,跳转 语句有break语句、continue语句和goto语句。
循环结构语句
☞点击查看本小节知识架构
进阶案例(一)
进阶案例(二)
本章小结
3.1 算法
• 3.1.1 算法的概念
− 一个程序应当包含以下两方面的内容: (1)对数据的描述:在程序中指定用到哪些数据以及这些数据的类型
和数据的组织形式,这就是数据结构(data structure)。
(2)对数据操作的描述:即操作步骤,也就是算法(algorithm)。
− do…while循环语句先要执行一次大括号内的代码再判断循环条件。
开始
执行语句
真
循环条件
假
结束
3.5 循环结构语句
• 3.5.3 for循环语句
− 在前面的小节中分别讲解了while循环和do…while循环。在程序开发中, 还经常会使用另一种循环语句,即for循环,它通常用于循环次数已知的 情况。
开始
值1
值2
……
值n
执行语句1
执行语句2
执行语句n
结束
3.4 选择结构语句
• 3.4.4 if语句与 switch条件语句的异同
− if语句和switch语句都用于选择条件下,那么它们又有什么不同呢,本 节就来为大家总结一下。
●
switch结构语句只进行相等与否的判断;而if结构语句还可以进行
大小范围上的判断。
的学习,读者应该能够熟练的运用if判断语句、 switch判断语句、while循环语句、do-while循
环语句以及for循环语句。掌握本章的内容就能够
编写逻辑比较复杂的C语言程序并且有助于后面章 节的学习。
开始
判断条件1
真 真
假
判断条件2
执行语句1
假
执行语句2
真
……
假
……
真
判断条件n
假
执行语句n 执行语句n+1
结束
3.4 选择结构语句
• 3.4.3 switch条件语句
− switch 条件语句也是一种常用的选择语句,和if条件语句不同,它只能针 对某个表达式的值作出判断,从而决定程序执行哪一段代码。
3.3 顺序结构语句
• 顺序结构语句
− 程序中的所有语句都是从上到下逐条执行的,这样的程序结构称为顺序 结构。顺序结构是程序开发中最常见的一种结构。
处理语句1
处理语句2
处理语句3
3.4 选择结构语句
• 3.4.1 if条件语句
− 在C语言中也经常需要对一些条件做出判断,从而决定执行哪一段代码 ,这时就需要使用选择结构语句。if条件语句有三种语法格式。