有下列程序 #include<stdio.h> void fun(int n,int*t) { int tp: if(n<2)return; if(dt[0]>dt[1]) { tp=dt[0

admin2019-01-11  21

问题 有下列程序
    #include<stdio.h>
    void fun(int n,int*t)
    {
    int tp:
    if(n<2)return;
    if(dt[0]>dt[1])
    {
    tp=dt[0];at[0]=dt[1];dt[1]=tp;
    }
    fun(n-1,dt+1);
    }
    void main()
    {
    int d[10]={35,13,21,3,15},i;
    for(i=0;i<4;i++)
    fun(5-i,d);
    for(i=0;i<5;i++)
    printf(’’%d’’,d);
    }
    程序执行后的输出结果是(    )。

选项 A、3 13 15 21 35
B、35 21 15 13 3
C、3 13 35 21 15
D、15 21 35 13 3

答案A

解析 fun()函数的功能为判断一个数组中相邻两个数的大小,若前一个数大于后一个数,则将两个数在数组中的位置互换,先对比第一个元素与第二个元素,若符合条件则交换位置,反之则不变,在fun函数内,通过fun(n-1,dt+1)递归调用自己,依次向后比较,直到n<2,退出函数。函数调用一次,fun函数可以找到数组的最大值并放在最后一个元素位置,通过第一个for循环,可以完成数组的排序。再利用第二个for循环,将该数组的所有元素依次输出,执行完输出结果应为3 13 15 21 35,选项A正确;本题答案为A。
转载请注明原文地址:https://kaotiyun.com/show/NKxp777K
0

最新回复(0)