问题 问答题

编写一个函数,输入n个字符串,串与串之间以回车键分隔,找出最短字符串中第一个字符串,传回该串地址(用一个新串“*”作为结束输入的标志)。
注意:部分源程序已给出。
请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
char*fun(char(*s)[100],int num)


main()

char str[10][100],*min;
int n,i=0;
FILE*out:printf("input strings with’*’asend:");
gets(str[i]);
strcpy(str[3],"some");
strcpy(str[4],"tool!";
fprintf(out,"%s",fun(str,5));
puts(str[i]);
while(!strcmp(str[i],"*")==0)

i++;
gets(str[i]);
puts(str[i]);
n=1;
min=fun(str,n);
printf("\nmin=%s\n",min);
out=open("outfile.dat","w");
strepy(str[0],"just,");
strcpy(str[1],"a");
strcpy(str[2],"test");
fclose(out);

答案

参考答案:int i;
char*min:
minx s[0];//min初始化
for(i=0;i<num;i++)
if(strlen(rain)>strlen(s[i])) //min指向的字符串与其他的字符串长度进行比较
min=s[i];
return min;//返回最小值的字符串

解析: 首先指定第一个字符串为长度最小的字符串,然后在循环过程中将其与其他的所有串的长度进行比较,求出最小的串。①设置一个指针变量min,使它的初值为第一个字符串,再使其他的所有串的长度与min的长度进行比较,若其他字符串的长度小于min,则将其他字符串的首地址赋值给min。②最后使用返回语句,返回最短长度min的字符串的地址。

判断题
单项选择题