C++语言程序设计第3章控制结构
第3章 算法的基本控制结构

C程序设计与应用教程 3.1 C语句概述
3.1.1 C语言的基本语句 2.控制语句 表3-1 C语言的控制语句汇总 if~else switch( )~ while( )~ do~while( ) for( )~ continue break return goto
选择结构 条件语句 控制 开关语句 while循环语句 循环结构 do循环语句 控制 for循环语句 结束本次循环语句 其它控制 终止执行switch或循环语句 语句 从函数返回语句 转向语句
在C语言的基本数据类型中,没有逻辑型。C语言规定: 任何非0的数据都是“真”,0为“假”。逻辑运算的运 算结果和关系运算的结果一样,为“真”即为1,为“假” 即为0。
表达式中如果出现了多个逻辑运算符,C语言规定其优 先级次序为:!最高,&&次之,||最低。逻辑运算符具 有自左至右的结合性。
C程序设计与应用教程 3.3 选择结构的流程控制
C程序设计与应用教程 3.1 C语句概述
3.1.2 三种基本结构和流程控制语句
S1 S2
Y S1
条 件
N S2
条 件Y S1
N
(a)
(b)
(c)
图3-1 三种基本的结构
C程序设计与应用教程 3.1 C语句概述
3.1.2 三种基本结构和流程控制语句
C语言中的语句是按它们在程序中出现的顺 序逐条执行的; 选择结构的实现有if语句和switch语句; 循环结构的实现有while语句、do~while语 句和for语句。
表达式 真 语句
假
图 3-2 不 含 else 的if 语句的执行 流程
C程序设计与应用教程 3.3 选择结构的流程控制
3.3.2 if 语句 比较如下①②两种情况,哪个可以真正实现:如果 x小于y,则交换x和y的值?why???
第三章 三种基本程序控制结构

12
• 例3-5设计一个信息录入窗体(见图3-6),录入
学生的基本信息。包括学号、姓名、系别、班级、 生日、家庭住址。单击保存按钮后,录入的基本信 息由MsgBox显示。
Visual Basic程序设计教程
13
Private Sub Command1_Click() Dim s_en As Single, s_sp As Single, s_pro As Single 3.3 选 择 结 构 Dim ave As Single, msg As String s_en = Val(Trim(Text2.Text)) 例3-6一个简化了的奖学金评审规则:三门课程的 s_sp = Val(Trim(Text3.Text)) 90分以上(包含90分)者可以获得奖 s_pro平均成绩在 = Val(Trim(Text4.Text)) Visual ave =学金。编写一个 (s_en + s_sp + s_pro) / 3Basic程序,看谁能拿到 ave =奖学金。 Fix(ave * 100 + 0.5) / 100 ‟结果保留小数点后两位 ‟奖学金评审,使用IF选择结构 分析:解决该问题的关键是学生的平均分与90的 If ave >= 90 Then 关系,求取平均分后,即可进行判断。判断过程用 msg = Label5.Caption & Text1.Text & "的平均分为:" & ave选择结构实现。程序界面使用四个文本框,用来输 & ",可获得奖学金" Else 入学生姓名和三门课程的成绩,一个标签用来显示 msg = Label5.Caption & Text1.Text & "的平均分为:" 判断结果。 & ave & ",不能获得奖学金" End If ‟输出评审结果 Label5.Caption = msg 14 Visual Basic程序设计教程 End Sub
C语言程序设计框图

第3章 控制结构
说明:
switch后面的表达式的值类型可以是整型、字符型或枚 举型。 当表达式的值与某个case中的常量表达式的值相等时, 就执行相应的case后的语句序列,直到遇到break语句或到 达switch结构末尾。 多个连续的case语句可以共用一个语句序列。 case 后的不同常量表达式的值不能相等。 break的作用是改变程序在switch结构中的执行流程, 将程序流程跳出switch语句,转到switch语句后的下一条语 句去执行。 switch语句中允许嵌套switch语句。
C语言程序设计电子教案
3.1 程序结构框图
3.1.3 N-S图
3种基本结构的N-S图
第3章 控制结构
顺序结构: 分支结构:
它是按照语句 它是根据给定条件
出现的先后顺 进行判断,选择其
序依次执行的 中的一个分支执行
。如上图所示 ,先执行A模 块,再执行B
。如上图所示,P 表示条件,当P成 立时执行分支A模 块,否则执行分支
复合语句:由一对大括号括起来的一条或多条语句。
被括起来的语句可以是这4类的任何一类语句,常用于函数
体或循环体。
C语言程序设计电子教案
3.2 二分支结构
3.2.1 二分支if语句
第3章 控制结构
基本形式:
if (表达式) 语句1;
else 语句2;
真(非0)表达式
假 (0)
语句1
语句2
例如: if(x>y)
C语言程序设计电子教案
第3章 控制结构
第3章 控制结构
返回总目录
C语言程序设计电子教案
目录
3.1 程序结构框图 3.2 二分支结构 3.3 多分支结构 3.4 循环结构 3.5 break与continue语句 3.6
第3章-2_程序的控制结构

22
#include<stdio.h> #include<math.h> void main() { float x,y; printf("please input x:\n”); scanf("%f”,&x); if(x<0) y=fabs(x); else if(x<2) y=sqrt(x+1); else if(x<4) y=pow(x+2,3); else y=2*x+5;
2012-8-11 24
switch
多路选择
switch (表达式) { case 常数1: 语句序列1; 语句序列1; case 常数2: 语句序列2; 语句序列2; ………… default: 语句序列n; 语句序列3; } default可以没有,但最好不省略 不要忘记break
25
2012-8-11
4
如何设计结构化的程序?
Top-down, Stepwise refinement 自顶向下、逐步求精 1971年,wirth提出的结构化程序设计方法 – 先全局后局部 – 先整体后细节 – 先抽象后具体
2012-8-11
5
自顶向下、逐步求精的 结构化程序设计方法
A11
有穷性 – 在合理的时间内完成 确定性,无歧义 – 如果x≥0,则输出Yes;如果x≤0,则输出No; 有效性 – 能有效执行 – 负数开平方 没有输入或有多个输入 有一个或多个输出
2012-8-11 8
算法的分类
数值运算算法: –解决求数值解问题 非数值运算算法: –需要用分析推理、逻辑推理才能解决的问题 –例如人工智能中的许多问题,查找、分类等
C语言程序设计第3章选择结构程序设计

√
!注意 if 与 else 的配对关
系,else总是与它上面最近 的未配对的 if 配对,若if与 else 的数目不一致,可以加 { }来确定配对关系。
整理课件
例:有一函数
y=
-1 0
(x<0) 输入X值,输出Y值。 (x=0)
1 (x>0)
main( ) { int x, y; scanf("%d",&x);
if (x<0) y= -1; else if (x= =0) y=0;
if(x<=0)
else y=1;
if (x= =0) y=0; y= -1;
else y=-1;
if (x>=0)
eplrsientfy(="1x;=%d,y=%d\n{"i,xf ,(yx)>;0) y=1; }
}
else y=0;
整理课件
程序设计基本步骤
定义变量 产生数据 数据处理、计算 输出结果
整理课件
√
程序举例
编程1:判断某一年是否闰年。 能被4整除但不能被100整除的是闰年; 能被400整除的是闰年。
main( ) { int y; scanf("%d",&y);
if ((y%4==0&&y%100!=0)||(y%400==0)) printf("yes\n",y);
}
15 x 30 30 x 100 100 x 200 其它
整理课件
读程序段
m,n,x,y,z均为整型变量,求执行完该段 程序后各变量的值。
m=10;n=5;
x=(--m==n++)?--m:++n;
06c语言程序设计教案程序的控制结构—顺序结构

06c语言程序设计教案程序的控制结构—顺序结构int a=-1;printf(“%d,%o”,a,a);输出结果为:-1,177777这是因为-1在内存中以补码形式存放(见图3-2)。
八进制数为从低位开始,以三位一组划分为一个八进制数。
3)x格式符。
以十六进制数无符号形式输出整数。
例如:int a=-1;printf(“%x,%o,%d”,a,a,a);输出结果为:ffff,177777,-1十六进制数为从低位开始,见图3-2,以四位一组划分为一个数。
4)u格式符。
以十进制数无符号形式输出整数。
一个有符号的(int)型数据能够用%d格式输出,也能够用%u格式输出。
要注意两类数据的取值范畴大小。
例如:无符号数据的输出。
main(){unsigned int x=65535;int y=-1;printf(“x=%d,%o,%x,%u\n”,x,x,x,x);printf(“y=%d,%o,%x,%u\n”,y,y,y,y);}运行结果为:x=-1,177777,ffff,65535y=-1,177777,ffff,65535即-1的二进制形式以无符号形式输出时为整数65535。
5)c格式符。
用来输出一个字符。
例如:char x=’A’;printf(“%c,%d\n”,x,x);运行结果为:A,65能够看出,一个范畴在0~255的整数,既能够用%d格式输出,也能够用%c格式输出。
输出该整数或者整数对应ASCII的字符。
6)s格式符。
用来输出一个字符串,该格式有以下用法:①%s例如:printf(“%s”,”HELLO”);运行结果为:HELLO②%±ms,假如%ms字符串的实际宽度小于m,右对齐,左端补空格,%-ms,字符串左对齐,右端补空格;否则,不受m限制,输出实际宽度。
③%±m.ns,若%m.ns取字符串左端n个字符,输出在m列的右端,左端补空格;%-m.ns,取字符串左端n个字符,输出在m列的左侧,右侧补空格;若m<n,则m自动取n 值输出n个字符。
《C语言程序设计教程》第三版课后习题参考答案

《C语言程序设计教程》第三版课后习题参考答案C语言程序设计教程第三版课后习题参考答案第一章:C语言概述1.1 C语言的特点答案:C语言是一种通用的、面向过程的程序设计语言,具有高效、简洁、灵活等特点。
它提供了丰富的程序设计元素和功能,适用于各种不同的应用领域。
1.2 C语言程序的基本结构答案:C语言程序由预处理指令、函数声明、函数定义、变量声明和语句组成。
其中,预处理指令用来引入头文件或定义宏,函数声明用来声明函数的名称和参数,函数定义用来实现函数的功能,变量声明用来声明变量的类型和名称,语句用来表达具体的计算过程。
1.3 C语言的数据类型答案:C语言提供了多种数据类型,包括基本类型(整型、浮点型、字符型等)和派生类型(数组、指针、结构体等)。
每种数据类型在内存中占据一定的存储空间,并具有特定的取值范围和操作规则。
1.4 C语言的运算符和表达式答案:C语言支持各种运算符和表达式,例如算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。
通过运算符和表达式可以进行各种数值计算和逻辑判断。
第二章:基本数据类型与运算2.1 整型数据类型答案:C语言提供了不同长度的整型数据类型,包括有符号整型(int、long等)和无符号整型(unsigned int、unsigned long等)。
整型数据类型可以表示整数值,并具有不同的取值范围。
2.2 浮点型数据类型答案:C语言提供了浮点型数据类型(float、double等),用来表示带小数部分的实数值。
浮点型数据可以表示较大或较小的数值,并具有一定的精度。
2.3 字符型数据类型答案:C语言提供了字符型数据类型(char),用来表示单个字符。
字符型数据可以用于表示各种字符(包括字母、数字、符号等)。
2.4 布尔型数据类型答案:C语言不直接支持布尔型数据类型,但可以使用整型数据类型来表示布尔值(0表示假、非零表示真)。
c语言程序设计,(控制语句)

3第三章控制语句第三章控制语句3.1程序的基本结构程序的基本结构有三种:顺序结构、分支结构、循环结构前面的例子都是顺序结构,大量的实际问题需要通过各种控制流程来解决。
分支和循环结构的控制语句有:条件语句:if语句开关语句:switch语句循环语句:for语句、while语句、do while语句转移语句:break、continue、goto语句•简单语句:均是以“;”结尾的语句。
z=x+y;c=getchar();•复合语句:复合语句是用花招号“{ }”把“说明”和若干个有序的简单语句组合在一起而构成的语句集合。
其一般形式是:{<内部数据说明><语句表>}•复合语句实例:{int i,j,k;i=i+1;j=j*2;i=k<<j;}•空语句:空语句的含义是什么动作都不执行,语句本身仅有一个分号。
while (putchar(getchar())!='\0'); 空语句选择结构(分支结构)◆“选择结构”也可以叫做“分支结构”。
在一个合理的“选择结构”中,总是先进行某个条件的判断,然后根据判断的结果选择执行预先设定的操作。
◆要想实现“选择结构”,需要2个条件:①能表达条件判断的运算符;②能实现判断并选择的控制语句。
A B?Yes No ab3.3 if 语句if 语句的三种形式 if 语句的嵌套if 语句◆if 语句是一种选择控制语句,而且是条件分支控制语句,即总是先进行一个条件的判断,然后根据判断的结果(成立或不成立)选择执行预先设定的操作。
◆if 语句中的条件判断都是用一个表达式来表示的。
在执行if语句时,会求解这个表达式的逻辑值,因为这个表达式的逻辑值代表了判断的结果:值为“T”,判断成立,值为“F”,判断不成立。
因此,if 语句根据判断的结果(成立或不成立)选择执行预先设定的操作,实际上是根据条件判断表达式的逻辑值是“真”是“假”来选择的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21
22
3.2.2 if...else语句 语句功能:if...else语句的功能是根据不同 的条件分别执行不同的语句序列,进行不同的操作 。 格式:if(条件表达式) { 语句序列1; } else{ 语句序列2; }
23
3.2.2 if...else语句 语句的执行过程为: 先求出“条件表达式”的值,若其值为真(非0) ,则执行语句序列1;若“条件表达式”的值为假 (为0),则执行语句序列2,如图3.2所示。
第3章 控制结构
语句按功能可分为两类:一类用于描述计算 机执行的操作运算(如表达式语句),即操作运 算语句;另一类是控制上述操作运算的执行顺序 (如循环控制语句),即流程控制语句。编写程 序时最重要的就是要了解应用程序的控制结构。 控制结构通过流程控制语句来实现。在结构化程 序设计方法中,包含了三种基本结构:顺序结构 、选择结构和循环结构。
1
3.1 顺序结构程序设计
所谓顺序结构程序,就是指当程序被执行时, 系统按照语句在程序中的先后顺序一条一条地顺序 执行。顺序结构程序是最简单的程序结构,由最简 单的语句组成。
2
3.1.1 C++的基本语句 1)表达式语句。在C++程序中,最简单的语句 就是表达式语句。在任何一个表达式后面加上一个 分号便构成了一条表达式语句。 2)空语句。指只有分号的语句。 3)赋值语句。赋值语句是指由一个赋值表达 式和一个分号所组成的语句。 4)函数调用语句。函数调用语句是由函数调 用表达式加一个分号所构成的语句。
18
19
3.2 选择结构程序设计
所谓选择结构,是指在编程处理实际问题时, 根据问题的不同情况,做出不同的选择,执行不同 的操作。因此对于一个实际问题,常常要对某个或 某些条件进行判断,根据判断的结果做出相应的选 择。这样便形成了分支结构。
20
3.2.1 if语句 if语句用于在程序中有条件地执行某一语句序 列,其语法格式为: if(条件表达式) { 语句序列; } if语句的功能是:当条件表达式的值为真时,执行 语句序列,否则执行if语句的后续语句。其流程图 如图3.1所示。
15
16
3.1.4 简单的I/O格式控制 (5)控制正、负号的显示 在默认情况下,C++程序中的I/O流只在负数前 显示数值的负号。但有时也需要在正数之前显示数 值的正号,此时可以根据输出数值的正负,用控制 符setiosflags(ios::showpos)在数值前加上 “+”或“-”。
17
3.1.4 简单的I/O格式控制 (6)控制位填充 setw(n)可以用于确定显示输出的宽度。当要输 出的数据的实际宽度小于setw(n)确定的输出宽 度时,默认情况下,流使用空格符来填充数值前的 宽度,以保证输出的位数为n。若需其他的字符来 填充数值前的宽度,则可使用控制符setfill(c) 来确定填充的字符。setfill(c)控制符在头文件 iomanip.h中定义。
10
11
3.1.4 简单的I/O格式控制 (3)设置值的输出宽度 使用控制符setw(n)可以设定每个数据输出时占 用的宽度,即这个数据占用的最小字符长度。
12
13
3.1.4 简单的I/O格式控制 1)当用setw(n)设置的宽度小于输出数据的 实际宽度时,该设置无效,按数据的实际宽度输出 。 2)当用setw(n)设置的宽度大于输出数据的实际 宽度时,则在数据字符前填充空格,以满足设定的 宽度。 3)小数点也占一位宽度。 4)在setw(n)中,系统默认的n的值为0,即setw (0),其含义是按数据的实际宽度输出。 5)setw(n)控制符只影响它之后的数据,若 要对多个数据设置输出宽度,必须对每个数据都使 14 用setw(n)控制符。
4
3.1.3 预定义的插入符和提取符 (1)预定义的插入符 当需要实现一般的屏幕输出时,可以使用预定义的 插入符“<<”作用于流对象cout上。其格式为: cout<<表达式1<<表达式2<<…; 说明: 1)在输出语句中,可以将多个插入运算符串联书 写,输出多个数据项。 2)在插入运算符后面可以是任意的表达式, 系统在执行时会自动计算出表达式的值,然后再传 给插入符。
5
3.1.3 预定义的插入符和提取符 (2)预定义的抽取符 当需要实现最一般的键盘输入时,可以使用预定义 的抽取符“>>”作用于流对象cin上。 说明: 1)在输入语句中,可以将多个抽取运算符串联书 写,其后跟的表达式通常是要获得输入值的变量, 如上例。 2)cin允许将任何的基本数据类型的名字传给 流。
3.1.4 简单的I/O格式控制 (4)控制左右对齐 默认时,I/O流以左对齐方式显示输出内容。使用 setiosflags(ios::left)和setiosflags(ios ::right)可以控制输出内容的左、右对齐方式 。setiosflags(ios::left)和setiosflags( ios::right)控制符在头文件iomanip.h中。
6
3.1.4 简单的I/O格式控制
7
3.1.4 简单的I/O格式控制 (1)控制不同进制数的输出 默认情况下,程序以十进制(dec)形式输出数据 。若需以其他的形式输出数据,则可在输出流中使 用控制符oct、hex来实现。这三个控制符在头文件 iostr控制 (2)控制输出精度 使用setprecision(n)可以控制输出流显示 浮点数的精度,即控制浮点数显示的数字个数。 C++默认的流输出数值有效位数是6。
3
3.1.2 I/O流 在C++中,将数据从一个对象到另一个对象的 流动抽象为“流”。流在使用前要建立,使用后要 被删除。从流中获取数据的操作称为提取操作,向 流中添加数据的操作称为插入操作。C++中没有输 入/输出语句,程序中数据的输入/输出功能是由输 入函数(scanf函数)和输出函数(printf函数) 或I/O流来实现的,cin和cout是预定义的流对象。 cin用来处理标准输入,即键盘输入;cout用来处 理标准输出,即屏幕输出。