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

admin2021-02-25  27

问题 有以下程序
    #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、4321098765
B、5678901234
C、987654321
D、987651234

答案B

解析 该程序首先给一维数组赋值,然后三次调用fun函数,其中fun(a,0,3);功能是将一维数组中第1个元素和第4个元素互换,第2个元素和第3个元素互换;其中fun(a,4,9);功能是将一维数组中第5个元素和第10个元素互换,第6个和第9个元素互换,第7个元素和第8个元素互换;其中fun(a,0,9);功能是将将一维数组中第1个元素和第10个元素互换,第2个元素和第9个元素互换……依次类推。因此B选项正确。
转载请注明原文地址:https://kaotiyun.com/show/kEtp777K
0

最新回复(0)