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

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年4月27日

  改错题
  下列给定程序中,函数fun的功能是:从s所指字符串中,找出t所指子串的个数作为函数值返回,例如,当s所指字符串中的内容为abcdabfab,t 所指字符串的内容为ab,则函数返回整数3。
  请改正程序中的 错误,使它能得也正确的结果,
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题 程序:
  #include <conio.h>
  #include <stdio.h>
  #include <string.h>
  int fun(char *s, char *t)
  {
  int n;
  char *p, *r;
  n = 0;
  while (*s)
  { 

  p = s;
  r = t;
  while (*r)
  /********found********/
  if (r == p)
  {
  r++;
  p++;
  }
  else
  {
  break;
  }
  /********found********/
  if (r == '\0')
  n++;
  s++;
  }
  return n;
  }
  main()
  {
  char s[100], t[100];
  int m;
  printf("\nPlease enter string s:");
  scanf("%s", s);
  printf("\nPlease enter substring t:");
  scanf("%s", t);
  m = fun(s, t);
  printf("\nThe result is: m=%d\n", m);
  }
  第1处:if (r==p)应改为if(*r==*p)
  第2处:if(r==’\0’)应改为if(*r==’\0’)


相关文章