首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用菜单命令或直接用VC6打开考生文件夹下的工程proj2,其中有元素类Element和集合类MySet的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的输出结果应为: 0 3 5 8 0 3 8
请使用菜单命令或直接用VC6打开考生文件夹下的工程proj2,其中有元素类Element和集合类MySet的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的输出结果应为: 0 3 5 8 0 3 8
admin
2016-08-19
27
问题
请使用菜单命令或直接用VC6打开考生文件夹下的工程proj2,其中有元素类Element和集合类MySet的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的输出结果应为:
0 3 5 8
0 3 8
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不能删除或移动“//**********found**********”。
1 #inClude
2 #include
3 using namespace std;
4 #define MaxElement 100
5 class Element{ //“元素”类
6 public:
7 int n;
8 Element(int i=0):n(i){)
9 };
10 class MySet {//“集合”类
11 Element*element; //指向存储元素的数组的指针
12 int size; //数组大小
13 int counter; //数组中元素的个数
14 int current; //用于表示扫描位置,及当前被扫描元素在数组中的下标
15 public:
16 MySet():element(new Element[100]),size(100),counter(0),cur-rent(0){)
17 ~MySet(){delete[]element;}
18 void add(Element ele); //向集合中添加一个元素,保持由小到大的顺序。
19 void remOve(Element ele); //删除集合中指定的元素
20 void ScanFirst(){current=0;)//将扫描位置定位于首元素
21 //**********found**********
22 void scanNext(){_____;}//将扫描位置定位于下一个元素
23 Element get()const{return ele-ment[current];}//返回当前被扫描的元素
24 bool isEnded()const{return cur-rent>=counter;}//如果已经没有更多的元素可扫描了,返回true。
25 void show(); //显示集合中所有元素
26 };
27 void MySet::add(Element ele){
28 int pos=counter; //pos用于确定元素应插入的位置
29 while(pos>0){ //从后往前寻找该位置
30 if(ele.n>element[pos-1].n)break; //找到应插入的位置,退出循环
31 //**********found**********
32 if(_______)return;//发现相同元素,终止添加过程。
33 pos--;
34 }
35 if(counter>=size){ //如果没有足够空间,扩充空间(增加100个元素的容量)
36 Element木tmp=element;//tmp指向原来的数组
37 //**********found**********
38 element=______;//申请一个新的数组,容量扩大100个元素的容量
39 for(int i=0;i
=tmp
;
40 size+=100;
41 delete[]tmp;
42 }
43 for(int i=counter;i>pos;i--)element
=element[i-1];//后移相关元素,腾出存放新元素的空间
44 element[pos]=ele;//插入新元素counter++;
45 }
46 void MySet::show(){
47 scanFirst(); //扫描位置定位于首元素
48 while(!isEnded()){
49 cout<
50 //**********found**********
51 _____;//扫描定位于下一个元素
52 }
53 cout<
54 }
55 void MySet::remove(Element ele){
56 int pos=counter-1; //pos用于确定要删除的元素的位置
57 while(pos>=0){//从后往前寻找该位置
58 if(ele.n>element[pos].n)return;//集合中没有该元素,终止删除过程。
59 if(ele.n==element[pos].n)break; //找到删除的元素,退出循环。
60 pos--;
61 }
62 if(pos<0)return; //集合中没有该元素,终止删除过程。
63 for(int i=pos;i
64 element
=element[i+1]; //删除该元素,后面的元素顺序前移。
65 counter--;
66 if(counter+l 00<=size){ //如果未使用的存储单元超过100,缩减存储空间,减少100个单元
67 Element*tmp=element;
68 element=new Element[size-100];
69 for(int i=0;i
70 element
=tmp
;
71 size-=100;
72 delete[]tmp;
73 }
74 }
75 int main(){
76 MySet set;
77 set.add(Element(3));
78 set.add(Element(8));
79 set.add(Element(5));
80 set.add(Element(0));
8l set.show();
82 set.remove(Element(5));
83 set.remove(Element(4));
84 set.add(Element(8));
85 set.show();
86 return 0;
87 }
选项
答案
(1)++current (2)ele.n==element,[pos-1].n (3)new Elementl[size+100] (4)scanNext()
解析
(1)主要考查考生对数组和自增运算符的掌握情况,扫描数组元素,将扫描位置定位到下一个元素,需要将下标加1,使用自增运算符。
(2)主要考查考生对数组元素的访问和比较运算符的掌握,pos初值为数组元素个数,所以访问element元素使用pos-1,避免访问数组越界;另外需要判断插入元素与当前元素是否相等来决定程序是否返回,使用相等运算符。
(3)主要考查考生对动态内存分配的掌握,题意需要申请一个新的数组,并将当前数组容量size扩大100个,所以答案为new Element[size+100]。
(4)主要考查考生对类成员函数的掌握,show函数用来输出数组的所有元素,所以从首元素开始一次输出,输出一个元素需要将扫描定位到下一个元素,对应于前面的scan-First(),使用成员函数scanNext()最合适不过了。
转载请注明原文地址:https://kaotiyun.com/show/QZNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
冒泡排序算法在最好的情况下的元素交换次数为【】。
下列函数中,哪项是正确的递归函数()。AintFun(intn){if(n<1)return1;elsereturnn*Fun(n+1);}B)
结构化程序设计主要强调的是()。
已知某序列为{49,38,65,97,76,13,27},试采用该序列的第一个元素为枢轴进行快速排序,则经过一趟快速排序之后所得到的序列为:【】。
下列叙述不属于线性链表较之线性表顺序存储结构的优点的是()。
一个类的友元函数能够访问该类的
下列SQL语句中,用于修改表结构的是
数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和______两个含义。
下列叙述中正确的是
随机试题
泰乐菌素抗菌作用的机理是抑制细菌()
如图所示一用M20C级普通螺栓的钢板拼接,钢材Q235一A.F。其中fvb=130N/mm2、fbc=305N/mm2、d0=21.5mm。连接盖板所能承受的轴心力设计值为()kN。
建设工程项目管理信息系统(PMIS)是利用计算机辅助进行项目管理的信息系统,它()。
除有特殊情况外,行政复议期间具体行政行为( )。
按是否要求合同必须符合一定的形式才能成立,可将合同分为()。
某单位的足球比赛结束后,小丁说:“只要杨洋参加,我们队就不会输。”小陈说:“如果我和小丁发挥正常,杨洋就不用参加了。”小马说:“杨洋参加了这次球赛,但是没能力挽狂澜。”假如三人中有一人说错并且杨洋确实参加了这次比赛,则可以推出()。
伴随着现今的天文科普之热,是否也应带给其他专业的科普工作者一些启示?比如,要让大众真正了解一个学科,除了灌输知识为主的讲座、海报,能否试试另一种“人文路线”,讲讲学科中体现出的自然之美、人类探索精神之美?当然更重要的,是培养一支愿意全情投入的科普工作者队伍
“滚滚红流染碧空,飘飘巨练舞长虹。千山飞越云追月,万马奔腾虎啸风。”诗歌描绘的历史事件是:
小魏、小雷和小李三个同学在讨论刚参加完的高考。小魏很有把握地说:“我肯定能考上重点大学。”小雷犹豫了一下才说:“重点大学我是考不上了。”小李说:“要是不论重点或不重点,我考上是没有问题的。”结果表明,三人中一人考上了重点大学,一人考上了一般大学,另一人则没
AsFredcan’tbeheretoday,I’mgoingtospeak______.
最新回复
(
0
)