有以下程序: #include <string.h> void f(char p[][10],int n)/* 字符串从小到大排序 */ { char t[10]; int i,j; for(i=0;i<n-1;i++)

admin2009-01-15  30

问题 有以下程序:    #include <string.h>    void f(char p[][10],int n)/* 字符串从小到大排序 */    { char t[10];  int i,j;      for(i=0;i<n-1;i++)        for(j=i+1;j<n;j++)          if(strcmp(p,p[j])>0)          {            strcpy(t,p);            strcpy(p,p[j]);            strcpy(p[j],t);          }     }    main()    {char p[5][10]={"abc","aabdog","abbd","dcdbe","cd"};      f(p,5);      printf("%d\n",strlen(p[0]));    }    程序运行后的输出结果是(    )。

选项 A、2
B、4
C、6
D、3

答案4

解析 题目中已告知函数f()的作用是将字符串从小到大排序,因此主函数中调用完f(p,5);后,二维数组p中的内容为("aabdfg","abbd","abc","cd","dcdbc"}。输出的结果是strlen(p[0]),即p中第1个字符串的长度,所以结果是6。故本题应该选择C。
转载请注明原文地址:https://kaotiyun.com/show/06Xp777K
0

最新回复(0)