【计算机类职业资格】国家二级C++机试(操作题)模拟试卷340及答案解析.doc

上传人:arrownail386 文档编号:1331838 上传时间:2019-10-17 格式:DOC 页数:5 大小:45.50KB
下载 相关 举报
【计算机类职业资格】国家二级C++机试(操作题)模拟试卷340及答案解析.doc_第1页
第1页 / 共5页
【计算机类职业资格】国家二级C++机试(操作题)模拟试卷340及答案解析.doc_第2页
第2页 / 共5页
【计算机类职业资格】国家二级C++机试(操作题)模拟试卷340及答案解析.doc_第3页
第3页 / 共5页
【计算机类职业资格】国家二级C++机试(操作题)模拟试卷340及答案解析.doc_第4页
第4页 / 共5页
【计算机类职业资格】国家二级C++机试(操作题)模拟试卷340及答案解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C+机试(操作题)模拟试卷 340及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 pmjl,此工程中包含了类 Pets(“宠物”)和主函数 main的定义。程序中位于每个“ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: Name:sonny Type:dog Name:John Type:dog Name:Danny Type:eat Name:John Type:dog 注意:只修改每个“ERROR*found*”下的那一行,

2、不要改动程序中的其他内容。#includeiostreamusing namespace st:d;enllm Pets typedog,cat,bird,fish;class PetSprivate: char*name; Pets_type type;public: Pets(const char*flame=”sonny”,Pets_type type=dog); Petsoperator=(const Petss); Pets(); void show()const; ; Pets:Pets(const char*name,Pets type type) /构造函数 this-name

3、=new charstrlen(name)+1; strcpy(this 一name,name); ERROR*found* type=type; Pets:Pets()析构函数,释放 name 所指向的字符串 ERROR*found* name=0; PetsDiscountSale: DiscountSale ( ):discount(0)DiScountSale:DiscountSale(doublethe_price,double the_discount) :Sale(the_price),discount(thediscount)double DiscountSale:bill()

4、const double fraction=discount100 ; *found*_;返回本对象打折以后的实际售价bool operator(const Sale(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.请使用 VC6或使用【答题】菜单打开考生文件夹 proj3下的工程 proj3,其中包含主程序文件maincpp 和用户定义的头文件 Arrayh,整个程序包含有类 Array的定义和主函数 main的定义。请把主程序文件中的 Array类的成员函数 Contrary()的定义补充完整,经补充后运行程序,得到的输出结果应该是: 5 8 5,4,3,2,1 0,0,

5、84,56,45,34,23,12 注意:只允许在“*333*”和“*666*”之间填写内容,不允许修改其他任何地方的内容。Arrayh#includeiostreamusing namespace std;templateclass Type,int mclass Array数组类 public: Array(Type b,int mm) 构造函数 for(int i=0;im;i+) if(imm)ai=bi;else ai=0; void Contrary();交换数组 a中前后位置对称的元素的值 int Length()constreturn m;)返回数组长度 Type operat

6、or(int i)const下标运算符重载为成员函数 if(i0 | i=m)cout“下标越界!“endl;exit(1);) return ai, private: Type am; , void writeToFile(const char*); 不用考虑此语句的作用 maincpp #include”Arrayh” 交换数组 a中前后位置对称的元素的值 templateclass Type,int m void ArrayType,m:Contrary() 补充函数体 *333* *666* int main() int sl5=1,2,3,4,5; double s26=12,23,

7、34,45,56,84); Arrayint,5dl(s1,5); Arraydouble,8d2(s2,6); int i; d1Contrary(); d2Contrary(); coutd1Length()“d2Length()end1; for(i=0;i4;i+) coutd1i”,”; coutd14end1; for(i=0;i7;i+) coutd2i”,”; coutd27end1; writeToFile(”);不用考虑此语句的作用 return 0;(分数:2.00)_国家二级 C+机试(操作题)模拟试卷 340答案解析(总分:6.00,做题时间:90 分钟)一、基本操作

8、题(总题数:1,分数:2.00)1.请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 pmjl,此工程中包含了类 Pets(“宠物”)和主函数 main的定义。程序中位于每个“ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: Name:sonny Type:dog Name:John Type:dog Name:Danny Type:eat Name:John Type:dog 注意:只修改每个“ERROR*found*”下的那一行,不要改动程序中的其他内容。#includeiostreamusing namespace st:d;enl

9、lm Pets typedog,cat,bird,fish;class PetSprivate: char*name; Pets_type type;public: Pets(const char*flame=”sonny”,Pets_type type=dog); Petsoperator=(const Petss); Pets(); void show()const; ; Pets:Pets(const char*name,Pets type type) /构造函数 this-name=new charstrlen(name)+1; strcpy(this 一name,name); ERR

10、OR*found* type=type; Pets:Pets()析构函数,释放 name 所指向的字符串 ERROR*found* name=0; PetsDiscountSale: DiscountSale ( ):discount(0)DiScountSale:DiscountSale(doublethe_price,double the_discount) :Sale(the_price),discount(thediscount)double DiscountSale:bill()const double fraction=discount100 ; *found*_;返回本对象打折以

11、后的实际售价bool operator(const Sale(分数:2.00)_正确答案:(正确答案:(1)return this-bill()-otherbill() (2)return fraction*price (3)return firstbill()secondbill() bill()是返回商品的实际价格 (4)simplesavings(discount)解析:解析:Sale 类有一个数据成员:保护成员 price,表示商品的价格;两个构造函数:默认构造函数SMe()将类成员 price初始化为 0,构造函数 Sale(double the_price)将成员 price初始化

12、为the_price;两个成员函数:bill()函数是一个虚函数,返回 price的值;savings()函数返回参数 other所引用的对象比当前对象便宜的差价 DiscountSale 类继承 Sale类,它有两个数据成员:保护成员 price继承于 Sale类,表示商品价格,保护成员 discount表示商品折扣百分比;两个成员函数:savings()函数继承于 Sale类;bill()函数继承 Sale类并被改写。 main()函数中,首先构造两个类对象:Sale 类对象 simple和 DiscountSale类对象 discount,其中 simple对象的 price被赋值为 1

13、000;discount 对象的 price被赋值为 1100,成员 discount被赋值为 90,即折扣为 90 (1)if 语句的条件中,将discount与 simple进行比较,如果 main()主数的 discount小于 simple,那么说明 discount的实际价格比 simple价格便宜;所以需要重载“”运算符,题意中重载的“”运算符函数接收两个 Sale类对象的引用,通过对象的引用,比较两个对象的实际价格,所以重载“”运算符函数体中,若 first对象引用的商品实际价格小于 second对象引用的商品实际价格,那么函数值返回 true,可知函数体中需要补充的语句如下:

14、return firstbill()secondbill();bill()是返回商品的实际价格 (2)由于bill()是虚函数,且重载“”运算符函数的参数是引用,所以调用 bill()函数时,使用了多态机制,引用的对象是 Sale类对象,调用 Sale类中的 bill()函数,引用的对象是 DiscountSale类对象,那么将调用 DiscountSale类的 bill()函数,bill()函数体中,需要返回的是商品的实际价格,即折扣完的价格,所以需要将返回打过折的价格:DiscountSale 类中,bill()函数体中需要补充的语句如下: return fraction*price (3

15、)savings()函数需要计算当前对象比 other。引用的对象在价格上贵多少,所以savings()函数体中需要补充的语句如下: return this-bill()一 otherbill() 同样,this 指针引用当前对象,other 是引用对象,所以可以与 bill()虚函数一起使用多态机制,获得当前对象和 other对象的实际价格,再进行差值计算 (4)main()函数中,程序判断 discount小于 simple后,输出提示信息,再调用 savings()函数输出 discount和 simple的差值,这里需要计算 discount比 simple节省多少钱,所以需要将 si

16、mple当做当前对象,discount 当做参数传人 savings()函数,所以补充语句如下: simplesavings(discount)三、综合应用题(总题数:1,分数:2.00)3.请使用 VC6或使用【答题】菜单打开考生文件夹 proj3下的工程 proj3,其中包含主程序文件maincpp 和用户定义的头文件 Arrayh,整个程序包含有类 Array的定义和主函数 main的定义。请把主程序文件中的 Array类的成员函数 Contrary()的定义补充完整,经补充后运行程序,得到的输出结果应该是: 5 8 5,4,3,2,1 0,0,84,56,45,34,23,12 注意:

17、只允许在“*333*”和“*666*”之间填写内容,不允许修改其他任何地方的内容。Arrayh#includeiostreamusing namespace std;templateclass Type,int mclass Array数组类 public: Array(Type b,int mm) 构造函数 for(int i=0;im;i+) if(imm)ai=bi;else ai=0; void Contrary();交换数组 a中前后位置对称的元素的值 int Length()constreturn m;)返回数组长度 Type operator(int i)const下标运算符重载

18、为成员函数 if(i0 | i=m)cout“下标越界!“endl;exit(1);) return ai, private: Type am; , void writeToFile(const char*); 不用考虑此语句的作用 maincpp #include”Arrayh” 交换数组 a中前后位置对称的元素的值 templateclass Type,int m void ArrayType,m:Contrary() 补充函数体 *333* *666* int main() int sl5=1,2,3,4,5; double s26=12,23,34,45,56,84); Arrayin

19、t,5dl(s1,5); Arraydouble,8d2(s2,6); int i; d1Contrary(); d2Contrary(); coutd1Length()“d2Length()end1; for(i=0;i4;i+) coutd1i”,”; coutd14end1; for(i=0;i7;i+) coutd2i”,”; coutd27end1; writeToFile(”);不用考虑此语句的作用 return 0;(分数:2.00)_正确答案:(正确答案:for(int i=0,j =m 一 1;ij;i+, j-) i 从 0开始自加,j 从数组最一位开始自减,条件是 ij,开始遍历数组 a Type temp=a i ; 把 ai赋值给变量 temp ai=aj; 把 aj赋值给j aj=temp; 把 temp赋值给 aj,最终使 ai与 aj值的互换 )解析:解析:主要考查考生对交换算法的掌握情况,根据题目对要完成的函数 Contrary的要求:交换数组 a中前后位置对称的元素的值。这里取下标 i=0,即为数组中的第一个元素,j=m 一 1,即为数组中的最后一个元素,利用中间值 temp交换元素的值,然后 i逐次递增的同时 j逐次递减,再交换,循环到ij时停止交换即可。

展开阅读全文
相关资源
猜你喜欢
  • DIN 14424-2005 Firefighting equipment - Explosion-proof portable transfer pump with electric motor - Requirements type and acceptance test《消防设备 带电动机的防爆可携式传送泵 要求、类型和验收试验》.pdf DIN 14424-2005 Firefighting equipment - Explosion-proof portable transfer pump with electric motor - Requirements type and acceptance test《消防设备 带电动机的防爆可携式传送泵 要求、类型和验收试验》.pdf
  • DIN 14425-2017 Firefighting and fire protection - Portable submersible pumps with electrical motor《消防和防火 带电动机的可携式潜水泵》.pdf DIN 14425-2017 Firefighting and fire protection - Portable submersible pumps with electrical motor《消防和防火 带电动机的可携式潜水泵》.pdf
  • DIN 14427-2013 Firefighting equipment - Explosion-proof portable transfer pump for dangerous fluids with electric motor - Requirements testing《消防设备 带电动机的便携式防爆危险液体输送泵 要求 试验》.pdf DIN 14427-2013 Firefighting equipment - Explosion-proof portable transfer pump for dangerous fluids with electric motor - Requirements testing《消防设备 带电动机的便携式防爆危险液体输送泵 要求 试验》.pdf
  • DIN 1445-2011 Clevis pins with head and threaded portion《带头和螺纹部分的马蹄钳栓》.pdf DIN 1445-2011 Clevis pins with head and threaded portion《带头和螺纹部分的马蹄钳栓》.pdf
  • DIN 14452-2016 Portable foam liquid container《便携式泡沫液体容器》.pdf DIN 14452-2016 Portable foam liquid container《便携式泡沫液体容器》.pdf
  • DIN 14461-1-2016 Delivery valve installations for firefighting purposes - Part 1 Wall hydrants with semi-rigid hose《消防用供水阀装置 第1部分 带半硬性软管的墙上消防栓》.pdf DIN 14461-1-2016 Delivery valve installations for firefighting purposes - Part 1 Wall hydrants with semi-rigid hose《消防用供水阀装置 第1部分 带半硬性软管的墙上消防栓》.pdf
  • DIN 14461-2-2009 Delivery valve installations - Part 2 Filling station and output system connected with dry water conduit for fire extinguishing《消防水龙带装置 第2部分 消防用与干式引水管连接的加油站和输出系统》.pdf DIN 14461-2-2009 Delivery valve installations - Part 2 Filling station and output system connected with dry water conduit for fire extinguishing《消防水龙带装置 第2部分 消防用与干式引水管连接的加油站和输出系统》.pdf
  • DIN 14461-3-2016 Delivery valve installations for firefighting purposes - Part 3 Fire hose valves for nominal pressure PN 16《消防用输送阀装置 第3部分 标定压力PN16的水龙带连接阀》.pdf DIN 14461-3-2016 Delivery valve installations for firefighting purposes - Part 3 Fire hose valves for nominal pressure PN 16《消防用输送阀装置 第3部分 标定压力PN16的水龙带连接阀》.pdf
  • DIN 14461-4-2008 Delivery valve installations for firefighting purposes - Part 4 Filling valves PN 16 connected with firefigthing pipes《消防用供水阀装置 第4部分 与消防管连接的进水阀PN 16》.pdf DIN 14461-4-2008 Delivery valve installations for firefighting purposes - Part 4 Filling valves PN 16 connected with firefigthing pipes《消防用供水阀装置 第4部分 与消防管连接的进水阀PN 16》.pdf
  • 相关搜索

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

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