#2338. L2-10 阶段复习与测评
L2-10 阶段复习与测评
- 以下关于C++函数的说法,错误的是() {{ select(1) }}
- 函数可以提高代码的复用性
- 函数定义时的参数称为形式参数,调用时的参数称为实际参数
- 函数必须有返回值
- 函数声明可以省略参数名,但必须明确参数类型
- 函数
void swap(int &x, int &y)试图交换两个整数的值,调用后变量实际值会() {{ select(2) }}
- 交换成功
- 不交换
- 可能交换也可能不交换
- 编译错误
- 函数
void swap(int x, int y)试图交换两个整数的值,调用后变量实际值会() {{ select(3) }}
- 交换成功
- 不交换
- 可能交换也可能不交换
- 编译错误
- 若有
int a[3] = {1,2,3}; int *p = a;,则*(p+2)的值是() {{ select(4) }}
- 1
- 2
- 3
- 地址
- 以下结构体定义不正确的是() {{ select(5) }}
struct Student {int id; char name;} s1, s2;struct {int age;} Person = {18};struct Book {char title[20]; float price;} b1 = {"C++", 59.9};struct Node {int data; Node *next;};(C++环境下)
- 关于结构体数组,说法错误的是() {{ select(6) }}
- 可以通过循环遍历每个结构体元素
- 结构体每个元素的成员类型必须一致
- 定义时可以初始化
- 数组名是该数组首元素的地址
- 以下关于 C++ 结构体定义和初始化的说法,正确的是() {{ select(7) }}
- 结构体成员必须是相同数据类型
- 结构体定义后不能直接初始化,必须先声明变量再赋值
struct Student {int id; string name;} s = {101, "Alice"};是合法的初始化方式- 结构体变量不能作为函数参数传递
- 递推算法的核心思想是()
{{ select(8) }}
- 将大问题分解为相似的小问题,逐步推导
- 直接暴力枚举所有可能
- 依赖函数自身调用
- 随机尝试所有路径
- 以下递归函数存在的问题是()
{{ select(9) }}
int f(int n) { if (n == 0) return 0; return f(n) + 1; }
- 终止条件错误
- 递归深度无限(死递归)
- 语法错误
- 返回值类型错误
- 递推与递归相比,优势通常在于() {{ select(10) }}
- 代码更简洁
- 时间复杂度更低(无重复计算)
- 更适合解决所有问题
- 空间复杂度更高