C语言的一道题
intf(inta){returna%2;}main(){ints[8]={1,3,5,2,4,6},i,d=0;for(i=0;f(s);i++)d+=s;printf...
int f(int a)
{ return a%2; }
main()
{ int s[8]={1,3,5,2,4,6},i,d=0;
for (i=0;f(s);i++) d+=s;
printf("%d\n",d);
}
程序运行后的输出结果是 ( )。
A)9
B)11
C)19
D)21
其中不太清楚for中f(s)的意思,麻烦讲解下,谢谢啦
04年9月的真题。。。。我复制过来的,答案的确是A,但是为什么啊 展开
{ return a%2; }
main()
{ int s[8]={1,3,5,2,4,6},i,d=0;
for (i=0;f(s);i++) d+=s;
printf("%d\n",d);
}
程序运行后的输出结果是 ( )。
A)9
B)11
C)19
D)21
其中不太清楚for中f(s)的意思,麻烦讲解下,谢谢啦
04年9月的真题。。。。我复制过来的,答案的确是A,但是为什么啊 展开
1个回答
展开全部
你确定题目是这样子吗?我怎么觉得别扭...
int f(int a)
{return a%2;};
int main()
{int s[8]={1,3,5,2,4,6};int i,d=0;
for (i=0;f(s[i]);i++)
d+=s[i];
printf("%d\n",d);
}
如果是这样的话还可以解释运行得A
你主要就是f(s[i])不理解吧
我们先看他的过程是return a%2,你想想他会有什么结果呢,不难看出如果a是奇数,就会返回1,偶数就会返回0
我们看,for (i=0;f(s[i]);i++)中间是决定这个循环继续不继续的语句是吧,如果返回1,就是真,那么循环就会继续,如果返回0,就是假,就会终止循环。
so 这样就容易解决了,意思就是在s[8]里前几项奇数的和,直到遇到偶数就停止
我们看,前面三项1+3+5=9
到s[4]的时候由于f(s[4])返回为0就终止了循环
明白了吗
int f(int a)
{return a%2;};
int main()
{int s[8]={1,3,5,2,4,6};int i,d=0;
for (i=0;f(s[i]);i++)
d+=s[i];
printf("%d\n",d);
}
如果是这样的话还可以解释运行得A
你主要就是f(s[i])不理解吧
我们先看他的过程是return a%2,你想想他会有什么结果呢,不难看出如果a是奇数,就会返回1,偶数就会返回0
我们看,for (i=0;f(s[i]);i++)中间是决定这个循环继续不继续的语句是吧,如果返回1,就是真,那么循环就会继续,如果返回0,就是假,就会终止循环。
so 这样就容易解决了,意思就是在s[8]里前几项奇数的和,直到遇到偶数就停止
我们看,前面三项1+3+5=9
到s[4]的时候由于f(s[4])返回为0就终止了循环
明白了吗
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询