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

admin2013-02-23  57

问题 以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。#include  <string. h>void f(char p[][10],int n){    chart[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

解析 函数f()的功能是利用选择法把个具有n行的二维数组中按行存放的n个字符串由大到小排序。在主函数中定义了一个二维字符数组p并给它按行赋初值,然后调用f()函数,把它按行从大到小排列。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串。由此可知最大的字符串为"dcdbe",排序后存放在第一行,其首地址为p[0],在输出语句输出的p[0]指向的字符串长度是5。所以4个选项中C正确。
转载请注明原文地址:https://kaotiyun.com/show/2dPp777K
0

最新回复(0)