智传民韵初赛试卷四 | 2026年 全国青少年信息素养大赛 C++ 小学组

四季读书网 7 0
智传民韵初赛试卷四 | 2026年 全国青少年信息素养大赛 C++ 小学组

考试时间:60 分钟     满分:100 分

适用:小学组|算法应用主题赛

版本:2026 初赛(智传民韵)

内容:试题 + 答案 + 详细解析

用途:备考刷题、复习巩固、赛前训练


一、单项选择题(每题 5 分,共 15 题,75 分)

第 1 题

在 “灯笼阵列生成器” 中,需打印一个 5 行 5 列的方阵,每行输出 “🏮” 符号。以下哪段代码能正确实现?

A. for(int i=0; i<5; i++) cout << "🏮" * 5 << endl;

B. for(int i=0; i<5; i++) { for(int j=0; j<5; j++) cout << "🏮"; cout << endl; }

C. cout << "🏮" * 25;

D. A 和 B 均可

✅ 正确答案:B

解析:C++ 不支持字符串与数字相乘,必须用双层循环逐个输出。


第 2 题

要实现 “舞龙队伍” 中第 n 条龙的位置为 (n×10, n×5),当 n=3 时,其坐标是?

A. (30, 15)

B. (10, 5)

C. (3, 3)

D. (90, 45)

✅ 正确答案:A

解析:3×10=30,3×5=15,坐标为 (30, 15)


第 3 题

在 “民俗词汇接龙游戏” 中,玩家输入词语,系统检查是否与前一个词尾字相同。若当前词库为 {"春节", "节日", "日历"},下一个合法词应满足什么条件?

A. 首字是 “历”

B. 尾字是 “日”

C. 长度等于 3

D. 包含 “节” 字

✅ 正确答案:A

解析:接龙规则为上一个词尾字 = 下一个词首字,最后一词 “日历” 尾字为 “历”。


第 4 题

判断一个整数 n 是否为 2 的幂次方(如 1,2,4,8…),最高效的位运算表达式是?

A. n % 2 == 0

B. n & (n - 1) == 0(且 n>0)

C. n | (n + 1) == 0

D. n ^ 1 == 0

✅ 正确答案:B

解析:2 的幂次方二进制只有 1 个 1,n & (n-1) 结果为 0。


第 5 题

下列代码片段用于寻找数组中的重复元素(嵌套循环),其时间复杂度为?

1
2
3

for(int i=0; i<n; i++)  for(int j=i+1; j<n; j++)      if(a[i] == a[j]) return true;

A. O(N)

B. O(NlogN)

C. O(N²)

D. O(1)

✅ 正确答案:C

解析:双层循环,时间复杂度为 O(N²)


第 6 题

在 “灯谜智能解析” 中,谜面 “一口咬掉牛尾巴” 打一字,程序需提取关键字 “牛” 和 “尾”。以下哪种方法最合适?

A. 使用 split () 分割空格(C++ 无内置 split)

B. 使用 find () 查找子串位置

C. 使用正则表达式(超出范围)

D. 手动逐字符遍历

✅ 正确答案:B

解析:string::find 可直接查找关键词,简单高效。


第 7 题

在模拟 “舞龙队伍动态增减” 时,使用 vector<int> 存储队员 ID。连续 push_back 1000 次,关于内存分配策略说法正确的是?

A. 每次增加 1 个空间,效率最低

B. 按固定倍数(1.5/2 倍)扩容,均摊复杂度 O (1)

C. 预先分配 1000 个空间,无需扩容

D. 扩容时会丢失原有数据

✅ 正确答案:B

解析:vector 按倍数扩容,均摊时间复杂度为 O(1)


第 8 题

定义函数 int calculate_brightness(int row) 计算第 row 行灯笼总亮度(第 n 行有 n 个灯笼,每个亮度 n²),调用 calculate_brightness(5) 应返回?

A. 55

B. 25

C. 125

D. 15

✅ 正确答案:C

解析:第 5 行有 5 个灯笼,每个亮度 25,总和为 125


第 9 题

在 “非遗传承人档案库” 中,按 “技艺等级降序,等级相同按年龄升序” 排序,sort 比较器 cmp 正确的是?

A. return a.level > b.level || (a.level == b.level && a.age < b.age);

B. return a.level < b.level && a.age > b.age;

C. return a.level > b.level && a.age < b.age;

D. return a.level >= b.level || a.age <= b.age;

✅ 正确答案:A

解析:先比等级降序,等级相同比年龄升序。


第 10 题

角色从起点 (0,0) 出发,执行指令后最终坐标是?

1
2
3
4
5
6

int x = 0, y = 0;int steps[][2] = {{10,0}, {0,-10}, {-5,0}};for(int i=0; i<3; i++) {    x += steps[i][0];    y += steps[i][1];}

A. (5, -10)

B. (15, -10)

C. (5, 10)

D. (0, 0)

✅ 正确答案:A

解析:x=10-5=5,y=-10,坐标 (5,-10)


第 11 题

在 “庙会寻宝地图” 中,路径点 path[4][2] = {{0,0}, {50,0}, {50,-50}, {100,-50}},终点应访问哪个索引?

A. path [0]

B. path [1]

C. path [2]

D. path [3]

✅ 正确答案:D

解析:数组共 4 个点,最后一个点下标为 3


第 12 题

在 “皮影戏场景切换” 中,scene=1/2/3 对应不同动作,能正确执行的代码是?

A. if-else 结构

B. while 循环结构

C. switch-case 结构

D. A 和 C 均可

✅ 正确答案:D

解析:if-else 与 switch 都可实现多分支判断


第 13 题

在计算 “龙舟比赛平均速度” 时,大量浮点数累加避免精度丢失的最佳实践是?

A. 使用 float 代替 double

B. 先转为整数计算,最后再除

C. 使用 double 并按从小到大累加

D. 随意累加,误差可忽略

✅ 正确答案:B

解析:整数运算无精度损失,结果最准确。


第 14 题

函数 void swap_val(int a, int b) 和 void swap_ref(int &a, int &b)。要真正交换 x,y 应调用?

A. swap_val (x, y)

B. swap_ref (x, y)

C. 两者均可

D. 两者均不可

✅ 正确答案:B

解析:引用传参才能交换外部变量原值,值传递无效。


第 15 题

“年画图层叠加” 需实现 “撤销” 功能(取消最近一次绘制),最适合的数据结构是?

A. 队列 (Queue)

B. 栈 (Stack)

C. 链表 (List)

D. 树 (Tree)

✅ 正确答案:B

解析:栈遵循先进后出,适合实现撤销 / 回退。


二、判断题(对打√,错打 ×,每题 5 分,共 5 题,25 分)

第 1 题

在 C++中,可以使用 for(int i=0; i<5; i循环 5 次,i 的值从 0 到 4。()

✅ 正确答案:√

解析:for 循环执行 5 次,i 取 0、1、2、3、4。


第 2 题

数组 {1, 2, 3} 和 {3, 2, 1} 是相同的数组,因为元素一样。()

✅ 正确答案:×

解析:数组元素顺序不同,是不同数组


第 3 题

在 C++ 中,递归函数如果没有正确的终止条件,会导致栈溢出,程序崩溃。()

✅ 正确答案:√

解析:无出口递归会无限调用,造成栈溢出。


第 4 题

在 “灯笼矩阵” 中,若想实现 “奇数行亮红灯,偶数行亮绿灯”,可通过 if(row % 2 == 1) 来判断。()

✅ 正确答案:√

解析:row%2==1 可正确判断奇数行。


第 5 题

声明 const int MAX_SPEED = 100; 后,任何试图修改它的操作都会导致编译错误。()

✅ 正确答案:√

解析:const 常量不可修改,否则报错。


加入工作室

学习编程知识

锻炼逻辑思维

让自己变得更优秀

欢迎同学们组队

学习 C++

感受不一样的程序人生

成为新时代的领军人物


扫码关注

感谢您关注

信奥科创工作室

官方微信

智传民韵初赛试卷四 | 2026年 全国青少年信息素养大赛 C++ 小学组 第1张

互动支持

期待您的分享   点赞   在看

抱歉,评论功能暂时关闭!