填空题 1.  请补充函数proc(),该函数可以统计一个长度为n的字符串在另一个字符串中出现的次数。
    例如,假定输入的字符串为fjdkad **fdadf fdadjkfdad,子字符串为ad,则应输出4。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
    试题程序:
    #include<stdlib.h>
    #include<stdio.h>
    #include<string.h>
    #include<conio.h>
    int proc(char*str,char*sub)
    {
    int n;
    char*p,*r;
    n=0;
    while(*str)
    {
    p=str;
    r=sub;
    while(______)
    if(*r==*p)
    {
    r++;
    p++;
    }
    else
    ______;
    if(*r=='\0')
    n++;
    str++;
    }
    return ______;
    }
    void main()
    {
    char str[81],sub[3];
    int n;
    system("CLS");
    printf("输入主字符串:");
    gets(str);
    printf("输入子字符串:");
    gets(sub);
    puts(str);
    puts(sub);
    n=proc(str,sub);
    printf("n=%d\n",n);
    }
  • 1、
【正确答案】 1、*r
   break
   n    
【答案解析】 由函数proc()可知,字符指针变量p和r分别指向字符串和子字符串,要对其指向的每一个字符进行比较,除非子字符串结束,因此,第1空处填“*r”;如果当前比较的两个字符相等,则分别指向下一个字符,否则退出本次循环,进行下一次比较,因此,第2空处填“break”;最后,要返回所含子字符串的个数,因此,第3空处填“n”。