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

admin2020-07-28  44

问题 有以下程序
      #include <stdio.h>
      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)=*(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++)
            printf("%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,A选项正确。
转载请注明原文地址:https://kaotiyun.com/show/vP3p777K
0

最新回复(0)