coco1312 2015-12-20 06:45 采纳率: 0%
浏览 1456
已采纳

C语言求教该程序详细解释,为何结果为3呢?

#include "stdio.h"
main()
{
int k=0;char c='A';
do
{
switch(c++)
{
default:k=k*2;break;
case'A':k++;break;
case'B':k--;
case'C':k+=2;break;
case'D':k=k%2;continue;
}
k++;
}while(c<'F');
printf("k=%d\n",k);

}
/*
程序运行结果为:
k=3
*/
C语言求教该程序详细解释,为何结果为3呢?

  • 写回答

3条回答 默认 最新

  • SuzumiyaSAMA 2015-12-20 07:33
    关注

    switch的C++这个句子实际上并没有在switch中执行,而是在switch之后执行,建议你好好看看++和--的运算规则,这两个运算放在变量后面的话就会放在这个顺序点的最后进行运算,即放在离他最近的一个分号之前。因此尽管switch的条件是C++,但switch所使用的C变量的值仍然是‘A’。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧