下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。例如,若输入: I am a student to take the examination 则应输出:I aM

admin2010-05-05  20

问题 下列给定的程序中,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);
   }

选项

答案(1)错误:if(p==’’) 正确:if(*p==’’) (2)错误:*p=toupper(*(p-1)); 正确:*(p-1)=toupper(*(p-1));

解析 本题比较简单,重点考查toupper函数的用法,该函数是将ch字符转换成大写字母,该题较多地应用了字符串处理函数。
转载请注明原文地址:https://jikaoti.com/ti/aKkiFFFM
0

最新回复(0)