问答题 1.  编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。
    例如,分别输入下面两个字符串:
    “FirstString--”
    “SecondString”
    程序输出:
    “FirstString--SecondString”
    注意:部分源程序给出如下。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
    试题程序:
    #include<stdlib.h>
    #include<stdio.h>
    #include<conio.h>
    void fun(char p1[], char p2[])
    {
   
    }
    void main()
    {
    char s1[80], s2[40];
    system("CLS");
    printf ("Enter s1 and s2:\n");
    scanf("% s%s", s1, s2);
    printf("s1=% s\n", s1);
    printf("s2=% s\n", s2);
    printf("Invoke fun (s1,s2):\n");
    fun (s1,s2);
    printf("After invoking: \n");
    printf("%s\n", s1);
    }
【正确答案】void fun(char p1[],char p2[])
   {
   int i,j;
   for(i=0;p1[i]!='\0';i++);/*求出的i为p1字符串的总长度,包括结束标记符*/
   for(j=0;p2[j]! ='\0';j++)
   p1[i++]=p2[j];    /*将p2字符串连在p1字符串后面*/
   p1[i]='\0';    /*在字符串最后加上结束标记符*/
   }
【答案解析】[考点]
   本题考查:不使用字符串函数实现字符串连接操作。通过for循环语句来完成,最后需加上字符串结束标识‘\0’。
   
   本题用两个循环完成操作,第1个循环的作用是求出第1个字符串的长度,即将i指到第1个字符串的末尾;第2个循环的作用是将第2个字符串的字符连到第1个字符串的末尾。最后在第1个字符串的结尾加上字符串结束标识‘\0’。