问题 单项选择题

对于下面的程序
#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(string,scmp(string,str[2]));
printf("%s\n",string);

若运行时依次输入abcd、abba和abc三个字符串,则输出结果为 ______。

A.abcd

B.abba

C.abc

D.abca

答案

参考答案:B

解析:[评析]本题自定义函数scmp()的作用是比较字符串s1和s2的大小,如果s1<s2,函数返回s1的值,否则返回s2的值。若运行时依次输入abcd、abba和abc三个字符串,执行strcpy(string,scmp(str[0],str[1]));后,string的值为abba,再执行 strcpy(string,scmp(string,str[2]));,由于scmp(string str[2])返回string的值abba,再拷贝到字符串数组string中,所以本题输出abba。

判断题
填空题