选择题
有以下程序:
#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('%dIl,m[k]);
}
程序的运行结果是______。
【正确答案】
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正确。