改错题      给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。
    例如,若输入: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的参数应为指针类型。