2026年全国青少年信息素养大赛算法应用主题赛(C++赛项初赛模拟题5:文末附答案)
一、单选题
-
在C++中,下列哪个头文件是使用
cout和cin所必需的?A.
<stdio.h>B.
<iostream>C.
<cmath>D.
<cstring> -
一只骆驼载重200千克,需要运输总重量为850千克的货物,至少需要多少只骆驼?以下代码能正确计算并输出结果的是( )。
A.
int need = 850 / 200; cout << need;B.
int need = 850 % 200; cout << need;C.
int need = (850 + 200 - 1) / 200; cout << need;D.
double need = 850 / 200; cout << need; -
商队从长安出发,第一天行进40公里,之后每一天比前一天多走5公里,共走了7天。要计算总路程,下列循环结构正确的是( )。
A.
int s=0, d=40; for(int i=1;i<=7;i++){ s+=d; d+=5; }B.
int s=0; for(int i=1;i<=7;i++) s+=40+(i-1)*5;C.
int s=0, d=40; for(int i=0;i<7;i++){ s+=d; d+=5; }D. 以上都是
-
丝绸服饰图案中,一个基本花纹的宽度为8个像素,需要判断像素位置
x(从0开始)是否处于每个花纹的第5个像素(相对位置索引为4)。正确的表达式是( )。A.
x % 8 == 5B.
x % 8 == 4C.
x / 8 == 4D.
x % 4 == 8 -
执行以下代码,输出结果是什么?
cppint a = 7, b = 3; cout << (a / b) << "," << (a % b);A.
2,1B.
2,2C.
2.333,1D.
2,3 -
敦煌壁画有
m行n列像素(m、n为变量),需要创建一个二维数组存储灰度值,正确的定义语句是( )。A.
int mural[m][n];B.
int mural[ ][ ] = new int[m][n];C.
int mural[m][n] = {0};D. 在标准C++中,若m、n不是常量,不能这样定义,应使用动态分配或vector
-
下列哪个循环语句会无限执行?
A.
for(int i=0;i<10;i++);B.
int i=0; while(i<10) i++;C.
int i=0; do{ i++; }while(i<10);D.
for(int i=0;i>=0;i++); -
驼队计划从敦煌到吐鲁番,路线分为三段,需要输入每段的天数,输出总天数。以下代码段正确的是( )。
A.
int d1,d2,d3; cin>>d1>>d2>>d3; int sum = d1+d2+d3; cout<<sum;B.
int d1,d2,d3; cin >> d1 >> d2 >> d3; int sum; d1+d2+d3 = sum; cout<<sum;C.
int d1,d2,d3; cin << d1 << d2 << d3; int sum = d1+d2+d3; cout>>sum;D.
int d1,d2,d3; cout>>d1>>d2>>d3; int sum = d1+d2+d3; cin<<sum; -
阅读以下代码:
cppint x = 4; int y = ++x * 3; cout << x << "," << y;输出结果是( )。
A.
4,12B.
5,12C.
5,15D.
4,15 -
假设有数组
int loads[] = {180, 220, 195, 210};,要求找出最大载重量,以下代码正确的是( )。A.
int max = loads[0]; for(int i=1;i<4;i++) if(loads[i]>max) max=loads[i];B.
int max = 0; for(int i=0;i<4;i++) if(loads[i]>max) max=loads[i];C.
int max = loads[0]; for(int i=0;i<4;i++) if(loads[i]>max) max=loads[i];D. 以上都对
-
定义函数计算长方体的体积,用于估算货物仓储空间,函数原型正确的是( )。
A.
int volume(int a, int b, int c){ return a*b*c; }B.
void volume(int a, int b, int c){ return a*b*c; }C.
double volume(int a, b, c){ return a*b*c; }D.
int volume(a,b,c){ return a*b*c; } -
根据绿洲编号分配补给:编号1~3对应增加水量分别为30,50,20,编号4增加10,其它编号不增加。使用if-else if结构,正确的代码是( )。
A.
if(num==1) water+=30; else if(num==2) water+=50; else if(num==3) water+=20; else water+=10;B.
if(num=1) water+=30; else if(num=2) water+=50; else if(num=3) water+=20; else if(num=4) water+=10;C.
if(num==1) water=30; if(num==2) water=50; if(num==3) water=20; if(num==4) water=10;D.
if(num==1) water+=30; else if(num==2) water+=50; else if(num==3) water+=20; else if(num==4) water+=10; -
模拟丝绸之路商队旗帜,输出一个直角三角形图案,高度为5行,第一行1个星号,第二行2个星号,依次递增,每行星号之间无空格。正确的代码是( )。
A.
for(int i=1;i<=5;i++){ for(int j=1;j<=i;j++) cout<<"*"; cout<<endl; }B.
for(int i=1;i<=5;i++){ for(int j=1;j<=5;j++) cout<<"*"; cout<<endl; }C.
for(int i=5;i>=1;i--){ for(int j=1;j<=i;j++) cout<<"*"; cout<<endl; }D.
for(int i=1;i<=5;i++){ for(int j=1;j<=5-i;j++) cout<<"*"; cout<<endl; } -
字符串变量
city1 = "喀什",city2 = "龟兹",要比较两个字符串的大小(按字典序),使用C++ string类型,正确的表达式是( )。A.
city1 > city2B.
strcmp(city1, city2) > 0C.
city1.compare(city2) > 0D. A和C都可以
-
骆驼运输条件:年龄≥5岁,或者负重能力≥180千克且健康值为true。设变量
age、load、healthy(bool类型),正确表达式是( )。A.
age>=5 || load>=180 && healthyB.
(age>=5 || load>=180) && healthyC.
age>=5 && load>=180 || healthyD.
(age>=5) && (load>=180 || healthy)
二、判断题
- C++中,
int a[10];定义了一个包含10个整型元素的数组,合法的下标范围是0到9。( ) - 在if语句中,条件表达式必须使用圆括号括起来。( )
- 使用
break语句可以提前终止本次循环的剩余语句并开始下一次迭代。( ) - 全局变量在程序的任何地方都可以访问,但局部变量只能在其所在函数内访问。( )
- 整数除法
5/2的结果是2.5。( )
参考答案与解析
单选题解析
-
B
cout和cin是iostream库中的对象,需要包含<iostream>。 -
C
向上取整公式
(总重 + 单驼载重 - 1) / 单驼载重可确保余数时多一只骆驼。A结果为4,实际需要5只;B是余数;D得到浮点数4.25但输出可能不整。 -
D
A和C通过循环累加并增加步长;B直接使用等差数列公式。三种均正确。
-
B
取模运算得到单元内偏移,第5个像素索引为4,故
x % 8 == 4。 -
A
整数除法
7/3得2,取余7%3得1,输出2,1。 -
D
标准C++中,数组维度必须是编译时常量。变量m、n不是常量,不能直接定义静态数组。应使用动态内存或vector。
-
D
i>=0始终为真(i不断增大),循环无限执行。A、B、C均会正常结束。 -
A
正确使用
cin >>输入,+求和,cout <<输出。B赋值方向错误;C输入输出方向反了;D完全反了。 -
C
++x先自增为5,再乘以3得15,输出5,15。 -
D
A从第二个元素开始比较,正确;B设max=0,因所有负载>0也可行;C从第一个开始且循环包含第一个,也正确。三个都能找出最大值。
-
A
A返回整型体积,参数类型正确。B的void类型不能返回int;C参数未写类型;D参数无类型。
-
D
A最后的else错误;B中
num=1是赋值而非比较;C使用多个独立if,但water不是+=;D正确。 -
A
A外循环控制行数,内循环控制当前行星号数(递增),输出直角三角形。B输出5×5方形;C输出倒直角三角形;D输出每行星号递减。
-
D
string类支持
>等关系运算符直接比较字典序,也支持compare()成员函数。B适用于C风格字符串,不能直接用于string对象。 -
A
逻辑或
||优先级低于&&。 -
A
A外循环控制行数,内循环控制当前行星号数(递增),输出直角三角形。B输出5×5方形;C输出倒直角三角形;D输出每行星号递减。
-
D
string类支持
>等关系运算符直接比较字典序,也支持compare()成员函数。B适用于C风格字符串,不能直接用于string对象。 -
B
逻辑或
||优先级低于&&,但为清晰最好加括号。条件为:年龄≥5 或 (负重≥180且健康)。B正确。A缺少括号,但&&优先级高于||,实际等价于age>=5 || (load>=180 && healthy),也是对的。但考虑到可读性和避免混淆,通常建议加括号。不过A也正确。因为题目要求"正确表达式",A和B逻辑等价。单选题中若同时出现,选最标准写法B。C逻辑不同;D是年龄≥5且(负重≥180或健康),错误。
判断题解析
-
√
数组下标从0开始,长度10的元素下标0~9。
-
√
条件表达式必须用圆括号括起来,如
if(x>0)。 -
×
break终止整个循环(跳出循环),continue才跳过本次迭代剩余语句。 -
√
全局变量作用域为整个程序(多个文件需extern),局部变量只在其定义所在的函数内有效。
-
×
整数除法
5/2结果为2(截断小数部分)。
关注老师的专栏,查看完整版全国青少年信息素养大赛C++备赛资料(初赛+复赛):
https://blog.csdn.net/weixin_66461496/category_12969975.html
各种学习资料,助力大家一站式学习和提升!!!
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信奥赛冲刺一等奖有效刷题题解:
CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新): 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;
}

