#3492. E4jxhm4
E4jxhm4
一、单选题(40分,每题10分)
- 有以下C++代码:
int a[5] = {10, 20, 30, 40, 50};
int *p = a + 2;
cout << *(p - 1) << endl;
输出结果是( )。 {{ select(1) }}
- 10
- 20
- 30
- 40
- 已知递推公式:
f(1)=1, f(2)=1, f(n)=f(n-1)+f(n-2) (n≥3)。则f(6)的值为( )。 {{ select(2) }}
- 5
- 8
- 13
- 21
- 以下代码的时间复杂度是( )。
for (int i = 1; i <= n; i *= 2)
for (int j = 1; j <= n; j++)
cout << i + j << endl;
{{ select(3) }}
- O(n)
- O(n log n)
- O(n²)
- O(log n)
- 下列关于选择排序的描述,正确的是( )。 {{ select(4) }}
- 选择排序是稳定排序
- 选择排序每轮将最小元素放到已排序部分的末尾
- 选择排序的最好时间复杂度是O(n)
- 选择排序每轮比较次数与冒泡排序一样多
二、多选题(30分,每题10分)
- 关于冒泡排序、选择排序、插入排序,下列说法正确的有( )。 {{ multiselect(5) }}
- 冒泡排序在最好情况(数组已有序)下时间复杂度为O(n)
- 选择排序是稳定的排序算法
- 插入排序在数组基本有序时效率较高
- 三种排序算法的平均时间复杂度都是O(n²)
- 关于指针,下列说法正确的有( )。 {{ multiselect(6) }}
- 指针变量存储的是内存地址
- 对指针执行自增操作,指针会向后移动其指向类型大小的字节数
- 空指针不能进行解引用操作
- 两个指针可以相加得到一个新指针
- 关于递推算法和时间复杂度,下列说法正确的有( )。 {{ multiselect(7) }}
- 递推算法通常比递归算法节省栈空间
- 递推公式必须有初始条件才能求解
- 一个算法的时间复杂度越低,实际运行一定越快
- 计算斐波那契数列的递推算法时间复杂度为O(n)
三、判断题(30分,每题10分)
- 定义
int *p = nullptr;后,执行*p = 10;会导致运行时错误或未定义行为。( ) {{ select(8) }}
- 正确
- 错误
- 冒泡排序在每一轮比较中,如果没有发生任何交换,可以提前结束排序,说明数组已经有序。( ) {{ select(9) }}
- 正确
- 错误
- 选择排序是一种稳定的排序算法。( ) {{ select(10) }}
- 正确
- 错误