帮我解释下这个C语言题目,谢谢

#include<stdio.h>main(){intflag=0,i;inta[7]={8,9,7,9,8,9,7};for(i=0;i<7;i++)if(a[i]==... #include <stdio.h>
main()
{ int flag=0,i;
int a[7]={8,9,7,9,8,9,7};
for(i=0;i<7;i++)
if(a[i]==7){
flag=i
break;
}
printf(“%d\n”,flag);
flag=-1
for(i=6;i>=0;i--)
if(a[i]==8){
break;
flag=i;
}
printf(“%d\n”,flag);
flag=0;
for(i=0;i<7;i++)
if(a[i]==9){
printf(“%d”,i);
}
printf(“\n”);
flag=0;
for(i=0;i<7;i++)
if(a[i]==7) flag=i;
printf(“%d\n, flag”);
}

(13) 程序运行时,第1行输出 (13) 。
A、2 B、0 C、3 D、6
(14) 程序运行时,第2行输出 (14) 。
A、4 B、-1 C、0 D、5
(15) 程序运行时,第3行输出 (15) 。
A、2 4 6 B、4 C、1 3 5 D、6
(16) 程序运行时,第4行输出 (16) 。
A、2 4 6 B、2 C、1 3 5 D、6

搞不清楚每个小程序里面的那个break的作用,被四个东西搞迷糊了,帮我捋捋吧
展开
 我来答
hanxin0648
2011-04-14
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
第一个:i=2时条件成立,程序执行flag=i,将i赋值给flag,即flag=2,再遇到break跳出循环,后面的i=3,4,5,6不执行。输出flag,结果为2。
第二个:i=4时条件成立,执行break语句跳出循环,而flag=i这句直接跳过没有执行,所以flag还是等于-1。输出flag,结果为-1。
第三个:i=1时条件成立,执行输出语句输出i值为1,由于没有break语句,所以继续循环,当i=3时条件成立,执行输出语句输出i值为3,再继续循环i=5时条件成立,输出i值为5。结果为1 3 5。
第四个:i=2时条件成立,把i赋给flag,此时flag=2,继续循环。i=6时条件成立,再把i赋给flag,此时flag值改为6,循环结束执行输出语句,结果为6。
ch314156
2011-04-14 · TA获得超过4377个赞
知道小有建树答主
回答量:2036
采纳率:100%
帮助的人:1059万
展开全部
break 就是跳出循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
94106081
2011-04-14
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
#include <stdio.h>
#include<Windows.h>
int main()
{
int flag=0,i;
int a[7]={8,9,7,9,8,9,7};
for(i=0;i<7;i++)
{
if(a[i]==7){
flag=i;//i=2
break;
}
}
printf("%d\n",flag);
flag=-1;
for(i=6;i>=0;i--)//i=2
{
if(a[i]==8){
break;
flag=i;//i=-1
}
}
printf("%d\n",flag);
flag=0;
for(i=0;i<7;i++)//i=-1
{
if(a[i]==9){
printf("%d",i);//没有换行所以输出1 3 5
}
}
printf("\n");//i=6
flag=0;
for(i=0;i<7;i++)
{
if(a[i]==7) flag=i;
}
printf("%d\n", flag);

}
这是本人修改后的程序,保证与楼主运行一致,
答案是 A B C D
break 是跳出for循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无影之墙
2011-04-14
知道答主
回答量:31
采纳率:0%
帮助的人:0
展开全部
答案A,A,C,D
第一个输出语句:a[2]=7此时遇break 语句,跳出循环,则flag=2输出,
第二个输出语句
同理a[4]=8,跳出循环,flag =4 输出
第三个输出语句:
无break语句,直接输出所有满足 a[i]=9的i的值,
第四个输出语句:
最后个满足a[i]=7的语句的i值赋给flag 输出
追问
答案是ABCD,第二句你也错了。flag=i, break这两个位置一换答案为何不同,第四句为何是最后满足的语句赋值给flag?真诚求解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cqlf__
2011-04-14
知道答主
回答量:16
采纳率:0%
帮助的人:4.7万
展开全部
abcd
跳出当层循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fyc3881755
2011-04-14
知道答主
回答量:2
采纳率:0%
帮助的人:3045
展开全部
break表示立即退出循环
第1,2个有break表示找到7,8后不会再去找了,第二个直接退出没赋值,而3,4个还要继续找。
应该是A,B,C,D吧
追问
为什么第四个只输出6就行了呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式