第5章程序控制结构与语句

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输入a,b,c T b>a 交换a,b T c>a 交换a,c T c>b 交换b,c
输出a,b,c
5.4.3 双分支选择结构——if-else语句
作用:当给定的条件满足时,执行一个语句;当条件 不满足时,执行另一个语句。
一般语法为:if (表达式)
true
表达式
false
语句1;
语句1
语句2
else
2. 嵌套在if分支中
true
表达式
false
语句1
语句2
5.4.4 多分支选择结构——if-else的嵌套形 式
1. 嵌套在else分支中,其形式为:
if (表达式1) 语句1;
T
表达式1
else if (表达式2) 语句2; 语句1 T
else if (表达式3) 语句3;
语句2
... ...
5.4.2 单分支选择结构——if语句
一般语法为: if(表达式;) 语句;
执行过程为:先计算表达式的值,如果表达式为非 0(即为真)时,则执行语句;否则不执行任何语句, 退出if语句,继续执行if语句之后的部分。
例如: if(x>y) printf(“%d”,x);
5.4.2 单分支选择结构——if语句
常用的转换说明及作用 【范例5-2】 计算圆的面积,半径由用户指定。
5.2.4 控制语句
C语言中有9种控制语句,它们分别是: if-else语句、for语句、while语句、do-while语句、 break语句、switch语句、goto语句、continue语句、 return语句
5.2.5 空语句和复合语句
5.5.2 当型循环语句——for语句
for循环的省略形式: ⑴ 省略“表达式1”,此时应在for语句之前给循环变量
赋初值。如: i=1;for(;i<=100;i++) sum+=i;
⑵ 省略“表达式2”,表示不判断循环条件,循环无终 止的进行下去,也可以认为表达式2始终为真。如: for(i=1;;i++) sum+=i;
注 意:else部分不能独立存在,即else前一定有一 个“;”,它一定是if语句的一部分。
【范例5-5】 判断输入的整数是否是13的倍数。
5.4.4 多分支选择结构——if-else的嵌套形 式
在if语句中又可以包含一个或多个if 语句,这种形 式称作if语句的嵌套。
嵌套有以下两种形式:
1. 嵌套在else分支中,形成if....else...if语句;
范例5-1
5.2.3 基本输入/输出语句
2、基本输入语句:scanf()
功能是接收用户从键盘上输入的数据,并按照格式控制符 的要求进行类型转换,然后送到由对应参数所指定的变量 单元中去。
一般格式为: scanf(格式控制串,参数地址1,参数地址2,…….); 例如:scanf(“%d%f”,&a,&b);
输入:10 3.0 ↙
&变量名
5.2.3 基本输入/输出语句
2、基本输 入语句:scanf()
转换说明 %d %f %c
输出形式 匹配带符号的十进制的int型 匹配带符号的十进制的浮点数 匹配单个字符
举例 scanf(“%d”,&a); scanf(“%f”,&a); scanf(“%c”,&a);
5.2.1 基本赋值语句
赋值语句就是在赋值表达式的后面加上分号,一 般形式为:
变量=表达式;
例如:
int i; float a=3.5;
i=1;
i=i+a;
a+1=a+1;
/*错误*/
5.2.2 表达式语句
由一个表达式加一个分号构成一个表达式语句, 一般形式为:
表达式;
5.2.3 基本输入/输出语句
%s
匹配非空白的字符序列
scanf(“%s”,&s);
%o
匹配带符号八进制数
%x
匹配带符号的十六进制数
scanf(“%o”.&a); scanf(“%x”,&a);
输入 输入20,则a为20 输入2.0,则a为2.000000 输入a,则a为’a’ 输入hello,则数组s中放置hello, 末尾自动加上空字符 输入754,则a为八进制754 输入123,则a为十六进制123
else 语句n;
F 表达式2
T 语句3
F 表达式3
F… 语句n
【范例5-6】 评价学生的成绩。按分数score输出等级:score≥90为优, 80≤score<90为良,70≤score<80为中等,60≤score<70为及格,score <60为不及格。
5.4.4 多分支选择结构——if-else的嵌套形 式
达式,也可以是逗号表达式,例如: for(i=0,j=100;i<j;i++,j--) k=i+j;
⑵ 循环条件可由一个较复杂表达式的值来确定,例如: for(i=0;s[i]!=c && s[i]!= '\0';++i);
⑶ 表达式2一般是关系表达式或逻辑表达式,但也可 以是数值表达式或字符表达式,只要其值不等于0 就执行循环体。如:for(k=1;k-4;k++) s=s+k;
……
执行;直到遇到break语句
case 常量表达式n:语句n;[break;] 或switch语句的”}”; 若
[default:语句n+1;]
表达式与任何常量表达式
}
的值均不一致时,则执行
default后面的语句或执行
后续语句。
5.4.5 多分支选择结构——switch语句
例如: switch(x) { case 1: printf(“statement 1.\n”); break;
2. 嵌套在if分支中,其形式为:
if(表达式1)
T
if(表达式2)
语句1; else
语句2;
T 表达式2
语句3
else 语句3;
表达式1 F
注意:C语言规定else总是与前面最 近的(未曾配对的)
if配对。
语句2
语句n
【范例5-7】 判断某学生的成绩score是否及格;如果及格是否达 到优秀(score≥90)。
转换说明
输出形式
举例
输出
%d
十进制的int型 printf(“count is %d”,34); count is 34
%f
十进制的double printf(“the max is
the max is

%f”,max=3.123);
3.123
%c
单个字符
printf(“**%c**”,a=’A’); **A**
1、基本输出语句:printf() 功能是按指定的输出格式把相应的参数值在标准输
出设备(通常是终端)上显示出来。 一般使用格式是: printf(格式控制串,参数1,参数2,……); 例如: printf("a,b的值分别为:%d,%d",a,b);
5.2.3 基本输入/输出语句
1、基本输出语句:printf()
%s
字符串
printf(“%s”,”hello world!”);
hello world!
%o
无符号八进制数
printf(“Oce=%o”,a=034 );
Oce=34
%x
无符号十六进制 数
printf(“Hex=%x”,a=0xF F4e);
Hex=FF4e
%% %本身
printf常(“a用%%的b=转=3”换); 说明a%及b=作=3用
f
n
f
2h 2
5.4 选择结构与语句
5.4.1 选择结构 5.4.2 单分支选择结构——if语句 5.4.3 双分支选择结构——if-else语句 5.4.4 多分支选择结构——if-else的嵌套形式 5.4.5 多分支选择结构——switch语句
5.4.1 选择结构
选择结构可以用分支语句来实现。 分支语句包括 if 语句和 switch 语句。
语句2;
流程图表示
其执行过程为:先计算表达式的值,如果表达式的值 为为非0(即为真)时,则执行语句1;否则执行语
句2。
5.4.3 双分支选择结构——if-else语句
例如:if(a>0) printf(“a is positive.\n”);
else printf(“a is not positive.\n”);
空语句只有一个分号构成,即: ;
如:while(getchar()!= ‘ \ n’ ) ; 复合语句就是用{ }把多个单一的语句括起来,如:
{ z=x+y; t=z/100; printf("%f",t);
}
5.3 顺序结构与语句
在顺序结构中,程序是按照语句的书写顺 序依次执行,语句在前的先执行,语句在 后的后执行。可用如下流程图表示:
计算表达式1 F
表达式2 T
循环体语句
计算表达式3
for后面的语句
5.5.2 当型循环语句——for语句
例如: sum=0; for(i=0;i<=100;i++) sum+=i;
可以将for语句的形式改写为: for(循环变量赋初值;循环条件;循环变量增值)
循环体语句;
5.5.2 当型循环语句——for语句
语句1 语句2
例如: a=3; b=4; c=a+b;
5.3 顺序结构与语句
【范例5-3】 “鸡兔同笼问题”。鸡有2只脚, 兔有4只脚,如果已经鸡和兔的总头数为h, 总脚数为f。问笼中各有多少只鸡和兔。
问题分析:
设笼中的鸡有m只,兔有n只,可以列出方程组:
m n h 2m 4n f
m
4h 2
case 2: printf(“statement 2.\n”); break; default: printf(“default”); } 说明:⑴ switch后的表达式类型一般为整形、字符型和枚举型, 但不能为浮点型; ⑵ 常量表达式i仅起语句标号作用,不作求值判断; ⑶ 每个常量表达式的值必须各不相同,没有先后次序; ⑷ 多个case语句可以共用一组执行语句
【范例5-8】 根据一个代表星期几的0到6之间的整数,在屏幕上输出它代表的是星期几。
5.5 循环结构与语句
5.5.1 循环结构 5.5.2 当型循环语句——for语句 5.5.3 当型循环语句——while语句 5.4.4 直到型循环语句——do-while语句 5.4.5 循环的嵌套
5.5.1 循环结构
第5章程序控制结构与语 句
2021年8月5日星期四
5.1 程序流程概述
程序流程就是计算动作执行的过程。 程序的流程分为三种:
顺序结构 选择结构 循环结构
5.2 语句
5.2.1 基本赋值语句 5.2.2 表达式语句 5.2.3 基本输入/输出语句 5.2.4 控制语句 5.2.5 空语句和复合语句
⑶ 省略“表达式3”,此时应在循环体内部实现循环变 量的增量,以保证循环能够正常结束。如: for(i=1;i<=100;) {sum+=i;i++}
5.4.5 多分支选择结构——switch语句
switch语句的一般语法格式为: 执行过程为:
switch(表达式)
先计算表达式的值,并逐
{
个与case后面的常量表达
case 常量表达式1:语句1;[break;] case 常量表达式2:语句2;[break;]
式的值相比较,当表达式 的值与某个常量表达式i的 值一致时,则从语句i开始
【范例5-10】 经典问题:打印出所有的“水仙花 数”,所谓“水仙花数”是指一个三位数,其各位 数字立方和等于该数本身。例如:153是一个“水仙 花数”,因为153=13+53+33。
【范例5-11】 计算n!,即n!=1*2*......*n。
5.5.2 当型循环语句——for语句
for循环的扩展形式: ⑴ 表达式1和表达式3可以是一个简单的一个简单的表
【范例5-4】输入三个不同的数,按从大到小 的顺序输出。
① 先将a与b比较,把较大者放在a中,较小者放 在b中;
② 再将a与c比较,把较大者放在a中,较小者放 在c中,此时,a为三者中的最大者;
③ 最后将b与c比较,把较大者放在b中,小者放 在c中,此时a、b、c已经按从大到小的顺序排 列。
5.4.2 单分支选择结构——if语句
循环结构是指在满足循环条件时反复执行循环代码 块,直到循环条件不能满足为止。
C中有3种循环语句:
while语句 do_while语句 for语句
【范例5-9】 计算100之内的奇数之和。
5.5.2 当型循环语句——for语句
一般语法格式为:
for(表达式1;表达式2;表达式3)
循环体语句;
执行过程如下: ① 计算表达式1的值; ② 判断表达式2,如果其值为非0(真),则 执行循环体语句,然后执行第③步;如果其值 为0(假),则结束循环,执行第⑤步; ③ 计算表达式3; ④ 返回继续执行第②步; ⑤ 循环结束,执行for语句的后续语句。
相关文档
最新文档