请问:关于C语言的选择题!不知道选什么?

来源:百度知道 编辑:UC知道 时间:2024/05/24 10:22:19
有以下程序:
main()
{int p[7]{11,12,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);
}
执行后输出的结果()
A58 B56 C45 D24
我怎么算得是K为0啊!
数组里面没有12,我抄错了。不好意思啊!!!

结果是11 ,你的题目有问题,告诉具体步骤
while(i<7&&p[i]%2)
当i=0,i<7左边表达式为真,右边p[0]%2=11%2=1,1&&1,所以整个表达式为真。
执行{k=k+p[i];i++;} ,k=11,i=1;
当i=1,i<7表达式为真,p[1]%2=12%2=0,1&&0,所以表达式为假,执行printf("%d\n",k); 所以k=11.
不明白可以找我

另外,你的程序有问题
main()
{int p[7]{11,12,13,14,15,16,17,18},i=0,k=0; //这里数组p有8个了,超过下标值。所以把p[7]改成p[8]
while(i<7&&p[i]%2){k=k+p[i];i++;}
printf("%d\n",k);
}

循环条件为i<7且p[i]为奇数
所以k=11
当到i=1时跳出循环

你的程序有问题,我估计你少写了点东西,你最好在仔细检查一下

你的程序确实有问题!