有以下程序: #include <stdio.h> void swap1(int c[]) { int t; t=c[0]; c[0]=c[1]; c[1]=t; } void swap2(int c0,int

admin2009-01-15  30

问题 有以下程序:    #include  <stdio.h>    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};       swap1(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

解析 swap1函数传递的是变量的地址,可以实现两个数的交换;而swap2函数传递的是值,执行完swap2后,c0,c1的值互换了,但main函数中的b0和b1并未互换,即形参值的改变无法传给实参。
转载请注明原文地址:https://kaotiyun.com/show/PpHp777K
0

相关试题推荐
最新回复(0)