#10978. 星火征途主题-初赛试卷5

0

星火征途主题-初赛试卷5

2026年信息素养大赛C++卷(五)

主题:星火征途

一、单选题(共15题,共60分)

  1. 在"星火征途"的星际导航系统中,工程师定义了一个存储星区坐标的二维数组:int coordinates[5][7]; 请问该数组总共可以存储多少个坐标点?( ) {{ select(1) }}
  • 7
  • 12
  • 35
  • 43
  1. 飞船的能量核心需要周期性充能。以下代码执行后,变量 energy 的最终值是多少?( )
int energy = 0;
for(int i = 1; i <= 10; i++) {
    if(i % 3 == 0) {
        energy += i;
    }
}

{{ select(2) }}

  • 18
  • 20
  • 30
  • 55
  1. 飞船的传感器阵列读取了一组温度数据存入一维数组:int temp[] = {20, 25, 30}; 请问 temp[2] 的值是多少?( ) {{ select(3) }}
  • 0
  • 30
  • 随机值
  • 编译错误
  1. 为了绘制飞船的雷达扫描图,需要用到嵌套循环。以下代码执行后,星号 * 总共输出了多少次?( )
for(int i = 0; i < 4; i++) {
    for(int j = 0; j <= i; j++) {
        cout << "*";
    }
}

{{ select(4) }}

  • 6
  • 10
  • 16
  • 20
  1. 工程师需要找出信号强度数组中的最大值。以下代码片段中,①处应填入的代码是?( )
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
  1. 在 "丝路新程" 任务中,需要生成一个 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
  1. 以下代码用于模拟细菌的繁殖。执行后,变量 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
  1. 飞船的燃料补给站是一个二维矩阵。定义 int station[5][6];,请问 station[2][3] 这个元素的行号和列号分别是多少?( ) {{ select(8) }}
  • 第2行,第3列
  • 第3行,第2列
  • 第2行,第4列
  • 第3行,第4列
  1. 以下代码用于输出九九乘法表的一部分。若 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
  1. 某飞船序列号生成规则为:a[1]=1, a[i] = a[i-1] * 2 + 1。当 n=4 时,a[4] 的值是?( ) {{ select(10) }}
  • 15
  • 31
  • 7
  • 63
  1. 为了在雷达上显示一个空心正方形,需要判断当前位置 (i, j) 是否在边框上。对于一个 5x5 的方阵,判断条件应为?( ) {{ select(11) }}
  • i1 || i5 || j1 || j5
  • i1 && i5 && j1 && j5
  • i1 || j1
  • i5 || j5
  1. 在C++中,关于数组和循环的说法,错误的是?( ) {{ select(12) }}
  • 数组下标越界可能会导致程序崩溃或数据错误
  • break 语句可以用于跳出当前循环
  • 数组名代表数组首元素的地址
  • 定义数组 int a[n] 时,n 可以是运行时输入的变量(标准C++规定)
  1. 以下代码执行后,数组 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}
  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) }}

  • 代码逻辑正确
  • 只能输出实心正方形
  • 只能输出一行
  • 会报错
  1. 在"星火征途"的算法竞赛中,以下代码的时间复杂度是?( )
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分)

  1. 在 C++ 中,数组 int data[5] = {1, 2}; 未显式赋值的元素(data[2] 到 data[4])会自动初始化为 0。( ) {{ select(16) }}
  • 正确
  • 错误
  1. do-while 循环无论条件是否满足,循环体至少会执行一次。( ) {{ select(17) }}
  • 正确
  • 错误
  1. 二维数组 int map[3][4]; 中,map[2][3] 是该数组的最后一个元素。( ) {{ select(18) }}
  • 正确
  • 错误
  1. 在循环中,continue 语句的作用是立即终止整个循环,不再执行后续的任何迭代。( ) {{ select(19) }}
  • 正确
  • 错误
  1. 字符数组 char str[] = "Star"; 在内存中实际占用的字节数是5个(包含结束符'\0')。( ) {{ select(20) }}
  • 正确
  • 错误