一段程序

来源:百度知道 编辑:UC知道 时间:2024/05/08 03:34:29
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

while(i<7&&p[i]%2) 的执行语句{k=k+p[i];i++;}的执行前提是:i<7并且p[i]%2>0(即p[i]不能被2整除);

很显然,p[0]和p[1]是满足条件的,因为对于p[0],i=0,p[0]%2=1,对于p[1]情况类似,但是到了p[2]时,14%2=0,因此不满足循环条件,所以循环退出,此时,k=11+13=24

while(i<7&&p[i]%2)//i小于7且p[i]是模2等于1,即p[i]是奇数时才进入循环.
所以当i=2时,p[2]=14是偶数,p[2]%2等于0,循环结束.所以结果应该是k=11+13=24.

呵呵
while条件是&&
所以i<7与p[i]%2同时成立,才继续循环,遇到第一个p[i]=14为偶数就跳出循环,这时k=11+13=24
所以结果是24

while(i<7&&p[i]%2)
i 小于 7 并且 数组p中的第 i 个数对 2 取摸 不等于0 增运行括号内代码

结果 11+13+15+17 = 56