请教两道谭浩强书中习题
1。以下程序的运行结果是?
int X1=30, X2=40;
main()
{int X3=10,X4=20;
sub(X3,X4);
sub(X2,X1);
printf("%d,%d,%d,%d\n",X3,X4,X1,X2 );
}
sub(intX,intY)
{
X1=X;
X=Y;
Y=X1;
}
答案是:10 20 40 40
我实在想不通,(难道是答案错了吗?)请会做者指点一下。
2。以下程序的运行结果是?
int i=0;
main()
{int i=5;
reset(i/2); printf("i=%d\n",i);
reset(i=i/2); printf("i=%d\n",i);
reset(i/2); printf("i=%d\n",i);
workover(i); printf("i=%d\n",i);
}
workover(int i)
{ i=(i%i)*((i*i)/(2*i)+4);
printf("i=%d\n",i);
return(i);
}
reset( int i)
{i=i<=2?5:0;
return(i);
}
答案是:
i=5
i=2
i=2
i=0
i=2
第二个i和第三个i为何为2呢?解释一下好吗?