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

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

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

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

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

    1、国家二级(C+)机试模拟试卷 172 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列关于栈叙述正确的是( )。(分数:2.00)A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除2.下列叙述中正确的是( )。(分数:2.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确3.某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树的深度

    2、为(假设根结点在第 1 层)( )(分数:2.00)A.3B.4C.6D.74.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。(分数:2.00)A.学生成绩管理系统B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统5.结构化程序所要求的基本结构不包括( )。(分数:2.00)A.顺序结构B.GOTO 跳转C.选择(分支)结构D.重复(循环)结构6.下面描述中错误的是( )。(分数:2.00)A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细

    3、设计的表示工具7.负责数据库中查询操作的数据库语言是( )。(分数:2.00)A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言8.一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是( )。(分数:2.00)A.1:1 联系B.1:m 联系C.m:1 联系D.m:n 联系9.有三个关系 R、S 和 T 如下: (分数:2.00)A.自然连接B.并C.交D.差10.定义无符号整数类为 UInt,下面可以作为类 UInt 实例化值的是( )。(分数:2.00)A.-369B.369C.0369D.整数集合1,2,3,4,511.C+语言对 C 语言做了很多改

    4、进,C+语言相对于 C 语言的最根本的变化是( )。(分数:2.00)A.增加了一些新的运算符B.允许函数重载,并允许设置默认参数C.规定函数说明符必须用原型D.引进了类和对象的概念12.下列( )是 C+语言的有效标识符。(分数:2.00)A._NolB.No1C.12345D.int13.设有定义 int x;float y;,则 10+x+y 值的数据类型是( )。(分数:2.00)A.intB.doubleC.floatD.不确定14.下列程序的执行结果为( )。 #include void main() int a=3,b=0; int*p=&a; b=+a+: coutp; (分数

    5、:2.00)A.*p 表示的是指针变量 p 的地址B.p 表示的是变量 a 的地址,而不是变量 a 的值C.*p 表示的是指针变量 p 的值D.*p 只能用来说明 p 是一个指针变量18.假定 int 类型变量占用两个字节,其有定义 int x10=0,2,4;,则数组 x 在内存中所占字节数是( )。(分数:2.00)A.3B.6C.10D.2019.下列选项,不正确的是( )。(分数:2.00)A.for(int a=1;a=C.:D.38.当使用 fstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。(分数:2.00)A.ios:inB.ios:outC.i

    6、os:inios:outD.以上都不对39.下列程序的运行结果是( )。 #include class A int a; public: A()a=0; A(int aa) a=aa; coutp; (分数:2.00)A.*p 表示的是指针变量 p 的地址B.p 表示的是变量 a 的地址,而不是变量 a 的值 C.*p 表示的是指针变量 p 的值D.*p 只能用来说明 p 是一个指针变量解析:解析:p 表示的是变量 a 的地址,定义后*p 表示的是变量 a 的值。18.假定 int 类型变量占用两个字节,其有定义 int x10=0,2,4;,则数组 x 在内存中所占字节数是( )。(分数:2

    7、.00)A.3B.6C.10D.20 解析:解析:x 数组共有 10 个元素,在花括号内只提供 3 个初值,这表示只给前面的 3 个成员赋值,后7 个元素的值为 0,所以,一共有 20 个字节。19.下列选项,不正确的是( )。(分数:2.00)A.for(int a=1;a=C.: D.解析:解析:不能被重载的运算符还包括:“”、“*”、“- *”和“?:”。38.当使用 fstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。(分数:2.00)A.ios:inB.ios:outC.ios:inios:outD.以上都不对 解析:解析:使用 fstream 类建立

    8、文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。39.下列程序的运行结果是( )。 #include class A int a; public: A()a=0; A(int aa) a=aa; coutA.00B.23 C.34D.25解析:解析:本题考查的是对构造函数的掌握,另外“+”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加 1。40.下面程序的输出结果是( )。 #include class example int a; public: example(int b)a=b+; void print()a=a+1;couta“ “; void prin

    9、t()constcouta“ “; ; void main() example x(3); const example y(2); xprint(); yprint(); (分数:2.00)A.2 2B.4 3C.4 2 D.3 2解析:解析:“+”是右结合的,所以先赋值为 3,最后输出 3+1;常成员函数只有常对象才能调用,所以输出 2。二、基本操作题(总题数:1,分数:2.00)41.请使用 VC6 或使用【答题】菜单打开考生文件夹 proj1 下的工程 proj1,该工程含有一个源程序文件proj1cpp。其中位于每个注释“ERROR *found*”之后的一行语句存在错误。请改正这些错

    10、误,使程序的输出结果为: The value is 10 注意:只修改注释“ERROR *found*”的下一行语句,不要改动程序中的其他内容。 proj1cpp #includeiostream using namespace std; class MyClass int valHe; public: ERROR *found* void MyClass(int val):value(val) int GetValue() const return value; void SetValue(int val); ; ERROR *found* inline void SetYalue(int

    11、val)value=val; int main() MyClass obi(o);obiSetValue(10); ERROR *found* 下列语句功能是输出 obj 的成员 value 的值 cout“The value is“objvalueendl; return 0; (分数:2.00)_正确答案:(正确答案:(1)MyClass(int val):value(val) (2)void MyClass:SetValue(int val) Value=val: (3)cout“The value is“objGetValue()endl:)解析:解析:(1)考查构造函数,定义构造函数

    12、时不能使用 void,直接使用 MyClass(int val)即可。 (2)主要考查成员函数定义,类的成员函数定义时要使用前缀 Myclass,而 inline 是内联函数的关键字,在此是错误的,应该删掉 inline 并在函数名前加上前缀 MyClass,即 void MyClass:SetValue(int Val)Value=val:。 (3)考查成员函数调用,value 是私有成员,在主函数中不能直接调用 value,可以使用成员函数 GetValue()来得到 value 的值。三、简单应用题(总题数:1,分数:2.00)42.使用 VC6 打开考生文件夹 proj2 下的工程 p

    13、roj2,其中有两个类:一是销售类(sale),用于表示按照一件商品的基本价格进行销售;另一个是打折销售类(DiscountSale),用于表示在基本价格基础上按一个折扣比例进行销售。DiscountSale 类继承了 sale 类。类的主要数据成员的含义和成员函数的功能要求在程序注释中有说明。请在程序中的横线处填写适当的代码,然后删除横线,完成程序的功能。此程序的正确输出结果应为: Discount item is cheaper Saving is 01 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容。#includeiostream using namespace std;c

    14、lass Salepublic: Sale();默认构造函数,将 price 初始化为 0 Sale(double the_price);构造函数,用the_price 初始化 price virtual double bill()const;返回当前商品的价格(基本价) double savings(const Sale&other)const;返回参数 other 所引用的对象比当前对象便宜的差价protected: double price;商品的基本价格(不打折的价格);Sale:Sale():price(0)Sale:Sale(double the_price):price(the_

    15、price)double Sale:bill()const return price;double Sale:savings(const Sale&other)const *found* _;返回当前对象价格比 other 贵多少的差价class DiscountSale:public Sale打折销售类继承销售类public: DiscountSale();默认构造函数,将 discount 初始化为 0 DiscountSale(double the_price,double the_discount);构造函数,the_price 是基本价格;the_discount 是折扣百分比 vi

    16、rtual doublle bill()const;返回本商品销售价格(即打折以后的实际售价,覆盖了基类的bill 函数)protected: double discount;折扣百分比。例如降价至原价的 70,此成员值应为 70:DiscountSale:DiscountSale():discount(0)DiscountSale:DiscountSale(double the_price,double the_discount) :Sale(the_price),discount(the_discount)double DiscountSale:bill()const double fra

    17、ction=discount100; *found* _;返回本对象打折以后的实际售价bool operator(const Sale&first,const Sale&second) *found* _;判断是否 first 价格低于 second 价格int main() Sale simple(1000); DiscountSale discount(1100,90); if(discountsimple) cout“Discount item is cheapern“: *found* 这里输出购买discount 比购买 simple 节省多少钱 cout“Saving is“_en

    18、dl; else cout“Discount item is not cheapern“; return 0;(分数:2.00)_正确答案:(正确答案:(1)return this-bill()-otherbill() (2)return fraction 水 price (3)return firstbill()secondbill()bill()是返回商品的实际价格 (4)simplesavings(discount)解析:解析:Sale 类有一个数据成员:保护成员 price,表示商品的价格;两个构造函数:默认构造函数Sale()将类成员 price 初始化为 0,构造函数 Sale(d

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

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

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

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

    23、scount 和 simple 的差值,这里需要计算 discount 比simple 节省多少钱,所以需要将 simple 当做当前对象,discount 当做参数传入 savings()函数,所以补充语句如下: simplesavings(discount)四、综合应用题(总题数:1,分数:2.00)43.使用 VC6 打开考生文件夹下的工程 proj3,其中包含主程序文件 mainepp 和用户定义的头文件Arrayh,整个程序包含有 XArray 类的定义和 main 主函数的定义。请把主程序文件中的 XArray 类的成员函数 sum()的定义补充完整,补充的内容填写在“*333*“

    24、与“*666*“两行之间。经修改后运行程序,得到的输出为: 10 d=43 注意:只允许在“*333*“和*666*“两行之间填写内容,不允许修改其他任何地方的内容。Arrayh#includeiostream#ineludeestdlibusing namespaee std;class XArray数组类 int*a: int size;public: XArray(int b,int len):size(1en)构造函数 if(size2)cout“参数不合适“endl;exit(1); a=new intsize; for(int i=0;isize;i+)ai=bi; int sam

    25、();返回数组 asize中的最大值与最小值之和 int length()constreturn size;返回数组长度 XArray()deletea;void writeToFile(const char*);不用考虑此语句的作用maincpp#include“Arrayh“返回数组 asize中的最大值与最小值之和 int XArray:sum()补充函数体 *333* *666* void main() int s110=23,15,19,13,26,33,18,30,20,10; XArray x(s1,10); int d=xsum(); coutx1ength()endl; co

    26、ut“d=“dendl: writeToFile(“c:test“);不用考虑此语句的作用 (分数:2.00)_正确答案:(正确答案:int xArray:sum()补充函数体 int i,max=a0,min=a0; for(i=1;isize;i+) if(maxai) max=ai; if(minai) min=ai; return max+min; )解析:解析:Xarray 类中包含两个数据成员:a 是数组的指针,size 是数组的长度。main()函数中使用数组 s1 构造 Xarray 对象 x,此时对象 x 中,a 是包含 10 个整型元素的数组指针,size 是 10。成员函数sum()的作用是求得数组 asize中最大值和最小值之和,所以函数体中需要遍历 a 的 10 个元素,找出最大值 max 和最小值 min,再将两者之和返回,程序首先将数组 a 的第一个元素赋给。max 和 min,然后从下标为 1 的元素开始向后遍历,遍历过程中,将当前遍历到的元素与 max 和 min 比较,存在比 max 大的元素时,更新 max 值;存在比 min 小的元素时,更新 min 值,最后将两者之和作为函数值返回。


    注意事项

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




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

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

    收起
    展开