问题
单项选择题
有以下程序
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
解析: 本题程序中while循环的条件是i++<7,由于在循环体中没有改变i的值,所以循环过程是i从初始值0开始,每次自加1,当i为7再次进行循环条件判断时退出循环。而在循环体中,i从1到7变化。循环体是一个if语句,当p[i]%2为真,即p[i]为奇数时执行j+=p[i]。所以该段程序的实际效果是将p[1]~p[7]中的奇数累加到变量j中。所以j=13+15+17=45,选B。