以下程序中函数huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函数数返回字符串:yes!否则函数返回这符串:no!并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。请填空 #include <string.h>

admin2009-01-15  66

问题 以下程序中函数huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函数数返回字符串:yes!否则函数返回这符串:no!并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。请填空
    #include <string.h>
    char*huiwen(char    *str)
    {   char  *p1,*p2;   int  i,t=0;
        pl=str;   p2=______;
         for(i=0;i<=strlen(str)/2;i+*)
              if(*p1++!=*p2--){t=1;break;}
                  if(______)  return("yes!");
                  else         return(*no!");
    }
   main()
    {  char  str[50];
        printf("Input:");   scanf("%s",str);
        printf("%s\n",______);
    }

选项

答案str+strlen(p1)-1或str+strlen(str)-1残str-1+strlen(str)或3tr-1+strlen(p1) t==0或!t或t==’\0’ huiwen(str)

解析 判断回文教一般使用两个指针或下标变量分别从检查串的第1个字符和最后一个字符开始相向移动,并比较两者内容是否相同,直到中间相遇一直相同则是回文数,否则不是。函数huiwen中开始定义了两个字符指针p1和p2,并让p1指向str的开始位置,所以p2应该指向str的尾部,即&str[strlen(sir)-1]或写成 str+strlen(str)-1或者其他等价形式。然后使用一个循环,循环str的长度的一半次数,比较p1和p2的内容,并分别递增和递减这两个指针。若有不同,则让标志t为1,并跳出循环。所以最后一个if语句应该为判断标志t是否为1,即应该填t==0或者其他等价形式。在主函数中,应该输出huiwen()函数的返回结果,印最后一空应该填huiwen(str)。
转载请注明原文地址:https://kaotiyun.com/show/3BXp777K
0

最新回复(0)