单选题 有下列程序:
#include<stdio.h>
#include<string.h>
main()
{char v[4][10],*p[4],*t;
int i,j;
for(i=0;i<4;i++)
{p[i]=v[i];
scanf("%s",p[i]);
}
for(i=0;i<3;i++)
for(j=i+1;j<4;j++)
if(strcmp(p[i],p[j])>0)
{t=p[i];p[i]=p[j];p[j]=t;}
for(i=0;i<4;i++)
printf("%s",p[i]);
}
程序执行时若输入:Welcome you to Beijing<回车>,则输出结果是______。
【正确答案】 A
【答案解析】[解析] main()函数定义一个二维字符数组v,另外定义一个数组,包含4个字符指针元素,第一个for循环将数组v对应下标为i的字符串首地址赋给数组p的下标为i的元素,使得p中的4个指针元素分别指向v中的4个字符串,然后使用scanf()函数,输入4个字符串赋给v中的4个元素,由此可知数组p的4个指针元素指向该4个字符串;接着再使用两个嵌套的for循环,对v中的4个字符串按照ASCII码的大小排序,strcmp()函数是将p[i]、p[j]两个字符串自左向右逐个字符比较ASCII码,直到出现不同的字符或遇到"/0"为止,当p[i]>p[j]时,返回正数,所以本题排序后,输出结果为:Beijing Welcome to you。故本题答案为A选项。