第20卷 C语言-C语言卷7——switch语句实现多分支选择——江苏省计算机类——考纲百套卷

2026-06-30
| 2份
| 19页
| 7人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 题集-专项训练
知识点 分支结构
使用场景 中职复习-中职高考
学年 2027-2028
地区(省份) 江苏省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 94 KB
发布时间 2026-06-30
更新时间 2026-06-30
作者 xy06893
品牌系列 学易金卷·考纲百套卷
审核时间 2026-06-30
下载链接 https://m.zxxk.com/soft/58571354.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。 本试卷是第20卷为专业核心模块训练卷,按《C语言》中"C语言卷7——switch语句实现多分支选择"范围和要求编写。具体内容为:理解switch语句实现多分支选择。 江苏省对口招生职业技能考试 C语言 试卷 (C语言卷7——switch语句实现多分支选择) 考试时间:90分钟 满分:100分 一、单项选择题(共20题,每题2分,共40分) 1. switch语句中,用于进行多分支选择的关键字是( ) A.if关键字 B.case关键字 C.switch关键字 D.break关键字 2. 在switch语句中,每个case后面跟的是什么类型的常量( ) A.浮点常量(如3.14) B.字符常量或整数常量 C.字符串常量 D.任意类型的常量 3. switch语句中,用于终止某个case执行并跳出switch的语句是( ) A.stop B.exit C.break D.end 4. switch语句中,当所有case都不匹配时执行的子句是( ) A.error子句 B.else子句 C.default子句 D.other子句 5. 以下关于 C/C++ 中 switch 语句的说法,正确的是( ) A. switch 后面的表达式可以是 float 类型,编译时会自动转换为 int 比较 B. 如果所有 case 都不匹配且没有 default,程序会跳过整个 switch 结构继续执行 C. 每个 case 标签后必须使用 break,否则程序会报编译错误 D. 多个 case 标签不能共享同一段执行代码 6. 若case后没有break语句,程序会( ) A.产生编译错误 B.产生运行错误 C.继续执行下一个case(贯穿现象) D.立即终止switch 7. switch语句的括号中,表达式的值类型必须是( ) A.浮点型 B.字符型或整型 C.字符串型 D.任意类型 8. 下列关于default子句,正确的是( ) A.default必须放在所有case的最后 B.default可以省略不写 C.default可以出现在任何位置且最多只能有一个 D.一个switch可以有多个default 9. 下列switch语句格式正确的是( ) A.switch x B.switch(x) C.switch x; D.switch{x} 10. 在switch中,case后常量的值( ) A.可以相同 B.必须互不相同 C.可以重复出现 D.没有特殊限制 11. 想要根据成绩等级'A'、'B'、'C'输出不同信息,最适合的控制结构是( ) A.if语句 B.if...else语句 C.switch语句 D.while循环语句 12. switch语句结束后,程序从( )继续执行 A.switch开始处 B.switch结构后的第一条语句 C.程序终止 D.不确定位置 13. 下列关于switch的贯穿现象,正确的是( ) A.贯穿现象是程序错误 B.贯穿现象是有意为之的设计 C.贯穿现象指没有break时继续执行后续case D.贯穿现象只出现在default中 14. switch语句可以嵌套使用吗( ) A.不可以嵌套 B.可以嵌套,内层外层switch互不影响 C.只能嵌套一层 D.只能嵌套两层 15. 字符类型可以作为switch的表达式是因为( ) A.字符类型就是整数类型(存储ASCII码) B.C语言特殊规定允许 C.字符类型会自动转换 D.字符类型不能用在switch中 16. 下列能正确跳出switch语句的是( ) A.stop关键字 B.break关键字 C.exit关键字 D.end关键字 17. 下列关于case子句,正确的是( ) A.case后面必须是变量 B.case后面必须是常量表达式 C.case后面可以是任意表达式 D.case后面不需要具体值 18. break语句在switch中的作用是( ) A.终止整个程序 B.跳出当前switch结构 C.终止当前循环 D.跳过本次循环迭代 19. 若switch表达式的值与所有case都不匹配,且没有default子句,则( ) A.程序崩溃 B.程序报编译错误 C.不执行任何case,直接跳出switch D.执行第一个case 20. 下列关于switch和if...else的比较,正确的是( ) A.switch可以方便地处理范围判断 B.if...else可以方便地处理范围判断 C.switch比if...else效率一定更高 D.switch可以替代所有的if...else 二、判断题(共10题,每题1分,共10分) 21. switch语句的表达式可以是浮点类型( ) 22. 每个case后面的常量值必须互不相同( ) 23. default子句必须放在所有case子句的最后( ) 24. 若case后没有break语句,程序会继续执行下一个case( ) 25. switch语句中必须有default子句( ) 26. break语句在switch中的作用是跳出switch结构( ) 27. 字符类型可以作为switch的表达式( ) 28. switch语句可以嵌套( ) 29. case子句后面必须是常量表达式( ) 30. switch语句只能进行等值判断,不能进行范围判断( ) 三、填空题(共10空,每空2分,共20分) 31. switch语句使用关键字____开始多分支选择结构。 32. 在switch语句中,每个分支以关键字____开始。 33. 用于终止case执行并跳出switch的关键字是____。 34. 当所有case都不匹配时执行的子句以关键字____开始。 35. 若case后没有break,会产生____现象(贯穿)。 36. switch表达式的值必须是____类型或可以转换为该类型。 37. 各case后的常量值必须互不相同,否则会产生____错误。 38. default子句在switch中可以省略,但不是好的____习惯。 39. switch语句结束后,程序从switch结构____的第一条语句继续执行。 40. 在switch中,字符类型可以用是因为字符在内存中存储的是____值。 四、程序综合题(共3题,每题10分,共30分) 41. 程序阅读题:阅读下列程序,写出运行结果。 #include <stdio.h> int main() { int n=2; switch(n) { case 1: printf("One "); case 2: printf("Two "); case 3: printf("Three "); break; default: printf("Other "); } printf("End "); return 0; } 42. 程序填空题:阅读下列程序,请将①~④表示的内容填写完整。 (1) #include <stdio.h> (2) int main() (3) { (4) int day=3; (5) switch(day) (6) { (7) case 1: printf("Mon"); break; (8) case 2: printf("Tue"); break; (9) case 3: printf("Wed"); break; (10) case 4: printf("Thu"); break; (11) default: printf("Other"); (12) } (13) return 0; (14) } 上述程序中,switch后面的表达式类型是①____,第9行执行后输出②____, break语句的作用是③____,若去掉所有break,day=2时输出④____。 43.文件perfect.txt中存放一个正整数(位数≥5)。用削峰法删除3个数字,判断新数是否为完全数(等于其真因子之和),若是则输出。请完善程序。 #include<stdio.h> #include<string.h> #include<stdlib.h> #define DEL 3 int is_perfect(int n); int find_perfect(char strn[],int deln); int main() { char strn[50]; int result; FILE *fp=fopen("perfect.txt","r"); fscanf(fp,"%s",strn); fclose(fp); result=find_perfect(strn,DEL); if(result>0)printf("完全数:%d ",result); else printf("不存在"); return 0; } int is_perfect(int n) { int i,sum=0; for(i=1;i<n;i++) if(①)sum+=i; return sum==n; } int find_perfect(char strn[],int deln) { int lenth=strlen(strn); int i,k,dn,num; for(dn=1;dn<=deln;dn++) { i=0; while(strn[i]>=strn[i+1]&&i<lenth-dn) i++; for(k=i;k<lenth-dn;k++) ②; } num=0; for(k=0;k<lenth-deln;k++) num=num*10+strn[k]-'0'; if(③)return num; return -1; } 学科网(北京)股份有限公司 $ 编写说明:江苏省对口招生计算机类《考纲百套卷》,依据《江苏省计算机类专业综合理论考试大纲》编写。本专辑涵盖5门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。 本试卷是第20卷为专业核心模块训练卷,按《C语言》中"C语言卷7——switch语句实现多分支选择"范围和要求编写。具体内容为:理解switch语句实现多分支选择。 江苏省对口招生职业技能考试 C语言 试卷 (C语言卷7——switch语句实现多分支选择) 考试时间:90分钟 满分:100分 一、单项选择题(共20题,每题2分,共40分) 1. switch语句中,用于进行多分支选择的关键字是( ) A.if关键字 B.case关键字 C.switch关键字 D.break关键字 【答案】C 【解析】switch关键字用于开始一个多分支选择结构。 2. 在switch语句中,每个case后面跟的是什么类型的常量( ) A.浮点常量(如3.14) B.字符常量或整数常量 C.字符串常量 D.任意类型的常量 【答案】B 【解析】case后面必须是整型或字符型常量表达式。 3. switch语句中,用于终止某个case执行并跳出switch的语句是( ) A.stop B.exit C.break D.end 【答案】C 【解析】break语句用于终止当前case的执行,跳出switch结构。 4. switch语句中,当所有case都不匹配时执行的子句是( ) A.error子句 B.else子句 C.default子句 D.other子句 【答案】C 【解析】default子句处理所有case都不匹配的情况。 5. 以下关于 C/C++ 中 switch 语句的说法,正确的是( ) A. switch 后面的表达式可以是 float 类型,编译时会自动转换为 int 比较 B. 如果所有 case 都不匹配且没有 default,程序会跳过整个 switch 结构继续执行 C. 每个 case 标签后必须使用 break,否则程序会报编译错误 D. 多个 case 标签不能共享同一段执行代码 【答案】A 【解析】A 错:switch 表达式必须是整数类型(int、char、enum 等)或能隐式转换为整数的类型,浮点型编译直接报错,不会自动转换;B 对:如果所有 case 不匹配且没有 default,则直接跳过 switch 块,这是标准行为;C 错:break 是可选的。没有 break 会发生“穿透”(fall-through),继续执行下一个 case 的代码,直到遇到 break 或 switch 结束;D 错:多个 case 可以共享代码 6. 若case后没有break语句,程序会( ) A.产生编译错误 B.产生运行错误 C.继续执行下一个case(贯穿现象) D.立即终止switch 【答案】C 【解析】没有break会产生贯穿(fall through)现象,继续执行下一个case。 7. switch语句的括号中,表达式的值类型必须是( ) A.浮点型 B.字符型或整型 C.字符串型 D.任意类型 【答案】B 【解析】switch表达式必须是整型或可以转换为整型的类型(如char、enum)。 8. 阅读以下代码,当输入 n = 2 时,程序的输出结果是( ) int n; scanf("%d", &n); switch (n) { case 1: printf("One "); case 2: printf("Two "); default: printf("Default "); case 3: printf("Three "); } A. Two B. Two Default C. Two Default Three D. Two Three 【答案】C 【解析】这是经典的 switch 穿透陷阱题,考查对执行流程的理解: 1. n = 2,匹配到 case 2。 2. 执行 printf("Two "),此处没有 break,所以不会跳出,而是继续向下穿透。 3. 执行 default 的 printf("Default ")(注意 default 位置虽在 case 3 前,但仍会执行)。 4. 继续穿透到 case 3,执行 printf("Three ")。 5. 遇到 switch 右花括号,结束。 因此完整输出是 Two Default Three(注意末尾无空格不影响答案)。 9. 下列switch语句格式正确的是( ) A.switch x B.switch(x) C.switch x; D.switch{x} 【答案】B 【解析】switch语句格式为switch(表达式)。 10. 在switch中,case后常量的值( ) A.可以相同 B.必须互不相同 C.可以重复出现 D.没有特殊限制 【答案】B 【解析】各case后的常量值必须互不相同,否则会导致编译错误。 11. 想要根据成绩等级'A'、'B'、'C'输出不同信息,最适合的控制结构是( ) A.if语句 B.if...else语句 C.switch语句 D.while循环语句 【答案】C 【解析】根据单个表达式的多个离散值进行选择,switch语句最合适。 12. switch语句结束后,程序从( )继续执行 A.switch开始处 B.switch结构后的第一条语句 C.程序终止 D.不确定位置 【答案】B 【解析】switch结构结束后,程序从switch后的第一条语句继续执行。 13. 下列关于switch的贯穿现象,正确的是( ) A.贯穿现象是程序错误 B.贯穿现象是有意为之的设计 C.贯穿现象指没有break时继续执行后续case D.贯穿现象只出现在default中 【答案】C 【解析】贯穿(fall through)指一个case执行完后没有break,继续执行下一个case。 14. switch语句可以嵌套使用吗( ) A.不可以嵌套 B.可以嵌套,内层外层switch互不影响 C.只能嵌套一层 D.只能嵌套两层 【答案】B 【解析】switch语句可以嵌套,内层和外层switch互不干扰。 15. 字符类型可以作为switch的表达式是因为( ) A.字符类型就是整数类型(存储ASCII码) B.C语言特殊规定允许 C.字符类型会自动转换 D.字符类型不能用在switch中 【答案】A 【解析】字符在内存中存储的是ASCII码值(整数),所以可以用在switch中。 16. 下列能正确跳出switch语句的是( ) A.stop关键字 B.break关键字 C.exit关键字 D.end关键字 【答案】B 【解析】break关键字用于跳出switch结构。 17. 下列关于case子句,正确的是( ) A.case后面必须是变量 B.case后面必须是常量表达式 C.case后面可以是任意表达式 D.case后面不需要具体值 【答案】B 【解析】case后面必须是编译时可求值的整型或字符型常量表达式。 18. break语句在switch中的作用是( ) A.终止整个程序 B.跳出当前switch结构 C.终止当前循环 D.跳过本次循环迭代 【答案】B 【解析】在switch中,break用于跳出整个switch结构。 19. 若switch表达式的值与所有case都不匹配,且没有default子句,则( ) A.程序崩溃 B.程序报编译错误 C.不执行任何case,直接跳出switch D.执行第一个case 【答案】C 【解析】没有匹配的case且没有default时,不执行任何操作,直接跳出switch。 20. 下列关于switch和if...else的比较,正确的是( ) A.switch可以方便地处理范围判断 B.if...else可以方便地处理范围判断 C.switch比if...else效率一定更高 D.switch可以替代所有的if...else 【答案】B 【解析】if...else可以方便地处理范围判断,switch更适合离散值的等值判断。 二、判断题(共10题,每题1分,共10分) 21. switch语句的表达式可以是浮点类型( ) 【答案】× 【解析】switch表达式必须是整型或可以转换为整型的类型,不能是浮点类型。 22. 每个case后面的常量值必须互不相同( ) 【答案】√ 【解析】case常量值重复会导致编译错误。 23. default子句必须放在所有case子句的最后( ) 【答案】× 【解析】default可以放在switch中的任何位置。 24. 若case后没有break语句,程序会继续执行下一个case( ) 【答案】√ 【解析】这就是switch的贯穿(fall through)现象。 25. switch语句中必须有default子句( ) 【答案】× 【解析】default子句是可选的,可以省略。 26. break语句在switch中的作用是跳出switch结构( ) 【答案】√ 【解析】break使程序跳出当前switch结构。 27. 字符类型可以作为switch的表达式( ) 【答案】√ 【解析】字符存储的是ASCII码值(整数),可以用在switch中。 28. switch语句可以嵌套( ) 【答案】√ 【解析】switch语句可以嵌套使用,内层和外层互不影响。 29. case子句后面必须是常量表达式( ) 【答案】√ 【解析】case后面必须是编译时可求值的常量表达式。 30. switch语句只能进行等值判断,不能进行范围判断( ) 【答案】√ 【解析】switch只能进行等值判断,范围判断需要用if...else。 三、填空题(共10空,每空2分,共20分) 31. switch语句使用关键字____开始多分支选择结构。 【答案】switch 【解析】switch关键字用于开始多分支选择结构。 32. 在switch语句中,每个分支以关键字____开始。 【答案】case 【解析】case关键字标识一个分支。 33. 用于终止case执行并跳出switch的关键字是____。 【答案】break 【解析】break用于跳出switch结构。 34. 当所有case都不匹配时执行的子句以关键字____开始。 【答案】default 【解析】default处理所有case都不匹配的情况。 35. 若case后没有break,会产生____现象(贯穿)。 【答案】贯穿(fall through) 【解析】没有break会继续执行后续case,称为贯穿现象。 36. switch表达式的值必须是____类型或可以转换为该类型。 【答案】整型 【解析】switch表达式必须是整型(包括char、enum等可转换为整型的类型)。 37. 各case后的常量值必须互不相同,否则会产生____错误。 【答案】编译 【解析】case常量值重复会导致编译错误。 38. default子句在switch中可以省略,但不是好的____习惯。 【答案】编程 【解析】省略default可能不是好的编程习惯,无法处理意外情况。 39. switch语句结束后,程序从switch结构____的第一条语句继续执行。 【答案】后面 【解析】switch结束后继续执行后续语句。 40. 在switch中,字符类型可以用是因为字符在内存中存储的是____值。 【答案】ASCII码(整数) 【解析】字符存储的是ASCII码整数值。 四、程序综合题(共3题,每题10分,共30分) 41. 程序阅读题:阅读下列程序,写出运行结果。 #include <stdio.h> int main() { int n=2; switch(n) { case 1: printf("One "); case 2: printf("Two "); case 3: printf("Three "); break; default: printf("Other "); } printf("End "); return 0; } 【答案】Two Three End 【解析】 1.变量 n=2,switch 匹配 case 2,执行输出Two ; 2.case 2 没有 break 语句,程序继续穿透执行 case 3,输出Three ; 3.case 3 带有 break,跳出 switch 结构,最后执行输出End ; 4.最终拼接输出结果:Two Three End。 42. 程序填空题:阅读下列程序,请将①~④表示的内容填写完整。 (1) #include <stdio.h> (2) int main() (3) { (4) int day=3; (5) switch(day) (6) { (7) case 1: printf("Mon"); break; (8) case 2: printf("Tue"); break; (9) case 3: printf("Wed"); break; (10) case 4: printf("Thu"); break; (11) default: printf("Other"); (12) } (13) return 0; (14) } 上述程序中,switch后面的表达式类型是①____,第9行执行后输出②____, break语句的作用是③____,若去掉所有break,day=2时输出④____。 【答案】① int(整型) ② Wed ③ 跳出、终止当前 switch 分支,防止 case 穿透 ④ TueWedThuOther 【解析】 1. day = 2 首先匹配 case 2,输出 Tue; 2. 无 break,发生case 穿透,程序不会跳出,顺序继续执行 case3、case4、default; 3. 依次执行输出:Wed → Thu → Other; 4. 最终完整输出:TueWedThuOther 43. 文件perfect.txt中存放一个正整数(位数≥5)。用削峰法删除3个数字,判断新数是否为完全数(等于其真因子之和),若是则输出。请完善程序。 #include<stdio.h> #include<string.h> #include<stdlib.h> #define DEL 3 int is_perfect(int n); int find_perfect(char strn[],int deln); int main() { char strn[50]; int result; FILE *fp=fopen("perfect.txt","r"); fscanf(fp,"%s",strn); fclose(fp); result=find_perfect(strn,DEL); if(result>0)printf("完全数:%d ",result); else printf("不存在"); return 0; } int is_perfect(int n) { int i,sum=0; for(i=1;i<n;i++) if(①)sum+=i; return sum==n; } int find_perfect(char strn[],int deln) { int lenth=strlen(strn); int i,k,dn,num; for(dn=1;dn<=deln;dn++) { i=0; while(strn[i]>=strn[i+1]&&i<lenth-dn) i++; for(k=i;k<lenth-dn;k++) ②; } num=0; for(k=0;k<lenth-deln;k++) num=num*10+strn[k]-'0'; if(③)return num; return -1; } 【答案】① n% i==0 ② strn [k]=strn [k+1] ③ is_perfect (num) 【解析】 ① 判断 i 是否能整除 n,满足则 i 是 n 的真因子,累加到 sum; ② 将后一位字符向前覆盖,实现删除指定位置数字的削峰效果; ③ 调用 is_perfect 函数判断数字是否为完全数,满足则返回该数。 学科网(北京)股份有限公司 $

资源预览图

第20卷 C语言-C语言卷7——switch语句实现多分支选择——江苏省计算机类——考纲百套卷
1
第20卷 C语言-C语言卷7——switch语句实现多分支选择——江苏省计算机类——考纲百套卷
2
第20卷 C语言-C语言卷7——switch语句实现多分支选择——江苏省计算机类——考纲百套卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。