下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。例如,若输入: I am a student to take the examination 则应输出:I aM A studenT tO take thE examinatioN 请改正程序中的错误,使它能得出正确的结果。 注童:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <conio.h> #include <ctype.h> #include <stdio.h> void fun(char *p) { int k=0; for ( ; *p;p++)if (k) { /*************found**************/ if (p==’’) { k=0; /*************found**************/ *p=toupper(*(p-1)); } }else k=1; } main() {char chrstr[64]; int d; clrscr(); printf("\nPlease enter an English sentence within 63 letters:"); gets(chrstr); d=strlen(chrstr); chrstr[d==’ ’; chrstr[d+1]=0; printf("\nBofore changing:\n %s",chrstr); fun(chrstr); printf("\nAfter changing:\n%s",chrstr); }
参考答案:错误:if(p==’’) 正确:if(*p==’’)
解析:(2)错误:*p=toupper(*(p-1)); 正确:*(p-1)=toupper(*(p-1)); 本题比较简单,重点考查toupper函数的用法,该函数是将ch字符转换成大写字母,该题较多地应用了字符串处理函数。