小白来自学 2022-03-27 13:11 采纳率: 57.1%
浏览 18
已结题

关于#c语言#的问题,如何解决?

输入2运行程序,分析怎么得到的66.
#include <stdio.h>
int main()
{
int c;
c = getchar();
switch (c - '2')
{
case 0:
case 1:putchar(c + 4);
case 2:putchar(c + 4); break;
case 3:putchar(c + 3);
case 4:putchar(c + 2); break;
}
}

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2022-03-27 13:44
    关注

    几个知识点
    一是数字2和字符'2'的区别。你输入的是char类型,即字符'2','2'-'2'结果为0,所以会执行case 0
    二是case代码段如果没有break语句进行跳出,会继续执行下一个case语句,也就是case 1,case 2,直到case 2后面有break才结束switch语句
    所以本代码会执行两次putchar(c + 4),由于c是字符'2',那么c+4就是字符'6',因此最终输出的实际是两个'6'字符,不是整数66
    ==========
    希望有所帮助
    满意还请采纳支持

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

报告相同问题?

问题事件

  • 系统已结题 4月4日
  • 已采纳回答 3月27日
  • 创建了问题 3月27日