填空题 请补充函数proc(),该函数的功能是:把从主函数中输入的字符串str2倒置后接在字符串str1后面。
例如,str1=“How do you”,str2=“?od”,结果输出:“How do you do?”
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define M 40
void proc(char*str1, char*str2)
{
int i=0, j=0, k=0, n;
char ch;
char *p1=str1;
char *p2=str2;
while(*(pl+i))
i++;
while(*(p2+j))
j++;
n= 1;
for(; k<=j/2; k++, j--)
{
ch=*(p2+k);
*(p2+k)=*(p2+j);
*(p2+j)=ch;
}
2;
for(; 3; i++)
*(p1+i)=*p2++;
*(p1+i)="/0";
}
void main()
{
char str1[M], str2[M];
system("CLS");
printf("***Input the string str1 & str2***/n");
prind("/nstr1:");
gets(str1);
printf("/nstr2:");
gets(str2);
printf("***The string str1 & str2***/n");
puts(str1);
puts(str2);
proc(str1, str2);
printf("***The new string***/n");
puts(str1);
}
【正确答案】
【答案解析】j-- *(p2+n)="/0" *p2[解析] 由函数proc()可知,变量n存放的是字符串p2的长度,因此,第一处填“j--”;根据题目中要求要将str2逆置,逆置完成后要为该字符串重新添加结束符,因此,第二处填“*(p2+n)="/0"”;将逆置后的str2接到str1后面,直到str2的最后一个字符,因此,第三处填“*p2”。