填空题 1.  请补充main()函数,该函数的功能是:从键盘输入两个字符串并分别保存在字符数组str1和str2中,用字符串str2替换字符串str1前面的所有字符,且str2的长度不大于str1,否则需要重新输入。
    例如,如果输入str1="abcdefg",str2="hij",则输出“hijdefg”。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
    试题程序:
    #include<stdlib.h>
    #include<stdio.h>
    #include<string.h>
    void main()
    {
    char str1[81],str2[81];
    char *p1=str1,*p2=str2;
    system("CLS");
    do
    {
    printf("Input str1\n");
    gets(str1);
    printf("Input str2\n");
    gets(str2);
    while(______);
    while(______)
    *p1++=*p2++;
    printf("Display str1\n");
    puts(______);
    }
    }
  • 1、
【正确答案】 1、strlen(str1)<strlen(str2)
   *p2
   str1    
【答案解析】 按照题目的要求,用字符串str2替换字符串str1前面的所有字符的条件为:str2的长度不大于str1的长度。因此,第1空处填“strlen(str1)<strlen(str2)”。当str2不结束时,将str2中的每一个字符替换str1前面的所有字符。因此,第2空处填“*p2”。由程序可知,结果字符串存放在变量str1中,因此,第3空处填“str1”。