设有intx=11,则表达式(x++*1/3)的值是多少

来源:百度知道 编辑:UC知道 时间:2024/05/26 16:24:16
设有intx=11,则表达式(x++*1/3)的值是多少
A3 B4 C11 D12
答案是B

main()
{
int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf(“%d\n”,x);
}
输出结果是( )
答案是-2

请大家帮个忙,我是一个C语言的初学者,才几天,这里两道题的运算结果我不懂。请大家给我个详细的运算先后的解释,希望能够详细些。我看了答案还是不懂。关键在于自加的问题上出了错。

谢谢了~~·
为什么要加呢,x++不是先参与运算后x自己在增加1吗??干嘛要加下去后在运算呢??

第一题:结果3 ,选B是错的
(x++*1/3),x++,后加,标识x先参与计算之后再加1,所以11*1/3=3

第二题:

int m=3,n=4,x;
x=-m++; // x=-3; m++在表达式结束后才加1,所有为-3
x=x+8/++n;//++n,先加1,再参与计算,所以x=x+8/5
//==>x=-3+8/5 ==>x=-3+1 ==>x=-2

int x=11,则表达式(x++*1/3)的值是3
你可以运行一下

x++标识x先参与计算之后再加1,故(int)11/3=3

main()
{
int m=3,n=4,x;
x=-m++; //x=4
x=x+8/++n; //(int)12/5=2,++n表示自加后参与运算
printf(“%d\n”,x);
}

m++是M=M+1
这样11+1=12,除3是4