12个回答
展开全部
运行结果是「*#*#*#$」,选项A。
过程解析:
if(i%2)表示,当括号中的值为「真」时,执行if下面的语句,为「假」时,执行else下面的语句。「i%2」是得到 i 除以2的余数,换句话说,当 i 是奇数时,i%2 结果为1,是「真」,当 i 是偶数时, i%2 结果是0,是「假」。
for循环中的语句,实际上是2个部分,一个是if...else...语句块,还有一个是printf()语句,这2个部分是平级关系,在「不continue或不break」循环的情况下,是要顺序执行的。而else下面正好是continue,也就是「到此结束本次循环,进入下一次循环」,那么执行了else的时候,下面的printf()就被忽略了。
总结起来,运行过程就是,第1、3、5次循环的时候,「i」的值分别为1、3、5,是奇数,for循环内执行if()下面的语句和后面的printf()语句,于是输出字符「*」和「#」,第2、4次循环的时候,「i」的值分别为2、4,是偶数,for循环内经过if()判断后跳转到else,执行else下面的语句,于是后面的printf()语句被忽略,即不执行,所以没有输出。for循环结束后,主程序中的printf()语句执行,输出字符「$」。所以,完整的输出结果就是「*#*#*#$」。
(如有帮助,烦请采纳,谢谢!)
过程解析:
if(i%2)表示,当括号中的值为「真」时,执行if下面的语句,为「假」时,执行else下面的语句。「i%2」是得到 i 除以2的余数,换句话说,当 i 是奇数时,i%2 结果为1,是「真」,当 i 是偶数时, i%2 结果是0,是「假」。
for循环中的语句,实际上是2个部分,一个是if...else...语句块,还有一个是printf()语句,这2个部分是平级关系,在「不continue或不break」循环的情况下,是要顺序执行的。而else下面正好是continue,也就是「到此结束本次循环,进入下一次循环」,那么执行了else的时候,下面的printf()就被忽略了。
总结起来,运行过程就是,第1、3、5次循环的时候,「i」的值分别为1、3、5,是奇数,for循环内执行if()下面的语句和后面的printf()语句,于是输出字符「*」和「#」,第2、4次循环的时候,「i」的值分别为2、4,是偶数,for循环内经过if()判断后跳转到else,执行else下面的语句,于是后面的printf()语句被忽略,即不执行,所以没有输出。for循环结束后,主程序中的printf()语句执行,输出字符「$」。所以,完整的输出结果就是「*#*#*#$」。
(如有帮助,烦请采纳,谢谢!)
展开全部
关键在i%2是求余数,还有就是continue,继续for运行,for以下不运行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选择答案a。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案 A , *#*#*#$
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询