调用下列哪个函数,能交换两个指针的指向()。 char str[]="China"; char *p1 = str, *p2 = “加油”; Swap (p1, p2); cout<< p1 << p2; // 加油China
A: void Swap(char *p, char *q){ char *t = 0; t=p; p=q; q=t;}
B: void Swap(char* p, char *q){ char t; t=*p;*p=*q;*q=t;}
C: void Swap(char * *p, char * *q){ char* t = 0; t=*p;*p=*q;*q=t;}
D: void Swap(char* &p, char * &q){ char* t = 0; t=p; p=q; q=t;}
A: void Swap(char *p, char *q){ char *t = 0; t=p; p=q; q=t;}
B: void Swap(char* p, char *q){ char t; t=*p;*p=*q;*q=t;}
C: void Swap(char * *p, char * *q){ char* t = 0; t=*p;*p=*q;*q=t;}
D: void Swap(char* &p, char * &q){ char* t = 0; t=p; p=q; q=t;}
举一反三
- 以下程序段中能够正确实现p和q中两个字符串互换的是: A: char p[10]="hello", q[10]= "world", *t;strcpy(t,p); strcpy(p,q); strcpy(q,t); B: char p[10]= "hello", q[10]= "world", *t;t=p; p=q; q=t; C: char p[10]= "hello", q[10]= "world", t[10];strcpy(t,p); strcpy(p,q); strcpy(q,t); D: char p[10]= "hello", q[10]= "world", t[10];t=p; p=q; q=t;
- 以下程序段中能够正确实现p和q中两个字符串互换的是: A: char p[10]="hello", q[10]= "world", *t;strcpy(t,p); strcpy(p,q); strcpy(q,t); B: char p[10]= "hello", q[10]= "world", *t;t=p; p=q; q=t; C: char p[10]= "hello", q[10]= "world", t[10];strcpy(t,p); strcpy(p,q); strcpy(q,t); D: char p[10]= "hello", q[10]= "world", t[10];t=p; p=q; q=t;
- 有以下程序: #include void fun1(char *p) { char *q; q=p; while(*q!='
- 若有定义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; }
- 下面是一个字符串连接函数,请补充完整。void mystrcat(char *s1,char *s2){char *p,*q;for(p=s1; ; p++ );for( q=s2 ;*q;q++)*p=’\0’ ;}