有以下程序: void swap1(int C[]) { int t; t=c[0]; c[0]=C[1]; c[1]=t; } void swap2(int c0, int c1) {

admin2010-01-10  41

问题 有以下程序:    void  swap1(int  C[])    {    int  t;    t=c[0];    c[0]=C[1];    c[1]=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);  swap2(b[0],b[1]);    printf("%d  %d  %d  %d\n",a[0],a[1],b[0],b[1]);    }    其输出结果是

选项 A、5 3 5 3
B、5 3 3 5
C、3 5 3 5
D、3 5 5 3

答案2

解析 本题中函数swapl()是传递的地址。所以对该形参c的改变将影响实参,分析可知该函数的作用,是使数组c的第一个元素和第二个元素的值互换。主函数中调用该函数将a作为实参传递给形参c,故执行该函数后a的第一个元素和第二个元素的值将交换。分别为5和3。函数swap2()是值传递的,所以该函数执行后对数组b将没有任何改变,此时该数组的第一个和第二个元素依然为3和5,因此最后的输出为5、3、3和5,所以,4个选项中选项B符合题意。
转载请注明原文地址:https://jikaoti.com/ti/ByI0FFFM
0

最新回复(0)