欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:497601       资源大小:34KB        全文页数:7页
    • 资源格式: DOC        下载积分:2000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要2000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、国家二级 C+机试(操作题)模拟试卷 501及答案与解析 一、基本操作题 1 请打开考生文件夹下的解决方案文件 proj1,其中在编辑窗口内显示的主程序文件中定义有类 ABC和主函数 main。程序文本中位于每行 “ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: 21 23 注意:只修改每个 “ ERROR*found*”下面的一行,不要改动程序中的其他任何内容。 #include iostream using namespace std; class ABC public: ERROR*found* ABC( )a=0; b=0; c=0; ABC(

    2、int aa, int bb, int cc); void Setab( )+a, +b; int Sum( )return a+b+c; private: int a, b; const int c; ; ABC: ABC(int aa, int bb, int cc): c(cc)a: aa; b=bb; int main( ) ABC x(1, 2, 3), y(4, 5, 6); ABC z, *w=&z; w- Setab( ); ERROR*found* int s1=x Sum( )+y- Sum( ); cout: s1 : ERROR*found* int s2=s1+w S

    3、um( ); cout s2 endl; return0; 二、简单应用题 2 请打开考生文件夹下的解决方案文件 proj2,此工程中包含一个源程序文件main cpp,其中有 “房间 ”类 Room及其派生出的 “办 公室 ”类 Office的定义,还有主函数 main的定义。请在程序中 “ *found*”下的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: 办公室房间号: 308 办公室长度: 5 6 办公室宽度: 4 8 办公室面积: 26 88 办公室所属部门:会计科 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动 “ *fo

    4、und*”。 #1nClude iostream using namespace std; class Room “房间 ”类 int room_no;房间号 double length;房间长度 (m) double width;房间宽度 (m) public: Room(int the_room_no, double the_length, double the_width):room_no(the_room_no), length(the_length), width(the_width) int theRoomNo( )constreturn room_no; 返回房间号 double

    5、 theLength( )constreturn length; )返回房间长度 double theWidth( )constreturn width; )返回房间宽度 *found* double theArea( )const_返回房间面积 (矩形面积 ) ; class Office: publicRoom “办公室 ”类 char*depart;所属部门 publiC: Office(int the_room_no, double the_length, double the_width, const char*the_depart) *found* : _ depart=new c

    6、harstrlen(the_depart)+1; *found* Strcpy(_); Office( )(delete depart; const char*theDepartment( )constreturn depart; 返回所属部门 ; int main( ) *found* Office_; cout “办公室房间号: “ an_office theRoomNo( ) endl “办公室长度: “ an_office theLength( ) endl “办公室宽度: “ an_office theWidth( ) endl “办公室面积: “ an_office theArea

    7、( ) endl “办公室所属部门: “ an_ofrice theDepartment( ) endl; return0; 三、综合应用题 3 请打开考生文件夹下的解决方案文件 proj3,其中声明了 ValArray类,该类在内部维护一个动态分配的整型数组。 ValArray类的复制构造函数应实现对象的深层复制。请编写 ValArray类的复制构造函数。在 main函数中给出了一组测试数据,此种情况下程序的输出应该是: ValArray v1=1, 2, 3, 4, 5 ValArray v2=1, 2, 3, 4, 5 要求: 补充编制的内容写在 “ *333*”与 “ *666*”之间

    8、,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out dat中。输出函数 writeToFile已经编译为boj文件,并且在本程序中调用。 ValArray h #include iostream using namespace std; class ValArray int*v; int size; public: ValArray(const int*p, intn): siZe(n) v=new intsize; for(int i=0; i size; i+) vi=pi; ValArray(const Va2Array&other); ValArray( )(delet

    9、e v; void print(ostream&out)const out ; for(int i=0; i size1; i+) out vi “, “; out vsize-1 ; void setArray(int i, intval) vi=val; ; voidwriteToFile(const char*); main cpp #include“ValArray h“ ValArray: ValArray(constValArray&other) *333* *666* int main( ) const int a =1, 2, 3, 4, 5; ValArray v1(a, 5

    10、); tout “ValArray v1=“: v1 print(cout); couL endl: ValArray v2(v1); cout “ValArray v2=“; v2 print(cout); tout endl: writeToFile(“ “); return0; 国家二级 C+机试(操作题)模拟试卷 501答案与解析 一、基本操作题 1 【正确答案】 (1)ABC( ): a(0), b(0), c(0) (2)int s1=x Sum( )+y Sum( ); (3)int s2=s1+w- Sum( ): 【试题解析】 (1)主要考查考生对构造函数的掌握情况,根据私有

    11、成员的定义:const int c;可知, c为常变量,因此构造函数必须使用成员列表初始化来给 c赋初始值。 (2)主要考查考生对类的指针的掌握情况,根据主函数的第一条语句: ABC x(1,2, 3), y(4, 5, 6);可知, x和 y都是 ABC类,但不是指针,因此它们调用 ABC类的成员函数要使用标识符 “ ”,而不是 “- ”。 (3)主要考查考生对类的指针的掌握情况,根据主函数的第二条语句: ABC z,*w=&z;可知, w是 ABC类的指针,指向 z,因此 w调用 ABC类的 成员函数时要使用标识符 “- ”,而不是 “ ”。 二、简单应用题 2 【正确答案】 (1)ret

    12、urn length*width; (2)Room(the_room_no, the_length, the_width) (3)depart, the_depart (4)an_office(308, 5 6, 4 8, ”会计科 ”) 【试题解析】 (1)主要考查考生对成员函数的掌握,题目要求返回房间面积 (矩形面积 )。由此可知空格部分要填写的是一个 return语句,返回房间面积,也就是length*width,因 此可以得出程序 return length*width;。 (2)主要考查考生对派生类的构造函数的掌握,派生类的构造函数要使用成员列表初始法先对基类进行初始化。 (3)考查

    13、 strcpy函数,由前一条语句 depart=new charstrlen(the_depart)+1;可知,程序给 depart分配了长度为 the_depart串长加 1的空间,因此要复制字符串the_depart串到 depart,直接填写 strcpy(depart, the_depart)即可。 (4)主要考查考生对类的掌握,题目要求输出的 结果为: 办公室房间号: 308 办公室长度: 5 6 办公室宽度: 4 8 办公室面积: 26 88 办公室所属部门:会计科 由 Office类的构造函数可知要定义的一个 ofrice类的对象为 an_office(308,5 6, 4 8,

    14、 “会计科 “)。 三、综合应用题 3 【正确答案】 size=other size; v=newintsize; for(int i=0; i size; i+) setArray(i, other vi); 【试题解析】 主要考查考生对复制构造函数的掌握, ValArray类的复制构造函数应实现对象的深层复制。由 ValArray类的构造函数: valArray(const int*p, int n): size(n) v=new intsize;给 v分配大小为 Size的空间 for(int i=0; i size; i+)遍历 p vi=pi;把 pi赋值给 vi 可知类中 v是动态数组, size表示数组长度,因此要先给 v分配空间为 size,再逐个元素复制以达到对象的深层复制。


    注意事项

    本文([计算机类试卷]国家二级C++机试(操作题)模拟试卷501及答案与解析.doc)为本站会员(amazingpat195)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开