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

admin2022-06-24  37

问题 以下程序中,函数scrap的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址:
#include<stdio.h>
#include<string.h>
char *scmp(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,scrap(string,str[2]));
printf("%s\n",string);
}
若运行时依次输入abed、abba和abc三个字符串,则输出结果为(          )。

选项 A、abed
B、abba
C、abbc
D、abca

答案B

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

最新回复(0)