C语言,求过程。
5. 以下程序的输出结果是 。main() {int s,i; ...
5. 以下程序的输出结果是 。
main()
{int s,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n",s);} 展开
main()
{int s,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n",s);} 展开
1个回答
展开全部
输出的结果是5。
分析:
这题要注意的是,for循环的最右边有一个分号“;”,说明循环体是空语句,即循环体什么都不执行。
主要是考查对循环三个表达式和逗号运算符的理解。
一般来说,i++是先使用 i 的值,最后再 +1。但在这题的第三个循环表达式(最右边)中,有 i++, s += i,因为它们之间有一个逗号运算符,逗号运算符的特性是让 i 完成 +1 操作后再先执行 s += i。其实相当于把 i++和 s += i 分成两条语句,执行完一条再执行下一条。
运算过程:
s = 0,i = 1。
判断 i < 3,即 1 < 3 为真。
执行 i++,s += i,此时 i = 1,s = 0,先执行 i + 1,再执行 s += i;此时,i = 2,s = 2。
判断 i < 3,即 2 < 3 为真。
执行 i++,s += i,此时 i = 2,s = 2,先执行 i + 1,再执行 s += i;此时,i = 3,s = 5。
判断 i < 3,即 3 < 3 为假,退出循环,输出 s 的值。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询