#10978. 星火征途主题-初赛试卷5
0
星火征途主题-初赛试卷5
2026年信息素养大赛C++卷(五)
主题:星火征途
一、单选题(共15题,共60分)
- 在"星火征途"的星际导航系统中,工程师定义了一个存储星区坐标的二维数组:int coordinates[5][7]; 请问该数组总共可以存储多少个坐标点?( ) {{ select(1) }}
- 7
- 12
- 35
- 43
- 飞船的能量核心需要周期性充能。以下代码执行后,变量 energy 的最终值是多少?( )
int energy = 0;
for(int i = 1; i <= 10; i++) {
if(i % 3 == 0) {
energy += i;
}
}
{{ select(2) }}
- 18
- 20
- 30
- 55
- 飞船的传感器阵列读取了一组温度数据存入一维数组:int temp[] = {20, 25, 30}; 请问 temp[2] 的值是多少?( ) {{ select(3) }}
- 0
- 30
- 随机值
- 编译错误
- 为了绘制飞船的雷达扫描图,需要用到嵌套循环。以下代码执行后,星号 * 总共输出了多少次?( )
for(int i = 0; i < 4; i++) {
for(int j = 0; j <= i; j++) {
cout << "*";
}
}
{{ select(4) }}
- 6
- 10
- 16
- 20
- 工程师需要找出信号强度数组中的最大值。以下代码片段中,①处应填入的代码是?( )
int signal[] = {10, 50, 30, 20, 40};
int maxVal = signal[0];
for(int i = 1; i < 5; i++) {
if( ① ) {
maxVal = signal[i];
}
}
{{ select(5) }}
- signal[i] > maxVal
- signal[i] < maxVal
- signal[i] > signal[0]
- i > maxVal
- 在 "丝路新程" 任务中,需要生成一个 n×n 的回型方阵(同心方阵/圈层方阵,数字从外圈到内圈逐层递增)。当输入 n=3 时,以下哪个是正确的输出?( ) {{ select(6) }}
- 1 1 1
1 2 1
1 1 1 - 1 2 1
2 3 2
1 2 1 - 1 1 1
1 2 2
1 2 3 - 1 2 3
2 2 3
3 3 3
- 以下代码用于模拟细菌的繁殖。执行后,变量 count 的值是?( )
int count = 0;
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 2; j++) {
count++;
}
}
{{ select(7) }}
- 5
- 6
- 9
- 12
- 飞船的燃料补给站是一个二维矩阵。定义 int station[5][6];,请问 station[2][3] 这个元素的行号和列号分别是多少?( ) {{ select(8) }}
- 第2行,第3列
- 第3行,第2列
- 第2行,第4列
- 第3行,第4列
- 以下代码用于输出九九乘法表的一部分。若 i=3,内层循环结束后,总共输出了多少个不同等式?( )
for(int i = 1; i <= 9; i++) {
for(int j = 1; j <= i; j++) {
cout << j << "*" << i << "=" << i*j << " ";
}
cout << endl;
}
{{ select(9) }}
- 3
- 6
- 9
- 1
- 某飞船序列号生成规则为:a[1]=1, a[i] = a[i-1] * 2 + 1。当 n=4 时,a[4] 的值是?( ) {{ select(10) }}
- 15
- 31
- 7
- 63
- 为了在雷达上显示一个空心正方形,需要判断当前位置 (i, j) 是否在边框上。对于一个 5x5 的方阵,判断条件应为?( ) {{ select(11) }}
- i1 || i5 || j1 || j5
- i1 && i5 && j1 && j5
- i1 || j1
- i5 || j5
- 在C++中,关于数组和循环的说法,错误的是?( ) {{ select(12) }}
- 数组下标越界可能会导致程序崩溃或数据错误
- break 语句可以用于跳出当前循环
- 数组名代表数组首元素的地址
- 定义数组 int a[n] 时,n 可以是运行时输入的变量(标准C++规定)
- 以下代码执行后,数组 arr 的内容变为?( )
int arr[4] = {1, 2, 3, 4};
for(int i=0; i<2; i++) {
int temp = arr[i];
arr[i] = arr[3-i];
arr[3-i] = temp;
}
{{ select(13) }}
- {1, 2, 3, 4}
- {4, 3, 2, 1}
- {2, 1, 4, 3}
- {4, 2, 3, 1}
- 想要输出一个 5x5 的空心正方形图案(边框为*,中间为空格),判断条件应为?( )
for(int i=1; i<=5; i++) {
for(int j=1; j<=5; j++) {
if(i==1 || i==5 || j==1 || j==5) cout << "*";
else cout << " ";
}
cout << endl;
}
{{ select(14) }}
- 代码逻辑正确
- 只能输出实心正方形
- 只能输出一行
- 会报错
- 在"星火征途"的算法竞赛中,以下代码的时间复杂度是?( )
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
// 基本操作
}
}
{{ select(15) }}
- O(n)
- O(n²)
- O(2n)
- O(1)
二、判断题(共5题,共20分)
- 在 C++ 中,数组 int data[5] = {1, 2}; 未显式赋值的元素(data[2] 到 data[4])会自动初始化为 0。( ) {{ select(16) }}
- 正确
- 错误
- do-while 循环无论条件是否满足,循环体至少会执行一次。( ) {{ select(17) }}
- 正确
- 错误
- 二维数组 int map[3][4]; 中,map[2][3] 是该数组的最后一个元素。( ) {{ select(18) }}
- 正确
- 错误
- 在循环中,continue 语句的作用是立即终止整个循环,不再执行后续的任何迭代。( ) {{ select(19) }}
- 正确
- 错误
- 字符数组 char str[] = "Star"; 在内存中实际占用的字节数是5个(包含结束符'\0')。( ) {{ select(20) }}
- 正确
- 错误