以下程序中,函数scmp的功能足返回形参指针s1和s2所指字符串中较小字符串的首地址: #include #include char *scrap(char *s1,char *s2) { if(strcmp(s1,s2)

admin2018-01-14  28

问题 以下程序中,函数scmp的功能足返回形参指针s1和s2所指字符串中较小字符串的首地址:
   #include
   #include
   char *scrap(char *s1,char *s2)
   {
   if(strcmp(s1,s2)<0)return(s1);
   else return(s2);
   }
   void 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、abbc
D、abca

答案B

解析 本题主要考查函数调用和字符串大小的比较。strcmp(s1,s2)用来比较两个字符串的大小,比较方式是两个字符串自左向右逐个字符进行比较(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止。当s1<s2时,返回值为负数;当s1==s2时,返回值为0;当s1>s2时,返回值为正数。gets()函数用来输入字符串,for循环用来控制逐个输入字符串。当分别输入字符串abcd、abba和abc后,执行程序strcpy(string,scmp(str[0],str[1])),然后调用scmp函数,此时返回str[1]的地址(因为字符串abcd的第三个字符c的ASCII码值大于字符串abba的第三个字符b的ASCII码值),并把该地址存放到string中。接着执行语句strcpy(string,scmp(string,str[2])),结果是把字符串string,即abba的地址存放到string中,最后执行printf()函数,输出当前字符串string,即abba。
转载请注明原文地址:https://kaotiyun.com/show/lHxp777K
0

最新回复(0)