下列给定程序中,函数fun()的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指字符串中,例如:把3个串abc,CD,EF串联起来,结果是abcCDEF。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <conio.h>include <string.h>include <stdio.h>/*************found**************/int fun(char str[] [1

题目

下列给定程序中,函数fun()的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指字符串中,例如:把3个串abc,CD,EF串联起来,结果是abcCDEF。

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

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

试题程序:

include <conio.h>

include <string.h>

include <stdio.h>

/*************found**************/

int fun(char str[] [10],int m, char *pt)

{ int k,q,i,j=0;

for(k=0;k<m;k++)

{ q=strlen(str[k]);

j+=q;

for(i=0;i<q;i++)

/*************found**************/

pt[i]=str[k,i];

pt+=q;

pt[0] =0;

}

pt-=j;

}

main ( )

{ int m, h;

char s[10] [10],p[120];

clrscr ();

printf("\nPlease enter m: ");

scanf("%d",&m); gets(s[0]);

printf ("\nPlease enter %d string:In ",m);

for(h=0;h<m;h++) gets(s[h]);

fun (s,m,p);

printf("\nThe result is :%s\n ",p);

}


相似考题
更多“下列给定程序中,函数fun()的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指字符串 ”相关问题
  • 第1题:

    有以下函数: fun(char*a,char*b) { while((*a!='\'0 & &(*b!='\0') & &(* a = * b)) {a++;b++;} return(*a-*b); } 该函数的功能是 ______。

    A.计算a和b所指字符串的长度之差

    B.将b所指字符串连接到a所指字符串中

    C.将b所指字符串连接到a所指字符串后面

    D.比较a和b所指字符串的大小


    正确答案:D
    解析:字符串的比较规则是对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到 '\0'为止,相等,则返回0,否则返回第一个不等字符串的ASCII码的差值。

  • 第2题:

    下列给定程序中,函数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:将最短字符串的行下标作为函数值返回,变量-储存行下标的值。

  • 第3题:

    将两个字符串连接起来组成一个字符串时,选用的字符串函数为()。

    Astrlen()

    Bstrcpy()

    Cstrcat()

    Dstrcmp()


    C

  • 第4题:

    下列给定程序中,函数fun的功能是:从形参SS所指字符串数组中,删除所有串长超过k的字符串,函数 返回剩余字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。

    请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANKl.C中。

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


    正确答案:
    (1)N(2)k(3)ss[i]【考点分析】本题考查:for循环语句;ff语句条件表达式;字符串拷贝函数strcpy的使用。【解题思路】填空1:for循环语句作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是i<N。填空2:题目要求删除串长度小于k的字符串,所以if条件语句的条件表达式是len<=k。。填空3:通过字符串拷贝函数将串长不大于k的字符串另存,并记录个数。【解题宝典】字符串拷贝函数strcpy,其格式为:strcpy(字符数组名1,字符数组名2)功能:把字符数组2中的字符串拷贝到字符数组l中。字符串结束标识‘、0’也一同拷贝。字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。

  • 第5题:

    下列给定程序中,函数proc()的功能是:将m(1≤m≤10)个字符串反着连接起来,组成一个新串,放入pt所指字符串中,例如,把“ab、cd、ef9”3个字符串反着串连起来,结果是efgcdab。

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

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

    试题程序:


    正确答案:

    (1)错误:for(k=-m;k>0;k——)
    正确:for(k=m-1;k>=0;k——)
    (2)错误:pt=j;
    正确:pt-=j;