若运行以下程序时,从键盘输入2473↙(↙表示回车),则下面的程序的运行结果是 ? 麻烦大家说详细点,

#include<stdio.h>main(){intc;while((c=getchar())!=’\n’)switch(c-'2'){case0:case1:putc... #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;
}
}
展开
 我来答
qicaiwuya
推荐于2017-11-24 · TA获得超过4211个赞
知道小有建树答主
回答量:1462
采纳率:100%
帮助的人:1208万
展开全部
结果是668977
第一个字符是'2' 变量c接受一个字符2,但是由于用的是getchar()函数,因此虽然定义c为int型,此时c中仍然存放的是字符'2',而不是数字2,也就是ASLL码50,此时c!='\n',于是进入switch语句,条件是c-'2',由于c='2',条件也就相当于'2'-'2',因此结果为0,进入case 0,但是case 0 后面没有语句,也没有break,于是继续执行case1 后面的语句puchar(c+4) ,此时c的ASLL码是'2'也就是50,加上4以后就是字符'6'的ASCLL码54,因此屏幕输出一个6,但是case 1后面也没有break语句,因此继续执行case 2后面的语句,putchar(c+4)仍然是输出一个6,此时遇到了break语句,跳出循环,继续输入字符。
第二个字符是'4' ..用同样的道理分析一下 后面的都相同
csow
2011-10-16 · 超过12用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:43.2万
展开全部
c 应该定义为char 是字符 不是整数
首先 字符2赋予c c-'2'=0, 是case 0
因为后面没有break 执行case 1输出c+4 即'2'+4 就是字符6 后面也没有break
就执行case 2 也输出c+4 字符6

然后字符4赋予c 同样c-'2'=2 对应case 2 输出字符c+4 即字符8

后面7和3就以此类推了 知道输入回撤就是\n 结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式