问几道简单c++题,高手帮忙解释下,谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/23 01:43:00
1.以下符号中不能作为标识符的是:
a._256
b.void
c.scanf
d.Struct
2. 给出下列程序的输出结果
#include <iostream.h>
void main()
{
int x=5;
int y=2+(x+=x++,x+8,++x);
cout<<y<<endl;
}
3. 计算下列表达式的值:iv.(unsigned char) 500 + 200

1.B
这个可以自己翻书。
2.14
这种题超级无聊,不同的编译器可能会有不同结果,这个是VC的结果。大概的解释是:
x+=x++,先是x+=x,然后x==10,然后++变成11
(x+=x++,x+8,++x)中间的x+8不起作用,这是个逗号表达式,值为最后一个式子的值,就是++x,变成12
然后y=2+12=14
3.444
这个问题很有意思,500被强制类型转换成为unsigned char,我们知道unsigned char是一个无符号的一个字节,于是从右边截取500的8个位:
111110100
变成
11110100
就是十进制的244,然后加上200,类型变成int,结果为444

1 b
2 14
3 444

1 B void是关键字 而scanf一个C语言自带的函数还是可以自己编一个盖过去的 Struct不是关键字struct才是

2 14

3 ASCII码没有超过255吧 500...

1 B
2估计只有考试的时候会出现…… 翻书吧
3怎么看不大懂?