1、国家二级 C+机试(操作题)模拟试卷 137及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 projl下的工程 pmjl,该工程中包含程序文件 main cpp,其中有关 TVSet(“电视机 ”)和主函数 main的定义。程序中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: 规格: 29英寸,电源:开,频道: 5,音量: 18 规格: 29英寸,电源:关,频道:一 1,音量:一 1 注意:只修改每个 “ ERROR*found*”下的那一行,不要改动程序中的其他内容。 #include us ing n
2、amespace std; class TVSet “电视机 ”类 const int Size; int channel; 频道 int volume; 音量 bool on; 电源开关: true表示开, false表示关 public: ERROR*found* TVSet(int Size) this一 Size(size); channel=0; volume=15; on=false; int getSize()constreturn size; ) 返回电视机规格 bool isOn()constreturn on; 返回电源开关状态 返回当前音量,关机情况下返回一 1 int
3、getVolume()constreturn isOn ()?voiume:一 1; ) 返回当前频道,关机情况下返回一 1 int getChannel()constreturn isOn ()?channel:一 1; ERROR*found* void turnOnOff()const将电源在 “开 ”和 “关 ”之间转换 on=!on; ) void setChannelTo(int chan) 设置频道 (关机情况下无效 ) if(isOn() chan=0& chan=0 vol using namespace std; const int MAXELEMENTS=100; 集合最
4、多可拥有的元素个数 clas s Integers int elemMAXELEMENTS; 用于存放集合元素的数组 int counter; 创于记录集合中元素个数的计数器 public: Integers(): counter(O) 创建一个空集合 Integers(int data, int size); 利用数组提供的数据创建一个整数集合 void add(int element); 添加一个元素到集合中 void remove(int element); 删除集合中指定的元素 int getCount()constreturn counter; ) 返回集合中元素的个数 int ge
5、tElement(int i)constreturn elemi; 返回集合中指定的元素 void sort(); 将集合中的整数按由小到大的次序进行排序 void show()const; 显示集合中的全部元素 ; void writeToFile(const char*path); #endif main cpp #include”Integers h” #include Integers: Integers(int data, int size): counter(O) for(int i=0; i=0; J一一 ) if(elemj一 element)break; for(int i=
6、J; ii; j 一 ) 从最后一位到 i到前一位遍历 elem if(elemielemj)如果 elemi大于 elemj,则两值替换 int temp=elemi; 定义整形变量。 temp并赋值为 elemi; elemi =elemj; 给 elemi赋值 elemi elemj=temp; 给 elemj赋值 temp 【试题解析】 本题考查 Integers类,其中涉及数组、构造函数、成员函数、const函数和排序算法。 【解题思路】 主要考查考生对排序算法的掌握,要排序的数组为 elem,元素个数为 counter,在这里使用下标 i和 j进行比较,当 elemielemj时,数组元素通过中间变量 temp进行交换。