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

admin2010-09-05  77

问题 有以下程序,其中函数的功能是将多个字符串按字典顺序排序:    # 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,p[j])>0){t=p;p=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

解析 strcmp(s1,s2)是比较两个字符串的大小,s1>s2时值为正数,s1<s2时值为负数,s1=s2时值为0。调用 f(p,5)函数的功能是将存储字符串的数组p中的字符串从小到大进行排列。最后的排列结果为:p[5]={"aabdfg","abbd", "abc","cd","dcdbe"},最后要求输出的是"abbd"的长度。
转载请注明原文地址:https://jikaoti.com/ti/DQI0FFFM
0

最新回复(0)