问题 单项选择题

有以下函数
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所指字符串的大小

答案

参考答案:D

解析: 本题函数有两个字符指针的参数,且没有定义返回类型,C语言规定函数的返回类型为int时可以省略,所以本题函数返回的是int型。该函数中先是一个while循环,循环条件是(*a!='\0')&&(*b!='\0')&&(*a==*b),即a、b都不为字符串结尾且a和b所指的内容相等时,执行循环体a++;b++;,即a、b各向后移一位。当a或b中有一个结束或者所指的内容不一样时,就退出循环,执行返回语句,返回a所指内容减去b所指内容的差。若两个字符串相同,则最后返回'\0'-'\0'=0,否则返回这两个字符串的第一对不同的字符之差。由此可以看出,该函数实现的是对两个字符串的比较。所以选项D正确。

选择题
单项选择题