【C/C++】错题记录(三)

题目一

题目二

题目三

题目四

题目五


题目六

题目七???

题目八

这道题主要考查对数据类型和位运算的理解与运用。

  1. 分析选项 A:

    • *((unsigned char *)(&number) + 1)=0xcd; 这里将 number 的地址强制转换为 unsigned char* 类型,然后通过指针偏移访问其中的一个字节并赋值为 0xcd
    • 但是这样的操作只会改变 number 的一个字节,无法保证其他字节不受影响,而且也不一定能准确地将 number 的值变为 0xffaacddd
  2. 分析选项 B:

    • number = (number & 0xffff00ff) | 0x00cd00;
    • 首先,number & 0xffff00ff 会将 number 的中间两个字节(第 9 到 16 位)清零。
    • 然后,| 0x00cd00 会将中间两个字节设置为 0xcd
    • 这样可以准确地将 number 的值变为 0xffaacddd
  3. 分析选项 C:

    • number = (number & 0xffee43dd) | 0xbbaacddd;
    • number & 0xffee43dd 会保留 number 中特定的一些位,然后通过 | 0xbbaacddd 将特定位置设置为目标值。
    • 可以实现将 number 的值变为 0xffaacddd
  4. 分析选项 D:

    • number=(number & 0xffccbcff)+0x1100;
    • 这种操作不能准确地将 number 的值变为 0xffaacddd,因为 & 操作和加法操作不能保证得到预期的结果。

综上所述,正确答案是 BC。

相关推荐
枫叶丹42 分钟前
【HarmonyOS 6.0】AVCodec Kit 视频解码器平滑停用机制详解
开发语言·华为·音视频·harmonyos
故事和你913 分钟前
洛谷-算法2-2-常见优化技巧1
开发语言·数据结构·c++·算法·动态规划·图论
酉鬼女又兒5 分钟前
JavaLeetCode 第一题「两数之和」:从暴力枚举到一遍哈希表的正确与错误实现,详解HashMap核心知识点及常见陷阱
java·开发语言·数据结构·算法·leetcode·职场和发展·散列表
JackSparrow4147 分钟前
彻底理解Java NIO(一)C语言实现 单进程+多进程+多线程 阻塞式I/O 服务器详解
java·linux·c语言·网络·后端·tcp/ip·nio
流年如夢11 分钟前
动态(堆区)内存管理与内存泄漏规避
c语言
白夜111712 分钟前
C++(mixins 混入模式)
开发语言·c++·笔记
无风听海15 分钟前
Python 哨兵值模式(Sentinel Value Pattern)深度解析
开发语言·python·sentinel
清风玉骨17 分钟前
C++/Qt从零开始编译使用libxlsxwriter库
开发语言·qt
报错小能手20 分钟前
Swift UI 用 MVVM 架构 Combine EventBus 实现待办清单
开发语言·ui·swift
威迪斯特21 分钟前
Cobra框架:Go语言命令行开发的现代化利器
开发语言·前端·后端·golang·cobra·交互模型·命令行框架