问答题 给定程序MODI1.C的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。 例如,若输入:I am a student to take the examination.,则应输出:I Am A Student To Take The Examination.。 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include /************found************/ include /************found************/ 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 ); }
【正确答案】
【答案解析】解题思路: 第一处:包含头文件的标识错误,在include前漏写了#。 第二处:由于传入的参数是字符串,所以应为upfst(char *p)。