问题 单项选择题

有以下程序:
#include <stdio.h>
#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]="123", "aabdfg", "abbd", "dcdbe", "cd";
f(p, 5);
printf("% d\n ", strlen(p[0]) );

A) 2
B) 4
C) 6
D) 3

答案

参考答案:D

解析: 题目中已告知函数f()的作用是将字符串从小到大排序,因此主函数中调用完f(p, 5);后,二维数组p中的内容为{"123", "aabdfg", "abbd", "dcdbe", "cd")。输出的结果是strlen(p[0]),即p中第1个字符串的长度,所以结果是3。故本题应该选择D)。

判断题
单项选择题