2013年计算机二级C语言上机题库四十八_第2页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年6月7日
  改错题:
  下列给定程序中,函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。
  请改正程序中的错误,使它能得出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  参考答案:
  改错题:
#include <stdio.h>
  #include <string.h>
  #define N 5
  #define M 81
  /********found********/
  fun(char (*sq)[N])
  {考试站网
  int i;
  char *sp;
  sp = sq[0];
  for (i=0; i<N; i++)
  if (strlen(sp) < strlen(sq[i]))
  sp = sq[i];
  /********found********/
  return sq;
  }
  main()
  {
  char str[N][M], *longest;
  int i;
  printf("Enter %d lines:\n", N);
  for (i=0; i<N; i++)
  gets(str[i]);
  printf("\nThe N string :\n", N);
  for (i=0; i<N; i++)
  puts(str[i]);
  longest = fun(str);
  printf("\nThe longest string :\n");
  puts(longest);
  }
  第一处:fun(char (*sq)[N]) 应改为 char * fun(char (*sq)[M])
  第二处:return sq;应改为 return sp;

相关文章