问题详情

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

时间:2022-01-03 04:54 关键词:

答案解析

D
解析:函数swapl的形参是数组名,在调用时应将数组名,即数组的首地址,作为实参传递给形参,形参所指向内容的改变可以带回到实参,因此调用函数swap 1是将元素a[0]和a[1]互换。函数swap2的形参是指针变量,在调用时将b[0]、b[1]的值传递给它,形参内容改变也可以带回到实参,b[0]和b[1]的内容也进行了交换。所以输出为5 3 5 3。