有以下程序:
#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。