首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用菜单命令或直接用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
24
问题
请使用菜单命令或直接用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://jikaoti.com/ti/67E0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序:#include<iostream>usingnamespacestd;classsample{private:intn;public:sample(){}
如下图所示的4棵二叉树中,不是完全二叉树的是()。
下面程序输出的结果是#include<iostream.h>voidmain(){inti;inta[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;<3;i++)cout<
下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在划线处应填入的选项是#include<iostream.h>Voidmain(){inti=0,j,k;do{i++;k=316-
已知有定义constintD=5;inti=1;doublef=0.32;charc=15;则下列选项错误的是
下列叙述中,不正确的是()。
软件开发离不开系统环境资源的支持,其中必要的测试数据属于
以下程序企图把从键盘终端输入的字符输出到名为abc.txt的文件中,当从终端读到字符’#’时,结束输入和输出操作。但该程序有错。#include<iostream>#include<fstream>usingnamesp
程序流程图中的菱形框表示的是【】。
在关系数据库中,用来表示实体之间联系的是
随机试题
男性,14岁,检查发现贫血貌。血红蛋白95g/L,脾肋下5cm可及,无自觉症状。网织红细胞计数7.8%;周围血片见较多靶形红细胞;血清铁1250μg/dl,红细胞渗透脆性降低。下列哪项检查在此病例应异常
A室间质控B室内检测C变异系数D平均值E标准差Levy—Jewrling质控图中是以上列哪项来定值限的
正确选用劳动防护用品是保证劳动者安全与健康的前提,下列不属于选用劳动防护用品基本原则的是()。
【背景材料】某火力发电厂工程,业主采用交钥匙合同。为此,业主依法进行了公开招标,并委托某监理公司代为招标。在该工程招标过程中,相继发生了下述事件。事件一:招标公告发布后,有10家单位参加了资格预审报名。监理人员经过对这10家单位进行资格审查
根据《石油库设计规范》(GB50074-2014)对石油库储存油品的火灾危险性细化分类,乙A类对应的油品闪点范围是()℃。
业主委员会委员资格终止后,该业主应当自()起限定时间内将其保管的档案资料、印章及其他属于业主大会所有的财物移交给业主委员会。
园林中的空窗除采光通风外,在园林艺术上常作为取景的画框。()
善意取得的要件。[南京大学2015年;武大2014年研]
综合国力
BenBuchananandAMagicBookTheTexasteenisdevouringthe672pagesofHarryPotterandtheHalf-BloodPrincewrittenby
最新回复
(
0
)