CC++编程百日挑战,今天是第几天了呢?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2400个文字,预计阅读时间需要10分钟。
一、选择题 1.1、以下代码输出的结果是什么?(+)char a=101;int sum=200;a+=27;sum+=a;printf(%d\n,sum);A) 327 B) 99 C) 328 D) 72题解:这个问题考察的是对常见数据结构存储理解的掌握。错误可能出现在 `a+=27;` 这一行,因为 `char` 类型的变量 `a` 在加上 `27` 后可能会发生溢出。具体来说,`char` 通常占用 1 个字节,即 8 位,范围从 -128 到 127(对于有符号 char)或 0 到 255(对于无符号 char)。在这个例子中,`a` 的初始值是 101,加上 27 后,如果 `char` 是无符号的,则 `a` 的值将会变成 128,这是在无符号 char 的范围之外的,因此会发生溢出,`a` 的值将会变成 0(因为 128 与 256 的模为 0)。然后 `sum` 将会加上 0,所以最终输出 `sum` 的值仍然是 200。正确答案是 B) 99。
本文共计2400个文字,预计阅读时间需要10分钟。
一、选择题 1.1、以下代码输出的结果是什么?(+)char a=101;int sum=200;a+=27;sum+=a;printf(%d\n,sum);A) 327 B) 99 C) 328 D) 72题解:这个问题考察的是对常见数据结构存储理解的掌握。错误可能出现在 `a+=27;` 这一行,因为 `char` 类型的变量 `a` 在加上 `27` 后可能会发生溢出。具体来说,`char` 通常占用 1 个字节,即 8 位,范围从 -128 到 127(对于有符号 char)或 0 到 255(对于无符号 char)。在这个例子中,`a` 的初始值是 101,加上 27 后,如果 `char` 是无符号的,则 `a` 的值将会变成 128,这是在无符号 char 的范围之外的,因此会发生溢出,`a` 的值将会变成 0(因为 128 与 256 的模为 0)。然后 `sum` 将会加上 0,所以最终输出 `sum` 的值仍然是 200。正确答案是 B) 99。

