下列给定程序中,函数proc()的功能是:首先把b所指字符串中的字符按逆序存放,然后将str1所指字符串中的字符和str2所指字符串中的字符,按排列的顺序交叉合并到str所指数组中,过长的剩余字符接在str所指数组的尾部。例如,当str1所指字符串中的内容

admin2013-03-25  29

问题 下列给定程序中,函数proc()的功能是:首先把b所指字符串中的字符按逆序存放,然后将str1所指字符串中的字符和str2所指字符串中的字符,按排列的顺序交叉合并到str所指数组中,过长的剩余字符接在str所指数组的尾部。例如,当str1所指字符串中的内容为ABCDEFG,str2所指字符串中的内容为1234时,str所指数组中的内容应该为A483C2DIEFG;而当str1所指字符串中的内容为1234,str2所指字符串中的内容为ABCEDFG时,str所指数组中的内容应该为1G2F3E4DCBA。
    请修改程序中的错误,使它能得出正确的结果。
    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
    试题程序:
#include
#include
#include
#include
void proc(char*str1,char*str2,char * str)
{
  int i,j;char ch;
  i=0;j=strlen(str2)-1;
//****found****
  while(i>j)
  {
    ch=str2;str2=str2[j];str2[j]=ch;
    i++;j--;
    }
  while(*str1||*str2)
  {
    if(*str1){*str=*str1;str++;str1++;)
    if(*str2){*str=*str2;str++;str2++;)
  }
  //****found****
  *str=0;
}
void main()
{
  char s1[100],s2[100],t[200];
  system("CLS");
  printf("\nEnter s1 string:");
  scaIif("%s",s1);
  printf("\nEnter s2 string:");
  scanf("%s",s2);
  proc(s1,s2,t);
  printf("\nThe resuh is:%s\n",t);
}

选项

答案(1)错误:while(i>j) 正确:while(i
解析 由函数proc()可知,变量i和j分别存放的是字符串str前面和后面第i个字符的位置,当ij)”应改为“while(i
转载请注明原文地址:https://kaotiyun.com/show/RXJp777K
0

最新回复(0)