二、简单应用题
请编写函数fun(),该函数的功能是判断字符串是否为回文,若是则函数返回1,主函数中输出YES;否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。
例如:字符串LEVEL是回文,而字符串123312就不是回文。
注意:部分源程序已存在文件kt11_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数fun的花括号中填写若干语句。
文件kt11_2.cpp的内容如下:
#include #include #defineN80 intfun(char*str) { } voidmain() { chars[N]; cout<<"Enterastring:"< cout<<"/n/n"; puts(s); if(fun(s)) cout<<"YES/n"; else cout<<"NO/n"; } 【参考答案】 int fun(char *str) { int i,n=0,fg=1; char *p=str; while(*p) { n++; p++; } for(i=0;i else { fg=0; break; } return fg; } 【试题解析】 本题的解题思路是:先利用循环中指针的移动来求得字符串的长度n,然后用一个for循环依次取得数组中的前半部分元素,用取得的前半部分内的元素逐个与后半部分内的对应位置的元素进行比较,如果相同,不做任何工作,接着取下一个元素,继续比较;如果不相同,可以判断该字符串肯定不是回文,就给标志变量fg赋值0(fg的初始值为1)。最终把fg作为函数的返回值返回(fg值为1表明是回文,fg值为0表明不是回文)。
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。