试题与答案

以下程序中函数 huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函

题型:填空题

题目:

以下程序中函数 huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串 yes!,否则函数返回字符串 no!,并在主函数中输出,所谓 回文即正向与反向的拼写都一样,例如:adgda。请填空。#include 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;break;}if(=_______ ) return("yes!");}main()else return("no!"); { char str[50];printf("Input:"); scanf("%s",str); printf("%s\n",=_______ );}

答案:

参考答案:p1+(strlen(str)-1) 或 str+(strlen(str)-1) , t==0 或 !(t!=0) 或 t!=1 或 !t , huiwen(str)

解析:本题的要求是判断从键盘输入的字符串是否是回文,但在主函数中并没有完成此功能的代码,故第20 空应该填调用函数 huiwen 代码,即 huiwen(str)。 由于回文字符串是指正向与反向拼写都一样,所以对于一个字符串,如果正向顺序与反向顺序对应位置上的字符一样,则此字符串即为回文。在函数 huiwen 中,已用“p1=str”使得 p1 指向字符串 str 的第一个字符的地址,则第 18 空语句的功能应该是使得 p2 指向字符串 str 的最后一个字符串的地址,故填p1+(strlen(str)-1),由于 p1 与 str 指向的是同一个地址,所以,第 18 空也可以填 str+(strlen(str)-1)。在进行 for 循环时,如果 p1 所指向的字符与 p2 指向的字符不相同,则说明,字符串 str 不是回文,则用 t=1标记,并退出循环,执行下面的 if 语句,由于题中要求如果是回文,则返回“yes!”,否则,返回“no!”。故当 t=0 的时候,说明字符串 str 为回文,所以第 19 应填 t==0 或 !(t!=0) 或 t!=1 或 !t。

试题推荐
微信公众账号搜索答案