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);}
展开
 我来答
DavidCai0316
2020-03-13 · TA获得超过973个赞
知道小有建树答主
回答量:311
采纳率:85%
帮助的人:105万
展开全部

输出的结果是5。

分析:

  1. 这题要注意的是,for循环的最右边有一个分号“;”,说明循环体是空语句,即循环体什么都不执行。

  2. 主要是考查对循环三个表达式和逗号运算符的理解。

  3. 一般来说,i++是先使用 i 的值,最后再 +1。但在这题的第三个循环表达式(最右边)中,有 i++, s += i,因为它们之间有一个逗号运算符,逗号运算符的特性是让 i 完成 +1 操作后再先执行 s += i。其实相当于把 i++和 s += i 分成两条语句,执行完一条再执行下一条。

运算过程:

  1. s = 0,i = 1。

  2. 判断 i < 3,即 1 < 3 为真。

  3. 执行 i++,s += i,此时 i = 1,s = 0,先执行 i + 1,再执行 s += i;此时,i = 2,s = 2。

  4. 判断 i < 3,即 2 < 3 为真。

  5. 执行 i++,s += i,此时 i = 2,s = 2,先执行 i + 1,再执行 s += i;此时,i = 3,s = 5。

  6. 判断 i < 3,即 3 < 3 为假,退出循环,输出 s 的值。

测试结果

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式