问题 单项选择题

下列程序的输出结果是( )。

main()

int p[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

解析: 在C语言中,数组的下标默认为0,因此数组p的下标范围为:0~7。程序循环过程为:第1次循环i=0,执行循环,并且i自加,得i=1,因此p[i]为 p[1]=12,12%2=0,不执行后面的语句:接着进行第2次循环,此时i=1,小于7执行循环,并且i自加,得i=2,因此p[i]为p[2]=13,13%2=1,执行后面的语句;这样一直到退出循环。最后i的值为i=13+15+17=45。

选择题
单项选择题