永发信息网

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

答案:2  悬赏:40  手机版
解决时间 2021-03-26 17:39
  • 提问者网友:我没有何以琛的痴心不悔
  • 2021-03-25 20:03
还有为什么case 0: 这里会错?编译不出来??
#include
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;
}
}
最佳答案
  • 五星知识达人网友:罪歌
  • 2021-01-02 03:05
额,好难理解
全部回答
  • 1楼网友:山有枢
  • 2019-07-02 20:07
结果是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' ..用同样的道理分析一下 后面的都相同
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯