测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

PROBLEM SET

题库

按难度与知识点筛选,找到适合的练习题。

共 67434 题
重置

题目列表

共 67434 题
A18388 小杨定义了一个结构体 Hero 来表示游戏角色,下面哪种初始化方式会由于语法错误导致编译失败?( )。struct Hero { string name; int hp; }; C-L4 -- 较难 -- A18389 某班3个小组、每组4名同学的分数存入下面的二维数组 score ,则 score[1][2] 的值是( )。int score[3][4] = { {80, 81, 82, 83}, {90, 91, 92, 93}, {70, 71, 72, 73} }; C-L4 -- 较难 -- A18390 执行完下面代码后,变量 val 的值是( )。int data[] = {10, 20, 30, 40, 50}; int *ptr = data + 2; int val = *(ptr - 1) + *(ptr + 1); C-L4 指针运算 数组与指针 解引用 较难 -- A18391 小杨正在开发一款名为“星际网格”的游戏,他用二维数组 int map[5][4]; 来表示地图。已知 int 占字节,如果 map 的内存地址是 0x2000 ,则表达式 &map + 1 的地址值是( )。 C-L4 -- 较难 -- A18392 小杨在调试一个“等级提升”系统,代码逻辑如下,执行后 *p 的值是( )。int lv = 5, next_lv = 6; int *p = &lv; *p = *p + 1; p = &next_lv; C-L4 变量赋值 指针 取地址与解引用 较难 -- A18393 关于下面程序,说法正确的是( )。void show() { int stars = 5; } int main() { cout << stars; return 0; } C-L4 -- 较难 -- A18394 下面程序输出结果是( )。int addOne(int x) { return x + 1; } int main() { int a = 6; cout << addOne(a) + addOne(3); return 0; } C-L4 参数传递 函数调用 返回值 较难 -- A18395 下面程序想通过函数计算三门课总分,横线处应填入的是( )。int sumScore(int a, int b, int c) { return a + b + c; } int main() { int chinese = 88, math = 95, english = 90; int total = __________; cout << total; return 0; } C-L4 -- 较难 -- A18396 小杨正在编写一个“数字交换器”程序,他希望通过函数交换两个变量的值。请问运行以下代码后,屏幕上输出的是( )。void exchange(int *a, int &b) { int t = *a; *a = b; b = t; } int main() { int x = 100, y = 200; exchange(&x, y); cout << x << " " << y; return 0… C-L4 -- 较难 -- A18397 晚宴 C-L5 枚举 贪心 最大公约数 困难 -- A18398 排排坐 C-L5 前缀和 贪心算法 排序 困难 -- A18399 归并排序和快速排序在平均情况下的时间复杂度均为 O(n log n)。但在稳定性方面,归并排序通常是不稳定的,而快速排序是稳定的。 C-L5 -- 困难 -- A18400 唯一分解定理表明,任何一个大于1的自然数都可以唯一地分解为若干个质数的乘积,如果不考虑质因数的顺序,这种分解方式是唯一的。 C-L5 唯一分解定理 质因数分解 困难 -- A18401 以下函数 f1 的时间复杂度比函数 f2 的更高。void f1(int n) { for (int i = 1; i < n; i *= 2); } void f2(int n) { if (n <= 1) return; f2(n - 1); f2(n - 1); } C-L5 -- 困难 -- A18402 二分查找不仅可以应用于有序数组,也可以在不增加时间复杂度的情况下应用于有序的单链表,因为链表也支持 O(1) 时间内的随机访问。 C-L5 -- 困难 -- A18403 贪心算法只要每一步选择当前最优解,就一定能得到全局最优解。 C-L5 -- 困难 -- A18404 分治法通常将一个规模较大的问题拆分为若干个规模较小、结构相似的子问题,分别求解后再合并子问题的结果。 C-L5 递归 分治法 子问题合并 困难 -- A18405 在归并排序的合并操作中,如下代码片段可以正确地将两个已排序的子数组 L 和 R 合并回原数组 arr 中。void merge(int arr[], int left, int mid, int right) { int n1 = mid - left + 1; int n2 = right - mid; vector<int> L(n1), R(n2); for (int i = 0; i <… C-L5 归并排序 双指针 合并操作 困难 -- A18406 对任意正整数 a 、 b ,以下两种写法的 gcd 函数返回值完全相同。int gcd1(int a, int b) { return b ? gcd1(b, a % b) : a; } int gcd2(int a, int b) { while (b) { int t = b; b = a % b; a = t; } return a; } C-L5 -- 困难 -- A18407 带哨兵头尾节点的双向循环链表,在表头插入节点 p ,以下四步操作无论什么顺序执行结果都正确。① p->next = head->next; ② p->prev = head; ③ head->next->prev = p; ④ head->next = p; C-L5 双向循环链表 哨兵节点 指针操作顺序 困难 --