为了账号安全,请及时绑定邮箱和手机立即绑定

71. 以下程序的运行结果是?

71. 以下程序的运行结果是?

C
包小龙虾 2018-07-23 21:02:14
71. 以下程序的运行结果是( )。void main(){int n='c';switch(n++){default: printf("error "); break;case 'a':case 'b': printf("good "); break;case 'c': printf("pass ");case 'd': printf("warn ");}}A. passB. warnC. pass warnD. errorswitch里面那个表达式我不懂怎么看,求大神帮我分析一下整个过程,拜托,紧急!!!
查看完整描述

2 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

答案是 C


n++ 是后置自增表达式,表达式的值就是操作数(这里是 n)自增前的值。

n 的初值相当于是 'c',那么 n++ 表达式的值也是相当于 'c'。这样会匹配到 case 'c',程序执行流程从这个 case 开始向下执行,先打印出 pass,由于后面没有 break 语句,所以会继续执行后面的语句,打印出 warn。

查看完整回答
反对 回复 2018-07-24
?
King丶宾

TA贡献3条经验 获得超0个赞

C   实际测试过,因为你这里是将一个c字符赋值给一个整型变量,n此时的值是小写c的ascii值,然后这里n++是属于后增,所以可以先判断在考虑增加的问题,所以在case的时候,判断n的ascii码对应的字符是c,所以就输出pass,然后由于这一行的case没有break,所以连着case:'d'的warn也一起输出出来了,

查看完整回答
反对 回复 2018-07-24
  • 2 回答
  • 0 关注
  • 902 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信