问题 单项选择题

有以下程序:
#include <stdio, h>
void swap1 (int c0[],int e1[] )
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( )
inta[2]=3.5.b[2]=3,5;
swapl(a,a+1) ;swap2(&b[0],&b[1]);
printf("% d %a %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

解析: 函数swap1,swap2的功能均为交换两个数。main函数调用swap1(a,a+1);使得数组a的首地址赋给形参c0[],a[1]的首地址赋给形参c1[],故交换c0[0]与c1[0]后,a[0]与 a[1]的值也发生了变化;函数调用swap2(&b[0],&b[1]);的功能也一样,使指针变量c0指向了b[0]存储单元,c1指向了b[1]存储单元,并在swap2函数中进行了交换,所以b[0],b[1]的值也发生变化,故本程序输出的结果是5 3 5 3。

简答题
单项选择题