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