A-A+
有以下程序: #include <stdio. h> int f(int a) return
问题详情
有以下程序: #include <stdio. h> 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]; prinff("% d n", d); 程序运行后的输出的结果是().
A.9
B.11
C.19
D.21请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:A
解析:在主函数main中,f(s[i])为for语句的循环终止条件,当f函数返回非零值时,则继续执行循环,否则终止循环,输出d的值。程序的运行步骤为:当i=0时,f(s[i])返回值为1,执行d+=1,d=1;当i=1时,将s[1];3传给形参变量s,f函数返回a%2=1,执行d=d+s[1]=1+3=4;当i=2时,将s[2]=5传给形参变量a,f函数返回a%2=1,执行d=d+s[2]=4+5=9;当i=3时,将a[3]=2传给形参变量a,f函数返回a%2=0,终止循环,输出d的值9。