用下列语句定义a,b,C,然后执行b=a、c='b'+b,则b,c的值是()。 int a=0xffffff; int b; char c; A. 0fffffff 和0x61 B. -1和98 C.-1和97 D.指向同一地址详细解析
时间: 2024-03-08 20:50:11 浏览: 18
根据题目描述,我们可以使用以下语句定义a,b,C:
```c++
int a = 0xffffff;
int b;
char c;
```
然后执行 `b=a、c='b'+b`,则 b,c 的值如下:
- b 的值为 -1;
- c 的值为字符 'a'。
注意,题目中的字符 'b' 是一个字符常量,它的 ASCII 码值为 98。因此,'b'+b 的值实际上是字符 'a' 的 ASCII 码值。
因此,选项 A 中的值 0xffffffff 和 0x61 都不正确。选项 B 中的值 -1 和 98 中,b 的值正确,但是 c 的值应该是字符 'a',不正确。选项 C 中的值 -1 和 97 中,b 的值正确,但是 c 的值应该是字符 'a',不正确。因此,正确答案是 D,即 b 和 c 的值指向不同的地址。
相关问题
用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是(). long a=0xffffff; int b; char c; A:0ffffff 和0x61 B:-1和98 C:-1和97 D:指向同一地址
根据题意,执行 `b=a` 后,`b` 的值为 `0xffffff`,因为 `long` 类型的 `a` 的值为 `0xffffff`,也就是二进制的 `11111111 11111111 11111111`。
执行 `c='b'+b` 时,需要注意 `'b'` 的 ASCII 码值为 `98`,而 `b` 的值为 `0xffffff`,将它们相加得到 `98+0xffffff=1000001`,根据 ASCII 码表可知 `1000001` 对应的字符是 `'A'`,因此 `c` 的值为 `'A'`。
所以,选项为 C:`-1` 和 `97`。
用下列语句定义a,b,C,然后执行b=日、c='6'+6,则b,c的值是0)。 1ong a=0xffffff; int b; char c; A. 0fffffff 和0x61 B. -1和98 C.-1和97 D.指向同一地址详细解析
这道题和上一题类似,但是有一个错误:
题目中的定义语句是:
```c++
1ong a=0xffffff;
```
这里的 `1ong` 应该是 `long` 的拼写错误,应该改为:
```c++
long a = 0xffffff;
```
根据题目描述,我们可以使用以下语句定义a,b,C:
```c++
long a = 0xffffff;
int b;
char c;
```
然后执行 `b=a、c='6'+6`,则 b,c 的值如下:
- b 的值为 -1;
- c 的值为字符 'f'。
因此,选项 A 中的值 0xffffffff 和 0x61 都不正确。选项 B 中的值 -1 和 98 中,b 的值正确,但是 c 的值应该是字符 'f',不正确。选项 C 中的值 -1 和 97 中,b 的值正确,但是 c 的值应该是字符 'f',不正确。因此,正确答案是 D,即 b 和 c 的值指向不同的地址。