有下列程序: #include void fun(int*s,int n1,int n2) { int i,j,t; i=n1;j=n2 while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j-

admin2013-10-15  11

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

选项 A、0987654321
B、4.3211e+009
C、5.6789e+009
D、9.87651e+008

答案C

解析 本题定义一个一维数组并赋初值,接着调用fun(),功能是使数组中的元素逆序,当调用fun(a,0,3),将实参传递给形参实现数组a中a[0]至a[3]这4个元素逆序;同理调用fun(a,4,9)是将上步排列好的a数组中a[4]至a[9]这个6个元素逆序;调用fun(a,0,9)是将数组中a[0]至a[9]这10个元素再逆序,再用printf()函数输出结果为5678901234,故选项C正确。
转载请注明原文地址:https://jikaoti.com/ti/nvXiFFFM
0

最新回复(0)