请补充函数fun(),该函数的功能是判断一个数是否为回文数。当字符串是回文时,函数返回字符申:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:abcba。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include<string.h> #include<stdio.h> char *fun(char*str) { char *p1,*p2; int i, t=0; p1=str;p2=str+strlen(str)-1; for (i=0; 【1】 ;i++) if( 【2】 ) { t=1; break; } if ( 【3】 ) return("yes!"); else return("no!"); } main() { char str[50]; printf("Input;"); scanf("%s",str); printf("%s\n",fun(str)); }
参考答案:[1] i<=strlen(sb)/2或i<strlen(sw)/2 [2] *p1++!=*p2-- [3] t==20
解析: 填空1:判断回文数就是将第一个字符与最后—个字符比较,第二个字符与倒数第二个字符进行比较,依此类推,直到中间的字符,如果比较的结果都是相同,则这个字符串就是回文数,否则不是。所以比较的次数是strlen(str)/2。填空2:指针p1从第一个字符向后移动,指针p2从最后一个字符向前移动,如果两字符不相同,则说明此字符串不是回文数,将标记变量t置为1。填空3:变量t用来标记此字符串是否为回文数,当t为0时,表示字符串是回文数,当t为1时,表示字符串不是回文数。