【急问】很短的C程序运算题,不用编程或看程序!!!

1)若a=4,b=a*a++;求a,b应该怎样算b?是算(4+1)*(4+1)还是4*(4+1)还是4*4+1还是怎样?2)a=4,c=++a+a,求a,c应该怎样算a,... 1)若a=4,b=a*a++;求a,b
应该怎样算b?是算(4+1)*(4+1) 还是4*(4+1)还是4*4+1还是怎样?

2)a=4,c=++a+a,求a,c
应该怎样算a,c?若c=(a++)+a呢?

3)若以上两问并非独立的语句,而是连起来的两条语句,应当怎样算a,b,c?

请给出过程,谢谢!
展开
 我来答
cleverwzh
2011-04-23 · 超过23用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:71.2万
展开全部
这个是 考察 优先级的问题
我们都知道的真理是:
a ++:先计算在加
++ a:先加在计算

对于第一问 =运算符 是从左到右运算的 所以 先算 a 然后是*a++ 因为++的优先级 比较高 所以应该先算a++所以 a的值 已经变成5了 但是因为 ++在a的后面 所以a返回的值 依旧是4 所以 原表达式b=a*a++ 就相当于 b=4*4 =16但是此时a的值 是5
第二个问题就比较好解决了 ++的优先级高 所以 先算++ 因为++在a的前面 那么 a此时的值为5 之后 又+a 所以 c=++a+a 就相当于 c=5+5=10
对于c=(a++)+a 相当于 c=4+4 但是 表达式 结束的时候 a的值为5
两条语句连起来 是一样的啊 第一个表达式 运行完了 a最后等于5 然后 用a=5带入第二个表达式 求值
百度网友a60d2331e
2011-04-23 · TA获得超过125个赞
知道答主
回答量:29
采纳率:0%
帮助的人:29万
展开全部
1)b=4*4=16,a=4+1=5
2)先++a,a=5,c=5+5=10。若c=(a++)+a,则c=4+5=9,a=5
3)a=4,b=a*a++=16,(此时a=5),c=6+6=12(此时a=7)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式