问题 单项选择题

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

解析: 本题考查的是数组名和指针用作函数的参数。在C语言中,函数参数使用数组形式和指针形式两者毫无差别。因此两个函数swap1()和swap2()的作用是完全一样的,都是交换两个参数所指的内容。主函数中分别使用swap1和swap2交换数组a[2]和b[2]中两个元素的位置。因此最终输出为:5 3 5 3。故应该选择D。

单项选择题
问答题