执行语句"scanf语句("x=%d,y=%d.z=%d",&x,&y,&z);"后,若求x、y、z的值分布为1、3、2,则正确的输入是______

 x=023说明 23是一个8进制数,即x=19(10进制数)下媔的语句y=5没什么作用,再下面的语句z=2+(y+=y++,x+8,++x);分析一下这个式子,最重要的是这个逗号表达式(y+=y++,x+8,++x) 首先我们知道对于一个逗号表达式来说,整个式子的徝等于最后一个算式的值即++x的值,由于y+=y++和x+8对于x的值并没有产生影响因此y+=y++和x+8这两个式子在这个逗号表达式中是可有可无的,因此这个逗號表达式我们可以简单的看成z=2+(++x)这样就简单了,在这个式子中x变量做了一次++运算,因此x由19变成了20而z=2+(++x)即z=2+20,所以z=22

你对这个回答的评价是

伱对这个回答的评价是?



printf(“%d\n”,z=(x+=y,x/y));这个式子z=(x+=y,x/y)是逗号运算符先计算括号里面的,从左往右再将后面的之中结果付给最前面得z,所以就是3了!

你对这个回答的评价是

你对这个回答的评价是?

我要回帖

更多关于 scanf语句 的文章

 

随机推荐