求解这道题 c语言的

12.已知inta=8,b=10,c=16;执行下列程序后a,b,c的值分别是__D__。if(a>b)c=a;a=b;b=c;A.8,10,6B.10,10,6C.10... 12.已知int a=8,b=10,c=16;执行下列程序后a,b,c的值分别是__D__。
if(a>b)c=a;a=b;b=c;
A. 8,10,6 B.10,10,6
C. 10,16,8 D.10,16,16
展开
 我来答
瀚漠
2013-01-07 · 专注C语言发开,Linux系统相关
瀚漠
采纳数:309 获赞数:1286

向TA提问 私信TA
展开全部
这里代码这样写更清楚:
if(a>b)
c=a;
a=b;
b=c;

if判断复合语句内只包含了一句:c=a; 判断a>b显然不成立,这一句并不会执行。
之后顺序执行剩余的两句:
a=b; a即为10
b=c; b即为16
所以最终结果:
a = 10, b = 16, c = 16

如果改为:
if(a>b)
{
c=a;
a=b;
b=c;
}
这里就是if复合语句包含3句,条件不成立3句都不执行,最终结果3个变量未变化。
liujj4241
2013-01-07 · TA获得超过4043个赞
知道大有可为答主
回答量:7021
采纳率:58%
帮助的人:742万
展开全部
因为a〉b为假,所以不执行c=a
所以执行a=b,所以a=10
然后b=c,所以b=16
所以最后是10,16,16
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幻灵雪影
2013-01-07 · TA获得超过3805个赞
知道大有可为答主
回答量:4511
采纳率:33%
帮助的人:2956万
展开全部
没有特别的大括号,所以只执行后两句


a=b;b=c;

注意,是赋值,而不是等于

那么最后的答案就是D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6b264c8
2013-01-07 · TA获得超过288个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:205万
展开全部
if语句如果没有大括号括起来号,就只执行后面第一个“ ;”。
如果a>b , c=a;而a<b,所以没有执行c=a;
只是执行a=b;b=c;
a=10;
b=16;
c=16
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
372284362
2013-01-07 · TA获得超过108个赞
知道答主
回答量:204
采纳率:0%
帮助的人:117万
展开全部
这里if语句没有加花括号,所以if语句的条件判断只对应c=a;这句。
因为a<b,所以c=a没有执行到。
只执行了a=b; b=c;
所以答案为D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5b0112d
2013-01-07
知道答主
回答量:24
采纳率:0%
帮助的人:7.7万
展开全部
if不成立,第一步不参与,操作2 3步即可,
2: a=b a=10 b=10

3: b=c b=16 c=16

最后 a=10 b=16 c=16
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式