一、填空题:
请补充main函数,该函数的功能是:从键盘输入两个字符串并人别保存在字符数组成str1 t 和str2中,用字符串str2 替换字符串联str1前面的所有字符,注意:str2的长度不大于str1, 否则需要重新输入.
例如,如果输入不敷出str1=”abced”,str2=”gg”, 则输出ggced.
仅在横线上填入所编写的若干表达式语句,勿改动函数的其它任何内容.
#include
#include
main()
{
char str1[81], str2[81];
char *p1 = str1, *p2 = str2;
do
{
printf(" Input str1 \n");
gets(str1);
printf(" Input str2 \n");
gets(str2);
} while (strlen(str1) ___1___ strlen(str2));
while (___2___)
*p1++ = *p2++;
printf(" Display str1 \n");
puts(___3___);
}
参考答案:
第1处填空:<
第2处填空:*p2或p2[0]
第3处填空:str1
二、改错题:
下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此本行(这里的”单词”是反指由空格隔开的字符串).例如,若输入I am a student to take the examination,则应输出Am A Student To Take The Examination.
请改正程序中的错误,使程序能得出正确的结果.
注意;不要动main函数,不得增行或删行,也不得更改程序的结构
#include
#include
#include
/********found********/
void upfst(char p)
{
int k = 0;
for (; *p; p++)
if (k)
{
if (*p == ' ')
k = 0;
}
else
{
if (*p != ' ')
{
k = 1;
*p = toupper(*p);
}
}
}
main()
{
char chrstr[81];
printf("\nPlease enter an English text line: ");
gets(chrstr);
printf("\n\nBefore changing:\n %s", chrstr);
upfst(chrstr);
printf("\nAfter changing:\n %s\n", chrstr);
}
参考答案:
第1处void upfst(char p)改为void upfst(char *p)
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |