有以下程序,其中函数f的功能是将多个字符串按字典顺序排序:    #include<string.h>    void f(char  *p[],int n)    {char *t;int i,j;    for(i=O;i<n-1;i++)      

admin2009-02-15  38

问题 有以下程序,其中函数f的功能是将多个字符串按字典顺序排序:    #include<string.h>    void f(char  *p[],int n)    {char *t;int i,j;    for(i=O;i<n-1;i++)      for(j=i+1;j<n;j++)        if strcmp(p,p[j])>0{t=p  p=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。
转载请注明原文地址:https://jikaoti.com/ti/l4K0FFFM
0

最新回复(0)