#3644. C++ 算法能力挑战赛(CSP-J / GESP 6级 专项模拟卷)
C++ 算法能力挑战赛(CSP-J / GESP 6级 专项模拟卷)
第1题
在C++中,若 int a = 7, b = 3;,则表达式 a / b 和 a % b 的值分别是( )。{{ select(1) }}
2和12.33和12和23和1
第2题
下列关于栈(Stack)和队列(Queue)的描述,正确的是( )。{{ select(2) }}
- 栈是先进先出(FIFO)的线性表
- 队列是后进先出(LIFO)的线性表
- 栈的插入和删除操作通常在同一端进行
- 队列的插入和删除操作通常在同一端进行
第3题
一棵完全二叉树共有 100 个节点,这棵二叉树的深度(根节点深度为1)是( )。{{ select(3) }}
- 6
- 7
- 8
- 9
第4题
某算法的时间复杂度为 。当 时耗时 10ms,若 增加到 10000,预计运行时间约为( )。{{ select(4) }}
- 40ms
- 100ms
- 133ms
- 1000ms
第5题
在C++中,关于引用(Reference)的说法,错误的是( )。{{ select(5) }}
- 引用在定义时必须初始化
- 引用一旦绑定到一个对象,就不能再绑定到其他对象
- 对引用的修改会影响它所绑定的原变量
- 可以定义指向引用的指针
第6题
使用"埃拉托斯特尼筛法"(埃氏筛)求 1 到 之间所有素数,其时间复杂度接近( )。{{ select(6) }}
第7题
快速排序最坏情况下时间复杂度为 ,为避免最坏情况,常采用的优化策略是( )。{{ select(7) }}
- 总是选取第一个元素作为基准
- 总是选取最后一个元素作为基准
- 随机选取基准或"三数取中"法
- 增加额外的辅助数组
第8题
循环队列容量为 MAX_SIZE(最多存放 MAX_SIZE-1 个元素),队头指针 front,队尾指针 rear,判断队列已满的条件是( )。{{ select(8) }}
front == rear(rear + 1) % MAX_SIZE == frontrear == MAX_SIZE - 1front == 0 && rear == MAX_SIZE - 1
第9题
下面代码用辗转相除法求最大公约数,横线处应填( )。
int gcd(int a, int b) {
while (b != 0) {
// 横线处
}
return a;
}
{{ select(9) }}
int temp = b; b = a % b; a = temp;int temp = a; a = b; b = temp % a;b = a % b; a = b;a = a % b; b = a;
第10题
在解决"0/1背包问题"时,用一维数组 dp[j] 优化空间,内层循环遍历背包容量时必须采用( )。{{ select(10) }}
- 从大到小遍历(从背包最大容量到当前物品重量)
- 从小到大遍历(从当前物品重量到背包最大容量)
- 遍历顺序不影响最终结果
- 只能遍历到背包最大容量的一半
第11题
给定一个序列,归并排序无论初始状态如何,时间复杂度始终稳定在( )。{{ select(11) }}
第12题
下列关于哈夫曼树(Huffman Tree)性质的说法,错误的是( )。{{ select(12) }}
- 哈夫曼树中不存在度为 1 的结点
- 权值越大的叶子结点离根节点越近
- 哈夫曼编码是一种前缀编码
- 给定一组权值,构造出的哈夫曼树形态一定是唯一的
第13题
在C++中,表达式 13 ^ 5(按位异或)的计算结果是( )。{{ select(13) }}
- 8
- 18
- 12
- 17
第14题
对序列 {12, 13, 11, 18, 60, 35} 建立初始大根堆,堆顶元素是( )。{{ select(14) }}
- 12
- 35
- 60
- 18
第15题
下列关于二分查找前提条件的描述,最准确的是( )。{{ select(15) }}
- 数据必须采用链式存储结构
- 数据必须是有序排列的
- 数据元素必须是整数
- 数据必须采用顺序存储结构且有序
第16题
栈是一种"先进先出"(FIFO)的线性数据结构。{{ select(16) }}
- 正确(√)
- 错误(×)
第17题
在二叉树中,叶子节点(度为0)的数量一定等于度为2的节点数量加1。{{ select(17) }}
- 正确(√)
- 错误(×)
第18题
C++中,全局变量的作用域是整个程序,局部变量的作用域仅限于定义它的函数或代码块内。{{ select(18) }}
- 正确(√)
- 错误(×)
第19题
深度优先搜索(DFS)通常使用队列实现,广度优先搜索(BFS)通常使用栈实现。{{ select(19) }}
- 正确(√)
- 错误(×)
第20题
快速排序是一种稳定的排序算法。{{ select(20) }}
- 正确(√)
- 错误(×)
第21题
在0/1背包问题中,每件物品只能选择一次,要么放入背包,要么不放入。{{ select(21) }}
- 正确(√)
- 错误(×)
第22题
含有 个节点的完全二叉树,其深度为 。{{ select(22) }}
- 正确(√)
- 错误(×)
第23题
哈夫曼编码是一种定长编码,所有字符的编码长度都相同。{{ select(23) }}
- 正确(√)
- 错误(×)
第24题
在无向图的邻接矩阵表示法中,该矩阵一定是对称矩阵。{{ select(24) }}
- 正确(√)
- 错误(×)
第25题
动态规划(DP)的核心思想是将复杂问题分解为相互独立的子问题来求解。{{ select(25) }}
- 正确(√)
- 错误(×)