有下列程序 #include<stdio.h> int fun(char*s,char*t) { int c=0: char*p,*q; while(*s) { P=s;q=t; wh

admin2017-07-05  34

问题 有下列程序
    #include<stdio.h>
    int fun(char*s,char*t)
    {
    int c=0:
    char*p,*q;
    while(*s)
    {
    P=s;q=t;
    while(*p && *q && *p++  =*q++);
    if(!*q)c++;
    s++;
    }
    return c;
    }
    void main()
    {
    char*str1=’’celebration meeting’’,*str0=’’ti’’;
    printf(’’%d\n’’,fun(str1,str0));
    }
    程序执行后的输出结果是(    )。

选项 A、1
B、0
C、2
D、3

答案C

解析 fun()函数的功能是以第二个字符串作为第一个字符串的子串,判断第一个字符串含有几个子串。首先将两个字符串首字母地址传给相应的形参,将第一个第二个字符串的首字母地址分别赋给p,q,c为计数变量,当第一个字符串中的字母跟第二个字符串中的字母相同时,两个指针都加一,即都往后移动一位继续比较,直到第二个字符串的指针为空指针,即第二个字符串结束,此时代表找到一个子串,c加1,然后第一个字符串的指针继续往后加一,第二个字符串的指针指向第一个字符,继续比较,选项C正确;本题答案为C。
转载请注明原文地址:https://kaotiyun.com/show/HpDp777K
0

最新回复(0)