有以下程序       #include   <stdio.h> #include   <string.h> void  fun(char  s[][10],int  n)  {  char  t;        int  i j;     for (i=

admin2013-02-23  20

问题 有以下程序       #include   <stdio.h> #include   <string.h> void  fun(char  s[][10],int  n)  {  char  t;        int  i j;     for (i=0; i<n-1; i++)        for 0--i+l; j<n; j++)        /*比较字符串的首字符大小,并交换字符串的首字符*/        if(s[0] > s[j][0])  { t = s[0]; s[0] = s[j][0]; s[j][0] = t;}  }  main()  {  char   ss[5][10]= {"bcc", "bbcc", "xy", "aaaacc", "aabcc" };     fun(ss, 5);      printf("%s,%s\n", ss[0],ss[4]);  }    程序的运行结果是

选项 A、xy, aaaacc
B、aaaacc,xy
C、xcc,aabcc
D、acc,xabcc

答案D

解析 在函数fun()中有一个两层嵌套的for循环,外循环变量i从0递增到n-2,内循环变量i从i+1循环递增到n-1,这是选择排序算法的标准结构。循环体中因为逆序条件为“s[0]> s[j][0]”,所以实现的是升序排序。由此可见,fun()函数实现的功能是对一个二维字符数组前n行的首字符进行升序排序。主函数中定义的二维数组初始化为{"bcc",”bbcc", "xy","aaaacc","aabcc"},通过fun()函数的排序后,结果将为acc","abcc","by", "baaacc","xabcc"}。故最终输出字符串ss[0]和ss[4]的结果为acc,xabcc,应该选择D。
转载请注明原文地址:https://jikaoti.com/ti/KUB0FFFM
0

最新回复(0)