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

题目
有以下程序,其中函数的功能是将多个字符串按字典顺序排序: includevoid f(char*p[],i

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


相似考题
更多“有以下程序,其中函数的功能是将多个字符串按字典顺序排序:# include<string.h>void f(char*p[],i ”相关问题
  • 第1题:

    以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。includevoid f(char

    以下程序中函数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[i],p[j]<0) {strcpy(t, p[i]); strcpy(p[i],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


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

  • 第2题:

    有以下程序,其中函数f的功能是将多个字符串按字典顺序排序:includevoidf(char*p[],in

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

    A.2

    B.3

    C.6

    D.4


    正确答案:D
    解析: 函数f的功能是将字符串数组中的每个字符串元素按照由小到大的顺序进行排列,调用f(p,5)后,字符串数组p变为{“aabdfg”,“abbd”,“abc”,“cd”,“dcdbe”},所以最后输出p[1]即"abbd"的长度应为4。

  • 第3题:

    有以下程序,其中函数f的功能是将多个字符串按字典顺序排序includevoid f(char*p[],in

    有以下程序,其中函数f的功能是将多个字符串按字典顺序排序 #include <string,h> void f(char *p[], int n) { char *t; int i,j; for(i=0; i<n-1; i++) for(j=i+1;j<n; j++) if(strcmp(p[i],p[j])>0) {t=p[i];p[i]=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
    解析:本题所说的字典顺序是由f()函数中所调用的strcmp()函数对字符串大小的比较方法来决定的。strcmp()函数是依次对两个参数所指字符串对应位置上的字符两两进行比较,当出现第一对不相同的字符时,即由这两个字符的ASCII码值的大小来决定整个字符串的大小。另外,根据f()函数中交换两个元素的条件strcmp(p[i],p[j]>0可以看出,当前面的元素大于后面的元素时,则交换两个元素,即从小到大排序。所以数组最终排序的结果是"aabdfg","abbd","abc","cd","dcdbe"。因此最终输出的p[1]的长度为4.应该选择D。

  • 第4题:

    有以下程序,其中函数f的功能是将多个字符串按字典顺序排序( )。

    A.2

    B.3

    C.6

    D.4


    正确答案:D
    函数voidf的功能是将字符指针数组*p[]中的每个字符串按照从小到大的顺序排列。在主函数main()中,调用f(p,5)后,字符指针数组*p[5]中的字符串按照字典顺序从小到大排列为如下形式,即*p[5]-{″aab-dfg″,″abbd″,″abc″,″cd″,″dcdbe″),因此P[1]=″abdb″,strlen(p[1])=4。

  • 第5题:

    有以下程序,其中函数f的功能是将多个字符串按字典顺序排序( )。

    #include<string.h>

    void f(char*p[],int n)

    { char*t;int i,j;

    for(i=0;i<n-1;i++)

    for(j=i+1;j<n;j++)

    if(strcmp(p[i],p[j]>0){t=p[i];p[i]=p[j];p[j]

    =t;}

    }

    main

    { char *P[5]={"abe","aabdfg","abbd","dcd-

    be","cd"};

    f(p,5);

    printf("%d\n",strlen(p[1]));

    }

    程序运行后的输出结果是( )o

    A.2

    B.3

    C.6

    D.4


    正确答案:D
    函数voidf的功能是将字符指针数组*p[]中的每个字符串按照从小到大的顺序排序。在主函数main中,调用f(P,5)后,字符指针数组*p[5]中的字符串按照字典顺序从小到大排列为如下形式,即*p[5]={"aab-dfg","abbd","abc","cd","dcdbe"),因此P[1]="abdb",strlen(p[1])=4。