有下列程序:    #include  <stdio.h>    void fun(int * s,int n1,int n2)    {        int i,j,t;        i=n1;j=n2;        while(i<j){t=s[

admin2009-08-24  29

问题 有下列程序:    #include  <stdio.h>    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--;}    }    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、987654321
B、4321098765
C、5678901234
D、987651234

答案C

解析 从题目的主函数入手,定义了一个一维数组并赋韧值,接着调用函数fun(),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/mbI0FFFM
0

最新回复(0)