有以下程序 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]; prizltf("%d\n", j); }

admin2009-01-15  20

问题 有以下程序  main()  {  int  p[8]={11,12,13,14,15,16,17,18},  i=0,j=0;    while(i++<7)  if(p%2)  j+=p;    prizltf("%d\n", j);  }    程序运行后的输出结果是

选项 A、42
B、45
C、56
D、60

答案2

解析 本题考查的是while语句和if语句的综合应用。程序中while的循环条件是1++<7,由于程序开始时将i初始化为0,而且循环体中没有改变变量i的语句,只有循环条件中i的自增,所以当i从0自增到6时循环的循环体一共被执行了7次,但是在循环体中,i的值为从1到7。在循环体中只有一条if语句,其条件表达式为 p%2,当p为奇数时,p除以2余1,条件表达式的值为“真”,所以整个循环语句所做的事就是:累计p[1]到p[7]之间的奇数到变量j中。所以最后j的值应该为13+15+17=45.选项B符合题意。
转载请注明原文地址:https://kaotiyun.com/show/TIXp777K
0

最新回复(0)