有以下程序 main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2)
有以下程序main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];p...
有以下程序
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); }
程序运行后的输出结果是__B____。 A)42 B)45 C)56 D)60
详细过程是什么?if(p[i]%2)这句话有什么用? 展开
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); }
程序运行后的输出结果是__B____。 A)42 B)45 C)56 D)60
详细过程是什么?if(p[i]%2)这句话有什么用? 展开
6个回答
展开全部
%2是除2取余,
if(p[i]%2) 等同 if(p[i]%2==1)
i = 0, < 7, i++ 得1,p[i]=12, p[i]%2=0 为假
i = 1, < 7, i++ 得2,p[i]=13, p[i]%2=0 为 真 j=13
i = 2 < 7, i++ 得3,p[i]=14, p[i]%2=0 为假
i = 3, < 7, i++ 得4,p[i]=15, p[i]%2=0 为 真 j=13+15
i = 4, ,,,为假
i = 5, < 7, i++ 得6,p[i]=17, p[i]%2=0 为 真 j=13+15+17
i= 6, ,,,为假
最终 j=13+15+17=45
if(p[i]%2) 等同 if(p[i]%2==1)
i = 0, < 7, i++ 得1,p[i]=12, p[i]%2=0 为假
i = 1, < 7, i++ 得2,p[i]=13, p[i]%2=0 为 真 j=13
i = 2 < 7, i++ 得3,p[i]=14, p[i]%2=0 为假
i = 3, < 7, i++ 得4,p[i]=15, p[i]%2=0 为 真 j=13+15
i = 4, ,,,为假
i = 5, < 7, i++ 得6,p[i]=17, p[i]%2=0 为 真 j=13+15+17
i= 6, ,,,为假
最终 j=13+15+17=45
展开全部
先要知道i++的意思是先使用i判断完以后再加一;例如本题中先用i==0来判断是否小于7,满足后加一变为1,注意此时if中判断是用p[1]判断,显然p[1]除2余0不满足,同理接住判断即可哦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果p[i]是奇数 就加上
是偶数就不加
%2是除2取余
是偶数就不加
%2是除2取余
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
判断while后 if语句中的变量i值已经+1了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组下标是从0开始的
i=1时的p[i]值是12 i=0是才是11
i=1时的p[i]值是12 i=0是才是11
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询