GESP C++ 7级 2026.06
下列 C++ 代码的输出结果是( )。
#include
#include
using namespace std;
int main() {
cout << (int)(sqrt(50) + log2(8));
return 0;
}
下列关于 或 中的数学库函数的说法,正确的是( )。
sqrt(49) 的返回值可以参与浮点运算
log2(32) 的返回值类型为 int
pow(2, 5) 的返回值类型一定为 int
sin(90) 的参数 表示 度。
下列关于 C++ 函数参数传递的说法,正确的是( )。
函数形参一定和实参使用同一块内存。
值传递时,在函数内修改形参一定会修改实参。
引用形参绑定到实参后,在函数内修改引用形参通常会影响实参。
指针形参不能用于修改实参指向的数据
有 个字符,它们出现的次数分别为 、 、 、 、 。使用哈夫曼编码时,最小的带权路径长度 WPL 为( )。
已知网格上每个网格点有一个数字, a[i][j] 表示第 行第 列处网格点上的数字。若 dp[i][j] 表示从网格左上角(第 行第 列)走到第 i 行第 j 列时能取得的最大数字和,且每次只能向右或向下移动。对于 i > 0 且 j > 0 的位置,正确的状态转移代码为 ()
dp[i][j] = a[i][j] + min(dp[i - 1][j], dp[i][j - 1])
dp[i][j] = max(dp[i - 1][j - 1], dp[i][j])
dp[i][j] = a[i][j] + max(dp[i - 1][j], dp[i][j - 1])
dp[i][j] = a[i][j] + dp[i - 1][j - 1]
已知 , ,并且对 有 f[i] = max(f[i - 1], f[i - 2] + a[i]) 。若 a[1...5] = {2, 7, 9, 3, 1} ,则 f[5] 的值为( )。
下面代码是一维数组优化 0/1 背包的核心片段,其中 w[i] 表示第 i 件物品的重量, v[i] 表示第 i 件物品的价值。横线处应填入 ( )
for (int i = 1; i = w[i]; c--) {
__________;
}
}
dp[c] = max(dp[c], dp[c + w[i]] + v[i])
dp[c] = min(dp[c], dp[c - w[i]] + v[i])
dp[c] = dp[c - w[i]] + v[i]
dp[c] = max(dp[c], dp[c - w[i]] + v[i])
下面程序片段主要体现的算法思想是 ( )
void dfs(int x, int y) {
vis[x][y] = true;
for (int k = 0; k < 4; k++) {
int nx = x + dx[k], ny = y + dy[k];
if (inside(nx, ny) && a[nx][ny] == 1 && !vis[nx][ny])
dfs(nx, ny);
}
}
泛洪算法(Flood Fill)
二分查找
贪心算法
归并排序
下列关于排序稳定性的说法,正确的是( )。
冒泡排序在只交换相邻逆序元素时是稳定排序
选择排序一定是稳定排序
快速排序一定是稳定排序
稳定排序一定会改变相等元素的相对顺序
无向图的边为 。从顶点 开始进行 BFS,每轮根据出队顶点,将与其相邻顶点按编号从小到大入队,则顶点 第一次入队时,队列的状态为( )。
