• 2021-04-14
    设函数void swap(int &a,int&b)将交换两形参的值,如两整型变量int a=10;int b=15; 则执行swap(a,b)后,a、b值分别为(  )
  • 15 10

    举一反三

    内容

    • 0

      可以交换两个数的函数定义为:void swap(int *p,int *q){ int *temp;*temp=*p;*p=*q;*q=*temp;}

    • 1

      若有定义int a, b;则用( )定义的函数,执行语句swap(&a, &b);后,变量a与b的值没有交换。 A: swap(int *p, int *q) { int *t; t=(int*)malloc(sizeof(int)); //分配4个字节的存储空间给t *t=*p;*p=*q;*q=*t; } B: swap(int*p, int*q) { int t; t=*p;*p=*q;*q=t; } C: swap(int *p, int *q) { int *t; t=p; p=q; q=t; } D: swap(int *p, int *q) { int a, *t=&a; *t=*p; *p=*q; *q=*t; }

    • 2

      以下是两个功能完全相同的函数声明。 void swap(int *p1,int *p2) ; void swap(int *p2,int *p1) ;

    • 3

      从函数的定义来看,调用以下那几个函数有可能实现函数外的两个数据的交换? A: void Swap(int x, int y) //值传递,交换函数内的数据{ int t = x; x = y; y = t;} B: void Swap(int & x, int & y) //引用传递,通过引用交换函数外的数据{ int t = x; x = y; y = t;} C: void Swap(int * x, int * y) //指针传递,通过指针交换函数外的数据{ int t = *x; *x = *y; *y = t;} D: void Swap(int * x, int * y) //指针传递,交换指针的指向{ int *t = x; x = y; y = t;}

    • 4

      有如下函数定义:void swap(int x,int y) { int temp; temp=x; x=y; y=temp; }在运行如下语句后, a=1;b=2; swap(a,b);a的值为 。