c语言选择题,大佬们能解释下这个为什么选A吗?谢谢!
展开全部
n='c'
switch(n++)的作用是按照n执行开关语句,然后再执行n++
因为n='c',则从case 'c'那一句开始执行,打印出pass
继续执行下一句,接着打印出warn
程序结束。
结果是打印出passwarn
所以选项A是正确的。
如有疑问请留言。
switch(n++)的作用是按照n执行开关语句,然后再执行n++
因为n='c',则从case 'c'那一句开始执行,打印出pass
继续执行下一句,接着打印出warn
程序结束。
结果是打印出passwarn
所以选项A是正确的。
如有疑问请留言。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把switch语句整理下格式,在看看就好理解了
switch(n++){
default: printf("error");break;
case 'a':
case 'A':
case 'b':
case 'B':printf("good");break;
case 'c':
case 'C':printf("pass");
case 'd':
case 'D':printf("warn");
}
因为int n ='c',这里的n其实是赋值的ascii码。这个你应该理解把,不能理解,就去看书了。然后我们看switch语句,筛选条件是n++,既然是自加符号在变量的后面,那么在进行条件判断时,是先进行判断,判断完毕后再进行自加。所以这里的条件其实还是'c',即它对应的ascii码。接下来我们去case条件中去找对应的条件,即case 'c':。因为该条件没有需要执行的语句,且没有break。根据代码自上而下运行的顺序,会以此执行case 'C'。即打印出"pass",此时还是没有break去停止switch语句。所以代码继续执行,执行case 'd',但该条没有执行语句。继续往下执行case 'D',即打印"warn"。此时switch语句所有条件执行完毕。程序结束。所以最终的打印结果为passwarn,选A
switch(n++){
default: printf("error");break;
case 'a':
case 'A':
case 'b':
case 'B':printf("good");break;
case 'c':
case 'C':printf("pass");
case 'd':
case 'D':printf("warn");
}
因为int n ='c',这里的n其实是赋值的ascii码。这个你应该理解把,不能理解,就去看书了。然后我们看switch语句,筛选条件是n++,既然是自加符号在变量的后面,那么在进行条件判断时,是先进行判断,判断完毕后再进行自加。所以这里的条件其实还是'c',即它对应的ascii码。接下来我们去case条件中去找对应的条件,即case 'c':。因为该条件没有需要执行的语句,且没有break。根据代码自上而下运行的顺序,会以此执行case 'C'。即打印出"pass",此时还是没有break去停止switch语句。所以代码继续执行,执行case 'd',但该条没有执行语句。继续往下执行case 'D',即打印"warn"。此时switch语句所有条件执行完毕。程序结束。所以最终的打印结果为passwarn,选A
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询