【计算机类职业资格】国家二级(C++)机试-试卷37及答案解析.doc
《【计算机类职业资格】国家二级(C++)机试-试卷37及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级(C++)机试-试卷37及答案解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级(C+)机试-试卷 37 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。(分数:2.00)A.一对一B.一对多C.多对一D.多对多2.关于运算符重载,下列表述中正确的是( )。(分数:2.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型D.可以通过运算符重载来创建 C+中原来没有的运算符3.有如下程序: #include using namespace std; class B public:
2、 virtual void show() coutshow(); void fun2(B void fun3(B b) b.show(); int main() B b,*p=new D; D d; fun1(p); fun2(b); fun3(d); delete p; return 0; 执行这个程序的输出结果是( )。(分数:2.00)A.BBBB.BBDC.DBBD.DBD4.下列选项中属于面向对象设计方法主要特征的是( )。(分数:2.00)A.继承B.自顶向下C.模块化D.逐步求精5.建立一个类对象时,系统自动调用(分数:2.00)A.析构函数B.构造函数C.静态函数D.友元函数6
3、.有如下模板声明: template class A; 下列声明中,与上述声明不等价的是(分数:2.00)A.templateclassA;B.templateclassA;C.templateclassA;D.templateclassA;7.下列选项中,正确的 C+表达式是(分数:2.00)A.a1+B.b+2C.3=cD.d-=48.下列关键字中,用来表示继承方式的是(分数:2.00)A.staticB.constC.virtualD.protected9.程序流程图中带有箭头的线段表示的是( )。(分数:2.00)A.图元关系B.数据流C.控制流D.调用关系10.已知有数组定义 cha
4、r a34;下列表达式中正确的是(分数:2.00)A.a0=“AAA“B.strcpy(a1,“BBBBB“)C.a21=“CC“D.a11=a1111.下列关于派生类构造函数和析构函数的表述中,错误的是(分数:2.00)A.下列关于派生类构造函数和析构函数的表述中,错误的是B.派生类的构造函数会隐含调用基类的构造函数C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D.在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数12.下面不能作为软件设计工具的是(分数:2.00)A.PAD 图B.程序流程图C.数据流程图(DFD 图)D.总体结构图13.下列选项中,不是
5、重载函数调用时选择依据的是(分数:2.00)A.参数个数B.参数类型C.参数名称D.函数名称14.有如下类声明: class Pam int k; public: Pam(int n):k(n) void show()const; ;若要在类体外给出成员函数 show 的定义,下列定义中正确的是(分数:2.00)A.voidshow()constcoutshow(); void fun2(B void fun3(B b) b.show(); int main() B b,*p=new D; D d; fun1(p); fun2(b); fun3(d); delete p; return 0;
6、执行这个程序的输出结果是( )。(分数:2.00)A.BBBB.BBDC.DBB D.DBD解析:解析:在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,本题中定义类B 的对象 b、对象指针*p=newD 以及类 D 的对象 d;执行 fun1 会调用派生类的 show 函数,因为 show 函数为虚函数,而调用 fun2、fun3 仍然为基类的 show 函数,所以本题答案为 C。4.下列选项中属于面向对象设计方法主要特征的是( )。(分数:2.00)A.继承 B.自顶向下C.模块化D.逐步求精解析:解析:面向对象基本方法的基本概念有对象、类和实例、消息、继承与多
7、态性,所以选择 A)。5.建立一个类对象时,系统自动调用(分数:2.00)A.析构函数B.构造函数 C.静态函数D.友元函数解析:解析:本题考查默认构造函数,如果用户定义的类中没有显式的定义任何构造函数,编译器就会自动为该类型生成默认构造函数,建立一个对象时,系统会自动执行默认构造函数。6.有如下模板声明: template class A; 下列声明中,与上述声明不等价的是(分数:2.00)A.templateclassA;B.templateclassA;C.templateclassA;D.templateclassA; 解析:解析:本题考查模板的定义,A、B、C 选项中两个参数都为 t
8、ypename 或 class,而 D 选项中第二个参数不是 typename 或 class,所以与题目中不等价,D 选项错误。7.下列选项中,正确的 C+表达式是(分数:2.00)A.a1+B.b+2C.3=cD.d-=4 解析:解析:本题考查 C+基本的表达式用法,属于基本知识,可以看出只有 D 选项正确。8.下列关键字中,用来表示继承方式的是(分数:2.00)A.staticB.constC.virtualD.protected 解析:解析:本题考查继承使用的关键字,属于基础知识,使用 D 选项为继承使用的关键字。9.程序流程图中带有箭头的线段表示的是( )。(分数:2.00)A.图元
9、关系B.数据流C.控制流 D.调用关系解析:解析:在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择 C)。10.已知有数组定义 char a34;下列表达式中正确的是(分数:2.00)A.a0=“AAA“B.strcpy(a1,“BBBBB“)C.a21=“CC“D.a11=a11 解析:解析:程序定义一个 3 行 4 列的二维字符数组。由于是二维数组,所以 a0代表一维数组,数组是不能直接赋值的,A 错误;由于是二维数组,a1代表数组 a 的第二行行地址,可以使用 strcpy 函数赋值,但是 a1只有 4 个字节大小的空间,而字符串“BBBBB
10、“占 6 个字节,拷贝越界,B 错误;同 B 情况一样,a21只有 1 个字节空间,“CC“占 3 个字节,无法完成赋值,C 错误;D 选项是对 a11完成自我赋值,正确;答案为 D。11.下列关于派生类构造函数和析构函数的表述中,错误的是(分数:2.00)A.下列关于派生类构造函数和析构函数的表述中,错误的是B.派生类的构造函数会隐含调用基类的构造函数C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D.在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数 解析:解析:派生类对象的撤销顺序与构造顺序相反:首先运行派生类析构函数,然后按继承层次依次向上调用各基类析
11、构函数,这样做是为了每次析构函数销毁的都是完整的对象,选项 D 错误,答案为 D。12.下面不能作为软件设计工具的是(分数:2.00)A.PAD 图B.程序流程图C.数据流程图(DFD 图) D.总体结构图解析:解析:软件设计常用的工具有:图形工具:程序流程图、N-S 图、PAD 图、HIPO;表格工具:判定表;语言工具:PDL(伪码)。另外,在结构化设计方法中,常用的结构设计工具是结构图,故选择 C 选项。13.下列选项中,不是重载函数调用时选择依据的是(分数:2.00)A.参数个数B.参数类型C.参数名称 D.函数名称解析:解析:重载函数调用时首先要从函数名称相同的候选函数中选择可行函数,
12、可行函数必须满足两个条件:1、函数的形参个数与该调用的实参个数相同;2、每个实参的类型必须与对应形参的类型匹配,或者可被隐式转换为对应的形参类型。参数名称可以不相同,答案选 C。14.有如下类声明: class Pam int k; public: Pam(int n):k(n) void show()const; ;若要在类体外给出成员函数 show 的定义,下列定义中正确的是(分数:2.00)A.voidshow()constcoutk;B.voidshow()constcoutPam:k;C.voidPam:show()constcoutk; D.voidPam:show()constc
13、outk;解析:解析:在类定义体外定义成员函数,必须指定成员函数的作用域,因此需要在使用类名和作用域运算符来修饰函数名,答案为 C。15.下面对类-对象主要特征描述正确的是(分数:2.00)A.对象唯一性 B.对象无关性C.类的单一性D.类的依赖性解析:解析:对象的基本特点是:标识唯一性、分类性、多态性、封装性、模块独立性好。类是具有共同属性、共同方法的对象的集合,是关于对象的抽象描述,反映属于该对象类型的所有对象的性质。对象具有的性质,类也具有。故 A 选项正确。16.设 c1 和 c2 是类 MyClass 的对象,若将后缀运算符“+“作为类 MyClass 的友元函数重载,运算符“*“作
14、为类 MyClass 的成员函数重载,则表达式 c2*c1+等价于(分数:2.00)A.c1.operaor+(0).operator*(c2)B.c2.operator*(c1.operator+(0)C.c2.operator*(operator+(c1,0) D.operator*(operator+(c1,0),c2)解析:解析:友元函数不是类的成员函数,所以友元函数的调用不需要使用类对象;另外运算符重载不改变运算符的优先级,所以表达式 c2*c1+先执行 c1+;为了区分运算符的前缀和后缀形式,规定后缀式运算符函数接受一个额外的 int 型形参,使用时可以提供 0 作为形参的实参,所
15、以 c1+相当于operator+(c1,0),c2*c1+相当于 c2.operator*(operator+(c1,0);答案为 C。17.下列关于输入流类成员函数 getline()的表述中,错误的是(分数:2.00)A.该函数只能用来从键盘设备读取一行字符串 B.该函数读取的字符串长度是由参数限制的C.该函数读取字符串时,遇到终止符便停止D.该函数读取字符串时,遇到终止符便停止解析:解析:getline(istream public: How(int n):k(n) How(How 则类 How 所拥有的构造函数的数量是(分数:2.00)A.2 B.3C.4D.5解析:解析:C+中,一
16、个类若定义了构造函数,编译器就不会再生成默认构造函数,若定义了复制构造函数,编译器也不会再生成复制构造函数,所以类 How 拥有两个构造函数,答案为 A。20.数据库应用系统中的核心问题是( )。(分数:2.00)A.数据库设计 B.数据库系统设计C.数据库维护D.数据库管理员培训解析:解析:数据库应用系统中的核心问题是数据库的设计。21.下列关于类定义的说法中,正确的是( )。(分数:2.00)A.类定义中包括数据成员和函数成员的声明 B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义解析:解析:类的成员的缺省访问权限是私有的,数据成员可以是私有,
17、可以是公用的,也可以是受保护的。类的成员函数可以在类内定义。22.下列语句都是程序运行时的第 1 条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是( )。(分数:2.00)A.coutinternal12345;B.coutleft12345;C.coutright12345;D.coutsetw(6)12345; 解析:解析:本题考查控制输出格式,A、B、C 选项都会输出“12345“,只有 D 选项输出“12345“,所以本题答案为 D。23.下列关于内联函数的叙述中,正确的是(分数:2.00)A.内联函数就是在一个函数体内定义的函数B.内联函数必须通过关键字 inline
18、来定义C.在类体中定义的函数,都是内联函数 D.内联函数不需要 return 语句解析:解析:在类体中定义的成员函数,C+系统会自动将它们作为内联函数处理,而在类外定义的成员函数,系统并不把它们默认为内联函数,内联函数可以用 return,以可以不用,所以只有选项 C 正确。24.有如下类定义: class Person public: Person(string s):name(s) protected: string name; ;class Father:virtual public Person public: Father(string s):Person(s) ; class Mo
19、ther:virtual public Person public: Mother(string s):Person(s) ; class Child:public Father,public Mother,virtual public Person public: Child(string s1,string s2,string s3):Mother(s1),Father(s2),Person(s3) ;在建立派生类 Child 的对象时,其基类 Father、Mother和 Person 的构造函数的调用顺序为(分数:2.00)A.Father,Mother,PersonB.Mother,
20、Father,PersonC.Person,Father,Mother D.Father,Person,Mother,Person,Person解析:解析:执行派生类构造函数的顺序是:1、调用基类构造函数,2、调用子对象构造函数,3、再执行派生类构造函数,所以本题中先调用基类 person 构造函数,然后执行 father 构造函数,最后执行mother 构造函数。25.数据库设计过程不包括(分数:2.00)A.概念设计B.逻辑设计C.物理设计D.算法设计 解析:解析:数据库设计过程主要包括需求分析、概念结构设计、逻辑结构分析、数据库物理设计、数据库实施、数据库运行和维护阶段。答案为 D 选项
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 试试 37 答案 解析 DOC
