c语言 帮我解释一下

来源:百度知道 编辑:UC知道 时间:2024/05/12 07:02:34
从键盘上输入"446755"时,下面程序的输出是_C___。
#include <stdio.h>
main()
{ int c;
while((c=getchar())!='\n')
switch(c -'2')
{ case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
default: putchar(c+2);break;
}
printf("\n");
}
A) 888988 B) 668966 C) 88898787 D) 66898787

一个一个数字来
首先是4
4进来的时候通过switch(c -'2')
得到是2
转到case2
4+4=8
然后break
在接着还是4
得到的结果还是8

当6进来的时候
switch(c -'2')
转到default
6+2=8

当7输入的时候
还是转到default
得到7+2=9

当输入5时
switch(c -'2')
转到case3
运算5+3=8
没有结束
继续下条语句
default: putchar(c+2);
5+2=7
然后才break
所以得到两个数

在接下来也是输入5
得到的结果也是87

就是这个道理