有以下程序:
void swapl(int c0[],int c1[])
int t;
t=c0[0];c0[0]=c1[0];c1[0]=t;
void swap2(int*c0,int*c1)
int t;
t=*c0;*c0=*c1;*c1=t;
main()
int a[2]=3,5),b[2]=3,5;
swapl(a,a+1);swap2(&b[0],&b[1]);
printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);
程序运行后的输出结果是______。
A) 3 5 5 3
B) 5 3 3 5
C) 3 5 3 5
D) 5 3 5 3
参考答案:D
解析: 函数swapl的形参是数组名,在调用时应将数组名,即数组的首地址,作为实参传递给形参,形参所指向内容的改变可以带回到实参,因此调用函数swap 1是将元素a[0]和a[1]互换。函数swap2的形参是指针变量,在调用时将b[0]、b[1]的值传递给它,形参内容改变也可以带回到实参,b[0]和b[1]的内容也进行了交换。所以输出为5 3 5 3。