m0_66153237 2022-02-07 14:50 采纳率: 66.7%
浏览 40
已结题

输入21,程序的输出结果是

main()

char c,d;
c=getchar;
d=getchar;
switch(c-'0')
{case 1:switch(d%'0')
{
case 1:printf("*");
case 2:printf("@");
}
case 2:switch(d%'0')
{case 1:printf("#");
case 2:printf("&");}
}

看不懂

  • 写回答

1条回答 默认 最新

  • LYSnowy 2022-02-07 15:03
    关注

    结果如图

    img

    c=='2'
    c - '0' = '2' - '0' = 2
    所以执行case 2这个语句,case 2 语句中需要判断switch d % '0'
    d = '1' 字符1的ascii码是49,‘0’的ascii码是48,所以49%48=1
    所以执行case 1,输出#,但是这个case语句中没有break,就会继续执行,输出&

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月15日
  • 已采纳回答 2月7日
  • 创建了问题 2月7日