2026年全国青少年信息素养大赛算法应用主题赛(C++赛项-初赛-赛前冲刺模拟卷1:文末附答案和解析)

2026年全国青少年信息素养大赛算法应用主题赛(C++赛项-初赛-赛前冲刺模拟卷1:文末附答案和解析)

第一部分:选择题(每题只有一个正确答案)

1. 丝路商队要记录携带的丝绸数量,丝绸数量为整数且不会超过 2000 匹。在 C++ 中,下列哪个数据类型最适合定义丝路商队携带的丝绸总匹数?

A. float

B. int

C. char

D. double

2. 阅读以下代码,程序输出结果是什么?

cpp 复制代码
char a = 'A';
int b = (int)a;
cout << b << endl;

A. A

B. 65

C. 97

D. 0

3. 丝路商队在大漠中行进,已知正午地面温度 p 与夜间地面温度 q。若温差大于等于 20 摄氏度,骆驼需要加厚脚垫保护。下列哪个分支结构能正确描述上述温差判断逻辑?

A. if (p - q <= 20)

B. if (p + q >= 20)

C. if (p - q >= 20)

D. if (p > 20 && q < 20)

4. 丝路商队从长安出发向西域前行,假设每天行进的里数记录在变量 day 中。下列代码段中,哪个选项可以实现"只要还没有到达目的地(day<20),就继续前进"?

A.

cpp 复制代码
int day = 0;
while (day >= 20){
    day = day + 1;
    cout << "前进中" << endl;
}

B.

cpp 复制代码
int day = 0;
while (day < 20){
    day = day + 1;
    cout << "前进中" << endl;
}

C.

cpp 复制代码
int day = 0;
do {
    day = day + 1;
    cout << "前进中" << endl;
} while (day > 20);

D.

cpp 复制代码
int day = 20;
while (day < 20){
    day = day - 1;
    cout << "前进中" << endl;
}

5. 以下代码使用了 C++ 中的 switch 语句,用来表示古丝绸之路上的几个贸易站:

cpp 复制代码
int station = 2;
switch (station){
    case 1:
        cout << "玉门关 ";
    case 2:
        cout << "阳关 ";
    case 3:
        cout << "葱岭 ";
    default:
        cout << "撒马尔罕";
}

程序输出结果为以下哪个?

A. 阳关 撒马尔罕

B. 阳关 葱岭 撒马尔罕

C. 玉门关 阳关 葱岭 撒马尔罕

D. 撒马尔罕

6. 下列哪个 C++ 表达式可以正确计算 28 除以 5 的整数商

A. 28 / 5

B. 28 % 5

C. 28 // 5

D. 28 \ 5

7. 驼队从长安出发,携带的物资包数 n 由键盘输入。阅读下面的代码段,当输入为 8 时,输出结果是什么?

cpp 复制代码
int n;
cin >> n;
if (n = 8)
    cout << "需加派骆驼" << endl;
else
    cout << "正常出行" << endl;

A. 需加派骆驼

B. 正常出行

C. 程序编译错误

D. 输出不确定

8. 下列哪个 C++ 选项能正确实现"遍历 j 从 5 到 10(包含 10)的循环体执行"?

A. for (int j = 5; j <= 10; j++)

B. for (int j = 5; j < 10; j++)

C. while (j <= 10) { j++; }

D. for (int j = 5; j == 10; j++)

9. 丝路邮件系统用字符串数组 string mails[3] = {"敦煌","楼兰","于阗"};存储三个收件城市的名称,其中下标为[1] 的字符串是以下哪个?

A. 敦煌

B. 楼兰

C. 于阗

D. 编译错误

10. 假设 int a[5] = {10, 20, 30, 40, 50}; 在 C++ 中,以下哪个下标访问是 非法(即超出数组有效范围) 的?

A. a[0]

B. a[4]

C. a[5]

D. a[2]

11. 阅读以下计算骆驼饲料总量的程序:

cpp 复制代码
int total = 0;
for (int i = 1; i <= 5; i++){
    if (i % 2 == 0)
        continue;
    total += i;
}
cout << total << endl;

程序执行后,最终输出的 total 值为多少?

A. 6

B. 9

C. 15

D. 12

12. 骆驼商队在中途驿站搬运货物,货物的初始数量为 goods = 100。每到达一个驿站,货物数量会减少 20。补全以下 while 循环代码,使程序能模拟 直到货物数量不大于 40时停止运输 的逻辑。

cpp 复制代码
int goods = 100;
while (__________){
    goods -= 20;
    cout << "当前剩余货物数量:" << goods << endl;
}

A. goods > 0

B. goods > 40

C. goods < 40

D. goods == 0

13. 阅读以下求重量总和的代码:

cpp 复制代码
int weights[4] = {12, 15, 20, 18};
int sum = 0;
int i = 0;
while (i < 4){
    sum = sum + weights[i];
    i++;
}

数组最后一个元素即 weights[3] 的值是多少?整个代码的功能是怎样的?

A. sum 最后的结果是 45

B. weights[3] = 20,代码求出数组前三个元素之和

C. weights[3] = 18,代码求出数组全部元素之和

D. weights[4] = 18,代码无法编译

14. 丝路商队中的队长想要统计 7 天行程中每天前进的里数,他用 int step[7] 存放每天的数据,下列哪条语句能给 数组的第二个元素(该元素下标为 1) 赋值 35 里?

A. step[35] = 1;

B. step[1] = 35;

C. step[0] = 35;

D. step = 35;

15. 算盘的算珠使用 C++ 中的 break 控制 for 循环行为的示意代码如下:

cpp 复制代码
for (int k = 0; k < 10; k++){
    if (k == 5){
        break;
    }
    cout << k << " ";
}

上述代码的运行结果是以下哪一项?

A. 1 2 3 4 5

B. 0 1 2 3 4 5

C. 0 1 2 3 4

D. 5 6 7 8 9


第二部分:判断题(判断下列描述的正误,正确的选"✔",错误的选"✘")

16. 在 C++ 中,逻辑运算符 && 表示"或(OR)","||" 表示"与(AND)"。

17. int arr[5]; 表示定义了一个可以存储五个整型元素的数组,分别用 arr[0]arr[1]arr[2]arr[3]arr[4] 表示。

18. 执行 int a = 5 / 2; 后,变量 a 的值是 2.5(浮点数类型)。

19. 在 C++ 语言中,数组的下标必须从 1 开始,数组元素的下标最大值就是数组定义的容量大小。

20.if 语句中,小括号内 if (x = 5) 表示判断 x 与 5 是否相等,而不是将 5 赋值给 x 后再用于逻辑判断。


答案及解析

选择题答案
  1. B
  2. B
  3. C
  4. B
  5. B
  6. A
  7. A
  8. A
  9. B
  10. C
  11. B
  12. B
  13. C
  14. B
  15. C
判断题答案

详细解析

1. 整数且不超过 2000,int 足够,float/double 多余,char 太小。

2. 'A' ASCII 码 65,强制转 int 得 65。

3. 温差 p-q >= 20,对应 if (p - q >= 20)

4. 条件 day<20 时继续,B 正确。

5. station=2,case 2 匹配后无 break,穿透执行后续,输出 阳关 葱岭 撒马尔罕

6. 整数除法 28/5 得商 5,% 是取余。

7. if (n = 8) 是赋值,结果为 8(真),输出"需加派骆驼"。

8. for (int j=5; j<=10; j++) 包含 10。

9. 字符串数组(下标1)是 "楼兰"

10. 有效下标 0~4,a[5] 越界。

11. 累加奇数 1,3,5 → 9,偶数被 continue 跳过。

12. 要求"直到货物数量 ≤ 40 停止",即 goods > 40 时继续循环。初始 100 > 40 进入,减为 80(输出),再减为 60(输出),再减为 40 后条件 40>40 为假,循环退出。最终剩余 40,符合"不大于 40"。

  • 若选 A (>0) 会减到 0 才停,多余一次。
  • C (<40) 初始假,不执行。
  • D (==0) 初始假,不执行。
    因此 B 正确。

13. weights[3]=18,循环累加全部 4 个元素得 65,C 正确。

14. 第二个元素下标 1,赋值 step[1]=35

15. k=0 到 4 输出,k=5break 退出,输出 0 1 2 3 4

16. 错误。&& 是与(AND),|| 是或(OR)。

17. 正确。数组下标 0~4。

18. 错误。整数除法得 2,不是 2.5,且类型 int

19. 错误。下标从 0 开始,最大下标为容量-1。

20. 错误。if (x = 5) 是赋值,不是相等判断;相等应使用 ==


关注老师的专栏,查看完整版全国青少年信息素养大赛C++备赛资料(初赛+复赛):

https://blog.csdn.net/weixin_66461496/category_12969975.html

相关课程《全国青少年信息素养大赛C++初赛真题试卷及答案解析》(视频课)

https://www.bilibili.com/cheese/play/ss447406764

相关课程《全国青少年信息素养大赛C++复赛真题试卷及答案解析》(视频课)

https://www.bilibili.com/cheese/play/ep2532538


各种学习资料,助力大家一站式学习和提升!!!

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	cout<<"##########  一站式掌握信奥赛知识!  ##########";
	cout<<"#############  冲刺信奥赛拿奖!  #############";
	cout<<"######  课程购买后永久学习,不受限制!   ######";
	return 0;
}

【秘籍汇总】(完整csp信奥赛C++学习资料):

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.csdn.net/lecturer/7901 点击跳转

2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

3、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转

4、csp信奥赛冲刺一等奖有效刷题题解:

信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

信奥赛C++提高组csp-j初赛&复赛真题题解(持续更新): https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转

5、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转

GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转

· 文末祝福 ·

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	cout<<"跟着王老师一起学习信奥赛C++";
	cout<<"    成就更好的自己!       ";
	cout<<"  csp信奥赛一等奖属于你!   ";
	return 0;
}
相关推荐
alwaysrun1 小时前
C++之轻量级JSON序列库jsoncpp
c++·json·编程语言
咩咦1 小时前
C++学习笔记09:内联函数 inline
c++·学习笔记·inline·内联函数·宏函数
计算机安禾1 小时前
【c++面向对象编程】第19篇:多继承与菱形继承(二):虚拟继承的内存模型与复杂性
开发语言·c++
思麟呀1 小时前
在C++基础上理解CSharp-1
开发语言·c++·c#
学习,学习,在学习2 小时前
Q工控仪器程序框架设计详解(工控)
c++·qt·架构·qt5
j7~2 小时前
【Linux系统】基础IO(文件描述)(1)
linux·服务器·c++·文件·基础io
计算机安禾2 小时前
【c++面向对象编程】第20篇:override与final关键字:现代C++对继承的控制
开发语言·c++
郝学胜-神的一滴2 小时前
Qt 高级开发 004: 三大窗口类深度解析
开发语言·c++·qt·程序人生·系统架构
王老师青少年编程2 小时前
csp信奥赛C++高频考点专项训练之字符串 --【字符串综合】:[NOIP 2004 普及组] FBI 树
c++·字符串·csp·高频考点·信奥赛·字符串综合·fbi树