护士专业水平怎么写:c语言试题

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/02 07:50:57
【2.19】从键盘上输入"446755"时,下面程序的输出是____。
#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

参考答案是C,
要求分析此程序的运行详细过程

第1 个 "4" :4-2 =2 执行putchar(c+4);break; 结果为 4+4=8
第2 个 "4" :4-2 =2 执行putchar(c+4);break; 结果为 4+4=8
第3 个 "6" :6-2 =4 执行default: putchar(c+2);break;结果为 6+2=8
第4 个 "7" :7-2 =5 执行default: putchar(c+2);break;结果为 7+2=9
第5 个 "5" :5-2 =3 执行case 3: putchar(c+3);
default: putchar(c+2);break;结果为 5+3=8 5+2=7
第6 个 "5" :5-2 =3 执行case 3: putchar(c+3);
default: putchar(c+2);break;结果为 5+3=8 5+2=7
后面的两个是由于case 3 后面没有break;继续执行下面语句,直到遇到break;
最终结果 选 C

当然是这个值了,第一次,是2,所以是CASE2,C+4,C现在还是4,所以是8

以后类似,不过要注意,如果是CASE 1 和CASE 3的话,由于没有break;,所以要同时执行下条语句,直到遇到break 还要注意就是执行C-'2',只是判断CASE,但判断完后,C并不变~~

好难呀.