有以下程序: 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;

admin2011-06-13  19

问题 有以下程序:    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。
转载请注明原文地址:https://kaotiyun.com/show/ejPp777K
0

最新回复(0)