A-A+

以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。 #in

2022-08-06 04:08:08 问答库 阅读 175 次

问题详情

以下程序中函数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[i]); strcpy(string,scmp(str[0],str[1])); /*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str[2])); printf("%sn",string); } 若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为()。
A.abcd
B.abba
C.abc
D.baca请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:B
解析:本题考查返回指针值的函数。一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。函数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。

考点:字符串,所指