以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。 #include <stdio.h> #include <string.h> char *scmp(char*s1,char*s2) { i

admin2009-01-15  21

问题 以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。    #include  <stdio.h>    #include  <string.h>    char *scmp(char*s1,char*s2)    {  if(strcmp(s1,s2)<0)  return(s1);       else  return(s2);    }    main()    {  int i; char string[20],str[3][20];       for(i=0;i<3;i++)  gets(str);       strcpy(string,scmp(str[0],str[1]));  /*库函数strcpy对字符串进行复制*/       strcpy(string,scmp(string,str[2]));       printf("%s\n",string);    }   若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为(    )。

选项 A、abcd
B、abba
C、abc
D、baca

答案2

解析 本题考查返回指针值的函数。一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。函数strcmp(字符串1,字符串2)的作用是比较字符串1和字符中2。如果字符串1=字符串2,函数值为0;如果字符串1,字符串2,函数值为一正整数;如果字符串1<字符串2,函数值为一负整数。本题程序中scmp函数的作用是比较s1和s2的大小,对strcmp函数的返回值进行判断,如果字符串1<字符串2,则返回字符串1的值,反之返回字符串2的值。所以main函数中 scmp(str[0],str[1])的返回值是abba,通过strcpy函数把返回值abba复制到string中。当执行 scmp(string,str[2])时,scrap函数的返回值为abba,再次复制到string中,最后string的值为abba。
转载请注明原文地址:https://kaotiyun.com/show/ImXp777K
0

最新回复(0)