二、簡單應(yīng)用題
請編寫函數(shù)fun(),該函數(shù)的功能是判斷字符串是否為回文,若是則函數(shù)返回1,主函數(shù)中輸出YES;否則返回0,主函數(shù)中輸出NO。回文是指順讀和倒讀都一樣的字符串。
例如:字符串LEVEL是回文,而字符串123312就不是回文。
注意:部分源程序已存在文件kt11_2.cpp中。
請勿修改主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填寫若干語句。
文件kt11_2.cpp的內(nèi)容如下:
#include
#include
#defineN80
intfun(char*str)
{
}
voidmain()
{ chars[N];
cout<<"Enterastring:"< gets(s); 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 if(str[i]==str[n-1-i]) ; else { fg=0; break; } return fg; } 【試題解析】 本題的解題思路是:先利用循環(huán)中指針的移動(dòng)來求得字符串的長度n,然后用一個(gè)for循環(huán)依次取得數(shù)組中的前半部分元素,用取得的前半部分內(nèi)的元素逐個(gè)與后半部分內(nèi)的對應(yīng)位置的元素進(jìn)行比較,如果相同,不做任何工作,接著取下一個(gè)元素,繼續(xù)比較;如果不相同,可以判斷該字符串肯定不是回文,就給標(biāo)志變量fg賦值0(fg的初始值為1)。最終把fg作為函數(shù)的返回值返回(fg值為1表明是回文,fg值為0表明不是回文)。 相關(guān)推薦: 2014年計(jì)算機(jī)等級考試過關(guān)技巧
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |