【计算机类职业资格】二级C++-55及答案解析.doc

上传人:sofeeling205 文档编号:1324109 上传时间:2019-10-17 格式:DOC 页数:4 大小:44KB
下载 相关 举报
【计算机类职业资格】二级C++-55及答案解析.doc_第1页
第1页 / 共4页
【计算机类职业资格】二级C++-55及答案解析.doc_第2页
第2页 / 共4页
【计算机类职业资格】二级C++-55及答案解析.doc_第3页
第3页 / 共4页
【计算机类职业资格】二级C++-55及答案解析.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、二级 C+-55及答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:1,分数:30.00)1.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1,其中有枚举 PetType、宠物类Pet和主函数 main的定义。程序中位于每个“/ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: There is a dog named Doggie There is a eat named Mimi There is an unknown animal named Puppy 注意:只修改每个“/ERROR*foun

2、d*”下的那一行,不要改动程序中的其他内容。函数 strcpy(char*p,const char*q)的作用是将 q指向的字符串复制到 p指向的字符数组中。 #include iostream using namespace std; enum PetType DOG, CAT, BIRD, FISH, REPTILE, INSECT, OTHER; class Pet /宠物类 PetType type; /类别 char name20; /名字 public: Pet(PetType type, char name) this -type =type; /将参数 name中的字符串复制到

3、作为数据成员的 namer数组中 / ERROR * found* this -name =name; / ERROR * found* PetType getType () const return PetType; const char* getName () const return name; const char* getTypeString()const switch (type) case DOG: return “a dog“; case CAT: return “a cat“; case BIRD: return “a bird“; case FISH: return “a

4、fish“; case REPTILE: return “a reptile“; case INSECT: return “an insect“; / ERROR * found* return OTHER; void show () const cout “There is“ getTypeString() “named“ name endl; ; int main () Pet a_dog (DOG, “Doggie“); Pet a_cat (CAT, “Mimi“); Pet an_animal (OTHER, “Puppy“); a_dog, show (); a_cat.show(

5、); an_animal, show (); return 0; (分数:30.00)_二、B简单应用题/B(总题数:1,分数:30.00)2.请使用 VC6或使用答题菜单打开考生文件夹 proj2下的工程 proj2,该工程中包含一个源程序文件proj2.cpp。其中定义了模板函数 insert(T dataset,int /请在该部分插入 insert函数模板的实现 template typename T void insert(T setdata, int i size; i+) /*found* if (_) /TODO: 添加代码,判断查找元素的插入位置 for (int j = i

6、; j size; j+) /*found* _; /TODO: 添加一条语句,将插入位置后的所有元素往后移动一个位置 /提示:移动元素应从最后一个元素开始移动 setdatai = item; /插入该元素 size +; return; /* found* _; /TODO: 添加一条语句,将元素加到最后一个位置上 size +; return; int main () int idata10 = 22, 35, 56, 128 ,iitem, isize = 4, dsize = 4, i; double ddata10 = 25.1, 33.5, 48.9, 75.3, ditem;

7、cout “Please input one integer number for inserting:“; cin iitem; insert(idata, isize, iitem); for (i = 0; i isize; i+) cout idatai “; cout endl; cout “Please input one doublenumber for inserting:“; cin ditem; insert(ddata, dsize, ditem); for (i = 0; i dsize; i+) cout ddatai “; cout endl; return 0;

8、(分数:30.00)_三、B综合应用题/B(总题数:1,分数:40.00)3.请使用 VC6或使用答题菜单打开考生文件夹 proj3下的工程文件 proj3,此工程中包含一个源程序文件 proj3.cpp,其中定义了用于表示平面坐标系中的点的类 MyPoint和表示线段的类 MyLine;程序应当显示:(0,0)(1,1)1.41421,1但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:(1)在“/*1* *found*”的下方是构造函数的定义,它用参数提供的两个端点对 point1和point2进行初始化。(2)在“/*2* *found*”的下方是成员函数 length的定义,返回

9、线段的长度。(3)在“/*3* *found*”的下方是成员函数 slope的定义中的一条语句。函数 slope返回线段的斜率,方法是:若线段的两个端点分别是(x 1,y 1)和(x 2,y 2),则斜率 k为:(分数:40.00)_二级 C+-55答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:1,分数:30.00)1.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1,其中有枚举 PetType、宠物类Pet和主函数 main的定义。程序中位于每个“/ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应

10、为: There is a dog named Doggie There is a eat named Mimi There is an unknown animal named Puppy 注意:只修改每个“/ERROR*found*”下的那一行,不要改动程序中的其他内容。函数 strcpy(char*p,const char*q)的作用是将 q指向的字符串复制到 p指向的字符数组中。 #include iostream using namespace std; enum PetType DOG, CAT, BIRD, FISH, REPTILE, INSECT, OTHER; class

11、Pet /宠物类 PetType type; /类别 char name20; /名字 public: Pet(PetType type, char name) this -type =type; /将参数 name中的字符串复制到作为数据成员的 namer数组中 / ERROR * found* this -name =name; / ERROR * found* PetType getType () const return PetType; const char* getName () const return name; const char* getTypeString()const

12、 switch (type) case DOG: return “a dog“; case CAT: return “a cat“; case BIRD: return “a bird“; case FISH: return “a fish“; case REPTILE: return “a reptile“; case INSECT: return “an insect“; / ERROR * found* return OTHER; void show () const cout “There is“ getTypeString() “named“ name endl; ; int mai

13、n () Pet a_dog (DOG, “Doggie“); Pet a_cat (CAT, “Mimi“); Pet an_animal (OTHER, “Puppy“); a_dog, show (); a_cat.show(); an_animal, show (); return 0; (分数:30.00)_正确答案:(1)strcpy(this-name, name); (2)PetType getType()constreturn type; (3)return “an unknown animal“;)解析:考点 本题考查 Pet类,其中涉及 enum类型、构造函数、const

14、 函数和成员函数。 解析 (1)主要考查字符串复制函数 strcpy(),其格式为:strcpy(字符串 1,字符串 2)或 strcpy(指向字符串 1的指针,指向字符串 2的指针),功能是将字符串 2复制到字符串 1中,本题使用第二种格式。 (2)主要考查考生对成员函数的掌握,根据私有成员的定义类型 PetType type,可知要返回的是 type。 (3)主要考查考生对 switch语句的掌握,当在 switch语句体中找不到相应的字段时,跳出 switch语句,程序返回“an unknown animal“。二、B简单应用题/B(总题数:1,分数:30.00)2.请使用 VC6或使用

15、答题菜单打开考生文件夹 proj2下的工程 proj2,该工程中包含一个源程序文件proj2.cpp。其中定义了模板函数 insert(T dataset,int /请在该部分插入 insert函数模板的实现 template typename T void insert(T setdata, int i size; i+) /*found* if (_) /TODO: 添加代码,判断查找元素的插入位置 for (int j = i; j size; j+) /*found* _; /TODO: 添加一条语句,将插入位置后的所有元素往后移动一个位置 /提示:移动元素应从最后一个元素开始移动 s

16、etdatai = item; /插入该元素 size +; return; /* found* _; /TODO: 添加一条语句,将元素加到最后一个位置上 size +; return; int main () int idata10 = 22, 35, 56, 128 ,iitem, isize = 4, dsize = 4, i; double ddata10 = 25.1, 33.5, 48.9, 75.3, ditem; cout “Please input one integer number for inserting:“; cin iitem; insert(idata, is

17、ize, iitem); for (i = 0; i isize; i+) cout idatai “; cout endl; cout “Please input one doublenumber for inserting:“; cin ditem; insert(ddata, dsize, ditem); for (i = 0; i dsize; i+) cout ddatai “; cout endl; return 0; (分数:30.00)_正确答案:(1)itemsetdatai (2)setdatasize+i-j=setdatasize+i-j-1 (3)setdatasiz

18、e=item)解析:考点 本题考查模板函数 insert,其中涉及 for循环、数组和排序。 解析 (1)主要考查考生对 if语句的掌握,题目要求判断查找元素的插入位置。因为要插入的序列是升序排列的,当itemsetdatai时,即为要插入的位置。 (2)主要考查考生对 for循环的掌握,因为要在第 i个位置外插入元素,所以将插入位置后的所有元素往后移动一个位置,移动时应从最后一个位置开始,因此使用语句 setdatasize+i-j=setdatasize+i-j-1;。 (3)主要考查考生对成员函数的掌握,题目要求将元素加到最后一个位置上。size 表示数组的长度,因为数组下标是从 0开始

19、的,所以最后一个位置为 size,即 setdatasize=item;。三、B综合应用题/B(总题数:1,分数:40.00)3.请使用 VC6或使用答题菜单打开考生文件夹 proj3下的工程文件 proj3,此工程中包含一个源程序文件 proj3.cpp,其中定义了用于表示平面坐标系中的点的类 MyPoint和表示线段的类 MyLine;程序应当显示:(0,0)(1,1)1.41421,1但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:(1)在“/*1* *found*”的下方是构造函数的定义,它用参数提供的两个端点对 point1和point2进行初始化。(2)在“/*2* *fo

20、und*”的下方是成员函数 length的定义,返回线段的长度。(3)在“/*3* *found*”的下方是成员函数 slope的定义中的一条语句。函数 slope返回线段的斜率,方法是:若线段的两个端点分别是(x 1,y 1)和(x 2,y 2),则斜率 k为:(分数:40.00)_正确答案:(1)point1(p1),point2(p2) (2)length()const (3)point2.getY()-point1.getY()解析:考点 本题考查 MyPoint类和 MyLine类,其中涉及构造函数、const 函数和成员函数。 解析 (1)主要考查考生对构造函数的掌握,这里使用成员列表初始化给 point1和 point2赋初始值。 (2)主要考查考生对成员函数的掌握,由类的定义中函数的声明:double length()const;/返回线段的长度,可知这里要输入 length()const。 (3)主要考查考生对成员函数的掌握,由函数声明:double slope()const;/返回直线的斜率,可知返回语句要返回直线的斜率,因此要输入:point2.getY()-point1.getY()。

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

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

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