第10练 3.2-3.3 if语句嵌套、条件表达式、switch语句 《C语言》 (第五版) 一课一练 (山东省)

2026-06-24
| 2份
| 11页
| 42人阅读
| 0人下载

内容正文:

【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《C语言》(第五版)《一课一练》第10练,内容是3.2-3.3 if语句嵌套、条件表达式、switch语句。 《C语言》(第五版)一课一练 第10练 3.2-3.3 if语句嵌套、条件表达式、switch语句 一、单选题 1. 关于if语句的嵌套,以下叙述正确的是( ) A. if语句的嵌套层数不能超过2层 B. if语句可以嵌套使用,内层if可以写在另一个if的执行体中 C. else总是与最外层的if配对 D. 嵌套的if语句不能包含else部分 2. 以下关于switch语句的叙述,正确的是( ) A. switch语句中case后面的值必须是整型常量表达式 B. switch语句中case后面的值可以是变量 C. switch语句中可以没有default分支 D. switch的表达式可以是浮点型 3. 设 int a=5, b=3; 则表达式 a > b ? a : b 的值为( ) A. 0 B. 1 C. 5 D. 3 4. 在switch语句中,break的作用是( ) A. 终止整个程序的运行 B. 跳过当前case继续判断下一个case C. 结束当前循环的本次迭代 D. 终止当前switch语句的执行,跳出switch结构 5. 以下代码段的输出结果是 int x = 3; if (x > 5) if (x > 10) printf("A"); else printf("B"); else printf("C");( ) A. A B. B C. C D. BC 6. 以下代码段的输出结果是 int n = 2; switch (n) { case 1: printf("A"); case 2: printf("B"); case 3: printf("C"); default: printf("D"); }( ) A. BCD B. B C. BD D. ABCD 7. 以下与语句 if (a > b) c = a; else c = b; 功能等价的是( ) A. c = a > b ? b : a; B. if (a > b) c = b; else c = a; C. c = a > b, a : b; D. c = a > b ? a : b; 二、简答题 8. 以下程序的运行结果是【 】。 #include <stdio.h> int main() { int x = 15; switch (x / 10) { case 0: printf("E "); break; case 1: printf("D "); case 2: printf("C "); break; default: printf("B "); } return 0; } 三、案例分析题 9. 以下程序的功能是:输入一个1到7的整数,输出对应的星期几名称。请填空。 #include <stdio.h> int main() { int day; scanf("%d", &day); switch (【1】) { case 1: printf("Monday "); 【2】; case 2: printf("Tuesday "); break; case 3: printf("Wednesday "); break; case 4: printf("Thursday "); break; case 5: printf("Friday "); break; case 6: printf("Saturday "); break; case 7: printf("Sunday "); break; 【3】: printf("Input error "); break; } return 0; } 四、综合应用题 10. 编写一个C程序:从键盘输入一个百分制成绩(0到100的整数),根据分数输出对应的等级。90分及以上为A,80到89分为B,70到79分为C,60到69分为D,60分以下为E。使用switch语句实现。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《C语言》(第五版)《一课一练》第10练,内容是3.2-3.3 if语句嵌套、条件表达式、switch语句。 《C语言》(第五版)一课一练 第10练 3.2-3.3 if语句嵌套、条件表达式、switch语句 一、单选题 1. 关于if语句的嵌套,以下叙述正确的是( ) A. if语句的嵌套层数不能超过2层 B. if语句可以嵌套使用,内层if可以写在另一个if的执行体中 C. else总是与最外层的if配对 D. 嵌套的if语句不能包含else部分 【答案】B 【解析】if语句可以多层嵌套,嵌套层数没有限制,A错误。else与最近的未配对if配对,C错误。嵌套的if可以包含else,D错误。内层if可以写在外层if的执行体中,这是常见的嵌套方式。 2. 以下关于switch语句的叙述,正确的是( ) A. switch语句中case后面的值必须是整型常量表达式 B. switch语句中case后面的值可以是变量 C. switch语句中可以没有default分支 D. switch的表达式可以是浮点型 【答案】A 【解析】case后面的值必须是整型常量表达式,不能是变量与浮点数。switch的表达式也必须是整型与字符型,D错误。虽然可以没有default,但A更准确地描述了语法要求。B错误因为case值不能是变量。 3. 设 int a=5, b=3; 则表达式 a > b ? a : b 的值为( ) A. 0 B. 1 C. 5 D. 3 【答案】C 【解析】条件表达式的一般形式为:表达式1?表达式2:表达式3。当表达式1为真时取表达式2的值,为假时取表达式3的值。a>b即5>3为真,取a的值5。条件表达式在这里的功能是求两个数中的较大值。 4. 在switch语句中,break的作用是( ) A. 终止整个程序的运行 B. 跳过当前case继续判断下一个case C. 结束当前循环的本次迭代 D. 终止当前switch语句的执行,跳出switch结构 【答案】D 【解析】break在switch中的作用是跳出整个switch结构,不再执行后面的case。如果缺少break,程序会从匹配的case开始顺序执行后面所有case的语句,直到遇到break以及switch结束。C描述的是break在循环中的作用。 5. 以下代码段的输出结果是 int x = 3; if (x > 5) if (x > 10) printf("A"); else printf("B"); else printf("C");( ) A. A B. B C. C D. BC 【答案】C 【解析】第一个if判断x>5即3>5不成立,执行外层else输出C。内层if(x>10)和紧接的else都不会被执行,因为外层条件已经为假,程序直接跳到外层else。else与最近的if配对是关键。 6. 以下代码段的输出结果是 int n = 2; switch (n) { case 1: printf("A"); case 2: printf("B"); case 3: printf("C"); default: printf("D"); }( ) A. BCD B. B C. BD D. ABCD 【答案】A 【解析】n的值为2,匹配case 2,输出B。由于case 2后没有break语句,发生穿透现象,继续执行case 3输出C,再执行default输出D。最终输出BCD。这就是switch缺少break时的穿透效果。 7. 以下与语句 if (a > b) c = a; else c = b; 功能等价的是( ) A. c = a > b ? b : a; B. if (a > b) c = b; else c = a; C. c = a > b, a : b; D. c = a > b ? a : b; 【答案】D 【解析】原语句功能为取a和b中的较大值赋给c。条件表达式a>b?a:b当a>b为真时取a为假时取b,与原语句功能完全相同。A选项取的是较小值。B选项把赋值反了。C选项语法错误,缺少问号。正确答案是D。 二、简答题 8. 以下程序的运行结果是【 】。 #include <stdio.h> int main() { int x = 15; switch (x / 10) { case 0: printf("E "); break; case 1: printf("D "); case 2: printf("C "); break; default: printf("B "); } return 0; } 【答案】D C 【解析】x/10即15/10得1,匹配case 1输出D。case 1后面没有break,穿透到case 2输出C。case 2后面有break,跳出switch。因此先输出D再输出C,分两行显示。注意穿透发生在case 1到case 2之间。 三、案例分析题 9. 以下程序的功能是:输入一个1到7的整数,输出对应的星期几名称。请填空。 #include <stdio.h> int main() { int day; scanf("%d", &day); switch (【1】) { case 1: printf("Monday "); 【2】; case 2: printf("Tuesday "); break; case 3: printf("Wednesday "); break; case 4: printf("Thursday "); break; case 5: printf("Friday "); break; case 6: printf("Saturday "); break; case 7: printf("Sunday "); break; 【3】: printf("Input error "); break; } return 0; } 【答案】【1】day 【2】break 【3】default 【解析】switch括号中应为要判断的变量day。case 1后面缺少break语句,如果不加break会穿透到case 2输出Tuesday,因此填break。最后一个分支应处理所有不匹配的情况,使用default关键字。default用于处理1到7之外的输入。 四、综合应用题 10. 编写一个C程序:从键盘输入一个百分制成绩(0到100的整数),根据分数输出对应的等级。90分及以上为A,80到89分为B,70到79分为C,60到69分为D,60分以下为E。使用switch语句实现。 【答案】#include <stdio.h> int main() { int score; scanf("%d", &score); switch (score / 10) { case 10: case 9: printf("A "); break; case 8: printf("B "); break; case 7: printf("C "); break; case 6: printf("D "); break; default: printf("E "); break; } return 0; } 【解析】利用score/10将分数转换为0到10的整数,作为switch的判断表达式。100分和90到99分除以10都得9和10,case 10穿透到case 9输出A。80到89除以10得8,输出B,依此类推。60分以下除以10得0到5,由default处理输出E。每个case后必须有break防止穿透。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第10练 3.2-3.3 if语句嵌套、条件表达式、switch语句 《C语言》 (第五版) 一课一练 (山东省)
1
第10练 3.2-3.3 if语句嵌套、条件表达式、switch语句 《C语言》 (第五版) 一课一练 (山东省)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。