试题与答案

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

题型:单项选择题

题目:

以下程序中函数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("%s\n",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。

试题推荐
微信公众账号搜索答案