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

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

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

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

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

    1、国家二级(C+)机试模拟试卷 166 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列数据结构中,属于非线性结构的是( )。(分数:2.00)A.循环队列B.带链队列C.二叉树D.带链栈2.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。(分数:2.00)A.循环队列B.栈C.队列D.二叉树3.对于循环队列,下列叙述中正确的是( )。(分数:2.00)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针4.算法的空间复杂度是指( )。(分数:2.00)

    2、A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数5.软件设计中划分模块的一个准则是( )。(分数:2.00)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合6.下列选项中不属于结构化程序设计原则的是( )。(分数:2.00)A.可封装B.自顶向下C.模块化D.逐步求精7.软件详细设计产生的图如下: (分数:2.00)A.NS 图B.PAD 图C.程序流程图D.ER 图8.数据库管理系统是( )。(分数:2.00)A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系

    3、统9.在 ER 图中,用来表示实体联系的图形是( )。(分数:2.00)A.椭圆形B.矩形C.菱形D.三角形10.有三个关系 R,S 和 T 如下: (分数:2.00)A.选择B.投影C.交D.并11.下列符号中可以用做 C+标识符的是( )。(分数:2.00)A._radiusB.foobarC.elseD.3room12.下列各组类型声明符中,含义相同的一组是( )。(分数:2.00)A.unsigned long int 和 longB.signed short int 和 shortC.unsigned short 和 shortD.short int 和 int13.必须用一对大括号

    4、括起来的程序段是( )。(分数:2.00)A.switch 语句中的 case 标号语句B.if 语句的分支C.循环语句的循环体D.函数的函数体14.语句 int*p=&k;定义了指针 p,与这个语句等效的语句序列是( )。(分数:2.00)A.int*p;p=&k;B.int*p;p=k;C.int*p;*p=&k;D.int*p;*p=k;15.执行下列语句段后,输出字符“*”的个数是( )。for(int i=50;i1;i-=2)cout*;(分数:2.00)A.24B.25C.26D.5016.下列关于运算符重载的叙述中,错误的是( )。(分数:2.00)A.有的运算符可以作为非成员

    5、函数重载B.所有的运算符都可以通过重载而被赋予新的含义C.不得为重载的运算符函数的参数设置默认值D.有的运算符只能作为成员函数重载17.对 C+编译器区分重载函数无任何意义的信息是( )。(分数:2.00)A.参数类型B.参数个数C.返回值类型D.常成员函数关键字 const18.运算符重载时不需要保持的性质是( )。(分数:2.00)A.操作数个数B.操作数类型C.优先级D.结合性19.下列关于函数的描述中,错误的是( )。(分数:2.00)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板20.关于函数重载,下列叙述中错误的是( )。(分数:2.0

    6、0)A.重载函数的函数名必须相同B.重载函数必须在参数个数或类型上有所不同C.重载函数的返回值类型必须相同D.重载函数的函数体可以有所不同21.下列关于运算符重载的描述中,正确的是( )。(分数:2.00)A.运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符B.一元运算符只能作为成员函数重载C.二元运算符重载为非成员函数时,参数表中有一个参数D.C+中可以重载所有的运算符22.有如下函数定义:void func(int a,int& b)a+;b+;若执行代码段:int x=0,y=1;func(x,y);则变量 x 和 y 的值分别是( )。(分数:2.00)A.0 和 1B.1

    7、 和 1C.0 和 2D.1 和 223.对于一个类定义,下列叙述中错误的是( )。(分数:2.00)A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B.如果没有定义缺省的构造函数,编译器一定将生成一个缺省的构造函数C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数24.有如下头文件:int n();static int f2();class MApublic:int f3();static int f4();在所描述的函数中,具有隐含的 this 指针的是( )。(分数:2.00)A.f1B

    8、.f2C.f3D.f425.下列关于类定义的说法中,正确的是( )。(分数:2.00)A.类定义中包括数据成员和函数成员的声明B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义26.如果派生类以 protected 方式继承基类,则原基类的 protected 成员和 public 成员在派生类中的访问属性分别是( )。(分数:2.00)A.public 和 publicB.public 和 protectedC.protected 和 publicD.protected 和 protected27.下列有关继承和派生的叙述中,正确的是( )。(分数

    9、:2.00)A.派生类不能访问基类的保护成员B.作为虚基类的类不能被实例化C.派生类应当向基类的构造函数传递参数D.虚函数必须在派生类中重新实现28.有如下类定义:class AAint a;public:AA(int n=0):a(n);class BB:public AApublic:BB(int n)_;其中横线处缺失的部分是( )。(分数:2.00)A.:a(n)B.:AA(n)C.a(n);D.a=n;29.有如下程序:#includeiostreamusing namespace std;class CDpublic:CD()coutC;private:char name80;in

    10、t main()CD a,*b,d2;return0;执行这个程序的输出结果是( )。(分数:2.00)A.CCCCB.CCCC.CCD.C30.有如下程序:#includeiostreamusing namespace std;class MyClasspublic:MyClass()+count;MyClass()-count;static int getCount()return count;private:static int count;int MyClass:count=0;int main()MyClass obj;coutobjgetCount();MyClass*ptr=ne

    11、w MyClass:coutMyClass:getCount();delete ptr;coutMyClass:getCount();return0;执行这个程序的输出结果是( )。(分数:2.00)A.121B.232C.221D.12231.有如下程序:#includeiostreamusing namespace std;class MyClasspublic:MyClass(int x):val(x)void Print()constcout“const:val=“valt;void Print()cout“val=“valt;private:int val;int main()con

    12、st MyClass obj1(10);MyClass obj2(20);obj1Print();obj2Print();return0;执行这个程序的输出结果是( )。(分数:2.00)A.val=10 const:val=20B.const:val=10 const:val=20C.const:val=10 val=20D.val=10 val=2032.有如下程序:#includeiostreamusing namespace std;class Partpublic:Part(int x=0):val(x)coutval;Part()coutval;private:int val;cl

    13、ass Wholepublic:Whole(int x,int y,intz=0):p2(x),p1(Y),val(z)coutval;Whole()coutval;private:Part p1,p2;int val;int main()Whole obj(1,2,3);return0;执行这个程序的输出结果是( )。(分数:2.00)A.123321B.213312C.213D.12312333.有如下程序:#includeiostreamusing namespace std;class Basepublic:Base(int x=0)coutx;class Derived:public

    14、 Basepublic:Derived(int x=0)coutx;private:Base val;int main()Derived d(1);return0;执行这个程序的输出结果是( )。(分数:2.00)A.0B.1C.01D.00134.下列代码段中声明了 3 个类:class Person;class Student:public Person;class Undergraduate:Student;下列关于这些类之间关系的描述中,错误的是( )。(分数:2.00)A.类 Person 是类 Undergraduate 的基类B.类 Undergraduate 从类 Studen

    15、t 公有继承C.类 Student 是类 Person 的派生类D.类 Undergraduate 是类 Person 的派生类35.有如下程序:#includeiostreamusing namespace std;class Basepublic:void output()cout1;virtual void Print()coutB;class Derived:public Basepublic:void output()cout2;void Print()coutD;int main()Base*ptr=new Derived;ptr-output();ptr-Print();dele

    16、te ptr;return0;执行这个程序的输出结果是( )。(分数:2.00)A.1BB.1DC.2BD.2D36.有如下程序:#includeiostreamusing namespace std;class Bpublic:virtual void show()cout“B“;class D:public Bpublic:void show()cout“D“;void funl(B*ptr)ptr-show();void fun2(B &ref)refshow();void fun3(B b)bshow();int main()B b,*p=new D;D d;fun1(p);fun2(

    17、b);fun3(d);delete p;return0;执行这个程序的输出结果是( )。(分数:2.00)A.BBBB.BBDC.DBBD.DBD37.C+中的模板包括( )。(分数:2.00)A.对象模板和函数模板B.对象模板和类模板C.函数模板和类模板D.变量模板和对象模板38.下列关于类模板的模板参数的叙述中,错误的是( )。(分数:2.00)A.模板参数可以作为数据成员的类型B.模板参数可以作为成员函数的返回类型C.模板参数可以作为成员函数的参数类型D.模板参数不能作为成员函数的局部变量的类型39.下列关于 C+预定义流对象的叙述中,正确的是( )。(分数:2.00)A.cin 是 C

    18、+预定义的标准输入流对象B.cin 是 C+预定义的标准输入流类C.cout 是 C+预定义的标准输入流对象D.cout 是 C+预定义的标准输入流类40.有如下语句序列:char str10;cinstr;当从键盘输入“I love this game”时,str 中的字符串是( )。(分数:2.00)A.I love this gameB.I love thisC.I loveD.I二、基本操作题(总题数:1,分数:2.00)41.请使用 VC6 或使用【答题】菜单打开考生文件夹 proj1 下的工程 proj1,此工程中含有一个源程序文件 proj1cpp。其中位于每个注释“ERROR*

    19、found*”之后的一行语句存在错误。请改正这些错误使程序的输出结果为:Constructor calledThe value is10Copy constructor calledThe value is10Destructor calledDestructor called注意:只修改注释“EROR*found*”的下一行语句,不要改动程序中的其他内容。proj1cpp#includeiostreamusing namespace std;class MyClasspublic:ERROR*found*MyClass(int i)value=i;cout“Constructor calle

    20、d“endl;ERROR*found*MyClass(const MyClass p)value=pvalue;cout“Copy constructor called“endl:void Print()cout“The value is“valueendl;ERROR*found*voidMyClass()cout“Destructor called“endl;private:int value;int main()MyClass obj1;obj1Print();MyClass obj2(obj1);obj2Print();return0;(分数:2.00)_三、简单应用题(总题数:1,分

    21、数:2.00)42.请使用 VC6 或使用【答题】菜单打开考生文件夹 proj2 下的工程 proj2,其中定义了 vehicle 类,并派生出 mot。rcar 类和 bicycle 类。然后以 mottorcar 和 bicycle 作为基类,再派生出 motorcycle 类。要求将 vehicle 作为虚基类,避免二义性问题。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:801501001 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“*found*”。#includeiostreamhclass vehicle

    22、private:int MaxSpeed;int Weight;public:*found*vehicle(intmaxspeed,intweight):_vehicle();int getMaxSpeed()return MaxSpeed;int getWeight()return Weight;*found*class bicycle:_public vehicleprivate:int Height;public:bicycle(int maxspeed,int weight,int height):vehicle(maxspeed,weight),Height(height)int g

    23、etHeight()return Height;*found*class motorcar:_public vehicleprivate:int SeatNum;public:motorcar(int maxspeed,int weight,int seatnum):vehicle(maxspeed,weight),SeatNum(seatnum)int getSeatNum()return SeatNum;*found*classmotorcycle:_public:motorcycle(int maxspeed,int weight,int height):vehicle(maxspeed

    24、,weight),bicycle(maxspeed,weight,height),motorcar(maxspeed,weight,1);void main()motorcycle a(80,150,10);coutagetMaxSpeed()endl;coutagetWeight()endl;coutagetHeight()endl;coutagetSeatNum()endl;(分数:2.00)_四、综合应用题(总题数:1,分数:2.00)43.使用 VC6 打开考生文件夹 proj3 下的工程 proj3,其中定义了一个字符串变量类 StringVar。类成员的说明在程序注释中。请在*33

    25、3*和*666*之间填写StringVar 成员函数和友元函数的实现代码。在 main 函数中给出了一组测试数据,运行时输入:Hello Kitty 此情况下程序的输出应该是:Hello KittyBorgBorg 注意:只需在*333*和*666*之间填入所编写的若干语句,不要改动程序中的其他内容。StringVarh#includeiostream#includecstdlib#includecstddef#includecstringusing namespacestd;void writeToFile(const char*path);class StringVarpublic:Str

    26、ingVar(int size);构造函数,size 为字符串长度(字符个数)初始值;字符串内容初始化为空串 StringVar(const char a);构造函数,用参数数组 a 的内容初始化当前对象StringVar(const StringVar& strobj);复制构造函数StringVar()deletevalue;析构函数 int length()constreturn strlen(value);从输入流 ins 输入一个字符串,其中可以包括空格 void input_line(istream& ins);返回字符串首地址 char*getValue()constreturn

    27、 value;private:char*value;字符串首地址 int max_length;字符串最大长度(字符个数最大值);将 the_string 通过输出流 outs 输出 ostream& operator(ostream& outs,const StringVar the_string);maincpp#includeiostream#includestring#include“StringVarh“*333*666*int main()StringVar name1(30),name2(“Borg“);name1input_line(cin);StringVar name3(n

    28、ame2);coutnamelendl:coutname2endl:coutname3endl:writeToFile(“);return0;writeToFilecpp#includeiostream#includefstream#includesstream#includestringusing namespace std;#include“StringVarh“void writeToFile(const char*path)char filename30;strcpy(filename,path);strcat(filename,“outdat“);ofstream fout(file

    29、name);istringstream is(string(“Jenny Zheng“);StringVar name1(40),name2(“John“);name1input_line(is);StringVar name3(name2);foutname1name2name3:foutclose();(分数:2.00)_国家二级(C+)机试模拟试卷 166 答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列数据结构中,属于非线性结构的是( )。(分数:2.00)A.循环队列B.带链队列C.二叉树 D.带链栈解析:解析:树是简单的非线性结

    30、构,所以二叉树作为树的一种也是一种非线性结构。2.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。(分数:2.00)A.循环队列B.栈 C.队列D.二叉树解析:解析:栈是按先进后出的原则组织数据的。队列是先进先出的原则组织数据。3.对于循环队列,下列叙述中正确的是( )。(分数:2.00)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针 解析:解析:循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构所以队头指针有时可能大于队尾指针有时也可能小于队尾指针。4.

    31、算法的空间复杂度是指( )。(分数:2.00)A.算法在执行过程中所需要的计算机存储空间 B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数解析:解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间。所以选择 A。5.软件设计中划分模块的一个准则是( )。(分数:2.00)A.低内聚低耦合B.高内聚低耦合 C.低内聚高耦合D.高内聚高耦合解析:解析:一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。6.下列选项中不属于结构化程序设计原则的是( )。(分数:2.00)A.可封装 B

    32、.自顶向下C.模块化D.逐步求精解析:解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto 语句,所以选择 A。7.软件详细设计产生的图如下: (分数:2.00)A.NS 图B.PAD 图C.程序流程图 D.ER 图解析:解析:NS 图提出了用方框图来代替传统的程序流程图,所以 A 不对。PAD 图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以 B 不对。ER 图是数据库中的用于表示 ER 模型的图示工具,所以 D 不对。根据图中所示表示方法是进行软件详细设计时使用的程序流程图。8.数据库管理系统是( )。(分数:

    33、2.00)A.操作系统的一部分B.在操作系统支持下的系统软件 C.一种编译系统D.一种操作系统解析:解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。9.在 ER 图中,用来表示实体联系的图形是( )。(分数:2.00)A.椭圆形B.矩形C.菱形 D.三角形解析:解析:在 ER 图中实体集用矩形,属性用椭圆,联系用菱形。10.有三个关系 R,S 和 T 如下: (分数:2.00)A.选择B.投影C.交D.并 解析:解析:并关系 T 中包含了关系 R 与 S 中的所有元组,所以进行的是并的运算。

    34、11.下列符号中可以用做 C+标识符的是( )。(分数:2.00)A._radius B.foobarC.elseD.3room解析:解析:本题考查 C+标识符的命名规则,其规则有如下几点: 所有标识符必须由字母、数字或下画线组成,且必须由字母或下画线开头; 所有标识符不能使用 C+已有的关键字; 大、小写字母表示不同意义,即代表不同的标识符。选项 B 包含了字符“”,选项 C 是关键字,选项 D 不能以数字开头。故答案为 A。12.下列各组类型声明符中,含义相同的一组是( )。(分数:2.00)A.unsigned long int 和 longB.signed short int 和 sh

    35、ort C.unsigned short 和 shortD.short int 和 int解析:解析:本题考查整型变量的类型,A、C 选项中前者为无符号的,后者为有符号的,D 选项中 short int 为 2 个字节,int 为 4 个字节。13.必须用一对大括号括起来的程序段是( )。(分数:2.00)A.switch 语句中的 case 标号语句B.if 语句的分支C.循环语句的循环体D.函数的函数体 解析:解析:本题考查 C+基本控制结构,A、B、C 三个选项中的大括号不是必须的,而 D 选项中的函数体必须使用大括号。14.语句 int*p=&k;定义了指针 p,与这个语句等效的语句序

    36、列是( )。(分数:2.00)A.int*p;p=&k; B.int*p;p=k;C.int*p;*p=&k;D.int*p;*p=k;解析:解析:本题考查指针和地址,题目中定义了一个指向变量 k 的一个指针 p,那么与题目中等效的表达式 A 选项,即先定义一个指向整型的指针,然后指向 k 的地址。15.执行下列语句段后,输出字符“*”的个数是( )。for(int i=50;i1;i-=2)cout*;(分数:2.00)A.24B.25 C.26D.50解析:解析:本题考查 for 循环语句,题目中每执行完循环体后,i 都会减 2,那么只有 50 到 2 之间的偶数才能输出“*”,所以总共输

    37、出 25 次。16.下列关于运算符重载的叙述中,错误的是( )。(分数:2.00)A.有的运算符可以作为非成员函数重载B.所有的运算符都可以通过重载而被赋予新的含义 C.不得为重载的运算符函数的参数设置默认值D.有的运算符只能作为成员函数重载解析:解析:重载运算符的规则如下: C+不允许用户自己定义新的运算符,只能对已有的 C+运算符进行重载; C+不能重载的运算符只有 5 个; 重载不能改变运算符运算对象的个数; 重载不能改变运算符的优先级和结合性; 重载运算符的函数不能有默认的参数; 重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是 C+的标准

    38、类型。所以答案为 B。17.对 C+编译器区分重载函数无任何意义的信息是( )。(分数:2.00)A.参数类型B.参数个数C.返回值类型 D.常成员函数关键字 const解析:解析:所谓函数重载是指同一个函数名可以对应多个函数的实现。每种实现对应一个函数体,这些函数的名字相同,其参数类型或个数不同,但不能出现函数返回值类型不同而参数类型和个数完全相同的重载。所以本题答案为 C。18.运算符重载时不需要保持的性质是( )。(分数:2.00)A.操作数个数B.操作数类型 C.优先级D.结合性解析:解析:重载运算符的规则如下: C+不允许用户自己定义新的运算符,只能对已有的 C+运算符进行重载; C

    39、+不能重载的运算符只有 5 个; 蓖载不能改变运算符运算对象的个数; 重载不能改变运算符的优先级和结合性; 重载运算符的函数不能有默认的参数; 重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部足 C+的标准类型。所以答案为 B。19.下列关于函数的描述中,错误的是( )。(分数:2.00)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板 解析:解析:本题考查函数的基础知识,函数可以没有返回值,没有参数,也可以是一个类的成员,函数可以定义为模板,即模板函数。20.关于函数重载,下列叙述中错误的是( )。(分数

    40、:2.00)A.重载函数的函数名必须相同B.重载函数必须在参数个数或类型上有所不同C.重载函数的返回值类型必须相同 D.重载函数的函数体可以有所不同解析:解析:所谓函数重载是指同一个函数名可以对应多个函数的实现。每种实现对应一个函数体,这些函数的名字相同,其参数类型或个数不同,但不能出现函数返回值类型不同而参数类型和个数完全相同的重载。所以本题答案为 C。21.下列关于运算符重载的描述中,正确的是( )。(分数:2.00)A.运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符 B.一元运算符只能作为成员函数重载C.二元运算符重载为非成员函数时,参数表中有一个参数D.C+中可以重载所有

    41、的运算符解析:解析:运算符重载为成员函数时,会省略一个参数,如果无参数,表明是一元运算符。一元运算符既可以作为成员函数重载,也可以作为非成员函数重载。二元运算符如果作为非成员函数,则参数表中必须有两个参数。C+有 5 个运算符不能重载,它们是:(成员访问运算符)、*(成员指针访问运算符)、:(域运算符)、sizeof(长度运算符)和?:(条件运算符)。故本题答案为 A。22.有如下函数定义: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

    42、 和 2 D.1 和 2解析:解析:函数参数的 3 种传递方式: 将变量名作为形参和实参,即传值方式; 传递变量指针; 引用形参。本题中实参 x 为传值方式,所以 x 的值不会改变;y 为引用形参,所以会改变。故本题答案为 C。23.对于一个类定义,下列叙述中错误的是( )。(分数:2.00)A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B.如果没有定义缺省的构造函数,编译器一定将生成一个缺省的构造函数 C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数解析:解析:本题考查构造函数和复制构造

    43、函数,如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数,如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数。如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数。24.有如下头文件:int n();static int f2();class MApublic:int f3();static int f4();在所描述的函数中,具有隐含的 this 指针的是( )。(分数:2.00)A.f1B.f2C.f3 D.f4解析:解析:只有类的非静态成员函数才隐含 this 指针,其作用域是类内部,当类的非静态成员函数中访问类的非静态成员时,编译器会自动将对象本身的

    44、地址作为一个隐含参数传递给函数,而不必一定写上this。所以本题答案为 C。25.下列关于类定义的说法中,正确的是( )。(分数:2.00)A.类定义中包括数据成员和函数成员的声明 B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义解析:解析:类的成员的缺省访问权限是私有的,数据成员可以是私有,可以是公用的,也可以是受保护的。类的成员函数可以在类内定义。26.如果派生类以 protected 方式继承基类,则原基类的 protected 成员和 public 成员在派生类中的访问属性分别是( )。(分数:2.00)A.public 和 publicB

    45、.public 和 protectedC.protected 和 publicD.protected 和 protected 解析:解析:本题考查保护继承中派生类对基类的访问属性,在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有,所以本题答案为 D。27.下列有关继承和派生的叙述中,正确的是( )。(分数:2.00)A.派生类不能访问基类的保护成员B.作为虚基类的类不能被实例化C.派生类应当向基类的构造函数传递参数 D.虚函数必须在派生类中重新实现解析:解析:派生类可以访问基类的保护成员,而不能访问基类的私有成员。作为虚基类的类可以被实例化。虚函数如果没有

    46、派生类中重新实现,那么仍然使用基类的成员函数。28.有如下类定义:class AAint a;public:AA(int n=0):a(n);class BB:public AApublic:BB(int n)_;其中横线处缺失的部分是( )。(分数:2.00)A.:a(n)B.:AA(n) C.a(n);D.a=n;解析:解析:本题考查公用继承对基类成员的访问属性。公用继承中,基类的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有,本题中若要给派生类继承下来基类的私有成员赋值,那么只能调用基类的成员函数来对它赋值,所以本题答案为 B。29.有如下程序:#includeiostreamusing namespace std;class CDpublic:


    注意事项

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




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

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

    收起
    展开