c++从键盘输入2473<CR>,则程序的输出结果是:

供稿:hz-xin.com     日期:2025-01-13
若运行以下程序时,从键盘输入2473,回车,则程序的运行结果是

668977

c=2
进 case c-'2' -- case 0:
case 1: 打 c+4 输出 6 (2+4=6)
进 case 2: 打 c+4 输出 6 (2+4=6), break 退出
[66]

c=4
进 case c-'2' -- case 2:
打 c+4 输出 8 (4+4=8), break 退出
[8]

c=7
进 case c-'2' -- case 5: default:
打 c+2 输出 9,退出
[9]

c=3
进 case c-'2' -- case 1: 打 c+4 输出 7
进 case 2: 打 c+4 输出 7 (3+4=7), break 退出
[77]

  switch (ch-'2') //第一个2 那么ch-'2' = 0;
  { case 0: //所以case 0: 执行.执行完了,没有break;语句。故继续下一条语句,case 1:
  case 1: cout<<(char)(ch+4); //执行case 1:,输出 字符 ‘6’。同理没有break;继续下一条
  case 2: cout<<(char)(ch+4); break; //这里又是输出字符‘6’,接着break.退出了switch语句。
  case 3: cout<<(char)(ch+3) ;
  default : cout<<(char)(ch+2); break; }
其他的一样分析就得出了:66897

输入2时,ch-‘2’=0,程序运行case 0,由于没有语句,继续运行case 1,输出一个6,然后继续运行case 2,输出第2个6,遇到break语句返回。
然后输入4时,ch-‘2’=2,程序直接运行case 2,输出8,遇到break语句返回。
然后输入7,ch-‘2’=5,运行default语句,输出9,遇到break语句返回。
最后输入3,ch-'2'=1,程序运行case 1,输出7,然后执行case 2,输出7。
所以最后输出是668977

先读取'1',ch-'2'就是-1是default,输出:3('1'+2),break出去;
接着读取'2',ch-'2'就是0,case 0没有break到达case 1 输出6(上面有解释),没有break又到case 2,同样输出6,有break跳出;
再读取'7',ch-'2'就是5 ,输出的就是default的'9'('7'+2)break出去;
再读取'3',ch-'2'就是1,输出 case 1的7,没break,继续case 2输出7,break出去;
最后读取<CR>,循环测试条件为假的,退出循环,执行一个换行,所以输出就是:
366977

以上就是结果

c++从键盘输入2473<CR>,则程序的输出结果是:
输入2时,ch-‘2’=0,程序运行case 0,由于没有语句,继续运行case 1,输出一个6,然后继续运行case 2,输出第2个6,遇到break语句返回。然后输入4时,ch-‘2’=2,程序直接运行case 2,输出8,遇到break语句返回。然后输入7,ch-‘2’=5,运行default语句,输出9,遇到break语句返回。最后输入...

从键盘输入2473<CR>,则程序的输出结果是:668977(具体解释)拜托了!_百度...
switch (ch-'2') \/\/第一个2 那么ch-'2' = 0;{ case 0: \/\/所以case 0: 执行.执行完了,没有break;语句。故继续下一条语句,case 1:case 1: cout<<(char)(ch+4); \/\/执行case 1:,输出 字符 ‘6’。同理没有break;继续下一条 case 2: cout<<(char)(ch+4)...

C语言 从键盘键入2473<回车> 则下面程序的运行结果是
2473<回车> c读取2是 switch(c-'2')相当与switch(0) 所以会输出2个2+4=6;即全面的2个6,case语句只有碰到break才会跳出,不然会一直运行先去;c读取4时,switch(c-'2') 相当于 switch(2) 所以输出4+4 = 8;c读取7时,switch(c-'2') 相当于 switch(5)没有找到对应的case,则输出...

C语言 从键盘键入2473<回车> 则下面程序的运行结果是
程序while(c=(getchar())!='\\n')是读取到回车后才结束。第一次键入2时,在switch里执行了case 0:case 1: putchar(c+4);case 2: putchar(c+4);break;这三句。输出668 而且每次键入一个数字或字母时,都会执行一次switch语句。

学习的时候碰到点小问题,求解答
putchar (c+4),例如输入字符a,就不再做后面的了;就会输出6,输出时8 你输入字符2473时结果就应该为: putchar (c+4);) c是你从键盘输入的字符减去‘2’是减去2的ascll码即50; break;又会输出6;2;)从键盘输入一个字符只要是非回车就做下面的switch语句 switch(c-;n;输入字符6的时候,...

c中,while语句
输入2473回车,输出的是:668977 注意你程序里面的break;,比如第一个'2',会输出两个'6',因为c='2',c-'2'得0,那么满足case 0这个条件,case 0的语句为空,继续下一个case 1的语句输出'6',继续case 2的语句输出'6',现在遇到break语句才跳出。总结一下switch,一旦有满足条件进入case就不...

初学者C语言程序改错题
首先我指出你书写的一个错误。switch(c-'2')下面那行的(应该改成{ 因为{是与default:putchar(c+2);下面出现的}进行配对的。依次输入2473得到输出668977,只需修改一处地方。在case 2:putchar(c+4);后面加上 break;分析如下:使用getchar输入,每次只能识别一个字符,而又使用了while循环,输入2473...

程序运行时从键盘输入1回车
,此时c的ASLL码是'2'也就是50,加上4以后就是字符'6'的ASCLL码54,因此屏幕输出一个6,但是case 1后面也没有break语句,因此继续执行case 2后面的语句,putchar(c+4)仍然是输出一个6,此时遇到了break语句,跳出循环,继续输入字符.第二个字符是'4' ..用同样的道理分析一下 后面的都相同 ...

while((c=getchar())!='\\n')的意思
while((c=getchar())!='\\n')的意思是:一直循环,等到用户输入回车为止,结束循环。当程序调用getchar时,程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。直到用户按回车为止。当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符。getchar函数的返回值是用户输入的字符的ASCII码...