# 1. CERT C L1(必须修复)、L2(强烈建议)、L3(推荐实践)的项目门禁分配 A L3 必须修复 B L1 必须修复并作为 CI 必过门禁,L2 强烈建议,L3 推荐实践 ✓ 正确答案 C 所有等级门禁相同 D L1 只需告警
# 2. CERT C MEM30-C(禁止访问已释放内存)、MEM31-C(不再需要时释放动态分配内存)、MEM33-C(含灵活数组成员的结构体需动态分配并复制) A MEM31-C 与内存泄漏无关 B MEM30-C 允许 use-after-free C MEM30-C 禁止访问已释放内存,MEM31-C 及时释放防泄漏,MEM33-C 处理灵活数组成员 ✓ 正确答案 D MEM33-C 无需动态分配
# 3. CERT C INT31-C(整型转换前范围检查)、INT32-C(有符号整型运算禁止溢出)与 INT33-C(除法/取余避免除零) A 有符号溢出是有定义行为 B INT31-C 转换前检查范围,INT32-C 禁止溢出,INT33-C 避免除零 ✓ 正确答案 C 除零在 C 中安全 D 整型转换无需范围检查
# 4. MISRA C 2012 Rule 1.3(禁止未定义行为,-Wpedantic + UBSan 全量通过) A 未定义行为可以接受 B 用 -Wpedantic 告警与 UBSan 运行检测确保无未定义行为 ✓ 正确答案 C UBSan 只在编译期告警 D Rule 1.3 与运行时无关
# 5. CERT C 的并发与线程规则中数据竞争、双重加锁、信号使用等规则在 C++11 线程库与原子操作下的落地方式,以及静态分析工具的覆盖情况? A std::atomic 用于解决死锁 B 静态分析能完全检测所有并发问题 C 用 C++11 线程库、原子操作与 RAII 结合静态分析与 TSan 检测并发问题 ✓ 正确答案 D 数据竞争无法检测
# 7. 安全编码标准与编译器告警的映射中 CERT/MISRA 规则如何映射到 -Wconversion、-Wnull-dereference、-fanalyzer 等编译告警与 SonarQube 配置,减少人工检查成本? A 将 CERT/MISRA 规则映射到 -Wconversion、-fanalyzer 等告警与 SonarQube,自动化检查 ✓ 正确答案 B 安全标准只能靠人工检查 C 编译告警与安全规则无关 D SonarQube 无法配置安全规则
# 8. 功能安全标准的分级编码要求中 ISO 26262-6 按 ASIL 等级强制采用经认可的编码规范并配合静态分析(如 MISRA C 与 Helix QAC),DO-178C 对最高安全等级要求 MC/DC 结构覆盖,IEC 62304(医疗软件)要求软件单元验证,三者对工具资格认证与覆盖率证据的差异如何落地? A 覆盖率证据无关紧要 B 所有等级要求相同 C 按安全等级强制编码规范、静态分析与覆盖率证据,工具需资格认证 ✓ 正确答案 D 工具无需认证
# 9. MISRA C 2012 Rule 11.x 系列(void* 与对象指针间的隐式转换) A Rule 11.x 只涉及整型 B void* 隐式转换是安全的 C 指针类型转换无风险 D 禁止 void* 与对象指针隐式转换,要求显式且类型兼容 ✓ 正确答案
# 10. MISRA C 2012 Rule 16.x(switch 标签终止、break、default) A 要求每个 case 以 break 终止,禁止 fall-through 并含 default ✓ 正确答案 B fall-through 是允许的 C default 子句可选 D switch 无需终止语句
# 11. MISRA C 2023 的 Deviation Permit 机制中逐条申请、证据留存与架构师会签 A 允许随意豁免违规 B 对违规逐条申请、留存证据并由架构师会签,形成受控豁免 ✓ 正确答案 C 豁免无需审批 D 偏差许可无需记录
# 12. CERT C/C++ 规则在 LLVM/Clang、GCC、SonarQube 的覆盖矩阵 A 编译器告警与 CERT 规则无关 B 单一工具覆盖全部规则 C GCC、Clang、SonarQube 覆盖不同规则,需组合并用覆盖矩阵管理 ✓ 正确答案 D 覆盖矩阵无需维护
# 13. MISRA C 2012 在 Helix QAC、Coverity、CodeQL 的合规检查器 A CodeQL 不支持 MISRA B 三者功能完全相同 C Helix QAC 无法做合规报告 D Helix QAC 覆盖完整 MISRA 规则,Coverity 兼顾缺陷,CodeQL 可定制查询 ✓ 正确答案
# 14. SEI CERT 跨语言编码规范体系中 CERT C++ Coding Standard 与 CERT Oracle Java Coding Standard 相比 CERT C 增加了哪些面向对象与并发维度(虚析构与资源管理、异常安全、数据竞争与原子操作),如何在 clang-tidy(cert-* 检查)与 SpotBugs(FindSecBugs)中启用对应规则集? A C++/Java 规范增加虚析构、异常安全、数据竞争等维度,用 clang-tidy 与 SpotBugs 启用 ✓ 正确答案 B 跨语言规范与面向对象无关 C clang-tidy 只用于 Java D SpotBugs 用于 C/C++
# 15. 安全标准例外(deviation、waiver)的申请、审批、记录、过期流程 A 例外需申请、审批、记录并设有效期复审,防止无限期豁免 ✓ 正确答案 B 例外可以无限期存在 C 例外无需审批 D 例外记录无需保留
# 16. Compiler hardening flags(-fstack-protector、-D_FORTIFY_SOURCE、-pie)的工程启用 A 加固标志与安全无关 B -fstack-protector 检测栈溢出、-D_FORTIFY_SOURCE 做边界检查、-pie 配合 ASLR ✓ 正确答案 C -pie 用于检测栈溢出 D -D_FORTIFY_SOURCE 无需优化级别