有以下程序: #include void fun(int*s,int nl,int n2) {int i,j,t; i=n1;j=n2; while(i

admin2019-01-11  27

问题 有以下程序:
    #include
    void fun(int*s,int nl,int n2)
    {int i,j,t;
    i=n1;j=n2;  
    while(i    {t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;  
    i++;j一一;
    }
    }
    main()
    {
    int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;
    fun(p,0,3);fun(p,4,9);fun(p,0,9);
    for(i=0;i<10;i++)printf("%d",*(a+i));
    printf("\n");
    }
    程序运行后的输出结果是(    )。

选项 A、5 6 7 8 9 0 1 2 3 4
B、0 9 8 7 6 5 4 3 2 1
C、4 3 2 1 0 9 8 7 6 5
D、O 9 8 7 6 5 1 2 3 4

答案A

解析 程序执行过程为:调用函数fun(p,0,3),将数组a首地址传入函数,循环执行2次,将数组前4个元素前后倒置,数组a={4,3,2,1,5,6,7,8,9,0};调用函数fun(p,4,9),将数组a首地址传入函数,循环执行3次,将数组第5个到第10个元素前后倒置,数组a:{4,3,2,1,0,9,8,7,6,5};调用函数fun(p,0,9),将数组a首地址传入函数,循环执行5次,将数组元素前后倒置,数组a={5,6,7,8,9,0,1,2,3,4};依次输出数组元素,故A选项正确。
转载请注明原文地址:https://jikaoti.com/ti/lFa0FFFM
0

最新回复(0)