一、单项选择题(每题 2 分)
1. 在“思路新城”的环境监测系统中,需要定义一个变量来存储某个监测点的PM2.5浓度(例如45.7)。以下哪种数据类型最合适?{{ select(1) }}
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) }}
5. 在一个用于控制空气净化装置的程序中,bool deviceActive 是一个布尔变量。当它的值为true时,设备运行;为false时,设备停止。为了让设备切换到与当前状态相反的状态,应该使用以下哪个表达式?{{ select(5) }}
~deviceActive
not deviceActive
deviceActive * (-1)
!deviceActive
6. 在编写环境监测系统的C++程序时,你需要定义一个变量来存储监测站的编号。以下哪个选项是合法的C++标识符(变量名)?{{ select(6) }}
- station-id
- 2_station
- stationID_01
- return
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 < 60
airQualityIndex < 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); } } }
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) }}
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) }}