[计算机类试卷]国家二级C++机试(操作题)模拟试卷461及答案与解析.doc

上传人:medalangle361 文档编号:497556 上传时间:2018-11-28 格式:DOC 页数:8 大小:38KB
下载 相关 举报
[计算机类试卷]国家二级C++机试(操作题)模拟试卷461及答案与解析.doc_第1页
第1页 / 共8页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷461及答案与解析.doc_第2页
第2页 / 共8页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷461及答案与解析.doc_第3页
第3页 / 共8页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷461及答案与解析.doc_第4页
第4页 / 共8页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷461及答案与解析.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、国家二级 C+机试(操作题)模拟试卷 461及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,其中有枚举 DOGCOLOR、狗类 Dog和主函数 main的定义。程序中位于每个 “ERROR*found*”下的语句行有错误,请加以改正。改正后程序的输出结果应该是: There is a white dog named Hoho There is a black dog Named Haha There is a motley dog named Hihi 注意:只修改每个 “ ERROR*found*”下的那一行,不要改动程序中的

2、其他内容。 #include using namespace std; 狗的颜色:黑、白、黄、褐、花、其他 enum DOGCOLORBLACK, WHITE, YELLOW, BROWN, PIEBALD,OTHER; class Dog 狗类 DOGCOLOR color; char name20; static int count; public: Dog(char name, DOGCOLOR color) strcpy(this-name, name); ERROR*found* strcpy(this-color, color); DOGCOLOR getColor()constr

3、eturn color; ERROR*found* const char* get; Name() constreturn*name; const char* getColor String()const switch(color) case BLACK: return“black“; case WHITE: return“white“; case YELLOW: return“yellow“; case BROWN: return“brown“; case PIEBALD: return“piebald“; return“motley“; void show()corlst tout; #i

4、nclude using namespace std; class Base1 public: *found* 下列语句需要声明纯虚函数 Show_; ; class Base2 protected: char*_p, Base2(const char*s) p=new charstrlen(s)+1; *found* 下列语句将形参指向的字符串常量复制到该类的字符数组中 _; Base2()delete_p; ; *found* Derived类公有继承 Base1,私有继承 Base2类 class Derived: _ public: *found* 以下构造函数调用 Base2类构造函

5、数 Derived(const char *s): _ void Show() coutShow(); delete pb; return 0; 三、综合应用题 3 请使用 VC6或使用【答题】菜单打开考生文件夹 proj3下的工程 proj3,其中包含了类 Integers和主函数 main的定义。一个 Integers对象就是一个整数的集合,其中包含 0个或多个可重复的整数。成员函数 add的作用是将一个元素添加到集合中,成员函数 remove的作用是从集合 中删除指定的元素 (如果集合中存在该元素 ),成员函数 sort的作用是将集合中的整数按升序进行排序。请编写这个 sort函数。此程

6、序的正确输出结果应为: 5 28 2 4 5 3 2 75 27 66 31 5 28 2 4 5 3 2 75 27 66 31 6 5 28 2 4 5 3 2 75 27 66 31 6 19 5 28 4 5 3 2 75 27 66 31 6 19 5 28 4 5 3 2 75 27 66 31 6 19 4 2 3 4 4 5 5 6 19 27 28 31 66 75 要求: 补充编制的内容写在 “ *333*”与 “*666*”之间。不得修改程序的其他部分。 注意:相关文件包括: main cpp、 Integers h。 程序最后调用 writeToFile函数,使用另一组

7、不同的测试数据, 将不同的运行结果输出到文件 out dat中。输出函数 writeToFile已经编译为 obj文件。 Integers h #ifndef INTEGERS #define INTEGERS #include using namespace std; const int MAXELEMENTS=100; 集合最多可拥有的元素个数 class Integers int elemMAXELEMENTS; 用于存放集合元素的数组 int counter; 用于记录集合中元素个数的计数器 public: Integers(): counter(O) 创建一个空集合 Integers

8、(int data, intSize); 利用数组提供的数据创建一个整数集合 void add(int element); 添加一个元素到集合中 void remove(int element); 删除集合中指定的元素 int getCount()constreturn counter; ) 返回集合中元素的个数 int getElement(int i)constreturn elemi; 返回集合中指定的元素 void sort(); 将集合中的整数按由小到大的次序进行排序 void show()const; 显示集合中的全部元素 ; void writeToFile(const char

9、*path); #endif main cpp #include“Integers h“ #include Integers: Integers(int data , int size): counter(0) for(int i=0; i=0; J-) if(elemj=element) break; for(int i=j; icolor=color; (2)const char getName()constreturn*name; (3)Dog dogl(“Hoho“, WHITE), dog2(“Haha“, BIACK), dog3(“Hihi“, OTHER); 【试题解析】 (1

10、)主要考查考生对 strcpy函数的掌握,如果看到上一条语句strcpy(this-name, name);,就以为本条语句也要用 strcpy函数来赋值 ,这是错误的。 Strcpy函数只能复制字符串,根据类的私有成员声明可知, color是DOGCOLOR型的,这里直接使用赋值语句 “=”即可。 (2)主要考查考生对函数返回值的掌握,先解读语句 const char*getName()constreturn*name; ,要返回的是一个 const的字符指针,同时函数内的值不能改变, name在类的私有成员声明中是个字符数组, *name代表字符数组而不是字符指针,问题就出来了,需要修改返

11、回类型: const char getName()constreturn*name; 。 (3)语法错误,定义变量时,变量之间应使用 “, ”分开。 二、简单应用题 2 【正确答案】 (1)vinual void Show()=0 (2)strcpy(_p, s) (3)public Base1, private Base2 (4)Base2(s) 【试题解析】 (1)主要考查的是纯虚函数的定义。题目要求声明纯虚函数 Show,因此首先看 Base1类的派生类 Deftred类中 Show函数的定义: void Show() couti; j-) 从最后一位到 i到前一位遍历 elem if(elemielemj) 如果 elemi大于 elemj,则两值替换 int temp=elemi; 定义整形变量 temp并赋值为 elemi; elemi=elemj; 给 elemi赋值 elemi elemj=temp; 给 elemj赋值 temp 【试题解析】 主要考查考生对排序算法的掌握,要排序的数组为 elem,元素个数为 counter,在这里使用下标 i和 j进行比较,当 elemielemj时,数组元素通过中间变量 temp进行交换。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1