当前位置:
文档之家› 第3-1章 选择结构程序设计
第3-1章 选择结构程序设计
顺序结构 选择结构 循环结构
华中科技大学光电学院C语言程序设计
结构化程序设计的基本思想是: 任何程序都可以用三种基本结构的组合来 实现 这三种基本结构式:顺序结构、选择结构 和循环结构 这三种结构都具有一个入口和一个出口 要求限制无条件转移语句(即goto语句) 的使用
华中科技大学光电学院C语言程序设计
第3章 程序和流程控制
3.1 3.2 3.3 3.4
C语言程序的版式及语句 选择结构程序设计 循环结构程序设计 程序流程控制综合举例
华中科技大学光电学院C语言程序设计
§3.1 C语言程序的版式
编写C语言程序一般应包含如下几个部分 (1)注释部分:格式为"/*注释内容*/"或"//注释内容"; 在函数的最上端,一般都应有一段注释信息,主要说明函数的功 能,输入、输出及其限制;如是商品软件还应包含版权信息,在 程序的其他部分也可加注释。编程者要养成一边编程序、一边加 注释的习惯。一般长段的注释用"/*注释内容*/形式,短段的注 释用"//注释内容"形式。 (2)预处理块、全局变量说明等。(参见后面章节) (3)函数定义部分,包括函数类型,函数名及参数表,由 于只有一个函数故取名main(),由于无返回值故类型为void, 无参数输入时,main()内参数表为空。 (4)变量说明部分,对所用的变量进行说明; (5)数据输入部分,对要使用的变量赋初值,可直接或间 接输入,有些是在第(4)部分完成(即变量直接初始化); (6)执行部分,它是整个程序的核心,一般是对程序算法 用结构化程序设计方法进行描述,然后将其转化成对应的C语言 语句; (7)信息输出部分,根据要求输出所求的信息或返回结果; 有些是在第(6)部分一边执行一边输出。
华中科技大学光电学院C语言程序设计
switch (p)
p=p1 语句组1
p=p2 语句组2
p=p3 语句组3
……
p=pn 语句组n
其它 语句组n+1
图3.8 switch语句的流程控制
华中科技大学光电学院C语言程序设计
§3.2.2 switch 语句
switch 语句的格式和规则:
switch ( 表达式 ) case 常量1: case 常量2: …… case 常量n: default : } 语句块 1 语句块 2 语句块 n 语句块 n+1
华中科技大学光电学院C语言程序设计
§3.2.1 if语句的三种基本形式
注意:C语言中,条件表达式的值为非0时, 系统均按“真值”处理。 if(‘a’) printf(“ok”); x=-5;if(x) printf(“ok”); y=0; if(y==0) printf(“ok”); if(y) printf(“ok”);
开始 scanf r If r==10 -> area If r==20 -> perimeter 结束
华中科技大学光电学院C语言程序设计
§3.2.1 if语句 – 例题
例3.2-No.3: (1)输入两个实数,按从大 到小的顺序输出这两个数。
开始 scanf a,b If a>=b -> printf a,b If a<b -> printf b,a 结束
华中科技大学光电学院C语言程序设计
§ 3.2.2 switch多分支选择语句
switch也是分支选择语句,它可以是多分 支选择,而if语句只有两个分支可供选择。 虽然可以用嵌套的if语句来实现多分支选 择,但在某些情况下,当选择的分支比较 多且处理的功能要求比较高的情况下,如 果还采用嵌套的if语句来编程的话,那样 的程序不仅冗长难读而且效率不高,这就 是switch语句存在的理由。
华中科技大学光电学院C语言程序设计
§3.2.1 if语句 - if语句的嵌套
if(e1) if(e2) A else B else if(e3) C else D
根据条件多路分支
华中科技大学光电学院C语言程序设计
§3.2.1 if语句 - if语句的嵌套
嵌套规定: 1) else 与前面最近、未曾配对的if对应; if ( i > 0 ) {if ( i % 2 == 0 ) printf (“positive and even\n”); } else printf ( “positive and odd \n”);
华中科技大学光电学院C语言程序设计
§3.2.1 if语句 – 例题
例3.2-No.4: 输入两个小写字母, 然后按字母顺序排序 并输出。
开始 getchar ch1,ch2 If ch1>ch2 -> 交换ch1,ch2 putchar ch1,ch2
华中科技大学光电学院C语言程序设计
§3.2.1 if语句 – 例题
2)如果要改变规定1)中所确定的配对关系,即 else要与外层的if配对,则第二个if语句必须用 花括号括起来。
华中科技大学光电学院C语言程序设计
§3.2.1 if语句 – 例题
例3.2-No.8: 从键盘输入三个实数,求其最大者。
a>c a>b a<=c b>c a<=b b<=c : max=c : : max=c max=b : max=a
华中科技大学光电学院C语言程序设计
§3.2.1 if语句 – 例题
例3.2-No.3: (1)输入两个实数,按从大 到小的顺序输出这两个数; (2)输入两个实数,求最大 值并输出; (3)输入两个实数a,b,按 a>b的顺序排序,并输出;
开始 scanf a,b If a<b -> 交换a,b 结束
int i=2; switch(i) { case 0: printf(" case 1: printf(" case 2: printf(" case 3: printf(" case 4: printf(" default:printf(" }
}
ห้องสมุดไป่ตู้
a0=%d\n",i); a1=%d\n",i); a2=%d\n",i); a3=%d\n",i); a4=%d\n",i); a5=%d\n",i);
例3.2-No.5: 输入一个正整数,判 断其奇偶性。
开始 scanf number if number%2==1 -> odd else -> even 结束
华中科技大学光电学院C语言程序设计
§3.2.1 if语句 – 例题
开始 scanf score
Error: score<0 or >100 A: 90<=score<=100 B: 80<=score<90 C: 70<=score<80 D: 60<=score<70 E: 0<=score<60
华中科技大学光电学院C语言程序设计
§3.2.1 if语句的三种基本形式
第三种基本形式:阶梯式else if形式 int weather=9; if (weather == 1) printf(“rainy!”); else if (weather == 2) printf(“sunny!”); else if (weather == 3) printf(“cloudy!”); else if (weather == 4) printf(“snowy!”); else printf(“I don’t know!”);
§3.2.2 switch 多分支选择语句
华中科技大学光电学院C语言程序设计
§3.2.1 if语句的三种基本形式
第一种基本形式: 条件执行 if(e)A; int rain=1; 语句 条件 if (rain) printf(“Take an umbrella!”); or 用复合语句 if (rain) { printf(“Take an umbrella!”); printf(“Come back early!”); }
ifelse 选择 switch 流程控制语句
for 循环 while do while
break continue 辅助控制语句 goto return
C提供的流程控制语句
华中科技大学光电学院C语言程序设计
本节内容概述
§3.2.1
if 条件判断语句
1)If 语句的 3 种基本形式; 2)If 语句的嵌套;
例3.2-No.6:从键盘输入学生 的成绩,由计算机对于学生的 成绩进行分级:如果输入成绩 大于100或小于0,则作为错误 处理;若输入成绩大于等于90, 则为“A级”; 若输入成绩大 于等于80,则为“B级”; 若输 入成绩大于等于70,则为“C 级”; 若输入成绩大于等于60, 则为“D级”; 否则为“E 级”。
华中科技大学光电学院C语言程序设计
§3.2.1 if语句 – 例题
开始
例3.2-No.7:从键盘输入 一个字符,如果是数字字 符,则显示“D”; 如果 是小写字母,则显示“L”; 如果是大写字母,则显示 “U”;否则显示“P”。
(课堂练习)
scanf ch
D: 0<=ch<=9 L: a<=ch<=z U: A<=ch<=Z P: other
华中科技大学光电学院C语言程序设计
程序设计的一般方法 第一步:明确处理对象,选择合适的数 据结构和算法 第二步:画流程图
华中科技大学光电学院C语言程序设计
程序设计的一般方法 第三步:根据流程图编写程序
第四步:调试程序
华中科技大学光电学院C语言程序设计