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

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

1、二级 C+-52及答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:1,分数:30.00)1.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1,其中在编辑窗口内显示的主程序文件中定义有类 AAA和主函数 main。程序文本中位于每行“/ERROR*found*”下面的一行有错误,请加以改正。改正后程序的输出结果应该是: sum=60 注意:只修改每个“/ERROR*found*”下面的一行,不要改动程序中的其他任何内容。 #include iostream using namespace std; class AAA int a10;

2、int n; /ERROR * found* private: AAA(int aa, int nn): n(nn) /ERROR * found* for(int i=0; in; i+) aai =ai; int Geta(int i) return ai; ; int main() int a6 = 2, 5, 8, 10, 15, 20; AAA x(a, 6); int sum = 0; /ERROR * found* for (int i=0; i6; i+) sum+ =x.ai; cout “sum = “ sum endl; return 0; (分数:30.00)_二、B简

3、单应用题/B(总题数:1,分数:30.00)2.请使用 VC6或使用答题菜单打开考生文件夹 proj2下的工程 proj2,该工程中含有一个源程序文件proj2.cpp。其中定义了类 Set和用于测试该类的主函数 main。类 Set是一个用于描述字符集合的类,在该字符集合中,元素不能重复(将“a”和“A”视为不同元素),元素最大个数为 100。为该类实现一个构造函数 Set(char*s),它用一个字符串来构造一个集合对象,当字符串中出现重复字符时,只放入一个字符。此外,还要为该类实现另一个成员函数 InSet(char c),用于测试一个字符 c是否在一个集合中,若在,则返回 true;否

4、则返回 false。 构造函数 Set和成员函数 InSet的部分实现代码已在文件proj2.cpp中给出,请在标有注释“/TODO:”的行中添加适当的代码,将这两个函数补充完整,以实现其功能。 提示:在实现构造函数时,可以调用 InSet函数来判断一个字符是否已经在集合中。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“/*found*”。 / proj2.cpp #include iostream using namespace std; const int MAXNUM = 100; class Set private: int num; /元素个数 cha

5、r setdataMAXNUM; /字符数组用于存储集合元素 public: Set(char* s); /构造函数,用字符串 bool InSet (char c); /判断一个字符 c是否在集合中,若在,返回 true,否则返回 false void Print () const; /输出集合中所有元素 ; Set:Set(char * s) num= 0; while (* s) /*found* if (_) / TODO: 添加代码,测试元素在集合中不存在 /* found* _; / TODO: 添加一条语句,加入元素至集合中 s+; bool Set:InSet (char c)

6、 for (int i = 0; inum; i+) /*found* if (_) / TOD0: 添加代码,测试元素 c是否与集合中某元素相同 /*found* _; /TODO: 添加一条语句,进行相应处理 return false; void Set:Print() const cout “Set elements: “ endl; for(int i = 0; i num; i+) cout setdatai “; cout endl; int main ( ) char s MAXNUM; cin.getline (s, MAXNUM -1) ; /从标准输入中读入一行 Set s

7、etobj (s); /构造对象 setobj setobj.Print() ; /显示对象 setobj return 0; (分数:30.00)_三、B综合应用题/B(总题数:1,分数:40.00)3.请使用 VC6或使用答题菜单打开考生文件夹 proj3下的工程 proj3,其中声明了 MiniComplex是一个用于表示复数的类。请编写这个 operator+运算符函数,以实现复数的求和运算。两个复数的和是指这样一个复数:其实部等于两个复数的实部之和,其虚部等于两个复数的虚部之和。例如,(23+34i)+(56+35i)等于(79+69i)。 要求: 补充编制的内容写在“/*333*”

8、与“/*666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out.dat中。输出函数 writeToFile已经编译为 obj文件,并且在本程序中调用。 /Minicomplex.h #include iostream using namespace std; class MiniComplex /复数类 public: /重载流插入和提取运算符 friend ostream return osObject; friend istream isObject complex.realPart ch complex.imagPart ch; return isObject;

9、 MiniComplex(double real = 0, double imag = 0); /构造函数 MiniComplex operator + ( constMiniComplex /重载运算符+ private: double realPart; /存储实部变量 double imagPart; /存储虚部变量 ; voidwriteToFile(char * ); /main.cpp #include “MiniComplex.h“ MiniComplex:MiniComplex(double real, double imag) realPart = real; imagPar

10、t = imag; MiniComplex MiniComplex: operator + (constMiniComplex MiniComplex numl (23, 34), num2 (56, 35); cout “Initial Value of Num1 = “numl “/nInitial Value of Num2 =“ num2 endl; cout num1 “ + “ num2 “ = “num1 + num2 endl; /使用重载的加号运算符 writeToFile (“); return 0; (分数:40.00)_二级 C+-52答案解析(总分:100.00,做题

11、时间:90 分钟)一、B基本操作题/B(总题数:1,分数:30.00)1.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1,其中在编辑窗口内显示的主程序文件中定义有类 AAA和主函数 main。程序文本中位于每行“/ERROR*found*”下面的一行有错误,请加以改正。改正后程序的输出结果应该是: sum=60 注意:只修改每个“/ERROR*found*”下面的一行,不要改动程序中的其他任何内容。 #include iostream using namespace std; class AAA int a10; int n; /ERROR * found* pri

12、vate: AAA(int aa, int nn): n(nn) /ERROR * found* for(int i=0; in; i+) aai =ai; int Geta(int i) return ai; ; int main() int a6 = 2, 5, 8, 10, 15, 20; AAA x(a, 6); int sum = 0; /ERROR * found* for (int i=0; i6; i+) sum+ =x.ai; cout “sum = “ sum endl; return 0; (分数:30.00)_正确答案:(1)public: (2)for(int j=0

13、 in; i+) ai=aai; (3)for(int i=0; i6; i+) sum+=x.Geta(i);)解析:考点 本题考查 AAA类,其中涉及数组、构造函数和成员函数。 解析 (1)构造函数肯定是公有成员,所以应使用 public。 (2)主要考查考生对赋值语句的掌握,因为数组 a是私有成员,因此 a应该在左边,而数组 aa是形参,要赋值给数组 a。 (3)主要考查考生对成员函数调用的掌握,数组 a是类的私有成员,因此不能被 main函数直接调用,要通过成员函数 Geta来调用数组 a。 主要考查考生对公有成员的掌握,构造函数只能是公有成员,而私有成员不能被类外函数调用。二、B简

14、单应用题/B(总题数:1,分数:30.00)2.请使用 VC6或使用答题菜单打开考生文件夹 proj2下的工程 proj2,该工程中含有一个源程序文件proj2.cpp。其中定义了类 Set和用于测试该类的主函数 main。类 Set是一个用于描述字符集合的类,在该字符集合中,元素不能重复(将“a”和“A”视为不同元素),元素最大个数为 100。为该类实现一个构造函数 Set(char*s),它用一个字符串来构造一个集合对象,当字符串中出现重复字符时,只放入一个字符。此外,还要为该类实现另一个成员函数 InSet(char c),用于测试一个字符 c是否在一个集合中,若在,则返回 true;否

15、则返回 false。 构造函数 Set和成员函数 InSet的部分实现代码已在文件proj2.cpp中给出,请在标有注释“/TODO:”的行中添加适当的代码,将这两个函数补充完整,以实现其功能。 提示:在实现构造函数时,可以调用 InSet函数来判断一个字符是否已经在集合中。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“/*found*”。 / proj2.cpp #include iostream using namespace std; const int MAXNUM = 100; class Set private: int num; /元素个数 cha

16、r setdataMAXNUM; /字符数组用于存储集合元素 public: Set(char* s); /构造函数,用字符串 bool InSet (char c); /判断一个字符 c是否在集合中,若在,返回 true,否则返回 false void Print () const; /输出集合中所有元素 ; Set:Set(char * s) num= 0; while (* s) /*found* if (_) / TODO: 添加代码,测试元素在集合中不存在 /* found* _; / TODO: 添加一条语句,加入元素至集合中 s+; bool Set:InSet (char c)

17、 for (int i = 0; inum; i+) /*found* if (_) / TOD0: 添加代码,测试元素 c是否与集合中某元素相同 /*found* _; /TODO: 添加一条语句,进行相应处理 return false; void Set:Print() const cout “Set elements: “ endl; for(int i = 0; i num; i+) cout setdatai “; cout endl; int main ( ) char s MAXNUM; cin.getline (s, MAXNUM -1) ; /从标准输入中读入一行 Set s

18、etobj (s); /构造对象 setobj setobj.Print() ; /显示对象 setobj return 0; (分数:30.00)_正确答案:(1)!InSet(*s) (2)setdatanum+=*s (3)c=setdatai (4)return true)解析:考点 本题考查 Set类,其中涉及 const变量、构造函数、const 函数和 bool函数。 解析 (1)主要考查考生对成员函数的掌握,题目要求:添加代码,测试元素在集合中不存在,由类的定义可知函数bool InSet(char c)可以测试字符 c是否在集合中,因此这里直接调用函数 bool InSet(

19、char c)即可。 (2)题目要求:添加一条语句,加入元素至集合中,集合用数组 setdata表示,直接把元素添加到数组中即可。 (3)主要考查考生对 if语句的掌握,题目要求:测试元素 c是否与集合中某元素相同。前一条语句是个 for循环,利用下标 i遍历整个集合,通过 if语句中的判断条件判断 c是否在集合中,用“=”判断。 (4)主要考查考生对成员函数的掌握,先看函数的注释:判断一个字符 c是否在集合中,若在,返回 true,否则返回 false。if 语句成立时,说明字符 c存在于集合中,因此应该返回 true。三、B综合应用题/B(总题数:1,分数:40.00)3.请使用 VC6或

20、使用答题菜单打开考生文件夹 proj3下的工程 proj3,其中声明了 MiniComplex是一个用于表示复数的类。请编写这个 operator+运算符函数,以实现复数的求和运算。两个复数的和是指这样一个复数:其实部等于两个复数的实部之和,其虚部等于两个复数的虚部之和。例如,(23+34i)+(56+35i)等于(79+69i)。 要求: 补充编制的内容写在“/*333*”与“/*666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out.dat中。输出函数 writeToFile已经编译为 obj文件,并且在本程序中调用。 /Minicomplex.h #includ

21、e iostream using namespace std; class MiniComplex /复数类 public: /重载流插入和提取运算符 friend ostream return osObject; friend istream isObject complex.realPart ch complex.imagPart ch; return isObject; MiniComplex(double real = 0, double imag = 0); /构造函数 MiniComplex operator + ( constMiniComplex /重载运算符+ private

22、 double realPart; /存储实部变量 double imagPart; /存储虚部变量 ; voidwriteToFile(char * ); /main.cpp #include “MiniComplex.h“ MiniComplex:MiniComplex(double real, double imag) realPart = real; imagPart = imag; MiniComplex MiniComplex: operator + (constMiniComplex MiniComplex numl (23, 34), num2 (56, 35); cout

23、Initial Value of Num1 = “numl “/nInitial Value of Num2 =“ num2 endl; cout num1 “ + “ num2 “ = “num1 + num2 endl; /使用重载的加号运算符 writeToFile (“); return 0; (分数:40.00)_正确答案:(MiniConmplex sum; /定义复数对象 Sum sum.imagPart = this-imagPart + otherComplex.imagPart; /把 this中的虚部(this-imagPart)和 othercomplex虚部相加赋值

24、给 Sum虚部 sum.realPart = this-tealPart + otherComplex.realPart; /把 this中的实部(this-reapart)加上 othercomplex 实部赋值给 Sum实部 return sum; /返回对象 Sum)解析:考点 本题考查 MiniComplex类,其中涉及友元函数、运算符重载和构造函数。运算符重载首先要理解被重载的运算符的含义,其次要掌握类的定义。 解析 主要考查考生对运算符重载的掌握,题目要求编写 operater+运算符函数,以实现复数的求和与运算。复数的和的实部等于两个复数的实部之和,虚部等于两个复数的虚部之和。函数要返回的类型是 MiniComplex,因此要先定义一个 MiniComplex类型变量 sum,然后对它们的实部和虚部各自求和,返回 sum即可。

展开阅读全文
相关资源
猜你喜欢
  • ASTM D2686-2006 Standard Specification for Polytetrafluoroethylene-Backed Pressure-Sensitive Electrical Insulating Tape《聚四氟乙烯背面压敏电绝缘胶带的规范》.pdf ASTM D2686-2006 Standard Specification for Polytetrafluoroethylene-Backed Pressure-Sensitive Electrical Insulating Tape《聚四氟乙烯背面压敏电绝缘胶带的规范》.pdf
  • ASTM D2686-2006(2012) Standard Specification for Polytetrafluoroethylene-Backed Pressure-Sensitive Electrical Insulating Tape《聚四氟乙烯为基底的压敏电绝缘胶带的标准规格》.pdf ASTM D2686-2006(2012) Standard Specification for Polytetrafluoroethylene-Backed Pressure-Sensitive Electrical Insulating Tape《聚四氟乙烯为基底的压敏电绝缘胶带的标准规格》.pdf
  • ASTM D2687-1995(2001) Standard Practices for Sampling Particulate Ion-Exchange Materials《粒状离子交换材料的取样的标准操作规程》.pdf ASTM D2687-1995(2001) Standard Practices for Sampling Particulate Ion-Exchange Materials《粒状离子交换材料的取样的标准操作规程》.pdf
  • ASTM D2687-1995(2007)e1 Standard Practices for Sampling Particulate Ion-Exchange Materials《粒状离子交换材料的取样的标准实施规程》.pdf ASTM D2687-1995(2007)e1 Standard Practices for Sampling Particulate Ion-Exchange Materials《粒状离子交换材料的取样的标准实施规程》.pdf
  • ASTM D2687-1995(2016) Standard Practices for Sampling Particulate Ion-Exchange Materials《颗粒离子交换材料采样的标准实施规程》.pdf ASTM D2687-1995(2016) Standard Practices for Sampling Particulate Ion-Exchange Materials《颗粒离子交换材料采样的标准实施规程》.pdf
  • ASTM D2688-2005 Standard Test Methods for Corrosivity of Water in the Absence of Heat Transfer (Weight Loss Methods)《无热传递条件下水腐蚀性的标准试验方法(重量损失法)》.pdf ASTM D2688-2005 Standard Test Methods for Corrosivity of Water in the Absence of Heat Transfer (Weight Loss Methods)《无热传递条件下水腐蚀性的标准试验方法(重量损失法)》.pdf
  • ASTM D2688-2011 Standard Test Method for Corrosivity of Water in the Absence of Heat Transfer (Weight Loss Method)《无热传递条件下水腐蚀性的标准试验方法(重量损失法)》.pdf ASTM D2688-2011 Standard Test Method for Corrosivity of Water in the Absence of Heat Transfer (Weight Loss Method)《无热传递条件下水腐蚀性的标准试验方法(重量损失法)》.pdf
  • ASTM D2688-2015 Standard Test Method for Corrosivity of Water in the Absence of Heat Transfer (Weight Loss Method)《无热传递条件下水腐蚀性的标准试验方法 (重量损失法)》.pdf ASTM D2688-2015 Standard Test Method for Corrosivity of Water in the Absence of Heat Transfer (Weight Loss Method)《无热传递条件下水腐蚀性的标准试验方法 (重量损失法)》.pdf
  • ASTM D2688-2015e1 Standard Test Method for Corrosivity of Water in the Absence of Heat Transfer (Weight Loss Method)《水在无传热情况下的腐蚀性的标准试验方法 (重量损失法)》.pdf ASTM D2688-2015e1 Standard Test Method for Corrosivity of Water in the Absence of Heat Transfer (Weight Loss Method)《水在无传热情况下的腐蚀性的标准试验方法 (重量损失法)》.pdf
  • 相关搜索

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

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