C语言2级选择题2

两题的选项一样,两题都看不懂,可以详细解释一下吗。... 两题的选项一样,两题都看不懂,可以详细解释一下吗。 展开
 我来答
灰然如此
2013-02-06
知道答主
回答量:14
采纳率:0%
帮助的人:13.6万
展开全部
第一题:
while循环可以写成如下形式:
while ((*s!=0)&&(*t!=0)&&(*s==*t))
{
++s;
++t;
}
循环的三个判断中*s和*t用于判断字符串是否结束。因为C中字符串结束位置用NULL(/0)表示其他位置则均不为0。如果其中一个字符串到达了结束位置,那么*s(*t)就会等于0,条件表达式中用了&&运算符,所以整个表达式的值为假,while循环结束。*s==*t则是判断两字符串当前位是否相同,如果不同就为假。
最后的return应该很简单了。
第二题:
我觉得题中程序写错了,第一个循环应该改为:
while (*s) ++s;
这样才能达到s的结束位置。
第二个循环结束后应该再加一句
*s=0;
否则字符串s的尾部没有结束符NULL,会引发错误。

这两个程序的重点是:
1.用*s!=0来判断是否遍历到了字符串结束位置。
2.由于C中条件表达式0为假,其他值为真。所以*s!=0可以简写为*s。
3.任何字符串都必须有结束符NULL。
yy51363
2013-02-06 · 超过15用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:49.6万
展开全部
上面一题的意思是
WHILE *t和*s都不为空时,并且t字符串与s字符串相等时,return*t-*s(也就是0),所以,如果该函数返回0的话,说明两字符串的大小相同,所以选B
下面一题的意思是
WHILE*s不为空是,如果*t也不为空,就把t的值赋给s,所以是把字符串t复制到字符串s中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式