【计算机类职业资格】国家二级(C++)机试-试卷10-2及答案解析.doc
《【计算机类职业资格】国家二级(C++)机试-试卷10-2及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级(C++)机试-试卷10-2及答案解析.doc(16页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级(C+)机试-试卷 10-2 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.有如下类定义:class B public: void fun1() private: void fun2() protected: void fun3() ;class D: public B protected: void fun4() ;若 obj 是类 D 的对象,则下列语句中不违反访问控制权限的是( )。(分数:2.00)A.obj.fun1();B.obj.fun2();C.obj.fun3();D.obj.fun4();2.支持子程序调用的数据
2、结构是( )。(分数:2.00)A.栈B.树C.队列D.二叉树3.下列关于运算符重载的叙述中,错误的是( )。(分数:2.00)A.有的运算符可以作为非成员函数重载B.所有的运算符都可以通过重载而被赋予新的含义C.不得为重载的运算符函数的参数设置默认值D.有的运算符只能作为成员函数重载4.有如下类定义:class MyClass int value;public:MyClass(int n): value (n) int getValue()const return value; ;则类 MyClass 的构造函数的个数是( )。(分数:2.00)A.1 个B.2 个C.3 个D.4 个5.在
3、下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(分数:2.00)A.外模式B.内模式C.概念模式D.逻辑模式6.在函数中,定义一个变量时,默认的存储类型是(分数:2.00)A.externB.autoC.registerD.static7.有如下程序: #include #include using namespace std; class TV public: TV(int s=41):size(s) coutfun();D.fun();21.对于循环队列,下列叙述中正确的是( )。(分数:2.00)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队
4、尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针22.已知函数 f 的原型是 void f(int *a, long ,变量 v1、v2 的定义是:int v1; long v2;下列调用语句中正确的是( )。(分数:2.00)A.f(v1,B.f(v1,v2);C.f(D.f(23.下列关于模板的叙述中,错误的是(分数:2.00)A.调用模板函数时,在一定条件下可以省略模板实参B.可以用 int、double 这样的类型修饰符来声明模板参数C.模板声明中的关键字 class 都可以用关键字 typename 替代D.模板的形参表中可以有多个参数24.有如下程序段: int i=1; w
5、hile(1) i+; if(i = 30) break; if(i%3 = 0) cout fun();D.fun();解析:解析:本题考查公用继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有的访问属性,其私有成员仍为基类私有。本题中想要输出 Base:fun,则必须调用基类的公用成员函数 fun,所以使用 Base:fun();来调用基类的成员函数 fun。21.对于循环队列,下列叙述中正确的是( )。(分数:2.00)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针 解析:解
6、析:循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构所以对头指针有时可能大于队尾指针有时也可能小于队尾指针。22.已知函数 f 的原型是 void f(int *a, long ,变量 v1、v2 的定义是:int v1; long v2;下列调用语句中正确的是( )。(分数:2.00)A.f(v1,B.f(v1,v2);C.f(D.f( 解析:解析:函数参数的 3 种传递方式:将变量名作为形参和实参,即传值方式;传递变量指针;引用形参。本题中函数 f 的第一个形参为指针,那么调用 f 函数时,第一个参数必须是地址,所以必须是while(1) i
7、+; if(i = 30) break; if(i%3 = 0) cout *; 执行这个程序段输出字符 * 的个数是(分数:2.00)A.30B.8C.9 D.10解析:解析:本题中 while 循环中当 i 为 3 的倍数时输出*,而 i 为 30 时跳出循环,所以输出 9 个*,答案为 C。25.有如下类定义和变量定义: class Parents public: int publicData; private: int privateData; ;class ChildA : public Parents /*类体略*/ ; class ChildB : private Parents
8、 /*类体略*/ ; ChildA a; ChildB b;下列语句中正确的是(分数:2.00)A.couta.publicDataendl; B.couta.privateDataendl;C.coutb.privateDataendl;D.coutb.publicDataendl;解析:解析:本题考查派生类对基类成员的访问属性,派生类公用继承基类,所以派生类可以直接使用基类的公用成员,所以只有 A 选项正确。26.对长度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为(分数:2.00)A.9B.10C.45 D.90解析:解析:冒泡法是在扫描过程中逐次比较相邻两个元素的大小,最坏
9、的情况是每次比较都要将相邻的两个元素互换,需要互换的次数为 9+8+7+6+5+4+3+2+1=45,选 C。27.有如下程序: #include using namespace std; void _ int z=x; x=y; y=z; int main() int x=0,y=1; f(x,y); coutxyA.f(intx,inty)B.f(int*x,int*y)C.f(int class Animal public: virtual string GetType() const return “Animal“; virtual string GetVoice() const re
10、turn “Voice“; ; class Dog:public Animal public: string GetType() const return “Dog“; string GetVoice() const return “Woof“; ; class Cat:public Animal public: string GetType() const return “Cat“; string GetVoice() const return “Miaow“; ; void Type(Animal a) cout“ speak “; Speak(d); cout“ - “; Cat c;
11、Type(c); cout“ speak “; Speak(c); coutA.DogspeakVoice-CatspeakVoiceB.DogspeakWoof-CatspeakMiaowC.AnimalspeakVoice-AnimalspeakVoiceD.AnimalspeakWoof-AnimalspeakMiaow 解析:解析:本题考查虚函数的运用,本题中定义 Dogd;Type(d)时,执行基类的 Type 函数,输出Animal,然后输出 speak,然后执行派生类的 Speak 函数输出 Woof,最后输出-,同理 cat 输出类似,所以结果为 D 选项正确。29.下列叙述中
12、,错误的是(分数:2.00)A.false 是一个逻辑型常量B.n 是一个字符型常量 C.1481 是一个 int 常量D.1.414 是一个 double 常量解析:解析:字符型常量是用单引号括起来的一个字符。B 选项中“n“是字符串常量,答案为 B。30.下列模板声明中,有语法错误的是(分数:2.00)A.templateTfun(Tx)returnx*x;B.templateTfun(Tx,intn)returnx+n;C.templateTfun(T*p)return*p;D.templateTfun()returnT; 解析:解析:模板形参表中,class 关键字修饰的是类型形参,代
13、表在函数中使用的数据类型,而 return语句返回的应该是整型值,选项 D 错误,答案为 D。31.某个工厂有若干个仓库,每个仓库存放有不同的零件,相同零件可能放在不同的仓库中。则实体仓库和零件间的联系是(分数:2.00)A.多对多 B.一对多C.多对一D.一对一解析:解析:一般来说,实体集之间必须通过联系来建立联接关系,分为三类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。每个仓库存放有不同的零件,相同零件可能放在不同的仓库中,故实体仓库和零件间的联系是多对多,A 选项正确。32.派生类的成员函数不能访问的基类成员是(分数:2.00)A.公有成员和保护成员B.私有成员
14、C.保护成员D.公有成员解析:解析:基类中的 private 成员,只有基类和基类的友元可以访问,派生类的成员函数不能直接访问,所以派生类若要访问基类的 private 成员,必须使用基类的接口,答案为 B。33.下列叙述中正确的是( )。(分数:2.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定 解析:解析:循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以 A)错误;在循环队列中
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 试试 102 答案 解析 DOC
