一个C语言题

以下程序段的执行结果是A)a=12y=12B)a=12y=12C)a=12y=12D)a=12y=12a=14y=16a=16y=28a=14y=26a=16y=20a=... 以下程序段的执行结果是
A) a=12 y=12 B) a=12 y=12 C) a=12 y=12 D) a=12 y=12
a=14 y=16 a=16 y=28 a=14 y=26
a=16 y=20 a=14 y=44
a=18 y=24
int a, y;
a=10; y=0;
do
{ a+=2; y+=a;
printf("a=%d y=%d\n",a,y);
if(y>20) break;
} while(a=14);

为什么选B啊?行不通啊
展开
 我来答
百度网友bea6798
2010-08-16 · TA获得超过159个赞
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:0
展开全部
do while和while循环有区别,do while循环是先执行,在判断;而while循环是先判断,在执行。你的代码中while(a==14)而不是a=14;这是有本质的区别,
你的代码有误,while语句是判断语句,不是复制语句; a==14是判断a和14相等,而a=14是赋值语句,把14付给a;
按着你的代码分析:先执行a+=2; y+=a; 此时a=12、y=12;
接着输出:a=12、y=12
接着判断:a>20为假。
接着判断:a=14
进行下轮的循环。a=16、y=16+12=28
故结束循环。break; 是终止循环。
华录_起点
2010-08-16 · TA获得超过1055个赞
知道小有建树答主
回答量:533
采纳率:0%
帮助的人:0
展开全部
a=10,a+=2=>a=a+2=12;
y+=a=>y=y+a=12;
然后判断,不满足条件跳出循环。

do...while循环是先执行一次,然后再判断条件是否满足,若满足则继续执行;否则退出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e2f8840
2010-08-16 · TA获得超过136个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:151万
展开全部
第一次循环:a+=2之后a=12,y+=a之后y=12,判断while不满足条件,结束循环
我怎么觉得选C呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2010-08-16 · TA获得超过631个赞
知道小有建树答主
回答量:352
采纳率:20%
帮助的人:113万
展开全部
第一层do-while开始 a+=2 ;y+=a;//a为12,y为12
...
if(y>20) break; //a为12,y为12
...
while(a=14) //a被赋值为14,y为12
第一层do-while结束 //a为14,y为12
第二层do-while开始 a+=2;y+=a;//a为16,y为28
...
if(y>20) break; //a为12,y为28
//因为y>20所以跳出while循环结束

//所以选B
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
好红客
2010-08-16 · TA获得超过216个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:0
展开全部
共循环两次:

第一次 :a = 10; y = 0;
a = a + 2 = 10 + 2 = 12
y = y + a = 0 + 12 = 12
输出 a = 12 y = 12

因为 while ( a = 14 ) ; 所以 a = 14
第二次 :a = 14; y = 12;
a = a + 2 = 14 + 2 = 16
y = y + a = 12 + 16 =28
输出 a = 16 y = 28

因为 28 > 20 所以 break
退出循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
买巧苼0au
2010-08-16
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
while(a=14); 是不是写错了,应该是while(a==14);
这样的话,我觉得是a=14 y=26
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式