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。
King丶宾
TA贡献3条经验 获得超0个赞
C 实际测试过,因为你这里是将一个c字符赋值给一个整型变量,n此时的值是小写c的ascii值,然后这里n++是属于后增,所以可以先判断在考虑增加的问题,所以在case的时候,判断n的ascii码对应的字符是c,所以就输出pass,然后由于这一行的case没有break,所以连着case:'d'的warn也一起输出出来了,
- 2 回答
- 0 关注
- 902 浏览
添加回答
举报
0/150
提交
取消