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

admin2009-01-15  31

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

选项

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

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

相关试题推荐
最新回复(0)