有以下程序:
#iaclude <stdio.h>
main( )
intp[8] :11,12,13,14,15,16,17,18,i=0,j:0;
while(i++<7) if(p[i]%2) j+ =p[i];
printf( "%'d \n" ,j);程序运行后的输出结果是( )。
A.42
B.45
C.56
D.60
参考答案:B
解析: 程序执行过程如下:
i=0:i++<7为真,p[i]%2即为p[1]%2,值为0,不执行j+=p[i];j=0;
i=1:i++<7为真,P[i]%2即为p[2]%2,值为1,执行j+=p[i];j=13;
i=2:i++<7为真,p[i]%2即为P[3]%2,值为0,不执行j+=p[i];j=13;
i=3:i++<7为真,p[i]%2即为P[4]%2,值为1,执行j+=p[i]];j=13+15=28;
i=4:i++<7为真,p[i]%2即为p[5]%2,值为0,不执行j+=P[i];j=28;
i=5:i++<7为真,P[i]%2即为P[6]%2,值为1,执行j+=P[i];j=28+17=45;
i=6:i++<7为真,P[i]%2即为p[7]%2,值为0,不执行j+=p[i];j=45;
i=7:i++<7为假,结束循环,输出j的值45。
可见,程序的功能是求除p[0]外的其他奇数的和。