问题 问答题

给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指的数组的尾部。例如,当a所指字符串中的内容为“abcdefg”,b所指字符串中的内容为“1234”时,c所指数组中的内容应“a4b3c2dlefg”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdefg”时,c所指数组中的内容应该为“lg2f3e4dcba”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#include <string.h>
void fun (char*a, char*, char *c)

inti, j; char ch;
i=0; j=strlen(b)-1;
/******************found*******************/
while(i>j)
ch=b[i]; b[i]=b[j]; b[j]=ch;
i++; j--;

while (*a|| *b)
/******************found*******************/
If(*a)
*c=*a; c++; a++;
if(*b)
*c=*b; c++; b++;

*c=0;

main()

char s1[100], s2[100], t[200];
printf("\nEnter s1 string:"); scanf("%s", s1);
printf("\nEnter s2 string:"); scanf("%s", s2);
fun(s1, s2, t);
printf("\nThe result is: %s\n", t);

答案

参考答案:(1) while(i<j)
(2) if(*a)

解析: (1)将字符串中字符逆序存放,循环条件是i<j,所以应改为while(i<j)。
(2)书写错误,将If改为if。

单项选择题
单项选择题