第12练 第3章 分支结构程序设计综合 《C语言》 (第五版) 一课一练 (山东省)

2026-06-24
| 2份
| 12页
| 40人阅读
| 0人下载

内容正文:

【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《C语言》(第五版)《一课一练》第12练,内容是第3章 分支结构程序设计综合。 《C语言》(第五版)一课一练 第12练 第3章 分支结构程序设计综合 一、单选题 1. 以下关于C语言逻辑运算符的叙述,正确的是( ) A. 逻辑运算符的优先级高于关系运算符 B. ||运算符表示两边都为真时结果才为1 C. 逻辑与运算符&&的两边都为真时结果为1 D. 逻辑非运算符!可以作用于任何表达式 【答案】C 【解析】逻辑与运算符&&要求两边都为真时结果为1,C选项正确。逻辑运算符优先级低于关系运算符,A选项错误。||运算符有一边为真时结果就为1,B选项错误。!运算符作用于表达式得到逻辑值,不是任何表达式都能直接作为!的操作数来改变原值,D选项表述不严谨。 2. 以下if语句格式正确的是( ) A. if (x > 0) then printf("正数"); B. if x > 0 printf("正数"); C. if [x > 0] printf("正数"); D. if (x > 0) printf("正数"); 【答案】D 【解析】C语言if语句的条件必须用圆括号括起来,不需要then关键字。D选项格式正确,条件用圆括号括起。A选项使用了then关键字,这是Pascal语法。B选项缺少圆括号。C选项使用了方括号而非圆括号。 3. 设 int x=2; 执行以下代码后输出的结果是 switch(x) { case 1: printf("A"); break; case 2: printf("B"); case 3: printf("C"); break; default: printf("D"); }( ) A. 输出B B. 输出BD C. 输出BC D. 输出BCD 【答案】C 【解析】x的值为2,匹配case 2,输出B。由于case 2后面没有break语句,程序继续执行case 3,输出C。case 3后面有break,跳出switch结构。所以输出BC。缺少break会导致继续执行后续case,这称为穿透现象。 4. 设 int a=5, b=3; 则表达式 a > b ? a : b 的值为( ) A. 5 B. 3 C. 0 D. 8 【答案】A 【解析】条件表达式a>b?a:b先判断a>b即5>3为真,整个表达式的值为问号后面的a,即5。条件运算符?:是C语言中唯一的三目运算符。当条件为真时取冒号前面的值,为假时取冒号后面的值。 5. 设 int x=10; 执行以下代码后y的值是 y = (x > 5) ? (x > 15 ? 1 : 2) : 3;( ) A. y的值为1 B. y的值为3 C. y的值为10 D. y的值为2 【答案】D 【解析】先判断外层条件x>5即10>5为真,需要计算x>15?1:2。x>15即10>15为假,取值2。所以y的值为2。嵌套条件表达式从外向内逐层求值。 6. 设 int x=5, y=0; 执行以下代码后y的值是 switch(x) { case 1: y = 10; break; case 5: y = 20; case 10: y = y + 30; break; default: y = 40; }( ) A. y的值为20 B. y的值为50 C. y的值为30 D. y的值为40 【答案】B 【解析】x值为5,匹配case 5,y赋值为20。case 5后面没有break,继续执行case 10,y=20+30=50。case 10后面有break跳出switch。如果没有穿透,y应该为20,但因为缺少break导致继续执行。所以y的值为50。 7. 设 char grade='B'; 执行以下代码后输出的结果是 switch(grade) { case 'A': printf("优秀"); break; case 'B': printf("良好"); case 'C': printf("及格"); break; default: printf("不及格"); }( ) A. 输出"良好及格" B. 输出"良好" C. 输出"及格" D. 输出"优秀及格" 【答案】A 【解析】grade的值为'B',匹配case 'B',输出"良好"。case 'B'后面没有break,继续执行case 'C',输出"及格"。case 'C'后面有break跳出switch。因此最终输出"良好及格"。穿透现象使得连续输出两个信息。 二、简答题 8. 以下程序的运行结果是【 】。 #include <stdio.h> int main() { int x = 3; switch (x) { case 1: printf("A"); break; case 2: printf("B"); break; case 3: if (x > 2) printf("C"); else printf("D"); break; default: printf("E"); } return 0; } 【答案】C 【解析】x的值为3,匹配case 3。进入case 3后执行if(x>2),3>2为真,输出C。然后遇到break跳出switch。所以程序输出C。switch的case分支中可以包含if语句进行进一步判断。 三、案例分析题 9. 以下程序的功能是:输入一个百分制成绩,输出对应的等级。90分及以上为A,80到89为B,60到79为C,60分以下为D。请填空。 #include <stdio.h> int main() { int score; scanf("%d", &score); switch (【1】) { case 10: case 9: printf("A"); break; case 8: printf("B"); break; case 7: case 6: 【2】 default: 【3】 } return 0; } 【答案】【1】score / 10 【2】printf("C"); break; 【3】printf("D"); break; 【解析】switch语句需要将成绩转换为等级,用score/10将百分制成绩转换为十位数。90分及以上score/10为9和10,对应case 10和case 9输出A。80到89分score/10为8,对应case 8输出B。60到79分score/10为6和7,输出C,填printf("C");break;。default处理60分以下,输出D。 四、综合应用题 10. 编写一个C程序:从键盘输入一个百分制成绩(整数),输出对应等级。90分及以上为A,80到89分为B,60到79分为C,60分以下为D。 【答案】#include <stdio.h> int main() { int score; scanf("%d", &score); if (score >= 90) printf("A "); else if (score >= 80) printf("B "); else if (score >= 60) printf("C "); else printf("D "); return 0; } 【解析】使用if-else if-else结构按成绩从高到低依次判断。先判断是否大于等于90输出A,再判断是否大于等于80输出B,再判断是否大于等于60输出C,剩余情况输出D。判断顺序必须从高分到低分,否则无法正确分类。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《C语言》(第五版)《一课一练》第12练,内容是第3章 分支结构程序设计综合。 《C语言》(第五版)一课一练 第12练 第3章 分支结构程序设计综合 一、单选题 1. 以下关于C语言逻辑运算符的叙述,正确的是( ) A. 逻辑运算符的优先级高于关系运算符 B. ||运算符表示两边都为真时结果才为1 C. 逻辑与运算符&&的两边都为真时结果为1 D. 逻辑非运算符!可以作用于任何表达式 2. 以下if语句格式正确的是( ) A. if (x > 0) then printf("正数"); B. if x > 0 printf("正数"); C. if [x > 0] printf("正数"); D. if (x > 0) printf("正数"); 3. 设 int x=2; 执行以下代码后输出的结果是 switch(x) { case 1: printf("A"); break; case 2: printf("B"); case 3: printf("C"); break; default: printf("D"); }( ) A. 输出B B. 输出BD C. 输出BC D. 输出BCD 4. 设 int a=5, b=3; 则表达式 a > b ? a : b 的值为( ) A. 5 B. 3 C. 0 D. 8 5. 设 int x=10; 执行以下代码后y的值是 y = (x > 5) ? (x > 15 ? 1 : 2) : 3;( ) A. y的值为1 B. y的值为3 C. y的值为10 D. y的值为2 6. 设 int x=5, y=0; 执行以下代码后y的值是 switch(x) { case 1: y = 10; break; case 5: y = 20; case 10: y = y + 30; break; default: y = 40; }( ) A. y的值为20 B. y的值为50 C. y的值为30 D. y的值为40 7. 设 char grade='B'; 执行以下代码后输出的结果是 switch(grade) { case 'A': printf("优秀"); break; case 'B': printf("良好"); case 'C': printf("及格"); break; default: printf("不及格"); }( ) A. 输出"良好及格" B. 输出"良好" C. 输出"及格" D. 输出"优秀及格" 二、简答题 8. 以下程序的运行结果是【 】。 #include <stdio.h> int main() { int x = 3; switch (x) { case 1: printf("A"); break; case 2: printf("B"); break; case 3: if (x > 2) printf("C"); else printf("D"); break; default: printf("E"); } return 0; } 三、案例分析题 9. 以下程序的功能是:输入一个百分制成绩,输出对应的等级。90分及以上为A,80到89为B,60到79为C,60分以下为D。请填空。 #include <stdio.h> int main() { int score; scanf("%d", &score); switch (【1】) { case 10: case 9: printf("A"); break; case 8: printf("B"); break; case 7: case 6: 【2】 default: 【3】 } return 0; } 四、综合应用题 10. 编写一个C程序:从键盘输入一个百分制成绩(整数),输出对应等级。90分及以上为A,80到89分为B,60到79分为C,60分以下为D。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第12练 第3章 分支结构程序设计综合 《C语言》 (第五版) 一课一练 (山东省)
1
第12练 第3章 分支结构程序设计综合 《C语言》 (第五版) 一课一练 (山东省)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。