以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序: #include <string.h> void f(char p[][10],int n) { char t[20]; int i,j; for(i=0

admin2013-02-23  30

问题 以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序:    #include    <string.h>    void f(char p[][10],int n)    {  char t[20];    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[][10]:{"abc","aabdfg","abbd","dcdbe","cd",);int i;    f(p,5);    printf("%d\n",strlen(p[0]));    }    程序运行后的输出结果是(  )。

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

答案4

解析 函数strcmp(字符串1,字符串2)作用是将“字符串1”和“字符串2”进行比较,如果“字符串1”>“字符串2”,返回一个人于0的整数值;如果“字符串1”<“字符串2”,返回一个小于0的整数值;如果“字符串1”=“字符串2”,返回 0。
函数strcpy(字符串数组名,字符串,[整型表达式])的作用是将“字符串”的前“整型表达式”个字符存入到指定的“字符数组”中,若省略“整型表达式”,则将整个“字符串”存入“字符数组”中。
函数f()的功能是利用选择法把一个具有n行的二维数组中按行存放的n个字符串由大到小排序。在主函数中定义了一个二维字符数组p并给它按行赋初值,然后调用f()函数,把它按行从大到小排列。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串。由此可知最大的字符串为“dcdbe”,排序后存放在第一行,其首地址为p[0],在输出语句输出的p[0]指向的字符串长度是5。
转载请注明原文地址:https://kaotiyun.com/show/cEJp777K
0

最新回复(0)