和信通可以转支付宝吗:高手请进!一道C语言编程的题,对于您这相当简单!急!!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 11:45:26
我4月1日要考试了,这些简单的问题还不会,请同门师哥师姐,伸出援助之手!!
有如下程序:
main()
{int y=3,x=3,z=1;
printf("%d,%d\n",(++x,y++),z+2);

运行该程序的输出结果是:

请帮我讲,不要告诉我答案,谢谢!

printf("%d,%d\n",(++x,y++),z+2);
可以看到只有两个格式输出控制,%d,%d
但后面的输出参数表却有三个表达式.
(++x,y++)其实是一个表达式,即逗号表达式,逗号表达式的值是最后一个运算式的值,即y++,y++为后缀增1运算,
即先运算后加1,
所以输出的结果相当于
printf("%d,%d\n",y,z+2)
屏幕结果为
3 3

另外,输出后
x的值为4
y的值为4
z的值还是1

++x意思代表先自增后赋值 所以输出 4
y++意思代表边赋值后自增 所以输出 3
z+2 就是正常输出 3
所以输出结果是 4 , 3 ,3

看样主要是这句,(++x,y++)

由于运算顺序是从右到左,故表达式(++x,y++)的值是最后一个运算式的值, 即++x的值, 为4

4.3不知道对不对,我是 这么认为的,括号里面的,我们取后面的作为输出,后面的是y++,我们知道这时y的值还是3,而我们要输出的是y++,所以加一之后为4,而z+2为3,所以输出结果为4,3
好久没有做过这种题了,不知道对不对,个人意见,仅供参考

++x 值为 x+1
y++ 值为 y
则输出值

(4, 3), 3

4月1日考试还一个多月那,从头学都来得及,楼主别着急啊