C++ 练习
C++ 的全部练习都来自可随时对照的主题。
92项练习 离线运行
cpp 测验 新题 int grid[2][3] 在普通表达式中发生数组到指针转换后,类型是什么? C++23 内置数组的边界、初始化、指针转换、多维布局与生命周期,以及何时改用 std::array、span 或 vector。 cpp 测验 新题 在 C++23 中,void read(const int values[8]) 强制了什么契约? C++23 内置数组的边界、初始化、指针转换、多维布局与生命周期,以及何时改用 std::array、span 或 vector。 cpp 预测输出 新题 这段程序会输出什么? C++23 内置数组的边界、初始化、指针转换、多维布局与生命周期,以及何时改用 std::array、span 或 vector。 cpp 审查 AI 代码 新题 审查生成的读数平均值 C++23 内置数组的边界、初始化、指针转换、多维布局与生命周期,以及何时改用 std::array、span 或 vector。 cpp 找出 bug 新题 找出四元素求和里的 bug C++23 内置数组的边界、初始化、指针转换、多维布局与生命周期,以及何时改用 std::array、span 或 vector。 cpp 测验 新题 关于 sizeof(char),哪项说法符合可移植 C? 从翻译单元、类型与表达式开始,掌握 C23 的控制流、函数和错误边界,并避开整数转换与未定义行为陷阱。 cpp 预测输出 新题 这段程序会输出什么? 从翻译单元、类型与表达式开始,掌握 C23 的控制流、函数和错误边界,并避开整数转换与未定义行为陷阱。 cpp 审查 AI 代码 新题 审查生成的读数平均值 从翻译单元、类型与表达式开始,掌握 C23 的控制流、函数和错误边界,并避开整数转换与未定义行为陷阱。 cpp 找出 bug 新题 找出余额比较里的 bug 从翻译单元、类型与表达式开始,掌握 C23 的控制流、函数和错误边界,并避开整数转换与未定义行为陷阱。 cpp 测验 新题 对于 int next = index++ + index;,可移植 C 能得出什么结论? 从翻译单元、类型与表达式开始,掌握 C23 的控制流、函数和错误边界,并避开整数转换与未定义行为陷阱。 cpp 测验 新题 fread(buffer, sizeof(uint32_t), 8, stream) 返回什么? 使用 C23 的 stdio 流可靠地打开、读取、写入和定位文件,并正确处理 EOF、短计数、缓冲与关闭错误。 cpp 预测输出 新题 这段程序会输出什么? 使用 C23 的 stdio 流可靠地打开、读取、写入和定位文件,并正确处理 EOF、短计数、缓冲与关闭错误。 cpp 审查 AI 代码 新题 审查生成的文件复制 使用 C23 的 stdio 流可靠地打开、读取、写入和定位文件,并正确处理 EOF、短计数、缓冲与关闭错误。 cpp 找出 bug 新题 找出字节复制循环里的 bug 使用 C23 的 stdio 流可靠地打开、读取、写入和定位文件,并正确处理 EOF、短计数、缓冲与关闭错误。 cpp 测验 新题 在 r+b 更新流上,一次未遇到 EOF 的成功读取与随后的写入之间通常必须有什么操作? 使用 C23 的 stdio 流可靠地打开、读取、写入和定位文件,并正确处理 EOF、短计数、缓冲与关闭错误。 cpp 测验 新题 哪个声明表示 handler 是一个指针,指向接收 int 并返回 int 的函数? 理解 C23 函数指针的声明、兼容类型、回调上下文与分发表,并避免错误强转、空调用和悬空上下文。 cpp 预测输出 新题 这段程序会输出什么? 理解 C23 函数指针的声明、兼容类型、回调上下文与分发表,并避免错误强转、空调用和悬空上下文。 cpp 测验 新题 某 API 会保留回调与 void* 上下文,直到 unregister 返回。哪种上下文可以安全注册? 理解 C23 函数指针的声明、兼容类型、回调上下文与分发表,并避免错误强转、空调用和悬空上下文。 cpp 审查 AI 代码 新题 审查生成的路由注册表 理解 C23 函数指针的声明、兼容类型、回调上下文与分发表,并避免错误强转、空调用和悬空上下文。 cpp 找出 bug 新题 找出 qsort 比较器里的 bug 理解 C23 函数指针的声明、兼容类型、回调上下文与分发表,并避免错误强转、空调用和悬空上下文。 cpp 测验 新题 哪种指针可以传给 free? 用 C23 的分配函数管理大小、所有权与生命周期,并用可验证的清理路径避免泄漏、越界和释放后使用。 cpp 预测输出 新题 当 calloc 成功时,这段 C23 程序会输出什么? 用 C23 的分配函数管理大小、所有权与生命周期,并用可验证的清理路径避免泄漏、越界和释放后使用。 cpp 测验 新题 对有效的非零大小调用 realloc(owner, larger_size) 并返回 NULL 时,哪项保证成立? 用 C23 的分配函数管理大小、所有权与生命周期,并用可验证的清理路径避免泄漏、越界和释放后使用。 cpp 审查 AI 代码 新题 审查生成的字节缓冲区 用 C23 的分配函数管理大小、所有权与生命周期,并用可验证的清理路径避免泄漏、越界和释放后使用。 cpp 找出 bug 新题 找出数组复制分配里的 bug 用 C23 的分配函数管理大小、所有权与生命周期,并用可验证的清理路径避免泄漏、越界和释放后使用。 cpp 测验 新题 const int *cursor 允许哪种操作? C 指针保存对象地址;理解类型、解引用、数组边界、生命周期与限定符,才能写出契约明确且可检查的底层接口。 cpp 测验 新题 在 void inspect(const int *values) 内,sizeof(values) 测量什么? C 指针保存对象地址;理解类型、解引用、数组边界、生命周期与限定符,才能写出契约明确且可检查的底层接口。 cpp 预测输出 新题 这段程序会输出什么? C 指针保存对象地址;理解类型、解引用、数组边界、生命周期与限定符,才能写出契约明确且可检查的底层接口。 cpp 审查 AI 代码 新题 审查生成的指针范围查找 C 指针保存对象地址;理解类型、解引用、数组边界、生命周期与限定符,才能写出契约明确且可检查的底层接口。 cpp 找出 bug 新题 找出局部读数指针里的 bug C 指针保存对象地址;理解类型、解引用、数组边界、生命周期与限定符,才能写出契约明确且可检查的底层接口。 cpp 测验 新题 执行 #define CACHE_ENABLED 0 后,哪个条件会选择关闭分支? C 预处理器在编译前展开宏、包含头文件并选择条件代码;掌握词元替换、配置边界与可验证的宏写法。 cpp 测验 新题 传统的头文件防重复包含能保证什么? C 预处理器在编译前展开宏、包含头文件并选择条件代码;掌握词元替换、配置边界与可验证的宏写法。 cpp 预测输出 新题 这段程序会输出什么? C 预处理器在编译前展开宏、包含头文件并选择条件代码;掌握词元替换、配置边界与可验证的宏写法。 cpp 审查 AI 代码 新题 审查生成的标签复制辅助函数 C 预处理器在编译前展开宏、包含头文件并选择条件代码;掌握词元替换、配置边界与可验证的宏写法。 cpp 找出 bug 新题 找出 MAX_VALUE 宏里的 bug C 预处理器在编译前展开宏、包含头文件并选择条件代码;掌握词元替换、配置边界与可验证的宏写法。 cpp 测验 新题 协议字节被转换成 enum MessageKind 后,用它索引处理函数表之前应该做什么? 用结构体组织记录,用联合体复用存储,并用枚举标记状态;重点掌握内存布局、复制语义和带标记联合体的安全边界。 cpp 预测输出 新题 这段程序会输出什么? 用结构体组织记录,用联合体复用存储,并用枚举标记状态;重点掌握内存布局、复制语义和带标记联合体的安全边界。 cpp 审查 AI 代码 新题 审查生成的自有文本消息 用结构体组织记录,用联合体复用存储,并用枚举标记状态;重点掌握内存布局、复制语义和带标记联合体的安全边界。 cpp 找出 bug 新题 找出标签联合体里的 bug 用结构体组织记录,用联合体复用存储,并用枚举标记状态;重点掌握内存布局、复制语义和带标记联合体的安全边界。 cpp 测验 新题 关于 sizeof(struct Record),哪项说法符合可移植 C? 用结构体组织记录,用联合体复用存储,并用枚举标记状态;重点掌握内存布局、复制语义和带标记联合体的安全边界。 cpp 测验 新题 联合体表示多种互斥载荷时,程序必须跟踪什么? 用结构体组织记录,用联合体复用存储,并用枚举标记状态;重点掌握内存布局、复制语义和带标记联合体的安全边界。 cpp 测验 新题 对于其他部分完全相同的 class 与 struct 定义,语言层面有什么区别? C++ 类把状态与操作组织成用户定义类型;这里讲清访问控制、构造与不变量,以及编译器生成特殊成员函数时的边界。 cpp 测验 新题 为什么只读取对象状态的成员函数通常应在末尾加 const? C++ 类把状态与操作组织成用户定义类型;这里讲清访问控制、构造与不变量,以及编译器生成特殊成员函数时的边界。 cpp 预测输出 新题 这段程序会输出什么? C++ 类把状态与操作组织成用户定义类型;这里讲清访问控制、构造与不变量,以及编译器生成特殊成员函数时的边界。 cpp 审查 AI 代码 新题 审查生成的课程注册 C++ 类把状态与操作组织成用户定义类型;这里讲清访问控制、构造与不变量,以及编译器生成特殊成员函数时的边界。 cpp 找出 bug 新题 找出 Invoice 初始化里的 bug C++ 类把状态与操作组织成用户定义类型;这里讲清访问控制、构造与不变量,以及编译器生成特殊成员函数时的边界。 cpp 测验 新题 构造函数在两个数据成员完成构造后抛出。哪些析构函数会执行? C++ 异常把错误检测与处理分离;理解类型匹配、栈展开、RAII、异常安全保证与 noexcept,才能让失败路径保持状态正确。 cpp 测验 新题 异常试图离开 noexcept 函数时会发生什么? C++ 异常把错误检测与处理分离;理解类型匹配、栈展开、RAII、异常安全保证与 noexcept,才能让失败路径保持状态正确。 cpp 预测输出 新题 这段程序会输出什么? C++ 异常把错误检测与处理分离;理解类型匹配、栈展开、RAII、异常安全保证与 noexcept,才能让失败路径保持状态正确。 cpp 审查 AI 代码 新题 审查生成的账本导入 C++ 异常把错误检测与处理分离;理解类型匹配、栈展开、RAII、异常安全保证与 noexcept,才能让失败路径保持状态正确。 cpp 找出 bug 新题 找出记录导入清理里的 bug C++ 异常把错误检测与处理分离;理解类型匹配、栈展开、RAII、异常安全保证与 noexcept,才能让失败路径保持状态正确。 cpp 预测输出 新题 这段程序会输出什么? C++ 继承把基类子对象纳入派生类,并建立可替换的类型关系;重点掌握访问控制、构造顺序、对象切片和虚继承。 cpp 测验 新题 公有继承对可访问的基类成员有什么影响? C++ 继承把基类子对象纳入派生类,并建立可替换的类型关系;重点掌握访问控制、构造顺序、对象切片和虚继承。 cpp 审查 AI 代码 新题 审查生成的报告继承体系 C++ 继承把基类子对象纳入派生类,并建立可替换的类型关系;重点掌握访问控制、构造顺序、对象切片和虚继承。 cpp 找出 bug 新题 找出任务继承体系里的 bug C++ 继承把基类子对象纳入派生类,并建立可替换的类型关系;重点掌握访问控制、构造顺序、对象切片和虚继承。 cpp 测验 新题 在虚继承菱形中,哪个构造函数负责初始化完整对象共享的虚基类? C++ 继承把基类子对象纳入派生类,并建立可替换的类型关系;重点掌握访问控制、构造顺序、对象切片和虚继承。 cpp 测验 新题 为什么用 std::move(const_value) 构造 T 时,通常调用 T(const T&),而不是 T(T&&)? C++ 移动语义讲清右值引用、std::move、移动构造、有效但未指定状态,以及 noexcept 如何影响容器行为。 cpp 测验 新题 对于可复制类型,std::move_if_noexcept 何时返回右值引用? C++ 移动语义讲清右值引用、std::move、移动构造、有效但未指定状态,以及 noexcept 如何影响容器行为。 cpp 预测输出 新题 这段程序会输出什么? C++ 移动语义讲清右值引用、std::move、移动构造、有效但未指定状态,以及 noexcept 如何影响容器行为。 cpp 审查 AI 代码 新题 审查生成的 Packet 所有者 C++ 移动语义讲清右值引用、std::move、移动构造、有效但未指定状态,以及 noexcept 如何影响容器行为。 cpp 找出 bug 新题 找出移动后 vector 里的 bug C++ 移动语义讲清右值引用、std::move、移动构造、有效但未指定状态,以及 noexcept 如何影响容器行为。 cpp 预测输出 新题 这段程序会输出什么? C++ 命名空间为名称划定作用域;理解限定查找、using、ADL 与链接边界,才能让头文件和库接口保持可预测。 cpp 审查 AI 代码 新题 审查生成的头文件标签函数 C++ 命名空间为名称划定作用域;理解限定查找、using、ADL 与链接边界,才能让头文件和库接口保持可预测。 cpp 找出 bug 新题 找出渲染函数定义里的 bug C++ 命名空间为名称划定作用域;理解限定查找、using、ADL 与链接边界,才能让头文件和库接口保持可预测。 cpp 测验 新题 头文件中的未命名命名空间变量被三个翻译单元包含后,会发生什么? C++ 命名空间为名称划定作用域;理解限定查找、using、ADL 与链接边界,才能让头文件和库接口保持可预测。 cpp 测验 新题 在函数中写 using metrics::distance;,下列哪项描述最准确? C++ 命名空间为名称划定作用域;理解限定查找、using、ADL 与链接边界,才能让头文件和库接口保持可预测。 cpp 测验 新题 在 C++23 中,类定义 auto operator<=>(const T&) const = default; 且没有声明 operator== 时会怎样? 运算符重载让自定义类型使用自然的 C++ 表达式;理解候选查找、返回类型与比较契约,避免生成代码中常见的语义错误。 cpp 测验 新题 为什么表达式 a + b 能找到定义在 a 与 b 所属类中的友元 operator+? 运算符重载让自定义类型使用自然的 C++ 表达式;理解候选查找、返回类型与比较契约,避免生成代码中常见的语义错误。 cpp 预测输出 新题 这段程序会输出什么? 运算符重载让自定义类型使用自然的 C++ 表达式;理解候选查找、返回类型与比较契约,避免生成代码中常见的语义错误。 cpp 预测输出 新题 这段程序会输出什么? 运算符重载让自定义类型使用自然的 C++ 表达式;理解候选查找、返回类型与比较契约,避免生成代码中常见的语义错误。 cpp 审查 AI 代码 新题 审查生成的 Polynomial 类 运算符重载让自定义类型使用自然的 C++ 表达式;理解候选查找、返回类型与比较契约,避免生成代码中常见的语义错误。 cpp 找出 bug 新题 找出 Scores 索引里的 bug 运算符重载让自定义类型使用自然的 C++ 表达式;理解候选查找、返回类型与比较契约,避免生成代码中常见的语义错误。 cpp 测验 新题 资源所有型构造函数在两个 RAII 成员完成构造后抛出。哪些对象会析构? RAII 把资源所有权绑定到 C++ 对象生命周期;掌握确定性析构、异常路径、只移动所有者与无抛出清理。 cpp 预测输出 新题 这段程序会输出什么? RAII 把资源所有权绑定到 C++ 对象生命周期;掌握确定性析构、异常路径、只移动所有者与无抛出清理。 cpp 测验 新题 函数用 vector 管理所有临时内存,却在后续操作抛出前已向调用方的 vector 追加数据。RAII 能保证什么? RAII 把资源所有权绑定到 C++ 对象生命周期;掌握确定性析构、异常路径、只移动所有者与无抛出清理。 cpp 审查 AI 代码 新题 修复生成式文件所有者 RAII 把资源所有权绑定到 C++ 对象生命周期;掌握确定性析构、异常路径、只移动所有者与无抛出清理。 cpp 找出 bug 新题 找出 Socket 包装器里的 bug RAII 把资源所有权绑定到 C++ 对象生命周期;掌握确定性析构、异常路径、只移动所有者与无抛出清理。 cpp 测验 新题 下面哪个声明的形参是转发引用? C++ 引用把表达式绑定到已有对象或函数;理解左值引用、右值引用、生命周期与完美转发,避免悬空和误移动。 cpp 预测输出 新题 这段程序会输出什么? C++ 引用把表达式绑定到已有对象或函数;理解左值引用、右值引用、生命周期与完美转发,避免悬空和误移动。 cpp 审查 AI 代码 新题 审查一段生成的注册表 C++ 引用把表达式绑定到已有对象或函数;理解左值引用、右值引用、生命周期与完美转发,避免悬空和误移动。 cpp 找出 bug 新题 找出 Result 工厂里的 bug C++ 引用把表达式绑定到已有对象或函数;理解左值引用、右值引用、生命周期与完美转发,避免悬空和误移动。 cpp 测验 新题 函数保存了一个绑定临时实参的 const std::string& 形参。该临时对象通常存活多久? C++ 引用把表达式绑定到已有对象或函数;理解左值引用、右值引用、生命周期与完美转发,避免悬空和误移动。 cpp 预测输出 新题 这段程序会输出什么? 用 unique_ptr 表达独占所有权,用 shared_ptr 与 weak_ptr 建模共享和观察关系,并避开控制块、循环引用与生命周期陷阱。 cpp 审查 AI 代码 新题 修复生成式工作器回调 用 unique_ptr 表达独占所有权,用 shared_ptr 与 weak_ptr 建模共享和观察关系,并避开控制块、循环引用与生命周期陷阱。 cpp 测验 新题 复制一个 shared_ptr 时会发生什么? 用 unique_ptr 表达独占所有权,用 shared_ptr 与 weak_ptr 建模共享和观察关系,并避开控制块、循环引用与生命周期陷阱。 cpp 测验 新题 关于 C++23 中 shared_ptr 与线程,哪项说法正确? 用 unique_ptr 表达独占所有权,用 shared_ptr 与 weak_ptr 建模共享和观察关系,并避开控制块、循环引用与生命周期陷阱。 cpp 找出 bug 新题 找出智能指针工厂里的 bug 用 unique_ptr 表达独占所有权,用 shared_ptr 与 weak_ptr 建模共享和观察关系,并避开控制块、循环引用与生命周期陷阱。 cpp 测验 新题 构造 Derived 对象时,Base 构造函数通过 *this 调用虚成员。该调用可以分派到哪里? C++ 虚函数按对象的动态类型选择重写实现;掌握纯虚接口、安全析构、构造期分派和常见失效边界。 cpp 测验 新题 重载决议选中虚成员后,通过 Base& 的普通调用由什么选择函数体? C++ 虚函数按对象的动态类型选择重写实现;掌握纯虚接口、安全析构、构造期分派和常见失效边界。 cpp 预测输出 新题 这段程序会输出什么? C++ 虚函数按对象的动态类型选择重写实现;掌握纯虚接口、安全析构、构造期分派和常见失效边界。 cpp 审查 AI 代码 新题 审查生成的报表接口 C++ 虚函数按对象的动态类型选择重写实现;掌握纯虚接口、安全析构、构造期分派和常见失效边界。 cpp 找出 bug 新题 找出解码器重写里的 bug C++ 虚函数按对象的动态类型选择重写实现;掌握纯虚接口、安全析构、构造期分派和常见失效边界。
没有符合筛选条件的练习。