有以下程序 #include void fun( int *s, int n1, int n2 ) { int i,j,t; i=n1; j=n2; while( i

admin2015-07-28  18

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

选项 A、5 6 7 8 9 0 1 2 3 4
B、0 9 8 7 6 5 4 3 2 1
C、4 3 2 1 0 9 8 7 6 5
D、0 9 8 7 6 5 1 2 3 4

答案A

解析 函数fun()的功能是将数组s中下标为n1和n2之间的数据逆序,所以调用语句fun( p,0,3 ); fun( p,4,9 ); fun( p,0,9 );结束后,是先将数组p中下标为0至3之间的元素逆序,然后将下标为4至9之间的元素逆序,再将整个数组逆序,答案选A。
转载请注明原文地址:https://kaotiyun.com/show/YKJp777K
0

最新回复(0)