一、实验目标
- 能够正确使用
if语句实现两分支、多分支选择结构。 - 能够正确使用
switch语句实现多分支选择结构。 - 初步形成编写C程序解决复杂问题的能力。
二、知识回顾
1. if 语句实现两分支选择结构
-
语法形式:
if (表达式) 语句1; else 语句2; -
表达式可以是任意合法的C表达式。
-
语句1和语句2可以是单条语句或复合语句(用
{}括起来的多条语句)。 -
执行逻辑:若表达式为“真”(非0),执行语句1;否则执行语句2。
2. if 语句嵌套实现多分支选择结构
-
语法形式:
if (表达式1) 语句1; else if (表达式2) 语句2; else 语句3; -
注意事项:
else总是与它上面最近的未配对的if配对。- 可使用
{}明确配对关系,增强代码可读性。 - 建议缩进对齐,便于理解嵌套结构。
3. switch 语句实现多分支选择结构
-
语法形式:
switch (表达式) { case 常量1: 语句1; break; case 常量2: 语句2; break; // ... default: 语句n; } -
注意事项:
- 表达式必须是整型或字符型。
case后面的常量值必须互不相同,且与表达式类型一致。- 若无
break,程序会继续执行下一个case,直到遇到break或switch结束。 default分支可选,用于处理未匹配的情况。
三、实验内容与要点
1. 实验1:比较三个数大小(输出最小值)
-
使用两两比较法,先假设第一个数为最小,再依次与后两个数比较。
-
代码示例(整型):
if (min > b) min = b; if (min > c) min = c;
2. 实验2:计算小于等于1000的正数的平方根
-
使用
sqrt()函数(需包含<math.h>)。 -
注意输入数据合法性判断:
if (x <= 1000) { // 计算平方根 } else { // 提示输入过大 }
3. 实验3:分段函数计算
-
使用多分支
if-else if-else结构。 -
注意条件范围的划分,如:
if (x < 1) y = x; else if (x < 10) y = 2*x - 1; else y = 3*x - 11;
4. 实验4:百分制成绩转等级
-
方法一:使用
if-else if-else结构。 -
方法二:使用
switch结构,结合score/10进行等级匹配。 -
增强程序健壮性:添加输入合法性检查(0~100之间):
if (score > 100 || score < 0) { printf("成绩输入错误\n"); }
5. 实验5(思考题):三个数从小到大排序
-
方法一:最值法(找出最大值、最小值、中间值)。
-
方法二:排序法(两两比较并交换):
if (a > b) { temp = a; a = b; b = temp; } if (a > c) { temp = a; a = c; c = temp; } if (b > c) { temp = b; b = c; c = temp; }
四、重难点总结
重点
- 选择结构的构建方法。
if语句及其嵌套的使用。switch语句的使用。
难点
if嵌套的配对逻辑。switch语句中break的作用与使用时机。- 如何确保程序能覆盖所有可能的输入情况,增强程序的完备性和健壮性。
五、思考
- 如何优化三个数的排序算法?
- 是否能用更简洁的代码实现?