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

题目

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

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

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

试题程序:

include <conio.h>

include <string.h>

include <stdio.h>

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

{

int k,q,i,j=0;

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

for(k=m;k>0;k--)

{

q=strlen(str[k]);

j+=q;

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

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

pt+=q;

pt[0]=0;

}

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

pt=j;

}

main()

{int m,h;

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

clrscr();

printf("\nPlease enter m:");

scanf("%d",& m);

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

gets(s[0]);

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的功能是:逐个比较P.q所指两个字符串对应位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的数组中,形成一个新的字符串。

    例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“Abed”,则C中的字符串应为“aBcdeFgH”。请改正程序中的错误,使它能得出正确的结果。

    注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!


    正确答案:
    (1)intk=0;(2)whffe(+pll+q)【考点分析】本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。【解题思路】(1)变量k存放数组c的下标,因此应初始化为0。(2)while循环语句的循环条件是判断两个字符串是否到达结尾。

  • 第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题:

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


  • 第4题:

    下列给定程序中,函数fun的功能是:在形参SS所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回一1。SS所指字符串数组中共有N个内容不同的字符串,且串长小于M。

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

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


    正确答案:
    (1)N(2)i(3)一1【考点分析】本题考查:for循环语句;函数返回值;if语句条件表达式。【解题思路】填空1:变量i是循环变量,它的取值范围是在0到N之间。填空2:如果ss所指字符串数组中的字符串和t所指字符串相同的话,则返回其下标值,即ltttlFni;否则返回一1,即retum一1;填空3:在main函数中输出最后结果,判断函数返回值n,如果n=一1,说明没有找到,否则输出n。

  • 第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’; 解析:本题中函数的功能是将字符串的正序和反序进行连接。题目中首先由字符串的起始位置正序取字符,然后再由串尾逆序取字符,实现正序和逆序的连接。