下列给定程序中,函数fun的功能是:从s所指字符串中,找出t所指字符串的个数作为函数值返回。例如,当s所指字符串中的内容为“abcdabfab”,t所指字符串的内容为“ab”,则函数返回整数3。 请改正程序中的错误,使它能得出正确的结果。

admin2017-01-11  9

问题 下列给定程序中,函数fun的功能是:从s所指字符串中,找出t所指字符串的个数作为函数值返回。例如,当s所指字符串中的内容为“abcdabfab”,t所指字符串的内容为“ab”,则函数返回整数3。
    请改正程序中的错误,使它能得出正确的结果。
    注意:
    不要改动main函数,不得增行或删行,也不得更改程序的结构!
【试题源程序】
#include
#include
#include
#include
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;
}
}
void main()
{
char s[100],t[100];int m;
system("CLS");
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){r++;p++} 正确:if(*r==*p){r++;p++;} (2)错误:if(r==’\O’) 正确:if(*r==’\O’)

解析 错误(1):在经过“if”判断后执行后面括号内的语句时,每条语句应以“;”做结尾,“p++”后面没有分号即是错误。
错误(2):该题目中定义*r为指针变量,r为指针名称,对其所指内容进行判断时应加“*”。
转载请注明原文地址:https://kaotiyun.com/show/8uID777K
0

相关试题推荐
最新回复(0)