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

admin2009-01-15  17

问题 有以下程序: #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

答案8

解析 函数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。
转载请注明原文地址:https://kaotiyun.com/show/oBXp777K
0

最新回复(0)