求几道C++题目的答案

一.定义整数集合类IntSet,该类包括如下成员函数:
1. IntSet(); //类的构造函数,根据需要可以定义多个构造函数
2. Empty(); //清空该整数集合
3. IsEmpty(); //判断整数集合是否为空
4. IsMemberOf(); //判断某个整数是否在该整数集合内
5. Add(); //增加一个整数到整数集合中
6. Sub(); //从整数集合中删除一个整数元素
7. IsEqual(); //判断两个集合是否等价
8. Intersection(); //求两个整数集合的交集
9. Union(); //求两个整数集合的并集
10. Print(); //依次输出该集合的每个元素
该类还包括如下数据成员:
1. element[100]; //保存整数集合数据
2. count; //记录数组中元素的个数
注意:整数集合中不允许有相同元素存在。另外,上述诸函数的参数及其返回类型,
根据需要自定义。

二.设计一个float类型的数组类CFltArray,要求CFltArray可以进行如下操作:
1. 可以重置数组的大小(Resize)
2. 可以通过下标返回数组元素,并对下标越界情况进行检查
3. 可以利用已知数组对象对整个数组赋值和初始化
4. 可以返回当前数组的大小(Size)
最后用数据验证你所设计的类

提示:
1. 利用已知数组对象对整个数组赋值,说明要求重载等号运算符
2. 利用已知数组对象对整个数组初始化,说明要求重载拷贝构造函数
3. 要求用指针存储数组对象中元素

三.设计一个字符串类MyString, 要求该字符串类MyString实现如下运算符重载和操作
1. 关系运算符: 等于(==), 不等于(!=), 小于(<), 大于(>);
2. 算术运算符: 加(+);
3. 赋值运算: =;
4. 下标运算符: [];
要求定义主函数,实现对你定义的字符串类MyString的正确性测试

提示:
1. 假如定义两个字符串类对象s1和s2,且对它们赋值s1为abc,s2为def,那么s1+s2即为abcdef
2. 假如定义一个字符串类对象s1,且对其赋值为abcd,那么 s1[0]为取字符串对象中的第一个字符,即字符a

求几个写的简洁无错的,谢谢
这么简单200分你们都不要= =!

第一个:
#include <iostream.h>

class IntSet
{
private:
int element[100];

public:
int count;
//构造函数,将count设置为0;
IntSet()
{
count = 0;
}
//清空IntSet
void Empty()
{
for(int i=0; i<count; i++)
{
element[i] = NULL;
}
count = 0;
}
//判断是否为空
bool IsEmpty()
{
if(count == 0)
return true;
return false;
}
//判断某个整数是否在该整数集合内
//如果在,则返回该整数的下标,不在,则返回-1;
int IsMemberOf(int num)
{
for(int i=0; i<count; i++)
{
if(element[i] == num)
return i;
}
return -1;
}
//添加成功时返回true;失败时返回false
bool Add(int num)
{
if(count < 100)
{
element[count] = num;
count ++;
return true;
}
else
return false;
}
//删除一个下标为i的元素
//删除成功返回true,失败返回false
bool Sub(int i)
{
if(i < count && i >= 0)
{
for(int j=i; j<count-1; j++)
{
element[j] = element[j+1];
}
count --;
return true;
}
else
return false;
}
//判断是否相等
bool IsEqual(IntSet st)
{
if(count != st.count)
return false;
for(int i=0; i<count; i++)
{
if(st.IsMemberOf(element[i] == -1))
return false;
}
return true;
}
//返回两个IntSet的交集
IntSet Intersection(IntSet st)
{
IntSet result;
for(int i=0; i<count; i++)
{
if(st.IsMemberOf(element[i]) != -1)
result.Add(element[i]);
}
return result;
}
//返回两个IntSet的并集
IntSet Union(IntSet st)
{
IntSet result = st;
for(int i=0; i<count; i++)
{
if(st.IsMemberOf(element[i]) == -1)
result.Add(element[i]);
}
return result;
}
//输出所有的整数
void Print()
{
for(int i=0; i<count; i++)
cout<<element[i];
}
};

void main()
{ }
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-05-28
自己都懒得搜 网上都有
第2个回答  2008-05-30
一点都不难啊
第3个回答  2008-06-03
嗯。一点都不难!就是懒得算。

C++问题,需要详细解答过程,详细!!!
问题一:a=10,b=0 分析:b%=b++||++a可以看成b%=((b++)||(++a)),由于b++为非零,所以表达式=((b++)||(++a))肯定为真,即1,所以程序就不判断++a了,因此a仍然为10,b%=1当然为0了。问题二:d=1 分析:char最大为127,unsigned char最大为255,所以256显然溢出了,所以ch...

几道c++基础练习题,需要详细的分析,谢谢
第一题:a += a -= a * a ; ==》 a += (a -= (a * a));结果为:-264 (编译执行结果一致)。第二题:s = s + 1\/n;由于n为int类型,1\/n为取模运算 n只要大于1 ,1\/n始终为零。第三题:只要定义了变量,如果变量没有初始化,那么编译器在编译的时候变量会赋一...

急求这几个C++问题的答案,英文更佳
3、有、会、解决方法C obj;obj.A::func();3、C\/C++ 里大多数运算符都可以在 C++ 中被重载。只有 . 和 ? :和::和.*不可被重载,此外 sizeof()也不可以被重载。限制是:该组重载函数中任何两个都必须有不同的参量表。具有相同类型参量表、仅在返回值类型上不同的重载函数会引起错误。

C++考试题 求解答
2. 答案是C c.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数(这个不懂)这个就是虚函数的特性,只要派生类的函数与基类的函数同名、同原型,自动为虚函数,d.派生类的虚函数与基类的虚函数具有不同的参数个数和类型(这个求解释)这个如果同名不同参数(不同原型),这个是重载...

c++求答案
++++ ++++ 2)birthday birt 3)5 4 3 2 1 4)34ab56cd 4 5)2 2 6)x=20 y=10 编程第二题:include <iostream> using namespace std;int fun(int n);void main(void){ int prime(int);int i;for(i=1;i<=500;i++){ if(i==fun(fun(i))&&i!=fun(i))cout<<i<<...

C++考试题目求解答解析,小白求解,30分送上!
我发现我想多了。外部标识符是声明在这里,却定义在别的地方的,貌似正好符合这个题意。第15题:a是length的缩写,求长度;b是copy的缩写,复制;c,额,不知道是什么的缩写,记住吧;d是compare的缩写,比较两个字符串的大小。第17题:答案c已经说的很明白了。

求c++习题解答
第三题是 m=m*2 一共循环了10次 就是2的10次方 所以是1024 第四题 可以看出 a=10 b=5 而也第一个循环循环了5次 所以i=5 而第二个循环 可以看出a=10 c=5 但是c是先加在判断 所以循环4次 j=4 第三个循环 a=10 d=5 do while 是先运算 后判断 所以要比上一个...

求解两道C++试题,谢谢
第一题的答案是34,根据你的宏定义,POWER(x)=x*x,所以在解析z=POWER(x+y)时,将其解析为 z=x+y*x+y,带入计算可得z=34。这个结果是不是和你预期的不一样?我想你预期的结果应该是(4+6)*(4+6)=100吧?其实这是c++中的一个很重要的问题,就是在宏定义的时候,应该这样做:#...

谁可以帮我做一下这个C++C语言的作业
我按C++的方式给予判断。一、 基础题(15%)1.定义int n=5,a=12;写出a*=(n%=3);执行后变量n与a的值。【答案】n%=3 取余结果n=2 执行后:n=2;a=24 2.设a=b=5;分别判断表达式的真假:6>a>2与++b==6。【答案】6>a>2 6>5>2,故为真;++b操作是将b值加1,同时整个...

帮忙看几道题C++的简单题目,求答案,多谢了
答案为2的原因,这几个字符分别为 a b \\0 1 8 c \\n 而C语言的字符串是以‘\\0'作为结束标记的,因此有效字符为 a b 共2个 其实这是想当然的结果,不正确。无论如何,不会出现答案为7的结果。7.8 k = i+++4,实际上是k = (i++) + 4 C 语言中使用的贪心法,就是...

相似回答
大家正在搜