问答题 给定程序MODI1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 给定源程序: #include #include #define N 5 #define M 81 /**********found**********/ fun(char (*sq)[M]) { int i; char *sp; sp=sq[0]; for(i=0;i if(strlen( sp) sp=sq[i] ; /**********found**********/ return sq; } main() { char str[N][M], *longest; int i; printf("Enter %d lines :/n",N); for(i=0; i printf("/nThe N string :/n",N); for(i=0; i longest=fun(str); printf("/nThe longest string :/n"); puts(longest); }
【正确答案】
【答案解析】解题思路: 第一处: 要求返回字符串的首地址,所以应改为:char *fun(char (*sq)[M])。 第二处: 返回一个由变量sp控制的字符串指针,所以应改为:return sp;。