信息素养小学组初赛模拟题 1
初赛模拟题(线上客观题,30分钟)
说明:仅客观题,筛选基础能力,无编程实操。满分50分。
一、单选题(每题3分,共30分)
1. C++中存储多个相同类型的数据,最适合的容器是:
A. int
B. vector ✓
C. string
D. char
2. 皮影戏三个角色需要联动控制,C++中组织它们的属性应该用:
A. 多个独立变量
B. struct结构体 ✓
C. goto语句
D. 宏定义
3. 计算剪纸原材料成本,需要遍历所有材料价格求和,应使用:
A. if语句
B. for循环 ✓
C. switch语句
D. 递归
4. 红军5个村庄粮食产量[120,85,200,150,90],找产量最高的村庄,C++中应:
A. 肉眼观察
B. max_element或遍历比较 ✓
C. 随机选一个
D. 排序后取最后一个
5. C++中map 的作用是:
A. 存储有序数组
B. 存储键值对,按键查找 ✓
C. 存储字符串
D. 存储函数
多选题(每题5分,共20分,多选少选不得分)
6. C++ STL中可用于数据处理的有:
A. vector动态数组
B. map键值对
C. algorithm算法库
D. numpy数组库
答案:ABC(numpy是Python库,C++不能用)
7. C++11标准支持的特性有:
A. 范围for循环
B. Lambda表达式
C. 智能指针
D. goto语句(C++98已有,非新特性)
答案:ABC
8. 算法应用主题赛的C++可用场景有:
A. 场景二(星火征途-红色)
B. 场景三(丝路新程-丝路)
C. 场景四(智传民韵-民族)
D. 场景一(数字守艺-非遗)
答案:ABC(场景一初中组仅限Python,小学4-6年级可选Python)
9. C++编程中,良好的编程习惯包括:
A. 使用ios::sync_with_stdio(false)加速输入
B. 使用long long防止溢出
C. 代码注释清晰
D. 使用全局变量方便访问
答案:ABC(应减少全局变量使用)
10. 比赛规则中,正确的有:
A. 代码相似度≥80%判作弊
B. 仅可使用STL标准库
C. 支持C++11及以上
D. 可使用第三方库
答案:ABC
信息素养小学组复赛模拟题 1
C++复赛模拟题(现场编程,120分钟)
说明:14题 = 5单选 + 5多选 + 4编程,满分100分。
一、单选题(每题2分,共10分)
1. C++中sort(v.begin(), v.end(), greater ())的作用是:
A. 升序排序
B. 降序排序 ✓
C. 随机打乱
D. 去重
2. map容器按键查找的时间复杂度是:
A. O(n)
B. O(log n) ✓
C. O(1)
D. O(n2)
3. 民族织锦纹样生成,需要重复拼接字符串,C++中最高效的是:
A. string反复+
B. ostringstream或预留空间 ✓
C. char[]数组
D. printf
4. 红军物资调配,需要快速找到最大值并删除,应使用:
A. vector+线性搜索
B. priority_queue优先队列 ✓
C. queue普通队列
D. stack栈
5. C++中检测代码运行时间,应使用:
A. time.h的clock()
B. 库的steady_clock ✓
C. rand()
D. sleep()
二、多选题(每题4分,共20分)
6. C++ STL算法库algorithm提供的功能有:
A. sort排序
B. binary_search二分查找
C. lower_bound下界查找
D. train_model训练模型
答案:ABC
7. C++中处理大规模数据时,提高效率的方法有:
A. 使用reserve预分配内存
B. 使用引用传递避免拷贝
C. 使用unordered_map哈希表
D. 使用endl代替'\n'
答案:ABC(endl会刷新缓冲区,更慢)
8. C++字符串处理函数有:
A. substr子串
B. find查找
C. replace替换
D. split(STL无直接支持)
答案:ABC
9. C++中可用于排序的数据结构有:
A. vector
B. deque
C. array
D. stack
答案:ABC
10. 比赛编程时,注意事项有:
A. 开long long防溢出
B. 检查数组越界
C. 多组测试数据
D. 使用system("pause")
答案:ABC
三、编程题(70分)
编程题1:场景二(星火征途)—— 红星统计与物资分类(15分)
【题目背景】
长征途中,红军战士帽子上佩戴红星(1表示朝前,0表示朝后)。统计红星朝前的人数,并分类统计粮食、武器、药品三类物资。
【输入格式】
第一行:整数n(战士人数,1 ≤ n ≤ 100)
第二行:n个整数(0或1),表示红星朝向
第三行:整数m(物资件数,1 ≤ m ≤ 100)
接下来m行:每行一个字符串("粮食"/"武器"/"药品")
【输出格式】
第一行:红星朝前: X人
接下来三行:
粮食: X件
武器: Y件
药品: Z件
【样例输入】
8
1 0 1 1 0 1 0 1
6
粮食
武器
粮食
药品
武器
粮食
【样例输出】
红星朝前: 5人
粮食: 3件
武器: 2件
药品: 1件
【参考代码】
}编程题2:场景三(丝路新程)—— 骆驼载重优化(15分)
【题目背景】
丝绸之路商队有n只骆驼,每只骆驼有最大载重。现有m件货物,每件有重量。每只骆驼最多驮一件货物,且货物重量不能超过骆驼载重。求最多能运走多少件货物。
【输入格式】
第一行:两个整数n和m(1 ≤ n, m ≤ 100)
第二行:n个整数,骆驼载重
第三行:m个整数,货物重量
【输出格式】
一个整数:最多运走货物件数
【样例输入】
4 5
100 80 120 90
90 110 70 85 130
【样例输出】
3
【解释】
骆驼排序:80, 90, 100, 120
货物排序:70, 85, 90, 110, 130
80驮70,90驮85,100驮90,120不够130 共3件
【参考代码】
}编程题3:场景四(智传民韵)—— 民族舞蹈队形与织锦纹样(20分)
【题目背景】
民族节日有两项任务:
n名舞者按身高从矮到高编号1-n,指定第k个位置为领舞(最高),左边放较矮的,右边放较高的,输出排列织锦基础纹样单元重复k次,统计各字符出现次数
【输入格式】
第一部分(舞蹈):
第一行:两个整数n和k(1 ≤ k ≤ n ≤ 50)
第二部分(织锦):
第三行:字符串s(基础纹样,长度1-10)
第四行:整数repeat(重复次数,1 ≤ repeat ≤ 100)
【输出格式】
第一行:n个整数,舞蹈队形排列
第二行:完整织锦字符串
第三行起:各字符及出现次数(按字母顺序)
【样例输入】
6 3
ABC
3
【样例输出】
2 4 6 5 3 1
ABCABCABC
A:3
B:3
C:3
【参考代码】
}编程题4:场景二(星火征途)—— 根据地物资调配与路线规划(20分)
【题目背景】
红军有n个村庄,各有一定粮食储备。需要征集m斤粮食,按储备从大到小顺序征集。同时,给出村庄间道路距离,求从起点s到终点t的最短距离(无权图,BFS)。
【输入格式】
第一行:n m s t(村庄数、需征集量、起点、终点)
第二行:n个整数,各村庄储备
第三行: roads道路数
接下来roads行:每行两个整数u v,表示村庄u和v有道路
【输出格式】
第一部分:征集的村庄及数量(每行村庄X: Y斤)
第二部分:最短距离: Z(无法到达输出-1)
【样例输入】
5 800 1 5
300 500 200 600 400
4
1 2
2 3
3 4
4 5
【样例输出】
村庄4: 600斤
村庄2: 500斤
最短距离: 4
【参考代码】
}176 1113 4175
信息素养初中组初赛模拟题 1
初中初赛模拟题(线上客观题,30分钟)
一、单选题(每题3分,共30分)
1. C++中priority_queue默认是:
A. 小根堆
B. 大根堆 ✓
C. 队列
D. 栈
2. 图论中检测负环,应使用:
A. Dijkstra
B. Bellman-Ford或SPFA ✓
C. BFS
D. DFS
3. C++11中lambda表达式的正确语法是:
A. function(x) { return x; }
B. [](int x) { return x; } ✓
C. lambda x: x
D. x => x
4. 动态规划空间优化,滚动数组通常能将:
A. O(n)降到O(1)
B. O(n2)降到O(n)✓
C. O(2^n)降到O(n!)
D. 不能优化
5. C++中unordered_map基于:
A. 红黑树
B. 哈希表 ✓
C. 链表
D. 数组
二、多选题(每题5分,共20分)
6. C++ STL中,支持O(1)随机访问的有:
A. vector
B. deque
C. list
D. forward_list
答案:AB
7. 图论算法中,用于最短路径的有:
A. Dijkstra(非负权)
B. Bellman-Ford(含负权)
C. Floyd(全源)
D. SPFA
答案:ABCD
8. C++11智能指针包括:
A. unique_ptr
B. shared_ptr
C. weak_ptr
D. auto_ptr(已废弃)
答案:ABC
9. 动态规划常见优化技巧有:
A. 滚动数组降维
B. 单调队列优化
C. 斜率优化
D. 随机化
答案:ABC
10. 比赛中注意事项有:
A. 时间复杂度分析
B. 空间复杂度控制
C. 边界条件检查
D. 使用gets读字符串
答案:ABC
信息素养初中组复赛模拟题 1
初中组复赛模拟题(现场编程,120分钟)
说明:14题 = 5单选 + 5多选 + 4编程,满分100分。
一、单选题(每题2分,共10分)
1. 网络流最大流算法,最常用:
A. Dijkstra
B. Dinic或Edmonds-Karp ✓
C. Prim
D. Kruskal
2. C++中constexpr的作用是:
A. 常量指针
B. 编译期常量计算 ✓
C. 只读变量
D. 静态变量
3. 最长公共子序列(LCS)时间复杂度:
A. O(n)
B. O(n log n)
C. O(n2) ✓
D. O(2^n)
4. C++中move语义的作用是:
A. 移动文件
B. 避免拷贝,提高性能 ✓
C. 移动窗口
D. 移动鼠标
5. 程序运行时间限制通常为:
A. 无限制
B. 1秒或2秒 ✓
C. 10分钟
D. 1小时
二、多选题(每题4分,共20分)
6. C++中可用于线段树的有:
A. struct节点
B. vector存储
C. array静态数组
D. queue
答案:ABC
7. 字符串匹配算法有:
A. KMP
B. 哈希(Rabin-Karp)
C. Trie树
D. 暴力枚举
答案:ABCD
8. C++中template的应用有:
A. 泛型编程
B. 函数模板
C. 类模板
D. 宏定义
答案:ABC
9. 比赛中防止MLE的技巧有:
A. 估算内存使用
B. 及时释放内存
C. 使用静态数组
D. 无限递归
答案:ABC
10. 图论中,用于连通性的有:
A. 并查集
B. DFS/BFS
C. Tarjan
D. 最小生成树
答案:ABC
三、编程题
编程题1: 皮影戏动作控制(场景一-数字守艺)(20分)
【题目背景】
皮影戏角色有头、身、臂、腿四个部位,每个部位可以独立做动作。输入一系列指令,控制皮影完成表演,统计每个部位的动作次数。
【输入格式】
第一行:整数n(指令数,1 ≤ n ≤ 1000)
接下来n行:每行格式为部位 动作,其中部位为head/body/arm/leg,动作为up/down/left/right
【输出格式】
四行,每行格式为部位: 动作1次数 动作2次数 动作3次数 动作4次数
(按up/down/left/right顺序,没有的动作输出0)
【样例输入】
8
head up
arm left
head right
leg down
body up
arm right
head up
leg left
【样例输出】
head: 2 0 0 1
body: 1 0 0 0
arm: 0 0 1 1
leg: 0 1 1 0
【参考代码】
}编程题2: 驼队载货优化(场景三-丝路新程)(25分)
【题目背景】
丝绸之路商队有n只骆驼,每只骆驼有最大载重。现有m件货物,每件有重量和价值。每只骆驼最多驮一件货物,且货物重量不能超过骆驼载重。要求在能运走的货物数量最多的前提下,总价值最大。
【输入格式】
第一行:两个整数n和m(骆驼数、货物数,均≤100)
第二行:n个整数,骆驼载重
接下来m行:每行两个整数w v,表示货物重量和价值
【输出格式】
第一行:运走件数: X 总价值: Y
第二行:每件货物由哪只骆驼运输(输出骆驼编号-货物编号,空格分隔)
【样例输入】
3 5
100 80 120
90 150
50 80
120 200
70 100
60 90
【样例输出】
运走件数: 3 总价值: 370
1-1 2-2 3-4
【参考代码】(按件数优先,件数相同价值最大)
}简化版本(先选件数最多,再选价值最大):
}编程题3:红色根据地情报传递(场景二-星火征途)(25分)
【题目背景】
根据地有n个村庄,部分村庄间有道路连接。红军需要从村庄S传递情报到村庄T,途中要经过至少k个村庄(包括S和T)。求最短路径长度,以及所有满足条件的最短路径数量。
【输入格式】
第一行:n m S T k(村庄数≤50,道路数≤100,起点,终点,最少经过村庄数)
接下来m行:每行u v w,表示村庄u到v有无向道路,长度w
【输出格式】
第一行:最短距离: X
第二行:路径数量: Y
若无法到达或没有满足k个村庄的路径,输出-1
【样例输入】
6 7 1 6 4
1 2 10
1 3 20
2 4 30
3 4 10
4 5 20
5 6 10
2 5 40
【样例输出】
最短距离: 60
路径数量: 2
【解释】
路径1→2→5→6:距离10+40+10=60,经过4个村庄(1,2,5,6)?
路径1→3→4→5→6:距离20+10+20+10=60,经过5个村庄(1,3,4,5,6)?
都满足k=4,最短距离60,共2条
【参考代码】(BFS+状态记录)
}编程题4: 民族织锦纹样设计(场景四-智传民韵)(30分)
【题目背景】
民族织锦需要设计长度为n的纹样,每个位置可以选择红(R)、黄(Y)、蓝(B)三种颜色。要求:
不能有两个相邻位置颜色相同
不能出现"RB"或"BR"子串(红蓝不能相邻)
统计所有合法纹样数量,并对10^9+7取模
【输入格式】
一个整数n(1 ≤ n ≤ 10000)
【输出格式】
一个整数:合法纹样数量 mod 1e9+7
【样例输入】
3
【样例输出】
6
【解释】
n=3时合法纹样:
RYR, RYB, YRY, YRB, YBR, YBY(共6种)
非法:RRR(相邻相同),RBR(RB子串),RYR合法,RBB(BB相邻)
【参考代码】
}176 1113 4175
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.