求答案 求过程c语言

 我来答
Frank_Zhou991
2016-12-01 · TA获得超过421个赞
知道小有建树答主
回答量:385
采纳率:88%
帮助的人:167万
展开全部
记住:
自增运算符++在变量前面:++a,你先把把变量a的值加1,然后把变量a代进其他表达式参与运算;
++在后面:a++,先把变量a代进其他表达式参与运算,这个表达式运算完了之后,把变量a的值加1。

运算符在变量前面:变量先增加后使用。在后面:变量先使用后增加。

自减运算符同理。

格式说明符:
%o - 以无符号8进制形式输出
%x - 以无符号16进制形式输出
%d - 以带符号10进制形式输出

注意:因为整数在内存中也是以二进制的形式存储的,所以上面三个进制转换的操作数原来都已经转化成二进制了。

这里初值情况:x = 010, y = 12。
二进制形式:x = 1000,y = 1100

进制转换不会的,先用计算器。

第一句:++x,++在变量前面,先增加后使用,先把x值加1,从1000变为1001,然后把x值代入前面的控制字符串参与执行,这里通过格式说明符%d以10进制输出:
9
再看y++,++在变量后面,先使用后增加,先把y原来的值1100带入前面的控制字符串参与执行,这里通过格式说明符%x以16进制输出:
c
之后,把y值加1,从1100变为1101
所以,第一句执行后,输出:9, c,变量的取值:x = 1001, y = 1101

第二句:x++,++在变量后面,先使用后增加,先把x原来的值1001带入前面的控制字符串参与执行,这里通过格式说明符%x以16进制输出:
9
之后,把x值加1,从1001变为1002。
再看++y,++在变量前面,先增加后使用,先让y值加1,从1101变为1102,然后把y值带入前面的控制字符串参与执行,这里通过格式说明符%o以8进制输出:
16
所以,第二句printf执行后,输出:9, 13,变量取值:x = 1002, y = 1102

如果在格式说明符%x和%o中加入#:%#x, %#o,会使输出8进制和16进制形式时带前缀0和0x。那么这题的输出就变成:
9, 0xc
0x9, 016
更多追问追答
追答
分析第二句printf的输出写错了,不是9, 13,是9, 16。
进制转换会吗,不会我写一下转换方法。
Song宋peng
2016-12-01 · TA获得超过583个赞
知道小有建树答主
回答量:1012
采纳率:0%
帮助的人:365万
展开全部
我会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhuimengA2012
2016-12-01 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:148
采纳率:100%
帮助的人:44.9万
展开全部
x = 010是不是写错了?
更多追问追答
追问
八进制
追答
9  12
9 14
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式