有以下程序:
#include <stdio.h>
main()
{ char a[5][10]={"one","two","three","four","five"};
int i,j;
char t;
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(a[i][0]>a[j][0])
{ t=a[i][0]; a[i][0]=a[j][0]; a[j][0]=t; }
puts(a[1]);
}
程序运行后的输出结果是 ______ 。
A. fwo
B. fix
C. two
D. owo
答案:A
解析:本题是对5个字符串的首字母进行冒泡排序。 for循环: i=0,j=1 a[0][0]=o,a[1][0]=t o<t所以不交换 i=0,j=2 a[0][0]=o,a[2][0]=t o<t所以不交换 i=0,j=3 a[0][0]=o,a[3][0]=f o>t所以交换a[0][0]=f,a[3][0]=t i=0,j=4 a[0][0]=f,a[4][0]=f f=f所以不交换所以此时a[0][0]=f,后面依次类推 排序结果为f、f、o、t、t,由于排序过程中仅对首字母进行了交换,所以排序结果为{"fne","fwo","ohree","tour","tive"},因此选A。