#CSPJ26D12. 2026 年 8 月 CSP-J 初赛 22 日打卡 Day12|面向对象与联合体
2026 年 8 月 CSP-J 初赛 22 日打卡 Day12|面向对象与联合体
Day 12 面向对象与联合体:给数据找个家,或者让它们合租
建议用时:15~25 分钟。请先阅读知识点讲解,再完成下方客观题;直接勾选答案后提交,系统会自动判分。
知识点讲解
Day 12 面向对象与联合体:给数据找个家,或者让它们合租
答案解析
Day 12 面向对象与联合体:给数据找个家,或者让它们合租
客观题(共 10 题)
请在每题下方直接选择答案。判断题选择“正确”或“错误”,全部完成后统一提交。
第 1 题
在 C++ 中,若定义时不写任何访问权限修饰符,struct 与 class 的成员默认访问权限分别是( )。
{{ select(1) }}
- 都是 public
- 都是 private
- struct 是 public,class 是 private
- struct 是 private,class 是 public
第 2 题
下列关于 C++ 构造函数与析构函数的说法, 错误 的是( )。
{{ select(2) }}
- 构造函数的函数名必须与类名相同
- 构造函数的返回值类型必须写成 void
- 析构函数不能带参数,一个类中只能有一个析构函数
- 对象被创建时自动调用构造函数,被销毁时自动调用析构函数
第 3 题
【CSP-J 2022 初赛】以下哪种功能没有涉及 C++ 语言的面向对象特性支持( )。
{{ select(3) }}
- C++ 中调用 printf 函数
- C++ 中调用用户定义的类成员函数
- C++ 中构造一个 class 或 struct
- C++ 中构造来源于同一基类的多个派生类
第 4 题
下列关于面向对象三大特性的说法,正确的是( )。
{{ select(4) }}
- 封装要求把所有数据成员都写成 public,方便外部直接读写
- 派生类可以直接访问基类中声明为 private 的成员
- 一个类最多只能定义一个构造函数
- 通过基类指针调用虚函数时,运行时会执行派生类重写后的版本
第 5 题
已知 int 占 4 字节、char 占 1 字节、double 占 8 字节。定义 union U { int a; char b; double c; };,则 sizeof(U) 的值是( )。
{{ select(5) }}
- 4
- 8
- 13
- 16
第 6 题
【CSP-J 2023 初赛】阅读下述代码,请问修改 data 的 value 成员以存储 3.14,正确的方式是( )。
union Data {
int num;
float value;
char symbol;
};
union Data data;
{{ select(6) }}
- data.value = 3.14;
- value.data = 3.14;
- data -> value = 3.14;
- value -> data = 3.14;
第 7 题
沿用第 5 题的字节数假设,定义 struct S { int a; char b; double c; };,则 sizeof(S) 的值是( )。
{{ select(7) }}
- 8
- 13
- 14
- 16
第 8 题
有定义 enum Color { RED, GREEN = 5, BLUE, WHITE };,则 BLUE 和 WHITE 的值分别是( )。
{{ select(8) }}
- 1 和 2
- 2 和 3
- 6 和 7
- 5 和 6
第 9 题
在小端序的 64 位 PC 上编译运行第六节给出的程序,其第一行输出是( )。
{{ select(9) }}
- 1 2 3 4
- 4 3 2 1
- 0 0 0 4
- 1 0 0 0
第 10 题
仍然是第六节的程序,其第二行输出(即 sizeof(Box) 的值)是( )。
{{ select(10) }}
- 4
- 5
- 8
- 16