北斗星转向灯继电器:C语言下面这题,请答案多少,过程.

来源:百度文库 编辑:高校问答 时间:2024/05/09 19:45:12
#include"stdio.h"
main()
{ int p[7]={11,13,14,15,16,17,18}, i=0,k=0;
while(i<7 && p[i]%2)
{ k =k+ p[i];
i++;
}
printf("%d\n", k);
}
答案:24。

楼上显然不对

k = 11 + 13 = 24

循环的条件是 i<7 并且 p[i] 是奇数, 所以当循环到 i = 2 时, 因为 p[i] = 14 不是奇数而退出。 所以 k = p[1] + p[2] = 11 + 13 = 24

这种题你要是想不大清楚, 可以这样写

#include "stdio.h"

main(){
int p[7] = {11,13,14,15,16,17,18}, i=0, k=0;

while(i<7&&p[i]%2){
printf("%d ", p[i]); //把每次循环的情况打印出来
k = k+p[i];
i++;
}

printf("\n%d\n", k);
}

这样就直观了:)

while(i<7 && p[i]%2)
{}
i<7 :因为数据有7个元素所以循环7次
p[i]%2 :这个表达式做为一个bool值,除2取余,不是零就是1,也就是说p[i]是奇数的时候执行,
所以就是楼上的:k=11+13+15+17

zamanewby是正确的

k=11+13+15+17

同意楼上的说法。