2013年计算机二级考试C++进行模拟测试八_第3页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年3月22日
  二、简单应用题
  请编写一个函数intpattern_index(charsubstr[],charstr[]),该函数执行含通配符"?"的字符串的查找时,该通配符可以与任一个字符匹配成功。当子串substr在str中匹配查找成功时,返回子串substr在str中的位置,否则返回值为0。要求使用for循环实现。输出结果如下:
  子串起始位置:5
  注意:部分源程序已存在文件kt5_2.cpp中。
  请勿修改主函数main和其他函数中的任何内容,仅在函数pattern_index的花括号中填写若干语句。
  文件kt5_2.cpp的内容如下:
  #include
   intpattern_index(charsubstr[],charstr[])
  {
  }
  voidmain()  来源:考
  {
  char*substring,*string;
  intsame;
  substring="???gram";
  string="thisprogramreturnindexofsubstring";
  same=pattern_index(substring,string);
  if(same)
  cout<<"子串起始位置:"<
  else
  cout<<"匹配不成功"<
  }
  【参考答案】
  int pattern_index(char substr[],char str[])
  {int i,j,k;
  for(i=0;str[i];i++)
  for(j=i,k=0;(str[j]==substr[k])||(substr[k]=='?');j++,k++)
  if(!substr[k+1])
  return(i);
  return(0);}
  【试题解析】
  本题主要考查使用for循环和一维数组的能力。对于复杂查找,往往使用for的多重循环。

相关文章