C问题请教,谢谢回复!!

来源:百度知道 编辑:UC知道 时间:2024/05/15 10:27:10
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;
}

这个程序的执行过程是什么?比如说输入2437,它应该是怎样执行的?
谢谢回复!
这是书上的一个选择题,程序没有错误

程序是正确的!
一般老师喜欢出这样的题目考人!
输入2437
读入2执行
case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
然后返回,且输出66
读入4执行
case 2: putchar(c+4);break;
然后返回,且输出8
读入3执行
case 1: putchar(c+4);
case 2: putchar(c+4);break;
然后返回,且输出77
读入7执行
default : putchar(c+2);break;
然后返回,且输出9
所以最后输出的是668779

putchar()作用:将参数输出为一个字符

字符与ASCII码对照如下:

'2'=50;
'4'=52
'3'=51
'7'=55

2
输出66
4
输出8
3
输出77
7输出9

所以完整输出为:668779