A-A+
有以下程序: int f(int a) { return a%2; } main() { i
问题详情
有以下程序: 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]); i++) d+=s[i]; printf("%dn",d); } 程序运行后的输出结果是()。
A.9
B.11
C.19
D.21请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:A
解析:函数f()的作用是形参a为偶数的时候返回0,否则返回1,主函数中首先定义了一个长度为8的一维数组,然后给它部分赋初值{1,3,5,2,4,6)。其他没有赋值的数组元素将自动赋值为0。for循环中,当s[i]不为偶数时,将s[i]相加,所以d的值为d=1+3+5=9,因此最后输出的d值为9。故4个选项中选项A符合题意。