专题四 选择结构 (讲义)-《程序设计基础》高考备考讲练测(广西)

2025-05-27
| 9页
| 90人阅读
| 1人下载
精品

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 高一
章节 -
类型 教案-讲义
知识点 分支结构
使用场景 中职复习
学年 2025-2026
地区(省份) 广西壮族自治区
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 144 KB
发布时间 2025-05-27
更新时间 2025-05-27
作者 xkw_076789343
品牌系列 上好课·一轮讲练测
审核时间 2025-05-27
下载链接 https://m.zxxk.com/soft/52309802.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

专题四 选择结构 【考纲要求】 知识要点 考试条目 3.选择结构程序设计 (3)掌握 if 语句的使用; (5)掌握 switch 语句的使用。 【课时安排】 2课时 【知识梳理】 IF 语句 C语言中的选择结构是程序流程控制的重要组成部分,它允许根据不同的条件执行不同的代码块。 if语句是一种基本的控制结构,用于根据条件执行不同的代码块。 一、单分支结构(if) 语法: if (条件表达式) { // 条件为真时执行的代码 } 示例: int age = 18; if (age >= 18) { printf("已成年! "); } 二、双分支结构(if-else) 语法: if (条件表达式) { // 条件为真时执行的代码 } else { // 条件为假时执行的代码 } 示例: int num = 5; if (num % 2 == 0) { printf("偶数 "); } else { printf("奇数 "); } 三、多分支结构(else if) 语法: if (条件1) { // 条件1为真时执行 } else if (条件2) { // 条件2为真时执行 } else { // 所有条件都不满足时执行 } 示例(成绩等级判断): int score = 85; if (score >= 90) { printf("A "); } else if (score >= 80) { printf("B "); } else if (score >= 60) { printf("C "); } else { printf("不及格 "); } 四、嵌套 if 结构 if 语句可以多层嵌套,但需注意代码可读性: int age = 20; char gender = 'M'; if (age >= 18) { if (gender == 'M') { printf("成年男性 "); } else { printf("成年女性 "); } } 五、? : 运算符(三元运算符) 条件运算符 ? :,可以用来替代 if...else 语句。它的一般形式如下: Exp1 ? Exp2 : Exp3; 其中,Exp1、Exp2 和 Exp3 是表达式。请注意,冒号的使用和位置。 ? 表达式的值是由 Exp1 决定的。如果 Exp1 为真,则计算 Exp2 的值,结果即为整个表达式的值。如果 Exp1 为假,则计算 Exp3 的值,结果即为整个表达式的值。 Switch 语句 switch 语句是C语言中用于处理多分支选择的结构,适用于基于同一变量或表达式的不同离散值进行条件判断的场景。 一、基本语法结构 switch (表达式) { case 常量1: 代码块1; break; case 常量2: 代码块2; break; ... default: 默认代码块; } 关键组成: 表达式:必须为整型(int、char)或枚举类型,不支持浮点型或字符串。 case 常量:必须是编译时常量(如 5、'A'),不能是变量或范围表达式。 Break:用于跳出当前 case,避免执行后续代码(即“case穿透”)。 Default:处理未匹配所有 case 的情况,可选且位置灵活。 二、执行流程 计算表达式值:根据结果与各 case 常量进行严格值匹配。 匹配成功:执行对应 case 后的代码块,遇到 break 则退出 switch。 匹配失败:若存在 default,执行其代码块;否则跳过整个 switch。 穿透现象:若某 case 后无 break,代码会继续执行后续所有 case 的代码,直到遇到 break 或结束。 三、代码示例 示例1:基础用法(判断星期) int day = 3; switch (day) { case 1: printf("周一 "); break; case 2: printf("周二 "); break; case 3: printf("周三 "); break; default: printf("无效输入 "); } // 输出:周三 示例2:利用穿透(判断元音字母) char ch = 'e'; switch (ch) { case 'a': case 'e': // 穿透到下一case case 'i': case 'o': case 'u': printf("元音字母 "); break; default: printf("非元音字母 "); } // 输出:元音字母 四、注意事项与常见错误 1. 表达式类型错误 float f = 2.5; switch (f) { // 错误!表达式不能为浮点型 // ... } 2. case 后使用变量 int x = 10; switch (n) { case x: // 错误!x 是变量,非常量 // ... } 3. 遗漏 break 导致穿透 int num = 1; switch (num) { case 1: printf("1"); // 无 break case 2: printf("2"); break; } // 输出:12(穿透到 case 2) 4. default 的位置 switch (x) { default: printf("未知"); // 合法但不推荐 break; case 1: printf("1"); break; } 【限时练习】 1.以下关于switch语句的描述,正确的是( ) A. switch的表达式可以是float类型 B. case标签后必须是常量表达式 C. default子句必须放在switch的末尾 D. 每个case分支必须包含break 【答案】B 2.执行以下代码后,输出结果是( ) int x = 3; switch (x) { case 1: printf("A"); case 2: printf("B"); case 3: printf("C"); case 4: printf("D"); break; default: printf("E"); } A. C B. CD C. CDE D. ABCD 【答案】B 3. 以下代码的输出是( ) int a = 2; if (a = 0) printf("True"); else printf("False"); A. True B. False C. 编译错误 D. 运行时错误 【答案】B 4.以下代码的输出是( ) int main() { int score = 85; if (score >= 90) { printf("A"); }else if (score >= 80){ printf("B"); }else if (score >= 70) { printf("C"); }else{ printf("D"); } } A. A B. B C. C D. D 【答案】B 5.以下能正确判断闰年的代码是( ) A. if (year%4==0) printf("闰年"); B. if (year%400==0) printf("闰年"); C. if (year%4==0 && year%100!=0) printf("闰年"); D. if (year%400==0 || year%4==0 && year%100!=0) printf("闰年"); 【答案】D 6.switch语句的表达式可以是double类型。( ) 【答案】× 7.每个switch语句都必须包含default子句。 【答案】× 8.break语句可以用于终止switch语句。( ) 【答案】√ 9.补全代码,使其能根据输入的月份输出对应的季节 int month; scanf("%d", &month); switch (month) { ______ printf("春季"); ______; case 6: case 7: case 8: printf("夏季"); break; case 9: case 10: case 11: printf("秋季"); break; case 12: case 1: case 2: printf("冬季"); break; default: printf("无效月份"); } 【答案】case 3: case 4: case 5:,break; 10.补全代码,使其能正确计算分段函数: double x, y; scanf("%lf", &x); if (x < 0) { y = -x; } ______ (x <= 10) { y = x * x; } else { ______ ; } printf("y=%.2lf", y); 【答案】else if,y = 2 * x - 1 11. 编写程序:输入一个字符,判断其类型(字母、数字、空格、其他)。 答案: #include <stdio.h> int main() { char c; scanf("%c", &c); if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) printf("字母"); else if (c >= '0' && c <= '9') printf("数字"); else if (c == ' ') printf("空格"); else printf("其他"); return 0; } 12. . 编写程序:输入年份和月份,输出该月的天数(需考虑闰年) 答案: #include <stdio.h> int main() { int year, month, days; scanf("%d%d", &year, &month); switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 4: case 6: case 9: case 11: days = 30; break; case 2: if ((year%400==0) || (year%4==0 && year%100!=0)) days = 29; else days = 28; break; default: printf("无效月份"); return 1; } printf("%d年%d月有%d天", year, month, days); return 0; } 【内容小结】 学科网(北京)股份有限公司 $$

资源预览图

专题四 选择结构 (讲义)-《程序设计基础》高考备考讲练测(广西)
1
专题四 选择结构 (讲义)-《程序设计基础》高考备考讲练测(广西)
2
专题四 选择结构 (讲义)-《程序设计基础》高考备考讲练测(广西)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。