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

admin2020-11-27  17

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

选项 A、0123456345
B、123453456
C、123456666
D、123454569

答案A

解析 程序的执行过程为:定义数组m,并为其赋初值,数组长度为10。调用函数fun(m,6,3)将数组首地址传入函数,函数实现将数组下标值从6到3的元素依次向下标值大的方向移动三个位置,for循环结束之后数组为m={0,1,2,3,4,5,3,4,5,6}。依次输出数组元素,结果为0123453456,B选项正确。
转载请注明原文地址:https://jikaoti.com/ti/pjD0FFFM
0

最新回复(0)