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. 阅读以下代码:

cpp 复制代码
for (int i = 1; i <= 3; i++) {
    for (int j = 1; j <= 4; j++) {
        cout << "#";
    }
    cout << endl;
}

该程序共输出多少个#

A. 12

B. 7

C. 9

D. 16

6. 阅读以下代码:

cpp 复制代码
int sum = 0;
for (int i = 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. 阅读以下代码:

cpp 复制代码
char t[6] = {'A', 'b', 'C', 'd', 'E', 'f'};
int cnt = 0;
for (int i = 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. 阅读以下代码:

cpp 复制代码
int n = 10;
while (n < 100) {
    if ((①) || (②) || (③)) cout << "YES";
    else cout << 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. 执行以下代码后,说法正确的有?

cpp 复制代码
int c[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. 阅读以下代码:

cpp 复制代码
int a[9] = {1, 1, 2, 3, 5, 8, 13, 21, 34};
for (int i = 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++代码:

cpp 复制代码
if (score >= 60)
    cout << "及格";
else
    cout << "不及格";

若score的值为60,则程序输出"及格"。

正确 错误

20. 在不知道要循环多少次的情况下,优先使用while循环。

正确 错误


参考答案与解析

1. 答案:B

解析scoreint 类型,只能存储整数。

  • A:字符 'B' 会隐式转换为ASCII码66,语法上允许但通常不推荐,本题要求"合法"且最直接的是整数赋值。
  • B:直接赋值整数100,完全合法。
  • C:布尔值 false 会转换为0,合法但少见。
  • D:浮点数99.5赋值给整型会截断为99,合法但丢失精度。
    题目倾向于选择最标准、无争议的整数赋值,故选B。
2. 答案:D

解析 :半径可能有小数,必须使用浮点型。double 精度高,是处理小数的最佳选择。intcharlong 均为整型,不能存储小数部分。

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
    选项C n/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


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

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 点击跳转

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 点击跳转

· 文末祝福 ·

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	cout<<"跟着王老师一起学习信奥赛C++";
	cout<<"    成就更好的自己!       ";
	cout<<"  csp信奥赛一等奖属于你!   ";
	return 0;
}
相关推荐
轻颂呀9 小时前
C++11——并发库介绍
开发语言·c++
梓䈑10 小时前
【算法题攻略】快速排序 和 归并排序
数据结构·c++·排序算法
fan_music10 小时前
设计模式学习
c++·设计模式
小小编程路11 小时前
C++ 常用逻辑运算符
开发语言·c++·算法
‎ദ്ദിᵔ.˛.ᵔ₎13 小时前
C++ 智能指针
开发语言·c++
Lumbrologist13 小时前
【C++】零基础入门 · 第 4 节:循环结构(while、for、do-while)
开发语言·c++
我命由我1234513 小时前
Android Framework P4 - ServiceManager 进程
android·c语言·c++·visualstudio·android studio·android-studio·android runtime
叶子野格13 小时前
《C语言学习:编程例题》B
c语言·开发语言·c++·学习
郝学胜-神的一滴14 小时前
Qt 高级开发014 :信号槽connect函数精讲
开发语言·c++·qt·开源软件·用户界面