这题答案是多少

来源:百度知道 编辑:UC知道 时间:2024/09/21 04:32:34
有关C语言知识:i=1;
j=(++i)*(++i)*(++i);
那么j=_
希望给出过程的式子,即j=?*?*?=?
谢谢

也许是编译器的问题,VC6.0运行结果是36
运算过程应该是++i;++i;temp=i*i;++i;j=temp*i;应该是只做两个数的乘法

这样的题没有意义。学编程不必把时间浪费在这上面

j=2*3*4=24

是24
因为有括号,先算第一个括号,++i为2,第二个括号++i为3,第三个括号++i为4,所以最后答应为2*3*4=24

正确答案是64:
j=(++i)*(++i)*(++i)=(4)*(4)*(4)=64
全部自加完成后才执行*
在Turbo C和Win-tc环境均是该结果。顺便说一下,即使把括号去掉仍是该结果。可用以下程序验证:
void main()
{
int i,j;
i=1;j=(++i)*(++i)*(++i);
printf("j=%d, i=%d\n",j,i);
i=1;j=++i*++i*++i;
printf("j=%d, i=%d\n",j,i);
i=1;j=(i++)*(i++)*(i++);
printf("j=%d, i=%d\n",j,i);
i=1;j=i++*i++*i++;
printf("j=%d, i=%d\n",j,i);
/* i=1;j=++i+++i+++i; 语法错 */
i=1;j=++i+i+++i++;
printf("j=%d, i=%d\n",j,i);
i=1;j=i+++i+++i++;
printf("j=%d, i=%d\n",j,i);
}
/*
结果是:
j=64, i=4
j=64, i=4
j=1, i=4
j=1, i=4
j=6, i=4
j=3, i=4
*/

要看编译器是