编程题,这道题答案是B,为什么不是A?

 我来答
lyz810
2016-08-29 · 知道合伙人互联网行家
lyz810
知道合伙人互联网行家
采纳数:7531 获赞数:31775
前端开发工程师

向TA提问 私信TA
展开全部
该程序的作用是统计\0之前所有的数字的个数
字符串"012xy\08s34f4w2"中
\0前面的数字有0、1、2三个
所以答案是3,选B
更多追问追答
追问
为什么是\0前面的?
追答
\0表示ascii码为0的字符,即字符串结束符
for循环的条件s[i]!=0表示只有ascii码不为0时才循环,为0时就跳出循环了
keyuth
2016-08-29 · TA获得超过825个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:82.5万
展开全部
答案是B。
代码实现统计字符串s中包含的数字字符个数,并打印输出。
for()循环从字符串s的第一个字符开始检索字符串,直到遇到终止符'\0'(即字符数值为0)则终止循环。
s[i]!=0;表示的是s[i]的数值不为0,而s[i]!='0';才表示s[i]不为字符'0'。所以循环在遇到第一个字符'0'时,不符合终止循环条件。直到遇到字符值为0时,才会终止。
s字符串"012xy\08s34f4w2"中,第6个字符为'\0',这里的反斜杠和后面的0组成了一个转义字符,它表示数值为0的字符,即字符串终止符NULL。所以,循环检索到第6个字符时才会终止,这时前子串"012xy"中只包含3个数字字符,所以n为3。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式