有以下程序: #include void fun(int*x,int s,int e) {int i,j,t; for(i=s,j=e;i<j;i++,j--) {t=*(x+i);*(x+i)=*c(x+j);*(

admin2021-06-15  27

问题 有以下程序:
    #include
    void fun(int*x,int s,int e)
    {int i,j,t;
    for(i=s,j=e;i<j;i++,j--)
    {t=*(x+i);*(x+i)=*c(x+j);*(x+j)=t;}
    }
    main()
    {int m[]={0,1,2,3,4,5,6,7,8,9},k;
    fun(m,0,3);fun(m+4,0,5);fun(m,0,9);
    for(k=0;k<10;k++)
    pfinff("%d",m[k]);
    }
    程序的运行结果是(    )。

选项 A、4567890123
B、3210987654
C、9876543210
D、0987651234

答案A

解析 程序的执行过程为:定义数组m,并为其赋初值,数组长度为10。调用函数fun(m,0,3)将数组首地址传入函数,函数实现将数组下标值从0到3的元素首尾倒置,for循环结束之后数组为m={3,2,1,0,4,5,6,7,8,9}。调用函数fun(m+4,0,4)将数组下标值为4的元素地址传人函数,函数实现将数组下标值从4到9的元素首尾倒置,for循环结束之后数组为m={3,2,1,0,9,8,7,6,5,4}。调用函数fun(m,0,9)将数组首地址传入函数,函数实现将数组下标值从0到9的元素首尾倒置,for循环结束之后数组为m={4,5,6,7,8,9,0,1,2,3}。依次输出数组元素,结果为4567890123。
转载请注明原文地址:https://jikaoti.com/ti/NPz0FFFM
0

最新回复(0)