A-A+
有以下程序 void swapl(int c0[] int c1[] { int t; t=
问题详情
有以下程序 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 %dn",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
解析:本题考查的是数组名和指针用作函数的参数。在C语言中,函数参数使用数组形式和指针形式两者毫无差别。因此两个函数swap1()和swap2()的作用是完全一样的,都是交换两个参数所指的内容。主函数中分别使用swap1和swap2交换数组a[2]和b[2]中两个元素的位置。因此最终输出为:5353。故应该选择D。