1 条题解
-
0
题目13
- 在下列代码的横线处填写(),使得输出是 9。
#include<iostream> using namespace std; int main() { char a = '3', b = '6'; cout << ______; //在此处填入代码 return 0; }A.
(a + b)B.(a + b - '0')C.(char)(a + b)D.(char)(a + b - '0')
解答
为了让代码输出 9,应该在横线处填写的正确选项是 D.
(char)(a + b - '0')。详细解释
这道题的核心在于理解 C++ 中
char(字符)类型的运算方式。-
字符的存储: 在 C++ 中,
char类型本质上是整数类型。每个字符都对应一个整数值,这个值就是它在 ASCII 码表中的编码。- 字符
'3'的 ASCII 值是 51。 - 字符
'6'的 ASCII 值是 54。 - 字符
'0'的 ASCII 值是 48。 - 我们希望输出的字符
'9'的 ASCII 值是 57。
- 字符
-
算术运算: 当
char类型的变量参与算术运算(如加减法)时,它们会被自动提升为int类型,使用其对应的 ASCII 值进行计算。
各选项分析
让我们逐一分析每个选项会产生什么结果:
-
A.
(a + b)- 计算的是
a和b的 ASCII 值之和。 - 计算过程:
51 + 54 = 105。 cout会将这个结果当作整数输出,所以屏幕上会显示105。因此,A 是错误的。
- 计算的是
-
B.
(a + b - '0')- 计算的是
a的 ASCII 值 +b的 ASCII 值 -'0'的 ASCII 值。 - 计算过程:
51 + 54 - 48 = 57。 cout会将这个结果当作整数输出,所以屏幕上会显示57。因此,B 是错误的。
- 计算的是
-
C.
(char)(a + b)- 首先计算
a + b,得到整数105。 - 然后
(char)将整数105强制类型转换为字符。ASCII 值为105的字符是'i'。 cout会输出字符i。因此,C 是错误的。
- 首先计算
-
D.
(char)(a + b - '0')- 首先计算
a + b - '0',得到整数57。 - 然后
(char)将整数57强制类型转换为字符。ASCII 值为57的字符正是'9'。 cout会输出字符9。因此,D 是正确的。
- 首先计算
总结来说,为了得到字符
'9',我们需要先计算出它的 ASCII 值57,然后将这个整数值转换为char类型再输出。选项 D 正好完成了这个操作。
- 1
信息
- ID
- 4768
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 0
- 上传者