填空题
请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。
例如:str1=“How do”,str2=“you do?”,结果输出:How do you do?
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<conio.h>
#define N 40
void fun(char *str1,char *str2)
{
int i=0;
char *p1=str1;
char *p2=str2;
while({{U}} 【1】 {{/U}})
i++;
for( ;{{U}} 【2】 {{/U}};i++)
*(p1+i)={{U}} 【3】 {{/U}};
*(p1+i)='/0';
}
main()
{
char str1[N],str2[N);
clrscr();
printf("*****Input the string str1 & str2*****/n");
printf("/nstr1:");
gets(str1);
printf("/nstr2:");
gets(str2);
printf("**The string str1 & str2**/n");
puts(str1);
puts(str2);
fun(str1,str2);
printf("*****The new string *****/n");
puts(str1);
}
【正确答案】
1、[1] *(p1+i) [2] *p2 [3] *p2++
【答案解析】[解析] 填空1:变量i用来记录字符串str1的长度,当指针指列宁符串str1结束标志符‘/0’时,while循环结束,变量 i停止累加。填空2:指针p2指向字符串str2,通过for循环将字符中str2按在str1后面,循环结束的条件是指针p2所指的字符是字符串结束标志符‘/0’。填空3:指针p2最初指向字符串str2的首字符,通过自加1,使指针p2依次向后移动,指向str2的各个字符,实现将宁符串str2接在str1后面的功能。