若运行以下程序时,从键盘输入2473↙(↙表示回车),则下面的程序的运行结果是
#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;
}
}
人气:263 ℃ 时间:2020-03-23 14:19:08
解答
结果是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' ..用同样的道理分析一下 后面的都相同
推荐
猜你喜欢
- 昆虫不同形态的足在于各自结构组成上的共同特点
- You'are old enough to _______ your own living.
- 下列化学反应中,与实验事实不符的是( ) A.铁与硫酸铜溶液反应得到铜 B.铁与稀硫酸反应放出氢气 C.铁与稀盐酸反应得到氯化铁 D.铁在氧气中燃烧生成四氧化三铁
- 电子从基态跃迁到激发态,速度有v1,v2,v3,且v1
- 已知1/a-1/b=3,求分式2a+3ab-2b/a-ab-b的值
- 如图,圆O的半径为R,弦AB=a,弦BC平行OA,求AC
- 如图,圆O的半径为4CM,弦AB的弦心距OM为2CM,C D分别是劣弧
- 中国应对濒临灭绝动物的办法\措施