问题 单项选择题

有以下程序,其中函数 f 的功能是将多个字符串按字典顺序排序:#includevoid f(char*p[],intn){ char*t;inti,j; for(i=0;i0){ t=p[i];p[i]=p[j];p[j]=t;}}main(){char *p[5]={"abc","aabdfg","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[1]));}程序运行后的输出结果是______。

A.2

B.3

C.6

D.4

答案

参考答案:D

解析:字符串比较函数“strcmp(char *s1,char *s2)”的比较规则是对两个字符串自左至右逐个字符相比(按 ASCII 码值大小比较),直到出现不同的字符或遇到"\0"为止。如果全部相同,则认为相等;若出现不相同 的字符,则以第一个不相同的字符的比较结果为准。当 s1s2 时,返回值>0。故本题经过排序后,得到第二个字符串是“abbd”,所以输出结果是 4。

选择题
单项选择题