问题
单项选择题
有以下程序,其中函数f的功能是将多个字符串按字典顺序排序
#include <string,h>
void f(char *p[], int n)
char *t;
int i,j;
for(i=0; i<n-1; i++)
for(j=i+1;j<n; j++)
if(strcmp(p[i],p[j])>0)
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"为止。如果全部相同,则认为相等:若出现不相同的字符,则以第一个不相同的字符的比较结果为准。当s1<s2,返回值<0;当s1=s2时,返回值二0:当s1>s2时,返回值>0。故本题经过排序后,得到第二个字符串是“abbd”,所以输出结果是4。