有以下程序: #include<stdio.h> 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--; } }

admin2018-06-29  21

问题 有以下程序:
#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++)
pfintf("%d",a[k]);
pfintf("\n");
}
程序运行后的输出结果是(    )。

选项 A、4321098765
B、5678901234
C、0987654321
D、0987651234

答案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/c3xp777K
0

最新回复(0)