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

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

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

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

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

    1、国家二级(C+)机试模拟试卷 167 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列叙述中正确的是( )。(分数:2.00)A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构2.支持子程序调用的数据结构是( )。(分数:2.00)A.栈B.树C.队列D.二叉树3.某二叉树有 5 个度为 2 的结点,则该二叉树中的叶子结点数是( )。(分数:2.00)A.10B.8C.6D.44.下列排序方法中,最坏情况下比较次数最少的是( )。(分数:2.00)

    2、A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序5.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。(分数:2.00)A.编译程序B.操作系统C.教务管理系统D.汇编程序6.下面叙述中错误的是( )。(分数:2.00)A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为 DebugD.软件测试应严格执行测试计划,排除测试的随意性7.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。(分数:2.00)A.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦合性提高内

    3、聚性有利于提高模块的独立性C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度D.内聚性是指模块间互相连接的紧密程度8.数据库应用系统中的核心问题是( )。(分数:2.00)A.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训9.有两个关系 R,S 如下: (分数:2.00)A.选择B.投影C.插入D.连接10.将 E-R 图转换为关系模式时,实体和联系都可以表示为( )。(分数:2.00)A.属性B.键C.关系D.域11.字面常量 42、42、42L 的数据类型分别是( )。(分数:2.00)A.long、double、intB.long、float、intC.int、dou

    4、ble、longD.int、float、long12.执行下列语句段后,输出字符“*”的个数是( )。for(int i=50;i1;-i)cout*;(分数:2.00)A.48B.49C.50D.5113.有如下程序段:int i=0,j=1;nt &r=i;r=j;int*p=&i;*p=&r;其中会产生编译错误的语句是( )。(分数:2.00)A.B.C.D.14.必须用一对大括号括起来的程序段是( )。(分数:2.00)A.switch 语句中的 case 标号语句B.if 语句的分支C.循环语句的循环体D.函数的函数体15.下列符号中不属于 C+关键字的是( )。(分数:2.00)A

    5、.friendB.namespaceC.continueD.byte16.下列有关函数重载的叙述中,错误的是( )。(分数:2.00)A.函数重载就是用相同的函数名定义多个函数B.重载函数的参数列表必须不同C.重载函数的返回值类型必须不同D.重载函数的参数可以带有默认值17.下列有关运算符重载的叙述中,正确的是( )。(分数:2.00)A.运算符重载是多态性的一种表现B.C+中可以通过运算符重载创造新的运算符C.C+中所有运算符都可以作为非成员函数重载D.重载运算符时可以改变其结合性18.在下列原型所示的 C+函数中,按“传值”方式传递参数的是( )。(分数:2.00)A.void f1(in

    6、t x);B.void f2(int * x);C.void f3(const int * x);D.void f4(int &x);19.将前缀运算符“-”重载为非成员函数,下列原型中能正确用于类中说明的是( )。(分数:2.00)A.Deer& operator-(int);B.Deer operator-(Deer&,int);C.friend Deer& operator-(Deer&);D.friend Deer operator-(Deer&,int);20.有如下函数定义:void func(int a,int& b)a+;b+;若执行代码段:int x=0,y=1;func(x

    7、,y);则变量 x 和 y 的值分别是( )。(分数:2.00)A.0 和 1B.1 和 1C.0 和 2D.1 和 221.下列运算符中,不能被重载的是( )。(分数:2.00)A.&B.!=C.D.+22.关于运算符重载,下列表述中正确的是( )。(分数:2.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型D.可以通过运算符重载来创建 C+中原来没有的运算符23.下列关于类定义的说法中,正确的是( )。(分数:2.00)A.类定义中包括数据成员和函数成员的声明B.类成员的缺省访问权限是保护的C.数据成员必须

    8、被声明为私有的D.成员函数只能在类体外进行定义24.有如下程序:#includeiostreamusing namespace std;class Apublic:static int a;void init()a=1;A(int a=2)init();a+;int A:a=0;A obj;int main()coutobja;return0;运行时输出的结果是( )。(分数:2.00)A.0B.1C.2D.325.以下关键字不能用来声明类的访问权限的是( )。(分数:2.00)A.publicB.staticC.protectedD.private26.下列关于派生类构造函数和析构函数的说法

    9、中,错误的是( )。(分数:2.00)A.派生类的构造函数会隐含调用基类的构造函数B.如果基类中没有缺省构造函数,那么派生类必须定义构造函数C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D.在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数27.派生类的成员函数不能访问基类的( )。(分数:2.00)A.公有成员和保护成员B.公有成员C.私有成员D.保护成员28.有如下类定义:class AAint a;Public:AA(int n=0):a(n);class BB:public AApublic:BB(int n) _;其中横线处的缺失部分是( )。(分

    10、数:2.00)A.:a(n)B.:AA(n)C.a(n);D.a=n;29.有如下程序:#includeiostreamusing namespace std;class testprivate:int a;public:test()cout“constructor“endl;test(int a)coutaendl;test(const test&_test)a=_testa;cout“copy constructor“endl:test()cout“destructor“endl;int main()test A(3);return0;执行这个程序的输出结果是( )。(分数:2.00)A.

    11、3B.constructor destructorC.copy constructor destructorD.3 destructor30.若有如下类声明:class MyClasspublic:MyClass()cout1;执行下列语句 MyClass a,b2,*p2;程序的输出结果是( )。(分数:2.00)A.11B.111C.1111D.1111131.有如下程序:#includeiostreamusing namespace std;class Pointpublic:static int number;public;Point()number+;Point()number-;i

    12、nt Point:number=0;int main()Point*ptr;Point A,B;Point*ptr_point=new Point3;ptr=ptr_point;Point C;coutPoint:numberendl:deleteptr;return0;执行这个程序的输出结果是( )。(分数:2.00)A.3B.4C.6D.732.有如下程序:#includeiostreamusing namespace std;class Samplefriend long fun(Sample s);public:Sample(long a)x=a;private:long x;long

    13、 fun(Sample s)if(sx2)return1;return sx*fun(Sample(sx-1);int main()int sum=0;for(int i=0;i6;i+)sum+=fun(Sample(i);coutsum:return0;执行这个程序的输出结果是( )。(分数:2.00)A.120B.16C.154D.3433.有如下程序:class Basepublic:int data;class Derived1:public Base;class Derived2:protected Base;int main()Derived1 d1;Derived2 d2;d1

    14、data=0;d2data=0;return0;下列关于程序编译结果的描述中,正确的是( )。(分数:2.00)A.皆无编译错误B.有编译错误,无编译错误C.无编译错误,有编译错误D.皆有编译错误34.有如下程序:#includeiostreamusing namespace std;class Apublic:A(int i)x=i;void dispa()coutx,;private:int x;class B:public Apublic:B(int i):A(i+10)x=i;void dispb()dispa();toutxendl;private:int x;int main()B

    15、 b(2);bdispb();return0;执行这个程序的输出结果是( )。(分数:2.00)A.10,2B.12,10C.12,2D.2,235.有如下程序:#includeiostreamusing namespace std;class Musicpublic:void setTitle(char*str)strcpy(title,str);protected:char type10;private:char title20;class Jazz:public Musicpublic:void set(char*str)strcpy(type,“Jazz“);strcpy(title,

    16、str);下列叙述中正确的是( )。(分数:2.00)A.程序编译正确B.程序编译时语句出错C.程序编译时语句出错D.程序编译时语句和都出错36.有如下程序:#includeiostreamusing namespace std;class Bookpublic:Book(char*t=“ “)strcpy(title,t);_private:char title40;class Novel:public Bookpublic:Novel(char*t=“ “):Book(t)char*Category()constreturn“文学“;int main()Book*pb;pb=new Nov

    17、el();coutpb-Category();delete pb;return0;若程序运行时输出结果是“文学”,则横线处缺失的语句是( )。(分数:2.00)A.char * Category();B.char * Category()const;C.virtual char * Category()const;D.virtual char * Category()const=0;37.如下函数模板:templateclass TTsquare(T x)return x*x;其中 T 是( )。(分数:2.00)A.函数形参B.函数实参C.模板形参D.模板实参38.下列函数模板的定义中,合法

    18、的是( )。(分数:2.00)A.templatetypename TTabs(T X)return x0?-X:x;B.template classTT abs(T x)return x0?-x:x;C.template Tclass Tabs(T x)return x0?-x:x;D.template T abs(T x)return x0?-x:x;39.在 C+中,cin 是一个( )。(分数:2.00)A.类B.对象C.模板D.函数40.下列控制格式输入输出的操作符中,能够设置浮点数精度的是( )。(分数:2.00)A.setprecisionB.setwC.seffillD.sho

    19、wpoint二、基本操作题(总题数:1,分数:2.00)41.请使用 VC6 或使用【答题】菜单打开考生文件夹 proj1 下的工程 proj1。程序中位于每个“ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:Name:Smith Age:21 ID:99999 CourseNum:12Record:970 注意:只修改每个“ERROR*found*”下的那一行,不要改动程序中的其他内容。#includeiostreamusing namespace std;class Studentlnfoprotected:ERROR*found*char Name;

    20、int Age;int ID:int CourseNum;float Record;public:Studentlnfo(char*name,int Age,int ID,int courseNum,float record);ERROR*found*voidStudentlnfo()float AverageRecord()return RecordCourseNum;void show()constcout“Name:“Name“Age:“Age“ID:“ID“CoumeNum:“CourseNum“Record:“Recordendl;ERROR*found*Studentlnfo St

    21、udentlnfo(char*Name,int Age,int ID,int CourseNumfloat Record)Name=name;Age=age;this-ID=ID;CourseNum=courseNum;Record=record;int main()Studentlnfo st(“Smith“,21,99999,12,970);stshow();return0;(分数:2.00)_三、简单应用题(总题数:1,分数:2.00)42.使用 VC6 打开考生文件夹 proj2 下的工程 proj2,其中有两个类:一是销售类(sale),用于表示按照一件商品的基本价格进行销售;另一个

    22、是打折销售类(DiscountSale)用于表示在基本价格基础上按一个折扣比例进行销售。DiscountSale 类继承了 sale 类。类的土要数据成员的含义和成员函数的功能要求在程序注释中有说明。请在程序中的横线处填写适当的代码,然后删除横线,完成程序的功能。此程序的正确输出结果应为:Discount item is cheaperSaving is01 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容。#includeiostreamusing namespace std;class Salepublic:Sale();默认构造函数,将 price 初始化为 0Sale(dou

    23、ble the_price);构造函数,用 the_price 初始化pricevirtual double bill()const;返回当前商品的价格(基本价)double savings(const Sale&other)const;返回参数 other 所引用的对象比当前对象便宜的差价 protected:double price;商品的基本价格(不打折的价格);Sale:Sale():price(0)Sale:Sale(double the_price):price(the_price)double Sale:bill()constreturn price;double Sale:sa

    24、vings(const Sale&other)const*found*_;返回当前对象价格比 other 贵多少的差价class DiscountSale:public Sale打折销售类继承销售类public:DiscountSale();默认构造函数,将 discount 初始化为 0DiscountSale(double the_price,double the_discount);构造函数,the_price 是基本价格;the_discount 是折扣百分比 virtual double bill()const;返回本商品销售价格(即打折以后的实际售价,覆盖了基类的 bill函数)p

    25、rotected:double discount;折扣百分比。例如降价至原价的 70,此成员值应为 70;DiscountSaie:DiscountSale():discount(0)DiscountSale:DiscountSale(double the_price,double the_discount):Sale(the_price),discount(the_discount)double DiscountSale:bill()constdoubte fraction=discount100;*found*_;返回本对象打折以后的实际售价bool operator(const Sale

    26、&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“_endl;elsecout“Discount item is not cheapern“:return0;(分数:2.00)_四、综合应用题(总题数:1

    27、,分数:2.00)43.请使用 VC6 或使用【答题】菜单打开考生目录 proj3 下的工程文件 proj3,此工程中包含一个源程序文件 proj3cpp,补充编劓 C+程序 proj3cpp,其功能是读取文本文件 indat 中的全部内容,将文本存放到 doc 类的对象 myDoc 中。然后将 myDoc 中的字符序列反转,并输出到文件 outdat 中。文件indat 的长度不大于 1000 字节。要求:补充编制的内容写在“*333*”与“*66666*”两行之间。实现将 myDoc 中的字符序列反转,并将反转后的序列在屏幕上输出。不得修改程序的其他部分。注意:程序最后已将结果输出到文件

    28、outdat 中,输出函数writeToFile 已经给出并且调用。proj3cpp 执ncludeiostream#includefstream#includecstringusing namespace std;class docprivate:char *str;文本字符串首地址 int length;文本字符个数 public:构造函数,读取文件内容,用于初始化新对象,filename 是文件名字符串首地址 doc(char*filename);void reverse();将字符序列反转doc();void writeToFile(char *filename);doc:doc(ch

    29、ar *filename)ifstream myFile(filename);int len=1001,tmp;str=new charlen;length=0;while(tmp=myFileget()!=EOF)strlength+=tmp;strlength=0;myFileclose();void doc:reverse()将数组 str 中的 length 个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个字符交换*333*666*doc:doc()deletestr;void doc:writeToFile(char *filename)ofstream outFile

    30、(filename);outFilestr;outFileclose();void main()doc myDoe(“indat“);myDocreverse();myDocwriteToFile(“outdat“);(分数:2.00)_国家二级(C+)机试模拟试卷 167 答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列叙述中正确的是( )。(分数:2.00)A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 解析:解析:栈是先进后出的线性表,所以

    31、 A 错误;队列是先进先出的线性表,所以 B 错误;循环队列是线性结构的线性表,所以 C 错误。2.支持子程序调用的数据结构是( )。(分数:2.00)A.栈 B.树C.队列D.二叉树解析:解析:栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为 A。3.某二叉树有 5 个度为 2 的结点,则该二叉树中的叶子结点数是( )。(分数:2.00)A.10B.8C.6 D.4解析:解析:根据二叉树的基本性质 3:在任意

    32、一颗二叉树中,度为 0 的叶子结点总是比度为 2 的结点多一个,所以本题中是 5+1=6 个。4.下列排序方法中,最坏情况下比较次数最少的是( )。(分数:2.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序 解析:解析:冒泡排序、直接插入排序与简单选择排序法在最坏情况下均需要比较 n(n-1)2 次,而堆排序在最坏情况下需要比较的次数是 nlog 2 n。5.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。(分数:2.00)A.编译程序B.操作系统C.教务管理系统 D.汇编程序解析:解析:编译软件、操作系统、汇编程序都属于系统软件,只有

    33、 C 教务管理系统才是应用软件。6.下面叙述中错误的是( )。(分数:2.00)A.软件测试的目的是发现错误并改正错误 B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为 DebugD.软件测试应严格执行测试计划,排除测试的随意性解析:解析:软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项 A 错误。程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为 Debug,即排错。软件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避

    34、免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。7.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。(分数:2.00)A.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦合性提高内聚性有利于提高模块的独立性 C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度D.内聚性是指模块间互相连接的紧密程度解析:解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以 A 错误,B 正确。耦合性是模块间互相连接

    35、的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以 c 与 D 错误。8.数据库应用系统中的核心问题是( )。(分数:2.00)A.数据库设计 B.数据库系统设计C.数据库维护D.数据库管理员培训解析:解析:数据库应用系统中的核心问题是数据库的设计。9.有两个关系 R,S 如下: (分数:2.00)A.选择B.投影 C.插入D.连接解析:解析:投影运算是指对于关系内的域指定可引入新的运算。本题中 s 是在原有关系 R 的内部进行的,是由 R 中原有的那些域的列所组成的关系。所以选择 B。10.将 E-R 图转换为关系模式时,实体和联系都可以表示为( )。(分数:2.00

    36、)A.属性B.键C.关系 D.域解析:解析:从 ER 图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,ER 图中属性也可以转换成关系的属性。11.字面常量 42、42、42L 的数据类型分别是( )。(分数:2.00)A.long、double、intB.long、float、intC.int、double、long D.int、float、long解析:解析:本题考查整型变量的类型和浮点变量的类型,42 默认为 int 型数据,42 后面加上 L 后,表示 long 型数据,42 默认为 double 型数据。12.执行下列语句段后,输出字符“*”的个数是( )。for(int

    37、i=50;i1;-i)cout*;(分数:2.00)A.48B.49 C.50D.51解析:解析:本题考查 for 循环语句,-i 表示用之前先减 1,邯么这个 fnr 循环语句只有 50 到 2 时才会输出“*”,所以总共输出 49 次。13.有如下程序段:int i=0,j=1;nt &r=i;r=j;int*p=&i;*p=&r;其中会产生编译错误的语句是( )。(分数:2.00)A. B.C.D.解析:解析:本题考查指针和引用。为引用,使用正确;中r 表示一个地址,而*p 已经是一个值了,不能将一个指针赋值给一个值,所以编译错误。14.必须用一对大括号括起来的程序段是( )。(分数:2

    38、.00)A.switch 语句中的 case 标号语句B.if 语句的分支C.循环语句的循环体D.函数的函数体 解析:解析:本题考查 C+基本控制结构,A、B、C 三个选项中的大括号不是必须的,而 D 选项中的函数体必须使用大括号。15.下列符号中不属于 C+关键字的是( )。(分数:2.00)A.friendB.namespaceC.continueD.byte 解析:解析:本题考查 C+关键字,属于基本常识,显然 D 选项不正确。16.下列有关函数重载的叙述中,错误的是( )。(分数:2.00)A.函数重载就是用相同的函数名定义多个函数B.重载函数的参数列表必须不同C.重载函数的返回值类型

    39、必须不同 D.重载函数的参数可以带有默认值解析:解析:所谓函数重载是指同一个函数名可以对应着多个函数的实现。每种实现对应着一个函数体,这些函数的名字相同,但是函数参数的类型不同,还允许参数的个数不同,但不能只有函数的返回值类型不同而参数的个数和类型相同的重载。所以本题答案为 C。17.下列有关运算符重载的叙述中,正确的是( )。(分数:2.00)A.运算符重载是多态性的一种表现 B.C+中可以通过运算符重载创造新的运算符C.C+中所有运算符都可以作为非成员函数重载D.重载运算符时可以改变其结合性解析:解析:重载运算符的规则如下: C+不允许用户自己定义新的运算符,只能对已有的 C+运算符进行重

    40、载; C+不能重载的运算符只有 5 个; 重载不能改变运算符运算对象的个数; 重载不能改变运算符的优先级和结合性; 重载运算符的函数不能有默认的参数; 重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是 C+的标准类型。故本题答案为 A。18.在下列原型所示的 C+函数中,按“传值”方式传递参数的是( )。(分数:2.00)A.void f1(int x); B.void f2(int * x);C.void f3(const int * x);D.void f4(int &x);解析:解析:函数参数的 3 种传递方式: 将变量名作为形参和实参,即传

    41、值方式; 传递变量指针; 引用形参。其中 B、C 选项都是传递变量指针,D 选项为引用形参,所以本题答案为 A。19.将前缀运算符“-”重载为非成员函数,下列原型中能正确用于类中说明的是( )。(分数:2.00)A.Deer& operator-(int);B.Deer operator-(Deer&,int);C.friend Deer& operator-(Deer&);D.friend Deer operator-(Deer&,int); 解析:解析:非成员函数重载用友元函数的形式实现,“-”运算符重载分为前置和后置两种重载方式。用友元函数来实现“-”运算符的重载时,前置“-”运算符的重

    42、载的一般格式为:friendtyl)eoperator-(ClassName&);后置+运算符的重载的一般格式为:friendtypeoperator-(ClassName&,int)。所以答案为 D。20.有如下函数定义:void func(int a,int& b)a+;b+;若执行代码段:int x=0,y=1;func(x,y);则变量 x 和 y 的值分别是( )。(分数:2.00)A.0 和 1B.1 和 1C.0 和 2 D.1 和 2解析:解析:函数参数的 3 种传递方式: 将变量名作为形参和实参,即传值方式; 传递变量指针; 引用形参。本题中实参 x 为传值方式,所以 x 的

    43、值不会改变;y 为引用形参,所以会改变。故本题答案为 C。21.下列运算符中,不能被重载的是( )。(分数:2.00)A.&B.!=C. D.+解析:解析:C+不能重载的运算符只有 5 个,即“”、“*”、“:”、“?:”、“sizeof”,故本题答案为 C。22.关于运算符重载,下列表述中正确的是( )。(分数:2.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型 D.可以通过运算符重载来创建 C+中原来没有的运算符解析:解析:重载运算符的规则如下: C+不允许用户自己定义新的运算符,只能对已有的 C+运算符

    44、进行重载; C+不能重载的运算符只有 5 个; 重载不能改变运算符运算对象的个数; 重载不能改变运算符的优先级和结合性; 重载运算符的函数不能有默认的参数; 重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是 C+的标准类型。故本题答案为 C。23.下列关于类定义的说法中,正确的是( )。(分数:2.00)A.类定义中包括数据成员和函数成员的声明 B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义解析:解析:类的成员的缺省访问权限是私有的,数据成员可以是私有,可以是公用的,也可以是受保护的。类的成员函数可以

    45、在类内定义。24.有如下程序:#includeiostreamusing namespace std;class Apublic:static int a;void init()a=1;A(int a=2)init();a+;int A:a=0;A obj;int main()coutobja;return0;运行时输出的结果是( )。(分数:2.00)A.0B.1 C.2D.3解析:解析:本题考查构造函数,本题中对类中的 a 数据成员先是赋值为 0,当定义了对象 obj 时,执行构造函数,将 a 的值变为了 1,所以输出 1。25.以下关键字不能用来声明类的访问权限的是( )。(分数:2.0

    46、0)A.publicB.static C.protectedD.private解析:解析:类的成员访问权限有 3 种:public(公用)、protected(保护)、private(私有)。26.下列关于派生类构造函数和析构函数的说法中,错误的是( )。(分数:2.00)A.派生类的构造函数会隐含调用基类的构造函数B.如果基类中没有缺省构造函数,那么派生类必须定义构造函数C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D.在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数 解析:解析:在销毁派生类对象时,先调用派生类的析构函数,再调用基类的析构函数。27.派


    注意事项

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




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

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

    收起
    展开