有以下函数 fun(char *a, char *B) { while((*a!=’\0’)&&(*b!=’\0’)&&(*a==*B) ) { a++; b++;} return(*a-*B) ;

admin2009-01-15  25

问题 有以下函数    fun(char  *a,  char  *B)    {  while((*a!=’\0’)&&(*b!=’\0’)&&(*a==*B) )       {    a++;    b++;}       return(*a-*B) ;    }    该函数的功能是

选项 A、计算a和b所指字符串的长度之差
B、将b所指字符串复制到a所指字符串中
C、将b所指字符串连接到a所指字符串后面
D、比较a和b所指字符串的大小

答案8

解析 本题要求阅读的代码是一个函数,阅读之前先要看清函数的定义,该函数有两个参数,都是字符指针,这说明它接收的是两个字符串.该函数没有定义返回类型,C语言规定函数的返回类型为int时可以省略,所以切不可将其看成是无返回类型的void型函数,它是int型函数。函数体中除了返回语句外,只有一条while循环语句,该循环的循环条件为(*a!=’\’0}&&(*b!=’\0’)&& (*a==*B) ,即当a和b所指处都不是字符结束符’\0’并且a和b所指处的内容相等时执行循环。而循环体中只是简单地将指针a和b同时往后移动1位。循环结束后返回a所指内容减去b所指内容的差。换个角度去考虑,也就是说当字符串a或b中有一个结束了或者是它们的相同位置中有一个字符不同时,则返回该位置两个字符之差。若两者长度相同而且所有对应字符都相同的话,  最后返回的是’\0\-’\0’=0,否则的话就返回两个字符串第一对不相同的字符之差.这时应该可以看出来,这个函数实现的是对两个字符串的比较。所以,4个选项中D正确。
转载请注明原文地址:https://kaotiyun.com/show/FbXp777K
0

相关试题推荐
最新回复(0)