填空题
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、strlen(str1)<strlen(str2)
*p2
str1
【答案解析】 按照题目的要求,用字符串str2替换字符串str1前面的所有字符的条件为:str2的长度不大于str1的长度。因此,第1空处填“strlen(str1)<strlen(str2)”。当str2不结束时,将str2中的每一个字符替换str1前面的所有字符。因此,第2空处填“*p2”。由程序可知,结果字符串存放在变量str1中,因此,第3空处填“str1”。