全部题库 / C++ / 试题详情
简答题 C++
2013-08-06

使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,补充空出的代码。函数IsPalindromes(char*string)实现的功能是判定给定的字符串是否构成回文字符串,如果是则返回1,否则返回0。
例如:abcdcba或者l234321都认为是回文字符串。
如果串为空或一个字母时,均认为是回文字符串。
注意:不能修改程序的其他部分,只能补充IsPatin-dromes函数。
试题程序:
#include<iostream.h>
#defineMAXLEN1024
boolIsPalindromes(char*string)
{
}
voidmain()
{
charstr[MAXLEN];
cout<<"请输入一行文字"<<erdl;
cin.getline(str,MAXLEN);
cout<<IsPalindromes(str)<<endl;
return;
}

参考答案

暂无

答案解析

intlen=0:
for(;string[len]!=NULL;len++)//获取字符串
的长度
;
len--;//下标从0开始到1en-1
for(inti=0;i<len;i++,len--)//第一个和最后一个比较,第二个和倒数第二个比较
if(string[i]!=string[1en])//不等说明不同,返

回0
return0;
}
return1;
【解析】本题由于字符串的长度是未知的,先利用循环求出字符串的长度,循环变量从0开始,直到数组的末尾,string[len]==NULL为循环结束条件,如此便得到了数组的长度len。知道长度后就可以判断对称位置的元素是否相同,比如第一个元素和最后一个元素,第二个元素和倒数第二个元素,如此比较下去直到到了最中间的元素为止。可以利用循环来比较是否对称,设置另一个循环变量i,i从0开始表示从数组的头部开始读数,len从数组的尾部开始读数,如果string[i]!=slring[len],则跳出循环返回0,如果循环结束还没发现不同,则返回1。

你可能感兴趣的试题

1 使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示个人基本信息的类PInfo,但类PInfo的定义并不完整。请按要求完成下列操作,将类Pin-fo的定义补充完成:
(1)定义私有数据成员bloodType用于表示血型,血型为char型的数据。请在注释1之后添加适当的语句。
(2)完成构造函数的定义,要求具有默认值,默认值为
身高175,体重70,血型A。请在注释2之后添加适当的语句。
(3)完成类PInfo外成员函数SetInfo的定义。请在注
释3之后添加适当的语句。
(4)在主函数main中调用成员函数Setlnfo,把对象d2的3个私有数据成员分别设定为身高170,体重64,血型B。
请在注释4之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
试题程序:
#include<iostream.h>
classPlnfo
{
private:
intheight;
intweight;
//********1********
public:
//********2********
:height(ht),weight(wt),bloodType(bt){};
Plnfo(Plnfo&h1):height(h1.height),
weight(h1.weight),bloodType(h1.bloodType){}
intGetHeight()
{
returnheight;
}
intGetWeight()
{
returnweight;
}
intGetBloodType()
{
returnbloodType;
}
voidSetlnfo(intht,intwt,charbt);
voidDisplay();
};
//********3********
{
height=ht;
weight=wt;
bloodType=bt;
}
voidPlnfo::Display()
{
cout<<"Humanlnf0:";
cout<<height<<"cm,"<<weight<<"Kg,Blood-
Type"<<bloodType<<endl;
}
voidmain()
{
PInfoh1(169,61,'A');
Plnfoh2;
Plnfoh3(h1);
Plnfoh4(h2);
//********4********
h1.Display();
h2.Display();
h3.Display():
h4.Display();
}