A-A+
有以下程序: #include <string.h> void f(char p[][10]
问题详情
有以下程序: #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[i],p[j])>0) { strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[j],t); } } main() {char p[5][10]={"abc","aabdog","abbd","dcdbe","cd"}; f(p,5); printf("%dn",strlen(p[0])); } 程序运行后的输出结果是()。
A.2
B.4
C.6
D.3请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:C
解析:题目中已告知函数f()的作用是将字符串从小到大排序,因此主函数中调用完f(p,5);后,二维数组p中的内容为("aabdfg","abbd","abc","cd","dcdbc"}。输出的结果是strlen(p[0]),即p中第1个字符串的长度,所以结果是6。故本题应该选择C。