niusouti.com

下列给定程序中,函数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

题目

下列给定程序中,函数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;

clrscr();

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);

}


相似考题
更多“下列给定程序中,函数fun()的功能是:从s所指字符串中,找出t所指字符串的个数作为函数值返回。例如, ”相关问题
  • 第1题:

    下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长小于N。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。


    正确答案:
    (1)M(2)<(3)k【考点分析】本题考查:for循环语句的循环条件;if语句条件表达式;return语句完成函数值的返回。【解题思路】填空1:题目指出88所指字符串数组中共有M个字符串,所以for循环语句循环条件是i<M。填空2:要求求长度最短的字符串,tn中存放的是已知字符串中长度最短的字符串的长度,这里将当前字符串长度与+nl七较,若小于tn,则将该长度值赋给+n,因此if语句的务件表达式为len<+n。填空3:将最短字符串的行下标作为函数值返回,变量-储存行下标的值。

  • 第2题:

    给定程序MODll.C中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。

    例如:当s所指的字符串为:“ABCDE”时,则t所指的字符串应为:“EDCBAABCDE”。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)int isl; (2)t[i]=s、[sl-i-1];
    (1)int i,sl; (2)t[i]=s、[sl-i-1]; 解析:本题中函数的功能是先将字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。解题思路是首先对字符串进行逆序存放,然后再把字符串正序连接在串后。

  • 第3题:

    函数strcmp( )的功能是对两个字符串进行比较,当s所指字符串和t所指字符串相等时,返回值为0;

    当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于

    0(功能等同于库函数strcmp( ) ),请填空。

    include <stdio.h>

    int strcmp ( chat * s, char * t)

    { while( * s && * t && * s=【 】

    { s++;t++; }

    return 【 】;

    }


    正确答案:* 或t[0] * s- *t 或 * s-t[0]或s[0]- * t或s[0]-t[0]
    * 或t[0] * s- *t 或 * s-t[0]或s[0]- * t或s[0]-t[0] 解析:对字符串比较的方法是依次对两字符串对应位置上的字符两两比较,当出现第一对不相同的字符时,即由这两个字符(ASCⅡ码值)决定所在串的大小。

  • 第4题:

    给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。

    例如,形参s所指的字符串为:This is a C languageprogram.,函数的返回值为6。

    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

    注意:源程序存放在考生文件夹下的BLANKl.C中。

    不得增行或删行,也不得更改程序的结构!


    正确答案:(1)n++ (2)0 (3)s++
    (1)n++ (2)0 (3)s++ 解析:本题中函数fun的功能是计算出形参s所指字符串中包含的单词个数,作为函数值返回。单词之间是以空格隔开的,因此在字符串里面搜索空格,找到一个空格则单词数量加1,如此搜索完整个字符串便可得到单词数量。

  • 第5题:

    给定程序MODll.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。

    例如,当s所指字符串为:“ABCD”时,则t所指字符串中的内容应为:“ABCDDCBA”。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)void fun(char*s char*t) (2)t[2*d]=‘\0’;
    (1)void fun(char*s, char*t) (2)t[2*d]=‘\0’; 解析:本题中函数的功能是将字符串的正序和反序进行连接。题目中首先由字符串的起始位置正序取字符,然后再由串尾逆序取字符,实现正序和逆序的连接。