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++虚函数按对象的动态类型选择重写实现;掌握纯虚接口、安全析构、构造期分派和常见失效边界。
没有符合筛选条件的练习。