有以下程序 #include <stdio.h> main() { int c; while((c=getchar())!='\n') {switch(c-'2') {case 0:

case2:putchar(c+4);case3:putchar(c+4);break;case4:putchar(c+3);case5:putchar(c+3);bre... case 2:putchar(c+4);
case 3:putchar(c+4);break;
case 4:putchar(c+3);
case 5:putchar(c+3);break;}}
printf("\n");}
输入2743,请大侠详细解说过程,答案为66877
展开
 我来答
洛必达法则丶
2012-10-19 · 超过26用户采纳过TA的回答
知道答主
回答量:137
采纳率:0%
帮助的人:80.1万
展开全部
楼主,很抱歉,我用VC++6.0调试你给出的程序后,输入2743,但没有得到你所说的66877,而是66:88(中间是冒号)。

但我依然可以为你解答输出的原因。

我们慢慢来看这个程序的执行过程:
1、输入2743;
2、执行getchar(),将第一个字符'2'赋值给int整型的c,c='2';
3、判断c!='\n',语句为真,执行while循环体;
4、执行swithch()多重判断:
判断的内容是c-'2'。此时c='2',在这儿就是判断的'2'-'2',也就是0;
5、从case 0语句后开始执行,case 0后无语句,直接向下执行;
6、执行case 2处的语句,输出c+4的ASCII码对应的字符,即输出'2'+4对应的字符,就是'6',继续向下执行;
7、执行case 3处的语句,再次输出'6';
8、遇见break语句,跳出switch;

9、回到getchar(),将第二个字符'7'赋值给int整型的c,c='7';
10、判断c!='\n',语句为真,执行while循环体;
11、执行swithch()多重判断:
判断的内容是c-'2'。此时c='7',在这儿就是判断的'7'-'2',也就是5;
12、从case 5语句后开始执行,输出c+3的ASCII码对应的字符,即输出'7'+4对应的字符,就是':'(冒号);
13、遇到break语句,跳出switch;

14、获得4的步骤类似2,在此不再赘述,最后输出的是两个8;

15、最后获得3,在进行switch判断的时候,由于没有case 1与其对应,所以直接跳出switch,不执行任何语句;

所以输出的是66:88(中间是冒号),不是楼主所说的66877;

如果对switch语句熟悉的话,这个过程想起来很简单,没有我这里说得这么繁琐;
同时,这里还涉及到整型和字符型之间的计算,如果楼主静的下心来看的话,其实里面却是还是有点绕的。

恩恩,就说这么多吧~~~
try_ok
推荐于2016-06-20 · TA获得超过211个赞
知道小有建树答主
回答量:423
采纳率:0%
帮助的人:282万
展开全部
答案是:66:88
#include <stdio.h>
main()
{
int c;
while((c=getchar())!='\n') //读取一个键盘输入的字符,如果不是换行符,进入下面循环
{
switch(c-'2') //输入的字符与字符'2'相减,以输入的2为例,'2'-'2'=0
{
case 0: //等于0执行这条语句,没有break继续执行,直到遇到break为止
case 2:putchar(c+4); //等于2执行这条语句,没有break继续执行,直到遇到break为止
case 3:putchar(c+4);break;///等于3执行这条语句,遇到break停止
case 4:putchar(c+3);//等于4执行这条语句,没有break继续执行,直到遇到break为止
case 5:putchar(c+3);break;///等于5执行这条语句,遇到break停止
}
}
printf("\n");
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沈呈辉沈呈辉
2012-10-19 · TA获得超过144个赞
知道答主
回答量:196
采纳率:0%
帮助的人:106万
展开全部
楼主的程序错了吧?答案不是66877!
追问
求过程详解(主要是过程分析)好人给满分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式