问题 单项选择题

以下程序中函数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.adba

C.abc

D.abca

答案

参考答案:A

解析:字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符ASCII码值较大时,该字符所在的字符串就是较大的字符串。主函数中调用了函数scmp(),分析不难知道该函数的作用是返回参加比较的两个字符串中的较小的字符串,它的主函数中定义了一个二维字符数组来存放三个字符串。接着通过for循环给每个字符串赋值,赋值后三个字符串分别为“abcd”、“abba”、“abc”,接着比较str[0]和str[1]的大小,根据字符串大小比较标准可知str[0]较小,然后通过函数strcpy()把str[0]中的字符串,拷贝到string中,然后比较string和str[2)的大小,比较结果是string较小,最后输出string的值为“abcd”。

单项选择题
名词解释