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