第5卷 条件语句及多分支语句《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》

2026-06-12
| 2份
| 19页
| 5人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 高一
章节 3.2 条件语句(if语句),3.3 多分支语句(switch语句),3.4 分支结构程序设计实例
类型 题集-专项训练
知识点 分支结构
使用场景 中职复习
学年 2026-2027
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 188 KB
发布时间 2026-06-12
更新时间 2026-06-12
作者 xkw__007
品牌系列 学易金卷·考纲百套卷
审核时间 2026-06-12
下载链接 https://m.zxxk.com/soft/58312447.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:山东省春季高考《软件与应用技术类考纲百套卷》,依据山东省《软件与应用技术类专业知识考试标准》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。 本试卷是第5卷,按《C语言程序设计》范围和要求编写。具体内容为: 掌握条件语句(if语句)和多分支语句(switch语句)的用法。 山东省《软件与应用技术类考纲百套卷》 第5卷 《C语言程序设计》 条件语句及多分支语句 考点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共20小题,每题3分,共60分) 1.以下关于 C 语言 if 语句的描述中,正确的是( ) A. if 语句的条件表达式必须是关系表达式 B. if 语句的条件表达式可以是任意表达式 C. if 语句后面必须跟 else 子句 D. if 语句的条件表达式值为非 0 时执行 else 分支 【答案】B 【解析】C 语言中 if 语句的条件表达式可以是任意合法表达式,非 0 值视为真,0 视为假。A 错误,条件不限于关系表达式;C 错误,if 可以单独使用;D 错误,条件为非 0 时执行 if 分支。 2.执行以下程序段后,输出结果是( ) int a=5; if(a=0) printf("yes"); else printf("no"); A. yes B. no C. yesno D. 无输出 【答案】B 【解析】a=0是赋值表达式,结果为 0(假),因此执行 else 分支输出 "no"。注意区分赋值运算符=和关系运算符==。 3.以下程序段的输出结果是( ) int x=10; if(x>5); printf("x>5"); A. x>5 B. 无输出 C. 编译错误 D. 运行错误 【答案】A 【解析】if 语句后面的分号表示空语句,if(x>5);等价于if(x>5) {},无论条件是否成立,后面的printf("x>5");都会执行。 4.表达式a>b?a:b的功能等价于( ) A. if (a>b) a=b; B. if (a<b) a=b; C. if (a>b) return a; else return b; D. if (a<b) return a; else return b; 【答案】C 【解析】条件表达式a>b?a:b的功能是:如果 a 大于 b,返回 a 的值,否则返回 b 的值,与选项 C 的 if-else 语句功能完全等价。 5.以下关于 switch 语句的描述中,错误的是( ) A. switch 语句的表达式只能是整型或字符型 B. case 后面必须跟常量表达式 C. default 子句可以放在任意位置 D. 每个 case 子句后面必须有 break 语句 【答案】D 【解析】case 子句后面不是必须有 break 语句,没有 break 时会发生 "穿透" 现象,继续执行后续 case 子句。A、B、C描述均正确。 6.执行以下程序段后,输出结果是( ) int n=2; switch(n) { case 1: printf("A"); case 2: printf("B"); case 3: printf("C"); default: printf("D"); } A. B B. BC C. BCD D. 编译错误 【答案】C 【解析】n=2 匹配 case 2,执行printf("B"),没有 break,发生穿透,继续执行 case 3 的printf("C")和 default 的printf("D"),最终输出 "BCD"。 7.执行以下程序段后,输出结果是( ) int a=3,b=2,c=1; if(a>b) if(b>c) printf("1"); else printf("2"); A. 1 B. 2 C. 12 D. 无输出 【答案】A 【解析】else 总是与离它最近的未匹配 if匹配,因此这里的 else 与if(b>c)匹配。a>b(3>2)为真,进入内层 if;b>c(2>1)为真,执行printf("1"),因此输出结果为 1。 8.表达式x>0?1:x<0?-1:0的功能是( ) A. 求 x 的绝对值 B. 判断 x 的正负 C. 求 x 的符号 D. 计算 x 的平方 【答案】C 【解析】该表达式是符号函数:x>0 返回 1,x<0 返回 - 1,x=0 返回 0,功能是求 x 的符号。 9.以下 case 子句中,正确的是( ) A. case 1.5: B. case a+1: C. case n: D. case 1+2: 【答案】D 【解析】case 后面必须跟整型或字符型常量表达式。 10.执行以下程序段后,输出结果是( ) int score=85; if(score>=90) printf("优秀"); else if(score>=80) printf("良好"); else if(score>=70) printf("中等"); else printf("及格"); A. 优秀 B. 良好 C. 中等 D. 及格 【答案】B 【解析】score=85,不满足 >=90,满足 >=80,因此执行printf("良好")。 11.条件表达式的结合性是( ) A. 左结合 B. 右结合 C. 无结合性 D. 根据优先级决定 【答案】B 【解析】条件运算符?:是 C 语言中唯一的三目运算符,结合性为右结合。 12.执行以下程序段后,输出结果是( ) int m=5; switch(m) { case 5: printf("5"); default: printf("default"); case 4: printf("4"); } A. 5 B. 5default C. 5default4 D. 编译错误 【答案】C 【解析】m=5 匹配 case 5,执行printf("5"),没有 break,发生穿透,继续执行 default 的printf("default")和 case 4 的printf("4"),最终输出 "5default4"。 13.以下程序段的输出结果是( ) int a=1,b=2; if(a>b) printf("%d",a); else printf("%d",b); A. 1 B. 2 C. 12 D. 无输出 【答案】B 【解析】a>b(1>2)为假,执行 else 分支,输出 b 的值 2。 14.与if(a>b) max=a; else max=b;等价的条件表达式是( ) A. max=(a>b)?a:b; B. max=a>b?b:a; C. (a>b)?max=a:max=b; D. max=a>b?a:max=b; 【答案】A 【解析】条件表达式(a>b)?a:b先判断 a 是否大于 b,是则返回 a,否则返回 b,将结果赋值给 max,与原 if-else 语句完全等价。 15.执行以下程序段后,输出结果是( ) int x=1,y=2; if(x>y) printf("x>y"); else if(x==y) printf("x==y"); else printf("x<y"); A. x>y B. x==y C. x<y D. 无输出 【答案】C 【解析】x=1,y=2,x>y为假,x==y为假,因此执行 else 分支,输出 "x<y"。 16.以下关于 switch 语句 default 子句的描述中,正确的是( ) A. default 子句必须放在所有 case 子句之后 B. default 子句只能有一个 C. default 子句必须存在 D. default 子句不会被执行 【答案】B 【解析】switch 语句中 default 子句最多只能有一个,可以放在任意位置,不是必须存在。A 错误,位置任意;C 错误,可选;D 错误,没有匹配的 case 时会执行。 17.执行以下程序段后,输出结果是( ) int a=10; printf("%d ",a>0?1:-1); A. 10 B. 1 C. -1 D. 0 【答案】B 【解析】a>0(10>0)为真,条件表达式返回冒号前的值 1。 18.以下数据类型中,不能作为 switch 语句表达式类型的是( ) A. int B. char C. float D. enum 【答案】C 【解析】switch 语句的表达式只能是整型、字符型或枚举类型,不能是浮点型(float、double)。 19.执行以下程序段后,输出结果是( ) int a=2,b=3,c=4; if(a>b) if(a>c) printf("%d",a); else printf("%d",c); else if(b>c) printf("%d",b); else printf("%d",c); A. 2 B. 3 C. 4 D. 无输出 【答案】C 【解析】a>b(2>3)为假,执行 else 分支;b>c(3>4)为假,执行内层 else 分支,输出 c 的值 4。 20.执行以下程序段后,输出结果是( ) int x=0,y=1; if(x++ && y++) printf("true"); else printf("false"); printf("x=%d,y=%d",x,y); A. truex=1,y=2 B. falsex=1,y=1 C. truex=0,y=1 D. falsex=0,y=2 【答案】B 【解析】x++是后置自增,先使用 x 的原值 0 参与运算,之后 x 自增为 1;逻辑与&&左边为 0(假),发生短路,右边的y++不执行,y 保持 1;因此执行 else 分支输出 "false",最终输出 "falsex=1,y=1"。 二、简答题(本大题共2小题,每题10分,共20分) 1.阅读以下 C 语言程序,写出程序运行后的完整输出结果_________ #include <stdio.h> int main() { int x=3,y=5,z=7; if(x>y) if(y>z) printf("1"); else printf("2"); else if(x<z) if(z>y) printf("3"); else printf("4"); else printf("5"); printf(" "); return 0; } 【答案】3 2.阅读以下 C 语言程序,写出程序运行后的完整输出结果_________ #include <stdio.h> int main() { int a=2,b=3,c=0; switch(a+b) { case 4: printf("A"); case 5: printf("B"); case 6: printf("C"); break; default: printf("D"); } c = a>b?a--:b++; printf(" c=%d,a=%d,b=%d ",c,a,b); return 0; } 【答案】 BC c=3,a=2,b=4 三、案例分析题(本大题共1小题,每题10分,共10分) 1.以下程序的功能是:输入年份和月份,判断该月份属于哪个季节,并输出该月份的天数(需考虑闰年 2 月的特殊情况)。请在程序的下划线处填入正确的内容,使程序完整并能正确运行。 #include <stdio.h> int main() { int year, month, days; char season[10]; printf("请输入年份:"); scanf("%d", &year); printf("请输入月份:"); scanf("%d", &month); if(____1____) { printf("月份输入错误! "); return 1; } if(month>=3 && month<=5) strcpy(season, "春季"); else if(____2____) strcpy(season, "夏季"); else if(month>=9 && month<=11) strcpy(season, "秋季"); else strcpy(season, "冬季"); 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(____3____) days=29; else days=28; break; ____4____: days=0; break; } printf("%d年%d月是%s,共有%d天 ", year, month, season, days); printf("该年%s闰年 ", ____5____?"是":"不是"); return 0; } 【答案】 1.month<1 || month>12 2.month>=6 && month<=8 3.(year%4==0 && year%100!=0) || year%400==0 4.default 5.(year%4==0 && year%100!=0) || year%400==0 四、综合应用题(本大题共1小题,每题10分,共10分) 1.编写一个 C 语言程序,实现学生成绩等级评定功能: 输入学生的考试成绩(整数,0-100 分) 根据成绩输出对应等级: 90-100 分:优秀 80-89 分:良好 70-79 分:中等 60-69 分:及格 0-59 分:不及格 检查输入成绩的合法性(成绩必须在 0-100 之间) 必须使用if-else if 多分支语句实现等级判断 程序要有清晰的输入提示和输出格式 【答案】 #include <stdio.h> int main() { int score; printf("请输入学生成绩(0-100):"); scanf("%d", &score); // 检查成绩合法性 if(score < 0 || score > 100) { printf("成绩输入错误! "); return 1; } // 等级判断 if(score >= 90) printf("等级:优秀 "); else if(score >= 80) printf("等级:良好 "); else if(score >= 70) printf("等级:中等 "); else if(score >= 60) printf("等级:及格 "); else printf("等级:不及格 "); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:山东省春季高考《软件与应用技术类考纲百套卷》,依据山东省《软件与应用技术类专业知识考试标准》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。 本试卷是第5卷,按《C语言程序设计》范围和要求编写。具体内容为: 掌握条件语句(if语句)和多分支语句(switch语句)的用法。 山东省《软件与应用技术类考纲百套卷》 第5卷 《C语言程序设计》 条件语句及多分支语句 考点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共20小题,每题3分,共60分) 1.以下关于 C 语言 if 语句的描述中,正确的是( ) A. if 语句的条件表达式必须是关系表达式 B. if 语句的条件表达式可以是任意表达式 C. if 语句后面必须跟 else 子句 D. if 语句的条件表达式值为非 0 时执行 else 分支 2.执行以下程序段后,输出结果是( ) int a=5; if(a=0) printf("yes"); else printf("no"); A. yes B. no C. yesno D. 无输出 3.以下程序段的输出结果是( ) int x=10; if(x>5); printf("x>5"); A. x>5 B. 无输出 C. 编译错误 D. 运行错误 4.表达式a>b?a:b的功能等价于( ) A. if (a>b) a=b; B. if (a<b) a=b; C. if (a>b) return a; else return b; D. if (a<b) return a; else return b; 5.以下关于 switch 语句的描述中,错误的是( ) A. switch 语句的表达式只能是整型或字符型 B. case 后面必须跟常量表达式 C. default 子句可以放在任意位置 D. 每个 case 子句后面必须有 break 语句 6.执行以下程序段后,输出结果是( ) int n=2; switch(n) { case 1: printf("A"); case 2: printf("B"); case 3: printf("C"); default: printf("D"); } A. B B. BC C. BCD D. 编译错误 7.执行以下程序段后,输出结果是( ) int a=3,b=2,c=1; if(a>b) if(b>c) printf("1"); else printf("2"); A. 1 B. 2 C. 12 D. 无输出 8.表达式x>0?1:x<0?-1:0的功能是( ) A. 求 x 的绝对值 B. 判断 x 的正负 C. 求 x 的符号 D. 计算 x 的平方 9.以下 case 子句中,正确的是( ) A. case 1.5: B. case a+1: C. case n: D. case 1+2: 10.执行以下程序段后,输出结果是( ) int score=85; if(score>=90) printf("优秀"); else if(score>=80) printf("良好"); else if(score>=70) printf("中等"); else printf("及格"); A. 优秀 B. 良好 C. 中等 D. 及格 11.条件表达式的结合性是( ) A. 左结合 B. 右结合 C. 无结合性 D. 根据优先级决定 12.执行以下程序段后,输出结果是( ) int m=5; switch(m) { case 5: printf("5"); default: printf("default"); case 4: printf("4"); } A. 5 B. 5default C. 5default4 D. 编译错误 13.以下程序段的输出结果是( ) int a=1,b=2; if(a>b) printf("%d",a); else printf("%d",b); A. 1 B. 2 C. 12 D. 无输出 14.与if(a>b) max=a; else max=b;等价的条件表达式是( ) A. max=(a>b)?a:b; B. max=a>b?b:a; C. (a>b)?max=a:max=b; D. max=a>b?a:max=b; 15.执行以下程序段后,输出结果是( ) int x=1,y=2; if(x>y) printf("x>y"); else if(x==y) printf("x==y"); else printf("x<y"); A. x>y B. x==y C. x<y D. 无输出 16.以下关于 switch 语句 default 子句的描述中,正确的是( ) A. default 子句必须放在所有 case 子句之后 B. default 子句只能有一个 C. default 子句必须存在 D. default 子句不会被执行 17.执行以下程序段后,输出结果是( ) int a=10; printf("%d ",a>0?1:-1); A. 10 B. 1 C. -1 D. 0 18.以下数据类型中,不能作为 switch 语句表达式类型的是( ) A. int B. char C. float D. enum 19.执行以下程序段后,输出结果是( ) int a=2,b=3,c=4; if(a>b) if(a>c) printf("%d",a); else printf("%d",c); else if(b>c) printf("%d",b); else printf("%d",c); A. 2 B. 3 C. 4 D. 无输出 20.执行以下程序段后,输出结果是( ) int x=0,y=1; if(x++ && y++) printf("true"); else printf("false"); printf("x=%d,y=%d",x,y); A. truex=1,y=2 B. falsex=1,y=1 C. truex=0,y=1 D. falsex=0,y=2 二、简答题(本大题共2小题,每题10分,共20分) 1.阅读以下 C 语言程序,写出程序运行后的完整输出结果_________ #include <stdio.h> int main() { int x=3,y=5,z=7; if(x>y) if(y>z) printf("1"); else printf("2"); else if(x<z) if(z>y) printf("3"); else printf("4"); else printf("5"); printf(" "); return 0; } 2.阅读以下 C 语言程序,写出程序运行后的完整输出结果_________ #include <stdio.h> int main() { int a=2,b=3,c=0; switch(a+b) { case 4: printf("A"); case 5: printf("B"); case 6: printf("C"); break; default: printf("D"); } c = a>b?a--:b++; printf(" c=%d,a=%d,b=%d ",c,a,b); return 0; } 三、案例分析题(本大题共1小题,每题10分,共10分) 1.以下程序的功能是:输入年份和月份,判断该月份属于哪个季节,并输出该月份的天数(需考虑闰年 2 月的特殊情况)。请在程序的下划线处填入正确的内容,使程序完整并能正确运行。 #include <stdio.h> int main() { int year, month, days; char season[10]; printf("请输入年份:"); scanf("%d", &year); printf("请输入月份:"); scanf("%d", &month); if(____1____) { printf("月份输入错误! "); return 1; } if(month>=3 && month<=5) strcpy(season, "春季"); else if(____2____) strcpy(season, "夏季"); else if(month>=9 && month<=11) strcpy(season, "秋季"); else strcpy(season, "冬季"); 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(____3____) days=29; else days=28; break; ____4____: days=0; break; } printf("%d年%d月是%s,共有%d天 ", year, month, season, days); printf("该年%s闰年 ", ____5____?"是":"不是"); return 0; } 四、综合应用题(本大题共1小题,每题10分,共10分) 1.编写一个 C 语言程序,实现学生成绩等级评定功能: 输入学生的考试成绩(整数,0-100 分) 根据成绩输出对应等级: 90-100 分:优秀 80-89 分:良好 70-79 分:中等 60-69 分:及格 0-59 分:不及格 检查输入成绩的合法性(成绩必须在 0-100 之间) 必须使用if-else if 多分支语句实现等级判断 程序要有清晰的输入提示和输出格式 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第5卷 条件语句及多分支语句《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》
1
第5卷 条件语句及多分支语句《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》
2
第5卷 条件语句及多分支语句《C语言程序设计》山东省春季高考《软件与应用技术类考纲百套卷》
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。