可以交换两个数的函数定义为:void swap(int *p,int *q){ int *temp;*temp=*p;*p=*q;*q=*temp;}
举一反三
- 下面哪个选项可以交换指针p和q所指的int型变量的值? A: temp = *p; *p = *q; *q = temp; B: temp = p; p = q; q = temp; C: temp = p; *p = *q; q = temp; D: temp = &p; *p = *q; q = *temp;
- 若有定义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; }
- 代码填空【快速排序的分区函数:以第1个元素为基准元素】 int swap(int a[], int i, int j) { int temp = a[i]; a[i] = a[j]; a[j] = temp; } int partition(int a[], int p, int q) { int x = a[/i][/i]; int i = p, j; for(j = p + 1;j <= q; j++) { if(a[j]<=x) { i++; ______(1)________; } } _________(2)___________; return i; }
- 有如下函数定义:void swap(int x,int y) { int temp; temp=x; x=y; y=temp; }在运行如下语句后, a=1;b=2; swap(a,b);a的值为 。
- 以下函数实现的功能是 void fun(char*s) { char*p,*q,temp; p=s; q=s+strlen(s)-1; while(p<q) { temp=*p; *p=*q; *p=temp; p++; q--; } } A: 将一个字符串首尾颠倒 B: 计算字符串的长度 C: 统计字符串中的空格个数 D: 将字符串中的小写字母变成大写字母