#2901. 2026全国信息素养大赛算法应用主题赛:C++丝路新城卷(三)
2026全国信息素养大赛算法应用主题赛:C++丝路新城卷(三)
2026全国信息素养大赛算法应用主题赛:C++丝路新城卷(三)
一、单项选择题(每题 2 分)
1. 在“丝路新城”的环境监测系统中,需要定义一个变量来存储某个监测点的PM2.5浓度(例如45.7)。以下哪种数据类型最合适?{{ select(1) }}
- int
- string
- double
- char
2. 新城的智能预警系统需要根据PM2.5浓度pmLevel发布警报。如果浓度超过ALERT_THRESHOLD,则发布橙色警报。以下哪个C++代码片段能最好地实现这个决策逻辑?{{ select(2) }}
if (pmLevel = ALERT_THRESHOLD) { publishAlert("Orange"); }if (pmLevel > ALERT_THRESHOLD) { publishAlert("Orange"); }while (pmLevel > ALERT_THRESHOLD) { publishAlert("Orange"); }for (pmLevel = ALERT_THRESHOLD; pmLevel > 0; pmLevel--) { publishAlert("Orange"); }
3. 为了分析“丝路新城”中心区一天内的平均噪音水平,监测设备每小时记录一次数据,得到一个数组double noiseData[24] = {...};。以下哪段代码能正确计算出这24小时的总噪音值?{{ select(3) }}
double totalNoise = noiseData / 24;double totalNoise = 0; for(int i = 0; i < 24; i++) { totalNoise += noiseData[i]; }double totalNoise = noiseData[0] + noiseData[23];double totalNoise = noiseData[24];
4. “丝路新城”部署了20个水质监测站,需要定期读取每个站点的数据。为了高效地为每一个站点执行“读取数据”的操作,最合适的编程结构是:{{ select(4) }}
- if语句
- for循环
- cout语句
- cin语句
5. 在一个用于控制空气净化装置的程序中,bool deviceActive 是一个布尔变量。当它的值为true时,设备运行;为false时,设备停止。为了让设备切换到与当前状态相反的状态,应该使用以下哪个表达式?{{ select(5) }}
~deviceActivenot deviceActivedeviceActive * (-1)!deviceActive
6. 在编写环境监测系统的C++程序时,你需要定义一个变量来存储监测站的编号。以下哪个选项是合法的C++标识符(变量名)?{{ select(6) }}
- station-id
- 2_station
- stationID_01
- return
7. 为了分析某个区域的污染趋势,系统连续记录了几天的PM10指数。调试时,你遇到了以下循环:
int pm10Levels[] = {40, 55, 85, 150, 180};
for(int i = 0; i < 5; i++){
cout << "Day " << i+1 << ", PM10: " << pm10Levels[i] << endl;
if(pm10Levels[i] > 150){
cout << "严重污染!" << endl;
break;
}
}
这段代码的完整输出结果是什么?{{ select(7) }}
- Day 1, PM10: 40
Day 2, PM10: 55
Day 3, PM10: 85
Day 4, PM10: 150
Day 5, PM10: 180
严重污染! - Day 1, PM10: 40
Day 2, PM10: 55
Day 3, PM10: 85
Day 4, PM10: 150 - Day 1, PM10: 40
Day 2, PM10: 55
Day 3, PM10: 85
Day 4, PM10: 150
严重污染! - Day 4, PM10: 150
严重污染!
8. 在“丝路新城”的环境数据记录中,需要存储一个监测点的完整信息,包括位置坐标(x, y)、PM2.5、PM10、噪音水平等多个指标。在C++中,以下哪种方式最适合组织这种包含多种不同类型属性的数据?{{ select(8) }}
- 使用多个独立的int,double变量
- 使用一个
vector<double> - 定义一个结构体 (struct)
- 使用
set<double>
9. 一个环境评估系统需要同时满足两个条件才判定该区域为“适宜居住”:airQualityIndex < 100(空气质量良好) 且noiseLevel < 60 (噪音达标)。以下哪个C++表达式能正确表示这个复合条件?{{ select(9) }}
airQualityIndex < 100 || noiseLevel < 60airQualityIndex < 100 && noiseLevel < 60!(airQualityIndex < 100 && noiseLevel < 60)airQualityIndex < 100 && !noiseLevel < 60
10. 在一个处理环境数据的程序中,需要定义一个函数来计算某个监测点的综合污染指数。这个函数需要接收PM2.5、PM10和臭氧浓度三个参数,并返回一个加权计算后的总分。以下哪个函数声明是正确的?{{ select(10) }}
double calculatePollutionIndex(double pm25, double pm10, double ozone);void calculatePollutionIndex(double pm25, double pm10, double ozone);double calculatePollutionIndex(double pm25, double pm10);function calculatePollutionIndex(double pm25, double pm10, double ozone);
11. 为了绘制“丝路新城”的污染热力图,程序需要遍历一个二维网格 grid[ROWS][COLS],其中每个单元格存储该区域的污染等级。只有当污染等级大于5时,才在地图上标记该点。以下哪个代码片段最符合这个需求?{{ select(11) }}
for(int r = 0; r < ROWS; r++) { for(int c = 0; c < COLS; c++) { if(grid[r][c] > 5) { markPointOnMap(r, c); } } }
- ```cpp
for(int r = 0; r < ROWS; r++) {
for(int c = 0; c < COLS; c++) {
markPointOnMap(r, c);
if(grid[r][c] > 5) break;
}
}
for(int r = 0; r < ROWS; r++) { for(int c = 0; c < COLS; c++) { markPointOnMap(r, c); if(grid[r][c] > 5) continue; } }
- `markPointOnMap(grid);`
### 12. 在C++中,以下哪个头文件是使用`std::vector`(动态数组) 所必需的?{{ select(12) }}
- `#include <cmath>`
- `#include <iostream>`
- `#include <vector>`
- `#include <string>`
### 13. 下列哪个选项是C++中正确的单行注释方式?{{ select(13) }}
- `/* This is a comment */`
- `// This is a comment`
- `<!-- This is a comment -->`
- `** This is a comment **`
### 14. 在一个计算“丝路新城”绿地含水量的C++程序中,有以下代码:`float moisture = 45.2f;`。变量moisture的数据类型是?{{ select(14) }}
- int
- float
- double
- bool
### 15. 为了在“丝路新城”的中央环境监测平台中,实时处理来自数百个传感器的海量数据,最核心的编程思想是?{{ select(15) }}
- 将所有数据手动复制粘贴到代码中
- 将数据存储在高效的容器(如`std::vector`,`std::array`)中,并使用高效的循环和条件判断进行批量处理和分析
- 只编写注释,不写任何逻辑代码
- 每个传感器数据都用一个单独的程序处理
## 二、判断题(每题 2 分)
### 16. 在C++中,`std::vector<double> sensorReadings = {1.2, 3.4, 5.6};`是一种合法的初始化向量(动态数组)的方式。{{ select(16) }}
- 正确
- 错误
### 17. C++代码中,`std::endl`和`\n`在功能上完全相同,都只起到换行的作用。{{ select(17) }}
- 正确
- 错误
### 18. 表达式`25 % 7`的结果是4。{{ select(18) }}
- 正确
- 错误
### 19. 在C++中,`=`是赋值运算符,用于将右边的值赋给左边的变量;`==`是比较运算符,用于判断两边的值是否相等。{{ select(19) }}
- 正确
- 错误
### 20. `for(int hour = 0; hour < 24; hour++)`这个循环会执行24次,hour的值从0变化到23,正好对应一天的24个小时。{{ select(20) }}
- 正确
- 错误
需要我把这份文档**直接导出成可一键粘贴到HydroOj的纯文本版**吗?