有以下程序     #include<string.h>    void f(char p[][10],int n)/*字符串从小到大排序*/    { char t[10];int i,j;      for(i=0;i<n-1;i++)       f

admin2009-03-17  26

问题 有以下程序     #include<string.h>    void f(char p[][10],int n)/*字符串从小到大排序*/    { char t[10];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[5][10]={"abc","aabdfg:,"abbd","dcdbe","cd"};      f(p,5);      printf("%d\n",strlen(p[0]));    }    程序运行后的输出结果是

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

答案C

解析 本题中函数f()利用选择法对字符串数组p中的字符中按从小到大排序,字符串比较的方法是:依次对S1和S2所指字符串对应位置上的字符两两进行比较,当出现第一对不相同的字符时,即由这两个字符(ASCII码值)决定所在串的大小,因此最后在 p[0]中存储的是最小的字符串是“aabdfg”。最后用 strlen()函数求得该字符串的长度为6。
转载请注明原文地址:https://kaotiyun.com/show/9YXp777K
0

最新回复(0)