若运行以下程序时,从键盘输入2473↙(↙表示回车),则下面的程序的运行结果是
题目
若运行以下程序时,从键盘输入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;
}
}
答案
结果是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' ..用同样的道理分析一下 后面的都相同
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
- 凹镜是凹透镜还是凹面镜
- 电阻R1和R2并联,已知通过干路的电流强度为I,那么通过R1的电流强度为( ) A.R2R1+R2I B.R1R1+R2I C.R2+R1R2I D.R1+R2R1+R2I
- 足球鞋HG和AG到底有什么区别?
- 有数集M=(x/m≤x≤m=3/4),N=(x/n-1/3≤x≤n),且M..N,都是集合(x/0≤x≤1)的子集,如果把b-a叫做集合的长度,那么M∩N的长度的最小值是
- 已知等差数列an中,a2+a5=19,Sn=40,求a10
- 解方程组:7x+2y=39x−2y=−19.
- 已知等比数列{An}中,A1=1,项数是偶数,其奇数项之和为85,偶数项之和为170,求这个数列的公比和项数
- 迁徙的动物有哪些?
- 作者说“每览昔人兴感之由,若合一契”,你还读过哪些抒人生无常之感发时不我待之叹的古代
- 根据要求写出相应的成语,
热门考点