首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用菜单命令或直接用VC6打开考生文件夹下的工程proj2,其中有元素类Element和集合类MySet的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的输出结果应为: 0 3 5 8 0 3 8 注意:只能在横
请使用菜单命令或直接用VC6打开考生文件夹下的工程proj2,其中有元素类Element和集合类MySet的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的输出结果应为: 0 3 5 8 0 3 8 注意:只能在横
admin
2016-06-12
75
问题
请使用菜单命令或直接用VC6打开考生文件夹下的工程proj2,其中有元素类Element和集合类MySet的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的输出结果应为:
0 3 5 8
0 3 8
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不能删除或移动“//*********found*********
{}1nclude
#include
usiog namespace std;
#define MaxElement 100
class Element{ //“元素”类
public:
int n;
Element(int i=0):n(i){)
};
class MySet{//“集合”类
Element*element; //指向存储元素的数组的指针
int Size;//数组大小
int counter; //数组中元素的个数
int current; //用于表示扫描位置,及当前被扫描元素在数组中的下标
public:
MySet():element(new Element[1 00]),size(1 00),counter(0),current(0){)
一MySet(){delete[]element;}
void add(Element ele); //向集合中添加一个元素,保持由小到大的顺序。
void remove(Element ele); //删除集合中指定的元素
void scanFirst(){current=0 ;)//将扫描位置定位于首元素
//*********found*********
void scanNext()(_______;)
//将扫描位置定位于下一个元素
Element get()const{return ele-
ment[current];} //返回当前被扫描的元素
bool isEnded()const{return current>=counter;) //如果已经没有更多的元素可扫描了,返回true。
void show(); //显示集合中所有元素
};
void MySet::add(Element ele){
int pos=counter;//pos用于确定元素应插入的位置
while(pos>0){ //从后往前寻找该位置
if(ele.n>element[pos一1].n)
break; //找到应插入的位置,退出循环
//**********found**********
if()return;
//发现相同元素,终止添加过程。
Pos一一;
}
if(counter>=size){ //如果没有足够空间,扩充空间(增加100个元素的容量)
Element*tmp=element; //tmp指向原来的数组
// **********found**********
element=____________;
//申请一个新的数组,容量扩大100个元素的容量
for(int i=0;i
element
=tmp
;
size+=i00;
delete[]tmp;
}
for(int i=counter;i>pos;
i一一)element
=element[i一1];
//后移相关元素,腾出存放新元素的空间
element[pos]=ele,//插入新元素
counter++;
}
void MySet::show()f
scanFirst(); //扫描位置定位于首元素
while(!isEnded()){
cout<
//**********found**********
; //扫描定位于下一个元素
}
cout<
}
void MySet::remove(Element ele){
int pos=counter一1; //pos用于确定要删除的元素的位置
while(pos>=0){//从后往前寻找该位置
if(ele.n>elen~nt[pos].n)return;
//集合中没有该元素,终止删除过程。
if(ele.n==element[pos].n)
break; //找到删除的元素,退出
循环。
pos一一;
}
if(pos<0)return;//集合中没有该元素,终止删除过程。
for(int i=pos;i
element
=element[i+1]; //删除该元素,后面的元素顺序前移。
counter一;
if(counter+100<=size)( //如果未使用的存储单元超过100,缩减存储空间,减少i00个单元
Element*tmp=element;
element=new Element[size—i00];
for(int i=0;i
element
=tmp
;
Size一=100;
delete[]tmp;
}
}
int main(){
MySet set,
set.add(Element(3));
set.add(Element(8));
set.add(Element(5));
set.add(Element(0));
set.show();
set.remove(Element(5));
set.remove(Element(4)),
set.add(Element(8));
set.show();
return 0,
}
选项
答案
(1)++current (2)ele.n==element[pos一1].n (3)new Element[size+100] (4)scanNext()
解析
本题考查自增运算符、相等运算符,动态内存分配、成员函数的使用。
【解题思路】
(1)主要考查考生对数组和自增运算符的掌握情况,扫描数组元素,将扫描位置定位到下一个元素,需要将下标加1,使用自增运算符。
(2)主要考查考生对数组元素的访问和比较运算符的掌握,pos初值为数组元素个数,所以访问element元素使用pos一1,避免访问数组越界;另外需要判断插入元素与当前元素是否相等来决定程序是否返回,使用相等运算符。
(3)主要考查考生对动态内存分配的掌握,题意需要申请一个新的数组,并将当前数组容量size扩大100个,所以答案为new Element[size+loo]。
(4)主要考查考生对类成员函数的掌握,show函数用来输出数组的所有元素,所以从首元素开始一次输出,输出一个元素需要将扫描定位到下一个元素,对应于前面的scan.First(),使用成员函数scanNext()最合适不过了。
转载请注明原文地址:https://kaotiyun.com/show/6iNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
软件开发环境是全面支持软件开发全过程的【】集合。
以下程序的输出结果是【】。#include<iostream>usingnamespacestd;voidfun(){staticinta=0;a+=2;cout
设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应是【】。
要采用“cin,tout”进行输入输出时,必须包含的头文件是【】。
下列叙述中,不属于数据库系统的是
以于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句应该是()。classMyClass{public:MyClass(intx){n=x;
假定MyClass为一个类,那么下列的函数说明中,()为该类的析构函数。
将一个函数声明为一个类的友元函数必须使用关键字【】。
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
下面叙述错误的是()。
随机试题
女性,38岁,双手指关节疼痛3个月,晨僵一小时左右,对症治疗效果不佳;查体双手第1、2掌指关节,2~4近端指间关节肿胀,压痛明显,X线示双手骨质疏松,可见关节面小囊性改变。此患者最可能的诊断是
男性,50岁,上腹部隐痛不适一年,体重减轻约10kg,自服抑酸剂病情无明显改善,钡餐检查胃窦部一巨大龛影。胃镜及病理诊断为胃癌
根据《建设工程项目管理规范》(GB/T50326),分部分项工程实施前,应由()向有关人员进行安全技术交底。
在矿山建设项目影响工期的因素中,属于设计变更因素对应措施的是()。
某施工企业中标省人民医院门诊楼工程项目,工程完成后审计机关对其进行审计,作出审计结论。对此过程中产生的法律关系,下列说法中正确的是()。
目前全球最大的UCITS基金注册地是在()。
甲企业是增值税一般纳税人,向乙商场销售服装1000件,每件不合税价格为80元。由于乙商场购买量大,甲企业按原价七折优惠销售,乙商场付款后,甲企业为乙商场开具的发票上分别注明了销售额和折扣额,则甲企业此项业务的增值税销项税额是()元。
下列关于诉讼地域管辖的规定中,说法不正确的是()。
阅读下列有关材料,按要求完成任务。材料一《普通高中化学课程标准(实验)》的内容标准举例说明化学能与电能的转化关未及其应用。认识提高燃料的燃烧效率、开发高能清洁燃料和研制新型电池的重要性。材料二某版本教科书《化学2》(必修)的知识结构体系第一章物质结
简述强制许可的类型。
最新回复
(
0
)