c语言for语句

以下程序的输出结果是()。main(){inta,b=1;for(a=1;;a++){if(a>=6)break;if(a%2)b+=3;}printf("%d\n",b... 以下程序的输出结果是( )。
main()
{ int a, b=1;
for(a=1; ; a++)
{ if(a>=6) break;
if (a%2)
b+=3;
}
printf("%d\n",b);
}

A. 10
B. 19
C. 16
D. 7
答案是A ,我选D.我的理由是,当a=4时,b=7;而a=6时,因a=6,退出循环。所以最后,b应该为7.
不知道错在哪了,求指教。谢谢~~
展开
 我来答
夙愿511
2014-06-24 · TA获得超过111个赞
知道答主
回答量:107
采纳率:100%
帮助的人:98.1万
展开全部
1:for循环

for语句的格式为:
for (初始化语句; 条件语句; 控制语句)
{
语句1 ;
语句2 ;
....

语句n ;
}

for 语句的执行顺序是:首先执行“初始化语句”;然后测试“条件语句”;若条件成立,则执行语句1到语句n;然后执行“控制”语句;接着再测试条件语句是否成立,如果成立则重复执行以上过程,直至条件不成立时才结束for循环。如:

for(i=0;i<10;i++)......;

int i,a[]=new int[10];
for (i=0,i<10;i++) a[i]= 0;

这段代码把整型数组a中的所有元素都赋成0。
你可以在for循环的头部说明你的变量,而且最后一个表达式可以省略,不过要确定在语句中对变量的值有所改变,如:

for(int i=0;i<=10;) i+=i;

for循环中,“初始化语句”、“条件语句”和“控制语句”都可以省略,但是其间的分号不能省略。例如:
int i =0 ;
for (; ; ;)
{
if i>10 break ;
i = i +1 ;
}

for循环中省略“条件语句”时,在for语句{}中必须包换转句语句控制程序在某个条件满足时跳出for循环,否则将形成死循环
请采纳。
会点技术的小子
2014-06-24 · TA获得超过528个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:279万
展开全部
亲,if(a%2) 只有这个条件成立 b+=3; 才会执行,所以只有当a=1,a=3,a=5这3个值的时候会成立 又由于b一开始等于1 所以最终的结果是10 ,不知道你看懂了没,不懂再问我,希望采纳!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友018ba30
2014-06-24
知道答主
回答量:27
采纳率:0%
帮助的人:20.4万
展开全部
a%2 等于1 的时候就会加,a为奇数的时候b就会加3,所以加了三次为10
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Hadoken
2014-06-24
知道答主
回答量:5
采纳率:0%
帮助的人:3.2万
展开全部
a = 1,3,5 的时候 b 的值都会加3
一共加了3次所以b = 10
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
6969548s
2014-06-24 · 超过19用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:44.4万
展开全部
if (a%2)

这个语句当a为奇数是a%2=1,这时为真,才执行b+=3.
所以是a=1,3,5的时候,b都加了3.最后为10.
追问
明白了,我钻牛角尖了。谢谢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式