c语言选择题,大佬们能解释下这个为什么选A吗?谢谢!

 我来答
哟月乾07
2019-06-20 · TA获得超过2282个赞
知道大有可为答主
回答量:2934
采纳率:0%
帮助的人:163万
展开全部
……就是选A啊,空格处要按照8进制升一阶,同时把新输入的一位作为最低位加进来,
所以是 n = n*8 + s[j-1] - '0';
B错在数组下标不对,而且也忘了把ASCII字符转换为数字;
C错在最后减掉的是0,根本没有把ASCII字符转换过来;
D综合了BC的错处,错到爷爷辈去了……
好好学习天天向上
岔路程序缘

2019-06-20 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3403万
展开全部
n='c'
switch(n++)的作用是按照n执行开关语句,然后再执行n++
因为n='c',则从case 'c'那一句开始执行,打印出pass
继续执行下一句,接着打印出warn
程序结束。
结果是打印出passwarn
所以选项A是正确的。
如有疑问请留言。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
弑绯
2019-06-20 · TA获得超过2500个赞
知道小有建树答主
回答量:893
采纳率:75%
帮助的人:715万
展开全部
你把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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式