西安北到西安火车站:初学者C语言问题....

来源:百度文库 编辑:高校问答 时间:2024/05/03 00:58:12
解释这段代码..并且告诉结果是怎样算出的..谢谢了..
main( )
{
int x,y,z;
x=1;y=2;z=3;
z=++x%y;
printf("\n%3d%3d%3d\n",x,y,z);
x=x+(z++ + ++y);
printf("%3d%3d%3d\n",x,y,z);
y=++x+z;
printf("%3d%3d%3d\n",x,y,z);
}

最重要告诉结果是怎么计算出的..
在重点语句说解释..
运行结果:
2 2 0
5 3 1
6 7 1

printf("\n%3d%3d%3d\n",x,y,z);
printf("%3d%3d%3d\n",x,y,z);
printf("%3d%3d%3d\n",x,y,z);
这三句是什么意思??

2 2 0
5 3 1
6 7 1
这个题目主要考点是++i和i++的区别。++i是在用参数前先加1,而i++是用了之后再加1。
x=1;y=2;z=3;
z=++x%y;
经过运算后,z=2%2=0,而x责要加一,x=2,y不变,y=2;
这个时候
x=2;y=2;z=0;
下面进行如下运算,
x=x+(z++ + ++y);
z是用后自加一,y是用前加一,所以,x=x+(0+3)=2+3=5,而z=1,y=3
这个时候
x=5;y=3;z=1;

下面进行如下运算,
y=++x+z;
y=6+1=7,x自加一,x=6,z不变,z=1
所以最终结果

x=6;y=7;z=1;
综上所述,结果是

2 2 0
5 3 1
6 7 1

printf("\n%3d%3d%3d\n",x,y,z);
printf("%3d%3d%3d\n",x,y,z);
printf("%3d%3d%3d\n",x,y,z);
这三句是什么意思??
答:分别打印出当前x,y,z的值。

int x,y,z;
x=1;y=2;z=3;
z=++x%y; x=2 z=0
printf("\n%3d%3d%3d\n",x,y,z);
x=x+(z++ + ++y); z=1 y=3 x=5
printf("%3d%3d%3d\n",x,y,z);
y=++x+z; x=6 z=1 y=7
printf("%3d%3d%3d\n",x,y,z);

这题主要考察++的用法,x++是指先用x做运算,再让x+1,++x是指先让x+1再用新的x做运算