有下列程序: #include<stdio.h> main() { char v[4][10]={t.efg”,”abcd”,”mnopq”,”hijkl”},。p[4],t; int i,j;

admin2022-10-25  28

问题 有下列程序:
     #include<stdio.h>
     main()
     {
       char v[4][10]={t.efg”,”abcd”,”mnopq”,”hijkl”},。p[4],t;
       int i,j;
       for(i_0;i<4;i++)
        p=v
     for(i=0;i<3;i++)
       for(j=i+1;j<4;j++)
        if(*p>*p[j])
        {t=*p;*p=*p[j];*p[j]=t;}
     for(i=0;i<4;i++)
       printf(”%s”,v);
     }
     程序执行后的输出结果是(          )。

选项 A、abcd efg hijkl mnopq
B、afg ebcd hnopq mijkl
C、efg abcd mnopq hijkl
D、mijkl hnopq ebcd afg

答案 B

解析 程序首先定义二维字符数组v,使用4个字符串对其初始化,另外定义字符指针数组p。通过第1个for循环,将v的4个字符串的首地址赋给p。第2个for循环通过两层内嵌循环将p中元素指向的字符串首字母进行排序交换。规则是将指向的字符串的首字母按照字母表中的顺序排序后交换。注意,这里交换的是首字母,而不是整个字符串,所以程序输出:afg ebcd hnopq mijkl。本题答案为B选项。
转载请注明原文地址:https://kaotiyun.com/show/rCkp777K
0

最新回复(0)