问题 填空题

请补充函数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( 【1】 )i++; for( ; 【2】 ;i++)*(p1+i)= 【3】 ; *(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] *(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后面的功能。

单项选择题
填空题