2026年全国青少年信息素养大赛初赛真题(算法应用主题赛C++初中组初赛真题3:文末附答案和解析)
2026年全国青少年信息素养大赛初赛真题(算法应用主题赛C++初中组初赛真题3:文末附答案和解析)
一、单项选择题(共10题,每题5分)
1.在C++中,定义了整型变量int score;以下哪个赋值语句是合法的?
A.score = 'B';
B.score = 100;
C.score = false;
D.score = 99.5;
2.小红需要定义一个变量来表示圆的半径(允许有小数部分),以下最合适的数据类型是?
A.int
B.char
C.long
D.double
3.水果摊上苹果每斤m元,梨每斤n元,小明买了3斤苹果和3斤梨,则总花费的表达式为?
A.3*m+n
B.m+n*3
C.3*(m+n)
D.(m+n)/3
4.某游乐场规定:身高不低于120厘米且年龄不超过12岁才可免费入场。设height表示身高,age表示年龄,以下哪个表达式符合免费入场的条件?
A.(height>120)&&(age<12)
B.(height>=120)||(age<=12)
C.(height>120)||(age<=12)
D.(height>=120)&&(age<=12)
5.阅读以下代码:
for(inti=1;i<=3;i++){for(intj=1;j<=4;j++){cout<<"#";}cout<<endl;}该程序共输出多少个#?
A. 12
B. 7
C. 9
D. 16
6.阅读以下代码:
intsum=0;for(inti=1;i<=10;i++){if(i%2==1)sum+=i;}以上代码的作用是?
A. 计算1到11的累加和
B. 计算1到10的累加和
C. 计算1到10内的奇数的累加和
D. 计算1到10内的偶数的累加和
7.以下关于C++数组的定义的说法,正确的是?
A. 数组长度可以为负数,如int a[-1];
B. 数组长度可以是小数,如int a[2.5];
C.int a[2] = {1,2,3};是合法的定义
D.int arr[] = {5,10,15};是合法的定义
8.小乐定义了一个数组int a[5] = {1,2};则数组a里面的元素的值为?
A. “1,2,随机值,随机值,随机值”
B. “1,2,2,2,2”
C. “1,2,1,2,1”
D. “1,2,0,0,0”
9.小乐定义了数组int a[5] = {2, 33, 14, 51, 26};现在想要输出51,则可以通过以下哪行代码实现?
A.cout << a[1];
B.cout << a[0];
C.cout << a[2];
D.cout << a[3];
10.阅读以下代码:
chart[6]={'A','b','C','d','E','f'};intcnt=0;for(inti=0;i<6;i++){if((t[i]>='A')&&(t[i]<='Z'))cnt++;}cout<<cnt;输出结果是?
A. 6
B. 1
C. 3
D. 2
二、多项选择题(每题5分,全对得5分,错选、多选、少选均不得分)
11.阅读以下代码:
intn=10;while(n<100){if((①)||(②)||(③))cout<<"YES";elsecout<<n<<endl;n++;}请选择能填在填空①②③处的选项(多选)。
A.n/10 == 7
B.n%10 == 7
C.n/7 == 0
D.n%7 == 0
12.以下关于整数 m=36 的描述,正确的有?
A. 36是9的倍数
B. 6是36的约数
C. 36是4的倍数
D. 36是5的倍数
13.执行以下代码后,说法正确的有?
intc[5]={10,20,30,40,50};c[0]=100;c[3]=400;A.c[1]的值为20
B.c[0]的值为10
C.c[2]的值为20
D.c[3]的值为400
14.阅读以下代码:
inta[9]={1,1,2,3,5,8,13,21,34};for(inti=0;i<9;i++){if(i%3==0)cout<<a[i]<<" ";}运行上述程序,输出的数字有?
A. 13
B. 9
C. 1
D. 3
15.在编写程序时,我们经常会用到输入输出语句,在C++中关于输入输出的写法正确的是?
A.cout << a << endl;
B.cin >> a;
C.char >> a >> endl;
D.continue << a << endl;
三、判断题(共5题,每题5分)
16.小乐定义了两个int型变量a和b,现在需要判断a和b是否不相等,可以使用运算符!=。
正确 错误
17.在C++中,定义数组int b[] = {4, 8, 12};时,编译器会自动将数组长度设为3。
正确 错误
18.在C++中,语句a *= 3;等价于a = a * 3;。
正确 错误
19.阅读以下C++代码:
if(score>=60)cout<<"及格";elsecout<<"不及格";若score的值为60,则程序输出“及格”。
正确 错误
20.在不知道要循环多少次的情况下,优先使用while循环。
正确 错误
参考答案与解析
1. 答案:B
解析:score是int类型,只能存储整数。
- A:字符
'B'会隐式转换为ASCII码66,语法上允许但通常不推荐,本题要求“合法”且最直接的是整数赋值。 - B:直接赋值整数100,完全合法。
- C:布尔值
false会转换为0,合法但少见。 - D:浮点数99.5赋值给整型会截断为99,合法但丢失精度。
题目倾向于选择最标准、无争议的整数赋值,故选B。
2. 答案:D
解析:半径可能有小数,必须使用浮点型。double精度高,是处理小数的最佳选择。int、char、long均为整型,不能存储小数部分。
3. 答案:C
解析:总花费 = 3斤苹果费用 + 3斤梨费用 = 3×m + 3×n = 3×(m+n)。选项C正确。
A:漏了梨的斤数;B:运算顺序错误,先算n*3再加m;D:除法错误。
4. 答案:D
解析:“不低于120”即身高 ≥ 120,“不超过12”即年龄 ≤ 12,“且”要求两个条件同时成立,用逻辑与&&。故选D。
5. 答案:A
解析:外层循环3次,内层循环每次输出4个#,共输出 3×4 = 12个#。
6. 答案:C
解析:i % 2 == 1判断i是否为奇数。循环 i 从1到10,当i为奇数时累加到sum。所以计算1~10内奇数的和。
7. 答案:D
解析:
- A:数组长度不能为负数。
- B:数组长度必须是整型常量表达式,不能是小数。
- C:初始化列表元素个数(3)超过了数组长度(2),语法错误。
- D:省略数组长度时,编译器根据初始化列表元素个数自动确定长度,合法。
8. 答案:D
解析:C++中,数组部分初始化时,未显式指定的元素会被自动初始化为0。因此a[0]=1, a[1]=2, a[2]=0, a[3]=0, a[4]=0。
9. 答案:D
解析:数组下标从0开始:a[0]=2, a[1]=33, a[2]=14, a[3]=51, a[4]=26。要输出51应使用a[3]。
10. 答案:C
解析:循环遍历字符数组,判断每个字符是否为大写字母(ASCII码在 ‘A’~‘Z’ 之间)。数组中有 ‘A’、‘C’、‘E’ 三个大写字母,故cnt=3。
11. 答案:A、B、D
解析:循环要求输出“YES”的条件是 n 包含数字7或是7的倍数。
- 十位是7:
n/10 == 7 - 个位是7:
n%10 == 7 - 是7的倍数:
n%7 == 0
选项Cn/7 == 0仅当 n<7 时成立(整数除法),不符合要求。
12. 答案:A、B、C
解析:
- 36 ÷ 9 = 4,整除 → A正确。
- 36 ÷ 6 = 6,整除 → 6是36的约数 → B正确。
- 36 ÷ 4 = 9,整除 → C正确。
- 36 ÷ 5 = 7.2,不整除 → D错误。
13. 答案:A、D
解析:初始c = {10,20,30,40,50}。
执行c[0]=100;后,c[0]变为100;
执行c[3]=400;后,c[3]变为400。
其他元素不变:c[1]=20,c[2]=30。
所以A正确(c[1]=20),B错误(c[0]=100),C错误(c[2]=30),D正确(c[3]=400)。
14. 答案:A、C、D
解析:循环中当i % 3 == 0时输出a[i]。
i=0 → a[0]=1
i=3 → a[3]=3
i=6 → a[6]=13
输出顺序为 1, 3, 13,对应选项C、D、A。注意选项B的9不在输出中。
15. 答案:A、B
解析:
- A:
cout << a << endl;是标准输出语句,正确。 - B:
cin >> a;是标准输入语句,正确。 - C:
char是数据类型,不是流对象,不能使用>>运算符。 - D:
continue是循环跳转关键字,不能用于输出。
16. 答案:正确
解析:!=是C++中的不等于运算符,用法正确。
17. 答案:正确
解析:当数组定义时省略长度,编译器会根据初始化列表中的元素个数自动确定数组长度,此处为3。
18. 答案:正确
解析:a *= 3是复合赋值运算符,等价于a = a * 3。
19. 答案:正确
解析:score=60满足score >= 60,因此执行cout << "及格";。
20. 答案:正确
解析:while循环适用于循环次数未知、仅依赖条件判断的场景;for循环更适合已知循环次数的情况。
关注老师的专栏,查看完整版全国青少年信息素养大赛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
各种学习资料,助力大家一站式学习和提升!!!
#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}【秘籍汇总】(完整csp信奥赛C++学习资料):
1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):
https://edu.csdn.net/lecturer/7901 点击跳转
2、CSP信奥赛C++竞赛拿奖视频课:
https://edu.csdn.net/course/detail/40437 点击跳转
https://edu.csdn.net/course/detail/41081 点击跳转
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 点击跳转
· 文末祝福 ·
#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}