C语言2级选择题2 两题的选项一样,两题都看不懂,可以详细解释一下吗.

问题描述:

C语言2级选择题2

 

两题的选项一样,两题都看不懂,可以详细解释一下吗.


1个回答 分类:综合 2014-10-02

问题解答:

我来补答
第一题:
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.
 
 
展开全文阅读
剩余:2000