有以下程序:    void swapl(int c0[],int c1[])    {int  t;    t=c0[0];  c0[0]=c1[0];c1[0]=t;    }    void swap2(int *c0,iht *c1)    {in

admin2009-02-15  33

问题 有以下程序:    void swapl(int c0[],int c1[])    {int  t;    t=c0[0];  c0[0]=c1[0];c1[0]=t;    }    void swap2(int *c0,iht *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

解析 函数swap1、swap2的作用均为交换两个数。主调函数“swap1(a,a+1)”使得数组a的首地址赋给形参c0[],使得 c0指向a[0]所在的存储单元,a[1]的地址赋给形参c1[],使得c1指向a[1]所在的存储单元,故交换c0[0]与c1[0]后,a[0]与a[1]值也发生了变化;主调函数“swap2(&b[0],&br[1]);”起着同样的作用,使得指针变量c0指向了b0)存储单元,c1指向了b[1]存储单元,并在swap2函数中发生了交换,所以b[0]、b[1]的值也发生变化,故本程序输出的结果是5353。
转载请注明原文地址:https://kaotiyun.com/show/5qXp777K
0

最新回复(0)