C语言题目,SOS

[复制链接]
查看11 | 回复3 | 2008-7-13 10:30:30 | 显示全部楼层 |阅读模式
main()
{
int m=12,n=34;

printf("%d%d",m++,++n);

printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是( )
A12353514 B12353513C 12343514 D12343513
我是这样思考的,
第一个printfm++是m=m+1=13,++n=n+1=35
第二个printfn++是n=n+1=35,++m=m+1=13 所以我觉得应该是13353513
可没有这个答案,请问哪位能详细解释一下,谢谢了...

回复

使用道具 举报

千问 | 2008-7-13 10:30:30 | 显示全部楼层
12353514因为第一个m++输出 m是先用后加 所以输出还是12 而第一个++n是先加有用 所以是35 第二个 n++也是先用后加 加之前是35 所以输出也是35 而最后一个m 是先加后用 加之前是13 加之后是14 所以答案是A (x++先用后加 ++x是先加后用)
回复

使用道具 举报

千问 | 2008-7-13 10:30:30 | 显示全部楼层
是AM++是先输出,++n是先加,在输出,第二个n已经在第一步加一,输出数为35第二个m已经在第一步加一,第二步再加一后输出,所以选A
回复

使用道具 举报

千问 | 2008-7-13 10:30:30 | 显示全部楼层
M++表示M使用一次后做加法++N表示使用前做加法所以开始4个数是1235后面依次就该是3513B是对的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行