若有定义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; }
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; }
举一反三
- 以下程序的运行结果是______。voidswap(int**r,int**s){int*t;t=*r;*r=*s;*s=t;}voidmain(){inta=1,b=2,*p,*q;p=&a;q=&b;swap(&p,&q);printf("%d,%d\n",*p,*q);}
- 下面程序应能对两个整型变量的值进行交换。以下正确的说法是__________。 int main() { int a=10,b=20; printf("%d,%d",a,b); swap(&a,&b); printf("%d,%d",a,b); return 0; } void swap(int p,int q) { int t; t=p;p=q;q=t; }
- 中国大学MOOC: 下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:After swap 5, 3。void swap( int *p, int *q ){ int t; t=*p; *p=*q; *q=t;}void main( ){ int a=3, b=5; swap(______________________) ; printf(After swap %d, %d, a, b);}
- 下面程序欲对两个整型变量的值进行交换,以下正确的说法是 。 main() {int a=10,b=20; printf("(1)a=%d,b=%d\n",a,b); swap(&a,&b); printf("(2)a=%d,b=%d\n",a,b); } swap (int p,int q) {int t; t=p;p=q;q=t;}
- 假设 t 是整型变量,下面( )选项可以交换指针 p 和 q 所指的 int 型变量的值。 A: t = p; *p = *q; q = t; B: t = &p; *p = *q; q = *t; C: t = *p; *p = *q; *q = t; D: t = p; p = q; q = t;