期末模拟题2c++.docx
《期末模拟题2c++.docx》由会员分享,可在线阅读,更多相关《期末模拟题2c++.docx(8页珍藏版)》请在冰豆网上搜索。
![期末模拟题2c++.docx](https://file1.bdocx.com/fileroot1/2022-10/29/26f81ee0-1111-441e-b013-5106dea07ac5/26f81ee0-1111-441e-b013-5106dea07ac51.gif)
期末模拟题2c++
1.在一个被调用函数中,关于return语句的描述错误的是(B)
A.被调用的函数可以不用return语句B.被调用的函数可以使用多个return语句
C.被调用的函数如果有返回值,就一定要有return语句
D.被调用的函数中,一个return语句可以返回多个值给调用和函数
2.下面关于成员函数的叙述中错误的是(A)
A.成员函数一定是内联函数
B.成员函数可以设置参数默认值
C.成员函数可以重载
D.成员函数可以是静态的
3.派生类的对象可以访问基类成员中的(C)
A.公有继承的保护成员B.保护继承的公有成员
C.公有继承的公有成员D.保护继承的保护成员
4.在带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数传递参数,这样将对虚基类的子对象初始化(D)
A.与虚基类下面的派生类个数有关B.多次
C.二次D.一次
5.在磁盘文件操作中,以追加方式打开文件的访问方式常量是(C)
A.inB.outC.appD.ate
6.假定A为一个类,则执行“Aa(4),b[3],*p[2];”时,调用该类构造函数的次数为( B)
A.3B.4C.6D.9
7.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为(B)
A.ABoperator+(AB&a,AB&b)B.ABoperator+(AB&a)
C.operator+(ABa)D.AB&operator+()
8.若类的成员函数是在类中定义的,则默认为(D )函数
A.构造 B.析构 C.友元 D.内联(inline)
9.在下面的函数声明中,存在语法错误的是(D )
A. voidBC(inta,int) B。
voidBD(int,int)
C. voidBE(int,int=5) D。
int BF(intx;inty)
10.下面是关于构造函数的说法,不正确的是(C)。
A.C++规定,每一个类必须有一个构造函数,没有构造函数就不能创建对象
B.如果没有提供一个类的构造函数(一个都未提供),则C++提供一个默认的构造函数,该默认构造函数是个无参构造函数,它仅仅负责创建对象
C.虽然一个类定义了一个构造函数(不一定是无参构造函数),C++仍然提供默认的构造函数
D.与变量定义类似,在用默认构造函数创建对象时,如果创建的是全局对象或静态对象,则对象的位模式全为0,否则,对象值是随机的
11.多重继承的构造顺序一般可分为4步,下面给出这4个步骤:
step1:
任何非虚拟基类的构造函数按照它们被继承的顺序构造。
step2:
任何虚拟基类的构造函数按照它们被继承的顺序构造。
step3:
任何成员对象的构造函数按照它们声明的顺序构造。
step4:
类自己的构造函数。
这4个步骤的正确顺序是(C)。
A.step4、step3、step1、step2B.step2、step4、step3、step1
C.step2、step1、step3、step4D.step3、step4、step1、step2
12.友元运算符obj++被C++编译器解释为(B)。
A.operator++(obj)B.operator++(obj,0)
B.obj.operator++()D.obj.operator++(0)
13.声明类test的复制构造函数的正确形式是(D)。
A.inttestB.voidtestC.test(void)D.test(test&)
14.如果两个以上的函数,具有如下特点:
只有参数类型不同,返回值类型不同,功能完全一样,则为了提高代码的可重用性,可以使用(A)
A.重载函数B.内联函数
C.函数模板D.递归调用
15.关于友元类的描述,错误的是(C)
A.友元类被说明在一个类中,它与访问权限无关
B.友元类中的成员函数都是友元函数
C.友元类是被定义在某个类中的
D.如果类Y是类X的友元类,则类X不一定是类Y的友元类
16.下面程序的运行结果是(A)
voidf()
{staticinta=10;
intb=1;
a=a+b;
cout<}
voidmain()
{f();f();}
A.1112B.1111C.1212D.1011
17.对于动态分配内存空间描述正确的是(D)
A.使用new运算符分配的内存空间的长度必需是常量
B.delete运算符可以释放动态的存储空间和静态的存储空间
C.由new分配的内存空间是不连续的
D.delete运算符只能释放由new分配的动态存储空间
18.在C++中,下面的运算符不可重载的是(A)
A.三目运算符?
:
B.比较运算符
C.赋值运算符D.逗号运算符
01、下列关于C++函数的叙述中,正确的是(C)。
A)每个函数至少要具有一个参数B)每个函数都必须返回一个值
C)函数在被调用之前必须先声明D)函数不能自己调用自己
02、下列关于类和对象的叙述中,错误的是(A)。
A)一个类只能有一个对象B)对象是类的具体实例
C)类是对某一类对象的抽象D)类和对象的关系是一种数据类型与变量的关系
03、在C++中,用于实现运行时多态性的是(D)。
A)内联函数B)重载函数C)模板函数D)虚函数
04、下列关于运算符重载的叙述中,正确的是(B)。
A)通过运算符重载,可以定义新的运算符B)有的运算符只能作为成员函数重载
C)若重载运算符+,则相应的运算符函数名是+D)重载二元运算符时,必须声明两个形参
05、对于语句cout<A)“cout”是一个输出流对象B)“endl”的作用是输出回车换行
C)“x”是一个变量D)“<<”称作提取运算符
06、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的个数是(B)。
classMyBASE
{private:
intk;
public:
voidset(intn){k=n;}
intget()const{returnk;}};
classMyDERIVED:
protectedMyBASE
{protected:
intj;
public:
voidset(intm,intn){MyBASE:
:
set(m);j=n;}
intget()const{returnMyBASE:
:
get()+j;}};
A)4B)3C)2D)1
07、已知在一个类体中包含如下函数原型:
Volumeoperator-(Volume)const;,下列关于这个函数的叙述中,错误的是(B)。
A)这是运算符-的重载运算符函数 B)这个函数所重载的运算符是一个一元运算符
C)这是一个成员函数 D)这个函数不改变类的任何数据成员的值
08、执行如下的程序段后,输出结果是(A)。
cout.fill('*');cout.width(6);cout.fill('#');cout<<123<A)###123B)123###C)***123D)123***
09、在下列函数原型中,可以作为类AA构造函数的是(D)。
A)voidAA(int);B)intAA();C)AA(int)const;D)AA(int);
10、下面四个选项中,(A)是用来声明虚函数的。
A)virtualB)publicC)includeD)usingnamespace
11、实现运行时的多态性要使用(D)。
A)重载函数B)构造函数C)析构函数D)虚函数
12、要实现动态联编,必须通过(A)调用虚函数。
A)对象指针B)成员名限定C)对象名D)派生类名
13、以下(C)成员函数表示纯虚函数。
A)virtualintvf(int);B)voidvf(int)=0;
C)virtualvoidvf()=0;D)virtualvoidvf(int){}
14、有如下类声明:
classXA
{private:
intx;
public:
XA(intn){x=n;}};
classXB:
publicXA
{private:
inty;
public:
XB(inta,intb);};
在构造函数XB的下列定义中,正确的是(B)。
A)XB:
:
XB(inta,intb):
x(a),y(b){}B)XB:
:
XB(inta,intb):
XA(a),y(b){}
C)XB:
:
XB(inta,intb):
x(a),XB(b){}D)XB:
:
XB(inta,intb):
XA(a),XB(b){}
15、在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。
则operator+有个参数,operator*有参数。
(C)
A)2、2B)2、1C)1、2D)1、1
16、应在下列程序划线处填入的正确语句是(C)。
classBase
{public:
voidfun(){cout<<"Base:
:
fun"< classDerived:
publicBase
{voidfun()
{//显示调用基类的函数fun()
cout<<"Derived:
:
fun"<A)fun();B)Base.fun();C)Base:
:
fun();D)Base->fun();
3、根据访问权限的不同,可将类的成员分为三类____、____和____。
4、在函数调用过程中,当实参是一个数组名时,对应的形参必须是____或____。
5、指针变量包含另一变量的____值。
17、面向对象程序设计有四个主要特点,即抽象、封装、____和____。
16.动态内存的分配和释放采用关键词_____________和______________来描述。
18、非成员函数应声明为类的____函数才能访问这个类的private成员。
19、派生类中的成员不能直接访问基类中的____成员。
20、在用class定义一个类时,数据成员和成员函数的默认访问权限是____。
21、运算符重载函数可能是类的____函数,也可以是类的____函数,还可以是普通函数。
23、含有纯虚函数的类称为____。
4.假定AB为一个类,则执行”ABa[10];”语句时,系统自动调用该类构造函数的次数
为______
5.使用const语句定义一个标识符常量时,则必须对它同时进行_______
6.假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后,p所指对象的值为_______
7.设px是指向一个类动态对象的指针变量,则执行”deletepx;”语句时,将自动调用该类的_______