【计算机类职业资格】二级C++分类模拟286及答案解析.doc
《【计算机类职业资格】二级C++分类模拟286及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++分类模拟286及答案解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+分类模拟 286及答案解析(总分:69.50,做题时间:90 分钟)一、选择题(总题数:40,分数:69.50)1.下列程序的输出结果是 _ 。 #includeiostream.h void main() char*Str; str=“testI“; coutstr5; (分数:2.00)A.test!B.testC.空字符D.异常2.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.
2、这个函数不改变类的任何数据成员的值3.有如下类定义: class Bag public: Bag(int p=200, char s=“M“):price(p), size(s) coutsize; private: int price; char size; ; 若执行语句 Bag Alice, Kelly(Mice), *Twins2, F44; 则输出结果为_。(分数:1.00)A.MMMMMMMMB.MMMMMMC.MMMMMD.MMMM4.数据的存储结构是指_ 。(分数:2.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机
3、中的表示5.下列关于模板的叙述中,错误的是_。(分数:1.00)A.调用模板函数时,在一定条件下可以省略模板实参B.可以用 int、double 这样的类型修饰符来声明模板参数C.模板声明中的关键字 class都可以用关键字 typename替代D.模板的形参表中可以有多个参数6.当使用 fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 _ 。(分数:1.00)A.ios:inB.ios: outC.ios:in lios:outD.以上都不对7.有如下程序: #includeiostream using namespace std; class XX int x;
4、public: XX(int XX=0):x(xx) int getX()return x; ; class YY:public XX int y; public: YY(int xx,int yy):XX(xx),y(yy) int getV()return getX()+y; ; int main() YY c(3,4); coutc.getV()+c.getX()endl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.3B.4C.7D.108.通过派生类的对象可直接访问其_。(分数:2.00)A.公有继承基类的公有成员B.公有继承基类韵私有成员C.私有继承基类的
5、公有成员D.私有继承基类的私有成员9.要定义一个具有 5个元素的一维数组 vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句中错误的是_。(分数:2.00)A.int vect=30,50,-88;B.int vect=30,50,-88,0,0;C.int vect5=(30,50,-88;D.int vect5=30,50,-88,0,0;10.下列关于类和对象的叙述中,错误的是 _ 。(分数:2.00)A.一个类只能有一个对象B.对象是类的具体实例C.类是对某一类对象的抽象D.类和对象的关系是一种数据类型与变量的关系11.下列表达式的值为 false的是
6、_ 。(分数:2.00)A.13 public: int b; friend class Derived; ; class Derived:public Base public: void foo() a=0;/ b=0;/ ; 则下列说法正确的是_。(分数:2.50)A.编译时语句有错B.编译时语句有错C.编译时语句和均有错D.编译时语句和均无错14.下列关于 C+函数的说明中,正确的是_。(分数:1.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表
7、来区分函数的不同重载形式15.下列关于模板的说法正确的是_。(分数:1.00)A.模板的实参在任何时候都可以省略B.类模板与模板类所指的是同一概念C.类模板的参数必须是虚拟类型的D.类模板中的成员函数全部都是模板函数16.下列运算符不能重载为友元函数的是_。(分数:2.00)A.= () -B.+ - + -C. = =D.+= -= *= /=17.下列代码段声明了 3个类 class Person; class Student:public Person; class Undergraduate:Student; 下列关于这些类之间关系的描述中,错误的是_。(分数:2.00)A.类 Per
8、son是类 Undergraduate的基类B.类 Undergraduate从类 student公有继承C.类 student是类 Person的派生类D.类 Undergraduate是类 Person的派生类18.有如下程序 #includeiostream.h void main() char ch25=“6937“,“8254“,*p2; int i,j,s0; for(i0;i(2;i+)pichi; for(i0;i(2;i+) for(j0;pij“/0,j+2) s10*s+pij-“0“; couts; 该程序的输出结果是 _ 。(分数:2.00)A.69825B.6382
9、5C.6385D.69382519.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是_。(分数:1.00)A.函数调用可以作为独立的语句存在B.函数调用可以无返回值C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参20.有三个关系 R、S 和 T如下: (分数:2.50)A.自然连接B并C交D差21.有如下程序: #includeiostream using namespace std; class XA int a; public: static int b; XA(int aa):a(aa)b+; int getA()return a; ; int XA:b=0;
10、 int main() XA d1(4),d2(5); coutd1.getA()+d2.getA()+XA:b+d1.bendl; return 0; 运行这个程序的输出结果是_。(分数:2.50)A.9B.11C.13D.1522.下列关于线性链表的描述中,正确的是_。 、只含有一个指针域来存放下一个元素地址 、指针域中的指针用于指向该结点的前一个或后一个结点(即前件或后件) 、结点由两部分组成:数据域和指针域。(分数:2.50)A.仅、B.仅、C.仅、D.全部23.如下函数模板: template class T T square(T x) return x*x; 其中 T是_。(分数:
11、1.00)A.函数形参B.函数实参C.模板形参D.模板实参24.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为(分数:1.00)A.publicB.protectedC.privateD.static25.语句 while(!E)中的表达式!E 等价于 _ 。(分数:2.00)A.E=0B.E! =1C.E! =0D.E=126.有如下程序: #includeiostream using namespace std; int f(int x); int sum(int n) int x, s=0; for(x=0; x=n; x+) s+=f(x); re
12、turn s; int f(int x)return(x*x+1); int main() int a, b; cout“Enter a integer number:“; cina; b=sum(a); cout“a=“a“, b=“bendl; return 0; 如果输入数字 3,其输出结果是_。(分数:2.50)A.a=3, b=12B.a=3, b=16C.a=3, b=18D.a=4, b=2027.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为_。(分数:2.00)A.publicB.protectedC.privateD.static28.
13、下列有关继承和派生的叙述中,正确的是_。(分数:1.00)A.如果一个派生类公有继承其基类,则该派生类对象可以访问基类的保护成员B.派生类的成员函数可以访问基类的所有成员C.基类对象可以赋值给派生类对象D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类29.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统30.若有定义语句“int i=2,j=3;”,则表达式 i/j的结果是_。(分数:1.00)A.0B.0.7C.0.66667D.0.666666
14、6731.下列对基类和派生类关系的描述中,错误的是 _ 。(分数:1.00)A.派生类是基类的具体化B.派生类是基类的子集C.派生类是基类定义的延续D.派生类是基类的组合32.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是(分数:1.00)A.派生类的对象可以赋给基类的对象B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员D.派生类的对象的地址可以赋给指向基类的指针33.若已定义了类 Vehicle,则下列派生类定义中,错误的是_。(分数:2.00)A.class Car:vehicle/*类体略*/;B.class Car:public car
15、/*类体略*/;C.class Car:public Vehicle/*类体略*/);D.class Car:virtual public Vehicle/*类体略*/;34.在 C+中既可以用于文件输入又可以用于文件输出的流类是_。(分数:2.50)A.fstreamB.ifstreamC.ofstreamD.iostream35.某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是_。(分数:2.00)A.10B.8C.6D.436.下面程序的输出结果是( )。 #include iostream using namespace std; void main() int s; for
16、(int k=2;k6;k+=2) s=1; for(int j=k; j6;j+) s+=j; coutsend1;(分数:2.00)A.9B.1C.11D.1037.以下有关析构函数的叙述不正确的是(分数:2.00)A.一个类只能定义一个析构函数B.析构函数和构造函数一样可以有形参C.析构函数指定返回类型D.析构函数名前必须冠有符号“”38.生成派生类对象时,派生类构造函数调用基类构造函数的条件是_。(分数:2.00)A.无需任何条件B.基类中显式定义了构造函数C.派生类中显式定义了构造函数D.派生类构造函数明确调用了基类构造函数39.在一棵二叉树上第 5层的结点数最多是 _ 。(分数:2
17、.00)A.8B.16C.32D.1540.有如下程序: # includeiostream using namespace std; class Publication/出版物类 char name30; public: Publication(char*name=“未知名称“) strcpy(this-name,name); const char*getName()constreturn name;) virtual const char*getType()constreturn“未知类型“; ; class Book:public Publication/书类 public: Book(
18、char*namc):Publication(name) viriual const char*getType()constreturn “书“; ; void showPublication(Publicationp) coutp.getType()“:“p.getName()endl; int main() Book book(“精彩人生“); showPublication(book); return 0; 运行时的输出结果是_。(分数:2.50)A.未知类型:未知名称B.未知类型:精彩人生C.书:未知名称D.书:精彩人生二级 C+分类模拟 286答案解析(总分:69.50,做题时间:9
19、0 分钟)一、选择题(总题数:40,分数:69.50)1.下列程序的输出结果是 _ 。 #includeiostream.h void main() char*Str; str=“testI“; coutstr5; (分数:2.00)A.test!B.testC.空字符 D.异常解析:解析 字符指针 str值为“test!”,它们的下标由 0开始,并且具有一个尾符,输出 str5的位置为尾符标识,指针字符指向的尾符为空。所以答案为空字符,即选项 C正确。2.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分
20、数:1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符 C.这是一个成员函数D.这个函数不改变类的任何数据成员的值解析:解析 本题考核运算符的重载。题中语句为运算符一这是一个二元运算符,且是作为常成员函数来重载的,所以它不能更新对象的数据成员,也不能调用该类中没有用 const修饰的成员函数。3.有如下类定义: class Bag public: Bag(int p=200, char s=“M“):price(p), size(s) coutsize; private: int price; char size; ; 若执行语句 Bag Alice, Kel
21、ly(Mice), *Twins2, F44; 则输出结果为_。(分数:1.00)A.MMMMMMMMB.MMMMMMC.MMMMM D.MMMM解析:解析 首先 Bag Alice语句,会调用默认构造函数 Bag(int p=200,char s=“M“),输出 size的值 M;接着 Bag Kelly(Alice)语句会调用编译器生成的复制构造函数,完成初始化,复制构造函数只负责初始化成员变量,没有输出语句;Bag *Twins2定义一个 Bag*类型的数组,包含两个 Bag*类型的元素,并不会构造 Bag对象,没有输出;而:Bag F44定义了一个 Bag类型的数组,包含 4个 Bag
22、类型的元素,同时这 4个元素会使用默认构造函数完成初始化,所以调用 Bag(int p=200,char s=“M“),输出 4个 M。综上,输出结果为 MMMMM,答案为 C选项。4.数据的存储结构是指_ 。(分数:2.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示 解析:解析 计算机存储的相关概念。5.下列关于模板的叙述中,错误的是_。(分数:1.00)A.调用模板函数时,在一定条件下可以省略模板实参B.可以用 int、double 这样的类型修饰符来声明模板参数C.模板声明中的关键字 class都可以用关键字 typ
23、ename替代 D.模板的形参表中可以有多个参数解析:解析 本题考查类模板是类的抽象,类是类模板的实例。函数模板允许使用多个类型参数,但在template定义部分的每个形参前必须有关键字 typename或 class;模板的类型参数由关键字 class或关键字 typename及其后的标识符构成,(在标准 C+之前关键字 typename没有被支持,把这个关键字加入到 C+中的原因是因为有时必须要靠它来指导编译器解释模板定义。)本题 C选项错误。6.当使用 fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 _ 。(分数:1.00)A.ios:inB.ios: out
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 分类 模拟 286 答案 解析 DOC
