若有以下函数:
int fun(char*a,char*b)
{int bk=0:
while((*a!='\0')&&(*b!='\0')&&strlen(a)==strlen(b))
{if(*b!=*a){bk=0;break;}
a++;b++;bk=1;
}
return bk;
}
此函数的功能是( )。
【正确答案】
A
【答案解析】分析程序可知:函数fun在字符指针a和b未遇到字符'\0'且a指向的字符串A长度b指向的字符串B长度相同时,遍历A、B,逐个比较a指向的字符与b指向的字符是否相同,所以程序分3种情况:①A的长度与B的长度不同,返回值为0;②A的长度与B的长度相等,但A中某个位置i上的字符与B中位置i上的字符不同,返回值为0;③A的长度与B的长度相等,且A中相同位置上的字符与B中相同化置上的字符全部相同,返回值1,由此可知函数的功能是判断a和b指向的两个字符串是否相等。答案为A。