设x的值为5,则表示式(++x)+(++x)+(++x)的值是 24 为什么?

 我来答
户如乐9318
2022-10-01 · TA获得超过6756个赞
知道小有建树答主
回答量:2559
采纳率:100%
帮助的人:154万
展开全部

设x的值为5,则表示式(++x)+(++x)+(++x)的值是 24 为什么?

根编译器有关。
VC++6.0的编译器对x=(++x)+(++x)+(++x)的演算法如下:
设x=5;
则(++x)+(++x)+(++x)=((++x)+(++x))+(++x)
即先算前两个++再算+,((++x)+(++x))+(++x)就等于(7+7)+8,结果为22。
你用的编译器是先算括号里的++然后再把值加到一起。
即(++x)+(++x)+(++x)结果为8+8+8等于24。
就像pluto729这位朋友说的那样,没有什么意义的东西。倒是可以用来难倒别人。

347、设x的值为4,则表示式(++x)+(++x)+(++x)的值是( ) 21 为什么?

表示式需要首先计算完毕:++x
三次计算完毕,那么x=7
然后再执行:7 + 7 + 7

设x的值是5,则表示式(++x)+(++x)+(++x)的值是

先自加三次为 8,再求和24

设x的值为4,则表示式(++x)+(++x)+(++x)的值是( ) A:12; B:18; C:16; D:21

不是,计算机先坐整个的++过程,在使用X所以是三个7

设x的值为2,表示式x%=x+=x=*x=x+2的值是?求详解

表示式x%=x+=x=*x=x+2是从右算起的,先看x=x+2,得x=2+2=4,x=*x得x=x*x=16,x+=x得x=x+x=32,x%=x得x=x%x=32%32=0

若x的值为5,则表示式x+=x%(-3)-4

y>x++? x- - : y++
如果用printf输出上式的结果printf("result = %d", y>x++? x- - : y++)
相当于
if (y>x)
{
x++;
printf("result = %d", x);
x--;
}
else
{
printf("result = %d", y);
y++;
}

已知X的值为5,表示式 X mod 3>3 mod X 的值是

5 mod 3 > 3mod5
2>3
false

设x的值为4,则表示式(++x)+(++x)+(++x)的值是( ) A:12; B:18; C:16; D:21 、 答案:D、3

12 +6+1

C语言中,设x的值为4,则表示式(++x)+(++x)+(++x)的值是多少?

不一定,不同的编译器结果会不同
g++编译结果: 19
b32编译结果:21
VC6编译结果: 21
int X = 4;
X = (++X*4)+(++X*3);
cout < < x;
的结果:
g++编译结果: 38
b32编译结果:42
VC6编译结果: 42

你的答案是21 是这样的:(++x)+(++x)+(++x)中,编译器是这样运算的,程式在计算式需要完成一句语句,也就是;结束的语句才算结束,刚开始为4,所以自加3次得到7,最后在运算结果,实现三个7+7+7=21 刚好我们老师有讲过!还望你能理解!其实 ,编译器还是有区别的!就好像int 在vc 6.0中是占4个位元组,而在turbo c2.0中占2个位元组!明白了吧!

设char型变数x中的值为10100111,则表示式(2+x)^(~3)的值是()。

答案是D
因为x=10100111,x+2,首先将2转为二进位制,所以
10100111+0010=10101001再执行(异或)运算,又因为取反3,3=11111100所以最后结果为01010101

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式