第 11 届蓝桥杯 C++ 青少组中 / 高级组省赛 2020 年真题(选择题)
第 1 题 单选题
题目:表达式 ‘6’ - ‘1’ 的值是 ( )
A. 整数 5
B. 字符 5
C. 表达式不合法
D. 字符 6
答案:A
解题思路:通过观察表达式 ‘6’ - ‘1’,可以知道6和1都是ASCLL码,'6' 的 ASCII 码为 54,'1' 的 ASCII 码为 49,二者相减结果为 5。可以发现:‘6’ - ‘1=6-1=5
第 2 题 单选题
题目:若二维数组 a 有 n 列,则在 a [i][j] 前的元素个数为 ( )
A. in+j-1 B. in+j C. jn+i D. in+j+1
答案:B
解题思路:通过读题可知,题目让我们找a[i][j]前所有的元素。a[i][j]表示 i 行 j 列,i行前共 i 行,而数组a有n行,所以in(i*n)就是 i 行之前的元素。第 j 列前共有 j 个元素。所以in+j就是a[i][j]前所有元素
第 3 题 单选题
题目:以下叙述正确的是 ( )
A. break 语句只能用于 switch 语句体中;
B. continue 语句的作用是使程序的执行流程跳出包含它的所有循环;
C. break 语句只能用在循环体内和 switch 语句体内;
D. 在循环体内使用 break 语句和 continue 语句的作用相同。
答案:C
解题思路:
1.A中break不仅 可以在swwith中使用,还可以在for和while中使用
2.B中continue 仅跳过当前循环迭代,不跳出所有循环
3.C正确
4.D中break 跳出当前循环,continue 跳过当前迭代,作用不同
第 4 题 单选题
题目:按照 “先进后出” 原则组织数据的结构是 ( )
A. 队列
B. 栈
C. 双向链表 D. 二叉树
答案:B
解题思路:栈(Stack)遵循先进后出(LIFO)原则,队列是先进先出(FIFO),双向链表和二叉树无此特性,选 B。
第 5 题 单选题
题目:用 0、1、2、3、4 这五个数字,能组成多少个没有重复数字的多位偶数?
A. 144 B. 147 C. 160 D. 163
答案:B
解析:分情况讨论:
个位为 0:剩余 4 位选前导非 0 数字,位数≥2 位:
2 位数:4 种(1-4 选十位);
3 位数:4×3=12 种;
4 位数:4×3×2=24 种;
5 位数:4×3×2×1=24 种;
总计:4+12+24+24=64 种。
个位为 2 或 4(2 种选择):
十位不能为 0,且数字不重复:
2 位数:十位有 3 种(1,3, 非个位数字),共 2×3=6 种;
3 位数:百位 4 种(非 0、非个位),十位 3 种,共 2×4×3=24 种;
4 位数:千位 4 种,百位 3 种,十位 2 种,共 2×4×3×2=48 种;
5 位数:万位 4 种,千位 3 种,百位 2 种,十位 1 种,共 2×4×3×2×1=48 种;
总计:6+24+48+48=126 种。
1 位数偶数:0、2、4,共 3 种,但题目要求 “多位” 偶数(≥2 位),故不包含 1 位数。
最终总数:64(个位 0)+126(个位 2/4)-3(排除 1 位数)=147 种(注:原题可能包含 1 位数,需确认题意,此处按常规 “多位” 即≥2 位计算,正确答案为 B)。