#4415. 初赛-排列组合、面向对象、指针内存

初赛-排列组合、面向对象、指针内存

1. 【CSP-J 2025 初赛·第 6 题】从 5 位男生和 4 位女生中选出 4 人组成一个学习小组,要求学习小组中男生和女生都有。有多少种不同的选法( )。

{{ select(1) }}

  • 126
  • 121
  • 120
  • 100

2. 【CSP-J 2021 初赛】由 1,1,2,2,3 这五个数字组成不同的三位数有( )种。

{{ select(2) }}

  • 18
  • 15
  • 12
  • 24

3. 【CSP-J 2024 初赛·第 14 题】有 5 个男生和 3 个女生站成一排,规定 3 个女生必须相邻,问有多少种不同的排列方式( )。

{{ select(3) }}

  • 4320 种
  • 5040 种
  • 3600 种
  • 2880 种

4. 在 C++ 中,若定义时不写任何访问权限修饰符,structclass 的成员默认访问权限分别是( )。

{{ select(4) }}

  • 都是 public
  • 都是 private
  • struct 是 public,class 是 private
  • struct 是 private,class 是 public

5. 下列关于 C++ 构造函数与析构函数的说法,错误的是( )。

{{ select(5) }}

  • 构造函数的函数名必须与类名相同
  • 构造函数的返回值类型必须写成 void
  • 析构函数不能带参数,一个类中只能有一个析构函数
  • 对象被创建时自动调用构造函数,被销毁时自动调用析构函数

6. 【CSP-J 2022 初赛】以下哪种功能没有涉及 C++ 语言的面向对象特性支持( )。

{{ select(6) }}

  • C++ 中调用 printf 函数
  • C++ 中调用用户定义的类成员函数
  • C++ 中构造一个 class 或 struct
  • C++ 中构造来源于同一基类的多个派生类

7. 【CSP-J 2025 初赛·第 10 题】考虑以下 C++ 函数:

void solve(int &a, int b) {
    a = a + b;
    b = a - b;
    a = a - b;
}
int main() {
    int x = 5, y = 10;
    solve(x, y);
}

在 main 函数调用 solve 后,x 和 y 的值分别是( )。

{{ select(7) }}

  • 5, 10
  • 10, 5
  • 10, 10
  • 5, 5

8. 判断题:与指针不同,引用一经初始化就不能再指向其他变量,而且不存在空引用。( )

{{ select(8) }}

  • √(正确)
  • ×(错误)

9. 已知 int a[5]; int *p = a;,且 a 的首地址为 0x1000,则 p + 3 的值是( )。

{{ select(9) }}

  • 0x1003
  • 0x100C
  • 0x1012
  • 0x1005

10. 设有 int a[10]; int *p = a;,下列语句中不合法的是( )。

{{ select(10) }}

  • p = p + 1;
  • a = a + 1;
  • p[2] = *(a + 2);
  • cout << *(p + 3);