有以下程序: #include <stdio.h> void fun( int a, int b ) {  int t;   t=a; a=b; b=t; } main() {  int c[10]={1,2,3,4,5,6,7,8

admin2021-07-09  20

问题 有以下程序:
#include   <stdio.h>
void  fun( int  a,  int  b )
{  int   t;
  t=a;  a=b;  b=t;
}
main()
{  int   c[10]={1,2,3,4,5,6,7,8,9,0}, i;
  for (i=0; i<10; i+=2)  fun(c, c[i+1]);
  for (i=0;i<10; i++)  printf("%d,", c);
  printf("\n");
}
程序的运行结果是(  )。

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

答案A

解析 函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化,所以数组c中的元素的值并没有变化,选择A。
转载请注明原文地址:https://jikaoti.com/ti/qMz0FFFM
0

最新回复(0)