题目内容
(请给出正确答案)
[单选题]
有以下程序,其中函数fun的功能是将多个字符串按字典顺序排序: #include <stdio.h> #include <string.h> void fun(char *p[],int n) { char *t; int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j])>0) { t=p[i]; p[i]=p[j]; p[j]=t; } } int main() { char *p[5]={"abc","aabdfg","abbd","dcdbe","cd"}; fun(p,5); printf("%dn",strlen(p[1])); return 0; } 程序运行后的输出结果是().
A.1
B.2
C.3
D.4
答案
(1)错误:t=x;x=y; 正确:t=*X;*x=y;(2)错误;return(y); 正确:return(t); (1)错误:t=x;x=y; 正确:t=*X;*x=y;(2)错误;return(y); 正确:return(t); 解析:本题考查指针变量做函数参数。同样,这里也涉及到一个“交换规则”,另外,根据题目主函数中fun()函数的调用方式说明fun()函数的参数应当为指针类型。交换结束后返回变量t。
![](https://lstatic.shangxueba.com/sxbcn/h5/images/tips_org.png)