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

admin2009-01-15  68

问题 以下程序中函数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+l;j<n;j++)            if(strcmp (p,p[j])<0)            { strcpy(t,p);strcpy(p,p[j]);strcpy(p[j],t);}    }   main()    {      char p[][lO]-{"abc","aabdfg","abbd","dcdbe","cd"};int i;      f(p,5); printf("%dkn",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。所以4个选项中C正确。
转载请注明原文地址:https://jikaoti.com/ti/cMS0FFFM
0

最新回复(0)