MCOI2503月赛 L2 选择题 解析
【答案解析】
1.【答案】B
【解析】
sort()函数属于C++标准模板库(STL),必须包含头文件 <algorithm> 才能使用。<functional> 仅在需要降序排序时搭配 greater<int>() 使用
2.【答案】D
【解析】
计数排序和桶排序不适合数据范围特别大的,结构体排序更适合多参数的,因此在这四个中,冒泡排序是最合适的
3.【答案】A
【解析】
结构体定义需用大括号包裹成员变量,并以分号结尾。
4.【答案】C
【解析】
① 确定数据范围,准备相应长度的标记数组(如最小值和最大值)
② 统计元素出现次数(通过下标映射)
③ 遍历桶输出结果(按顺序填充)
5.【答案】A
【解析】
交换相邻元素会消除一对相邻逆序对,总逆序对数量减少1。冒泡排序的每次交换仅影响相邻元素
代码阅读一:【答案】
6.B
7.A
8.B
9.B
10.C
【解析】
● 该题是数位分离和vis标记数组的结合,统计数字n中,0~9每一位数字出现的次数,即便是0也会输出每个数字的统计结果
● 该题是数位分离和vis标记数组的结合,统计数字n中,0~9每一位数字出现的次数
● 数组创建在全局时,每一个位置会自动初始化为0,创建在主函数内,若不手动初始化,则会出现随机的数据,即垃圾数据,会影响统计结果
● 该题是数位分离和vis标记数组的结合,统计数字n中,0~9每一位数字出现的次数
● 数位分离中,n变成0是结束的标志,因此n>=0作为条件的话,会多进行一次分离,统计多一次0出现的次数,导致程序结果出错
代码阅读二:【答案】
11.A
12.B
13.C
14.B
15.A
【解析】
● 本质上vis数组里面为0代表树没有被移走,所以树被移走一直累加也不影响后续的统计
● 由于模拟的是道路,0的位置其实代表的是起点,不能忽略
● vis[i] = 1 表示位置 i 的树被移走,初始为0表示树存在。
● 初始0-15共16棵树。移走区间合并为0-6(7棵树)和8-12(5棵树),共移走12棵。剩余16-12=4棵。
● 初始0-20共21棵树。移走区间合并为2-7(6棵树)、9-15(7棵树)和17-19(3棵树),共移走16棵。剩余21-16=5棵。
完形填空一:【答案】
16.A
17.B
18.D
19.A
20.C
【解析】
● 闰年条件考察,y%4==0 && y%100!=0 || y%400==0,逻辑运算符优先级:非>与>或
● 统计2001到y-1年的天数
● 根据i是否为闰年来决定累加366还是365天
● week代表星期几,j代表几号,黑色星期五条件:星期五并且13号
● week代表周几,超过7则要重置为1
完形填空二:【答案】
21.B
22.C
23.B
24.B
25.C
【解析】
● class类、struct结构体、typedef类型定义、union联合体
● 根据多条件的优先级,年份相同才会进入月份的比较
● 这里需要返回“日”的比较结果,越靠前年龄越大,所以返回小于的比较结果
● 这里需要返回“月”的比较结果,越靠前年龄越大,所以返回小于的比较结果
● 考察sort()函数使用,代码开始位置为1,排序长度为n

浙公网安备 33010602011771号