【计算机类职业资格】二级C++分类模拟278及答案解析.doc
《【计算机类职业资格】二级C++分类模拟278及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++分类模拟278及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+分类模拟 278 及答案解析(总分:82.00,做题时间:90 分钟)一、选择题(总题数:40,分数:82.00)1.有如下程序: #includeiostream using namespace std; class B public: B(int xx):x(xx)+count;x+=10; virtual void show()const coutcount“_“xendl; protected: static int count; private: int x; ; class D:public B public: D(int xx,int yy):B(xx),y(yy)(+
2、count;y+=100; virtual void show()const coutcount“_“yendl; private: int y; ; int B:count=0; int main() B*ptr=new D(10,20); ptr-show(); delete ptr; return 0; 运行时的输出结果是_。(分数:2.50)A.1_120B.2_120C.1_20D.2_202.假定 AB 为一个类,则执行 AB x;语句时将自动调用该类的(分数:2.00)A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数3.下列语句段将输出字符“*“的个数为_。 in
3、t i=100; while(1) i-; if(i=0) break; cout“*“; (分数:2.50)A.98 个B.99 个C.100 个D.101 个4.下面有关重载函数的说法中,正确的是 _ 。(分数:1.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同5.有下列程序: #include stdio.h void fun(char*a,char*b) while(*a=“*“)a+; while(*b=*a)b+;a+; void main() char+s=“*a+b*“,t80; fun(s,t);p
4、uts(t) 程序的运行结果是_。(分数:2.50)A.*a*bB.a*bC.a*b*D.ab6.下列关于多继承二义性的描述中,错误的是_。(分数:2.50)A.一个派生类的两个基类巾都有某个同名成员,在派生类中对这个成员的访问可能出现二义性B.解决二义性的最常用的方法是对成员名的限定法C.基类和派生类中国时出现的同名函数,也存在二义性问题D.一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,可能出现二义性7.对 C+编译器区分重载函数无任何意义的信息是_。(分数:1.00)A.参数类型B.参数个数C.返回值类型D.常成员函数关键字 const8.下列关
5、于 dowhile 语句的叙述中,正确的是_。(分数:2.50)A.dowhile 语句所构成的循环不能用其他语句构成的循环来代替B.dowhile 语句所构成的循环只能用 break 语句跳出C.dowhile 语句所构成的循环只有在 while 后面的表达式非零时才结束D.dowhile 语句所构成的循环只有在 while 后面的表达式为零时才结束9.下列模板声明中,有语法错误的是_。(分数:2.50)A.templatetypename TT fun(T x)return x*x;B.templatetypename TT fun(T x,int n)return x+n;C.templ
6、ateclass TT fun(T*p)return*p;D.templateclass TT fun()return T;10.下列 C+运算符中,优先级最高的是_。(分数:2.50)A.+(双目)B.*(单目)C.=D.*=11.将下面类 TestClass 中的函数 fun()的对象成员 n 值修改为 100 的语句应该是 _ 。 class TcstClass public: TestClass(int x)n=x; void SetNum(int n1)n=n1; private: int n; int fun() TestClass * ptr=new TestClass(45);
7、 _; (分数:2.00)A.TestClass(100)B.ptr-SetNum(100)C.SetNum(100)D.ptr-n=10012.下列有关类成员的叙述中,正确的是_。(分数:1.00)A.友元函数是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员不能是常成员13.算法的空间复杂度是指_。(分数:2.50)A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数14.下列控制格式输入输出的操作符中,能够设置浮点数精度的是 _ 。(分数:2.00)A.set
8、precisionB.setwC.setfillD.showpoint15.下列关于 C+函数的说明中,正确的是_。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式16.如果表达式 y*x+十中,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为(分数:1.00)A.operator+(0).operator *(y);B.operator * (x.op
9、erator+(0),y);C.operator * (operator+(x,0)D.operator * (operator+(x,0),y)17.下列各组类型声明符中,含义相同的一组是_。(分数:1.00)A.unsigned long int 和 longB.signed short int 和 shortC.unsigned short 和 shortD.short int 和 int18.下列关于赋值运算符“=”重载的叙述中,正确的是_。(分数:2.50)A.赋值运算符只能作为类的成员函数重载B.默认的赋值运算符实现了“深层复制”功能C.重载的赋值运算符函数有两个本类对象作为形参D
10、.如果己经定义了复制(拷贝)构造函数,就不能重载赋值运算符19.有如下程序: #includeiostream using namespace std; int main() int a6=23,15,64,33,40,58; int S1,s2; s1=s2=a0; for(int* p=a+1;pa+6;p+) if(s1*p)s1=*p; if(s2*P)s2=*p; couts1+s2endl; return 0; 运行时的输出结果是_。(分数:3.00)A.23B.58C.64D.7920.有如下程序: #includeiostream #includeiomnaip using n
11、amespace std; int main() coutsetfill(“*“)setw(6)123456; return 0; 运行时的输出结果是_。(分数:2.50)A.*123*456B.*123456*C.*123456D.12345621.有如下类定义: class Base int m; int n; public: Base(int m1,int n1):n(n1),m(m1) ; class Derived:public Base int q; public: Derived(int m1,int n1,int q1):q(q1),Base(m1,n1); ; 在创建一个 D
12、erived 对象时,数据成员 m、n 和 q 被初始化的顺序是_。(分数:2.50)A.m、n、qB.n、m、qC.q、m、nD.q、n、m22.面向对象的开发方法中,类与对象的关系是_。(分数:2.50)A.抽象与具体B.具体与抽象C.部分与整体D.整体与部分23.已知将运算符“+”和“*”作为类 Complex 的成员函数重载,设 c1 和 c2 是类 Complex 的对象,则表达式 c1+c2*c1 等价于_。(分数:2.00)A.c1.operator*(c2.operator+(c1)B.c1.operator+(c2.operator*(c1)C.c1.operator*(c1
13、.operator+(c2)D.c2.operator+(c1.operator*(c1)24.有如下程序 #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.63825C.6385D.69382525.有如下类定义: class XX int xdata; public: XX(int n
14、=0):xdata(n) ; class YY:public xx int ydata; public: YY(int m=0,int n=0):XX(m),ydata(n) ; YY 类的对象包含的数据成员的个数是_。(分数:2.50)A.1B.2C.3D.426.下列控制对齐方式的操作符中,错误的是_。(分数:2.00)A.internalB.centerC.leftD.right27.有如下程序: #include iostream using namespace std; class Point public: static int number; public: Point( ) n
15、umber+ ; Point() number- -; ; int Point:number = 0; int main( ) Point * ptr; Point A, B; Point * ptr_point=new Point3; ptr=ptr_point; Point C; cout Point : number endl; delete ptr; return 0;(分数:2.00)A.3B.4C.6D.728.下列数据结构中,属于非线性结构的是_。(分数:2.50)A.双向链表B.循环链表C.二叉链表D.循环队列29.已知类 Time 的定义如下: class Time/时间类
16、private: int hour, minute, second; /时、分、秒 public: Time(int h, int m, int s): hour(h), minute(m), second(s) _ switch(index) case 0: return hour; case 1: return minute; default: return second; ; 其中横线处应为下标访问运算符的重载函数的函数头,横线处应填入的代码是_。(分数:2.50)A.int static,int val; ; int TestClass: val=0; void main() Test
17、Class csl; coutcsl.val“ “; TestClass cs2; TestClass cs3,cs4; coutcs2.valendl; (分数:1.00)A.03B.13C.14D.2431.以下选项中合法的用户标识符是 _ 。(分数:2.00)A.longB._2TestC.3DmaxD.dat32.类模板的使用实际上是将类模板实例化成一个具体的 _ 。(分数:2.00)A类B.对象C.函数D.模板类33.下列关于类成员对象构造函数调用顺序的叙述中,正确的是_。(分数:2.00)A.与它们在初始化列表中的顺序相同B.与它们在类中声明的顺序相同C.与析构函数的调用顺序相同D
18、.顺序不确定34.若目前 D 盘根目录下并不存在 test.txt 文件,则下列打开文件方式不会自动创建 test.txt 文件的是_。(分数:2.50)A.ifstream fin; fin.open(“d:/test.txt“,los_base:in);B.fstream fio; fio.open(“d:/test.txt“,los_base:out);C.ofstream four; fout.open(“d:/test.txt“,ios_base:out);D.ofstream fout; four.open(“d:/test.txt“,los_base:app);35.下列说法正确
19、的是_。(分数:1.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline 定义36.设有定义: class C public: int value; ; int x,*p; 则以下引用形式中,正确的是(分数:2.00)A.x=value;B.x=C:value;C.p= class D:public B protected:void fun4() ; 若 obj 是类 D 的对象,则下列语句中不违反访问控制权限的是_。(分数:2
20、.00)A.obj.fun1();B.obj.fun2();C.obj.fun3();D.obj.fun4();39.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:2.50)A.123456ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA40.Windows 环境下,由 C+源程序文件编译而成的日标文件的扩展名是_。(分数:2.50)A.cppB.exeC.objD.lik二级 C+分类模拟 278 答案解析(总分:82.00,做题时间:90 分钟)一、选择题(总题数:40,分数
21、:82.00)1.有如下程序: #includeiostream using namespace std; class B public: B(int xx):x(xx)+count;x+=10; virtual void show()const coutcount“_“xendl; protected: static int count; private: int x; ; class D:public B public: D(int xx,int yy):B(xx),y(yy)(+count;y+=100; virtual void show()const coutcount“_“yend
22、l; private: int y; ; int B:count=0; int main() B*ptr=new D(10,20); ptr-show(); delete ptr; return 0; 运行时的输出结果是_。(分数:2.50)A.1_120B.2_120 C.1_20D.2_20解析:解析 本题考查派生类构造函数调用、静态成员以及虚函数的使用。题中,定义基类指针 ptr 指针派生类的动态空间。要先调用基类 B 的构造函数,coum 自增后为 1,x 的值为 20;再调用派生类 D 的构造函数,count 自增后为 2,y 的值为 120。“ptr-show();”调用的是派生类
23、 D 中的 show()函数,输出count 和 y 的值,分别为 2 和 120。最终输出结果为 2_120。2.假定 AB 为一个类,则执行 AB x;语句时将自动调用该类的(分数:2.00)A.有参构造函数B.无参构造函数 C.拷贝构造函数D.赋值重载函数解析:解析 当没有显式调用指定形式的构造函数,则系统自动调用无参构造函数,如果没有为类指定此构造函数,则系统自动为其生成一个最简单的无参构造函数。3.下列语句段将输出字符“*“的个数为_。 int i=100; while(1) i-; if(i=0) break; cout“*“; (分数:2.50)A.98 个B.99 个 C.10
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 分类 模拟 278 答案 解析 DOC
