请问这道c语言题咋做,24题讲解一下......谢谢

如题所述

由while那句可知:本程序按单个字符扫描。
由输入为2743可知:总共循环4次。到最后的回车程序停止。
========================
第1次循环,输入的c为'2'。
switch的判别值为0,,跳到case 0。
说明:由于c语言中switch语句的特点case后面没有break的话会继续执行后面的case,所以本次循环依次执行case 0,1,2,直到遇见break才跳出switch语句。
case 0: 无输出
case 1: 输出6,(c+4='2'+4='6')
case 2: 输出6,(c+4='2'+4='6')
--------------------------------------
第2次循环,输入的c为'7'。
switch的判别值为5,无对应case,所以无输出。
--------------------------------------
第3次循环,输入的c为'4'。
switch的判别值为2,,跳到case 2。
case 2: 输出8,(c+4='4'+4='8')
--------------------------------------
第4次循环,输入的c为'3'。
switch的判别值为1,,跳到case 1。
case 1: 输出7,(c+4='3'+4='7')
case 2: 输出7,(c+4='3'+4='7')
========================追问

太给力了,你的回答完美解决了我的问题!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-14
第一次输入字符2,c-'2'后得到是0,所以case 0和case1 case 2后面都执行,输出c+4,c+4即66
第二次输入字符7,c-'2'后得到是5,没有匹配case,不输出
第三次输入字符4,c-'2'后得到是2,从case 2开始输出c+4,即8
第四次输入字符3,c-'2'后得到是1,从case1 和case2开始输出,即输出77
第五次输入回车,退出循环,输出一个回车符号(此符号为不可见符号,所以答案没显示出来,但是也是有的)
所以最后结果66877,选A
不知道答案对不对
注意有break和没有break的区别
第2个回答  2013-09-14
答案选a,输入2743的2时,2-2为0,所以从case 0开始,而case 0什么都没执行,也没有break,所以继续执行case1输出c+4也就是6,而后没有break,继续执行case2,有输出6,出现break,跳出switch。之后输入7,7-2为5,case里没有5,直接跳出switch,输入4,4-2为2,输出8。之后我不再赘述了,得到结果a
第3个回答  2013-09-14
加油,好好学!我也想学
第4个回答  2013-09-14
没法看,搞个图片是斜着的。。。
第5个回答  2013-09-14
不是手机,看起来太累,斜着看到一半就不想看了
相似回答