C语言程序运行,谁能把每一步的过程序告诉我

王朝知道·作者佚名  2011-05-17
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

下列C语言程序运行时输入2473↙,则输出结果是( )

(注:↙为回车符号)

#include<stdio.h>

main()

{int cx;

while ((cx=getchar())!='\n')

{switch(cx-'2')

{case 0:

case 1:putchar(cx+4);

case 2:putchar(cx+4);

break;

case 3:putchar(cx+3);

default:putchar(cx+2);

}

}

}

A.668966 B.668977 C.6677877 D.6688766

參考答案:

第1次

while ((cx=getchar())!='\n') 输入2473↙

{switch(cx-'2') 先读'2'用这个'2'-'2'=0

{case 0: 没有break向下.

case 1:putchar(cx+4); 这时cx='2'+4 ='6', 没有break向下

case 2:putchar(cx+4); 这时cx='2'+4 ='6', 没有break向下

break; 有break返回

case 3:putchar(cx+3);

default:putchar(cx+2);

}

}

第2次

{switch(cx-'2') 读'4'用这个'4'-'2'=2

{case 0: 没有break向下.

case 1:putchar(cx+4); 跳过

case 2:putchar(cx+4); 这时cx='4'+4 ='8', 没有break向下

break; 有break返回

case 3:putchar(cx+3);

default:putchar(cx+2);

}

第3次

{switch(cx-'2') 读'7'用这个'7'-'2'=5

{case 0: 没有break向下.

case 1:putchar(cx+4); 跳过

case 2:putchar(cx+4); 跳过

break; 跳过

case 3:putchar(cx+3); 跳过

default:putchar(cx+2); 没有符合要求的用默认这时CX='7'+2='9'

}

第4次

{switch(cx-'2') 读'3'用这个'3'-'2'=1

{case 0: 没有break向下.

case 1:putchar(cx+4); 这时cx='3'+4 ='7', 没有break向下

case 2:putchar(cx+4); 这时cx='3'+4 ='7', 没有break向下

break; 有break返回

case 3:putchar(cx+3);

default:putchar(cx+2);

}

所以结果是668977

字符的加减是用ASCII码进行的哦

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航