问答题
18分
打开考生文件夹proj3下的工程proj3,其中声明了IntSet类,该类是一个用于表示正整数集合的类。IntSet的成员函数Intersection的功能是求当前集合与另一个集合的交集。请完成成员函...
打开考生文件夹proj3下的工程proj3,其中声明了IntSet类,该类是一个用于表示正整数集合的类。IntSet的成员函数Intersection的功能是求当前集合与另一个集合的交集。请完成成员函数Intersection。在main函数中给出了一组测试数据,此时程序的输出应为:
求交集前:
set1: 1 2 3 5 8 10
set2: 2 8 9 11 30 10 67
set3:
求交集后:
set1: 1 2 3 5 8 10
set2: 2 8 9 11 30 10 67
set3: 2 8 10
要求:
补充编制的内容写在//********333********与//********666********两行之间。不得修改程序的其任何部分。
求交集前:
set1: 1 2 3 5 8 10
set2: 2 8 9 11 30 10 67
set3:
求交集后:
set1: 1 2 3 5 8 10
set2: 2 8 9 11 30 10 67
set3: 2 8 10
要求:
补充编制的内容写在//********333********与//********666********两行之间。不得修改程序的其任何部分。
参考解析: 【参考答案】
for (int i = 0; i <=set.GetEnd(); i++)
if (IsMemberOf(set.GetElement(i)))
a[size++] = set.GetElement(i);
【考点分析】
本题考查的是IntSet类,其中涉及构造函数,bool函数,成员函数。本类是一个用于表示正整数集合的类,题目要求填写的函数能实现交集的功能,也就是将两个数组内的元素进行比较,将一样的元素提取出来。
【解题思路】
主要考查考生对数组的掌握,根据IntSet类的构造函数:
IntSet(int a[],int size) // 构造一个包含数组a中size个元素的集合
{
if(size>=Max)
end=Max-1;
else
end=size-1;
for(int i=0;i<=end;i++)
element[i]=a[i];
}
可知数组element用来装载集合,end表示数组长度,因此调用函数IsMemberOf来判断set中的元素是否存在于集合中,如果存在则放入数组a中。
【解题宝典】
主要考查考生对数组的掌握,集合可以用数组来实现,交集就是将两个数组中相同的元素提取出来放入一个新建立的数组。
【举一反三】考生可参考第20、44套的综合应用题进行练习。