问题 单项选择题

有以下程序:
#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]外的其他奇数的和。

单项选择题
单项选择题