改错题
给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。
例如,若输入:I am a student to take the examination.,
则应输出:I Am A Student To Take The Examination.。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<etype.h>
#include<string.h>
/**********found**********/
include<stdio.h>
/**********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)#include<stdio.h> (2)void upfst(char*p)
【答案解析】头文件引用include前要加#,主函数中fun函数的调用方式说明函数fun的参数应为指针类型。