给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到e所指数组中,过长的剩余字符接在c所指的数组的尾部。例如,当a所指字符串中的内容为’’abedefg’’,b所指字符

admin2016-12-06  34

问题 给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到e所指数组中,过长的剩余字符接在c所指的数组的尾部。例如,当a所指字符串中的内容为’’abedefg’’,b所指字符串中的内容为’’1234’’时,e所指数组中的内容应为’’a4b3e2dlefg’’;而当a所指字符串中的内容为’’1234’’,b所指字符串的内容为’’abedefg’’时,c所指数组中的内容应该为’’1g2f3e4dcba’’。
    请改正程序中的错误,使它能得出正确的结果。
    注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
    试题程序:
1  #include<stdio.h>
2   #include<string.h>
3   void fun(char * a,char*b,char*c)
4  {
5    int i,j;char ch;
6    i=0;j=strlen(b)-1;
7   /*********found*********/
8   while(i>j)
9   {ch=b;b=b[j];
10    b[j] = ch;
11    i++,j--;
12  }
13  while(*a ||*b){
14   /*********found*********/
15    Tf(*a)
16   {* c  =  * a,c++,a++;}
17    if(*b)
18    { *c=  * b;c++;b++;  }
19  }
20  *c=0;
21  }
22   main()
23   {
24    char s1[100],s2[100],t[200];
25   printf(’’\nEnter s1 string:’’);
26  scanf(’’%s’’,s1);
27  printf(’’\nEnter s2 string:’’);
28  scanf(’’%s’’,s2);
29   fun(s1,s2,t);
30   printf(’’\nThe result is:%s\n’’,t);
31    }

选项

答案(1)while(i
解析 (1)由i和j定义的初始值可知,此处应该判断i是否小于j,所以应改为while(i(2)此处将if错写成If,这个错误比较简单,但往往不容易发现。
转载请注明原文地址:https://kaotiyun.com/show/jVDp777K
0

最新回复(0)