一、单选题
1.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为 ( A )。
A. main B. MAIN C. name D. function
2.假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为 (B)。
A. 3 B. 4 C. 6 D. 9
3.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:( B )。
A. AB operator+(AB & a , AB & b) B. AB operator+(AB & a)
C. operator+(AB a) D. AB & operator+( )
4. 关于virtual void Draw()=0,下面说法正确的有几个(C)
(1)它是纯虚函数(对)
(2)它在定义它的类中不能实现(对)
(3)定义它的类不可实例化(对)
(4)如果一个类要继承一个ADT类,必须要实现其中的所有纯虚函数(错)//可以不实现,派生之后的类仍旧作为一个抽象类.
A. 1 B. 2
C. 3 D. 4
5. 下面哪一本C++参考书最厚? ( C)
A. 《Think in C++》 B. 《深入浅出MFC》
C. 《C++ Primer》 D. 《Effective C++》
6. stl::deque是一种什么数据类型? (A )
A. 动态数组 B. 链表
C. 堆栈 D. 树
7. STL库里含有下面的哪一种泛型算法? (D )
A. KMP查 B. 折半查
C. 冒泡排序 D. 快速排序
8. 下面哪一个不是C++的标准数据类型? ( D)
A. int B. char
C. bool D. real
9. 类的继承方式有几种? (B )
A. 两种 B. 三种
C. 四种 D. 六种
10. extern关键字的作用是什么? (D)
A. 声明外部链接 B. 声明外部头文件引用
C. 声明使用扩展C++语句 D. 声明外部成员函数、成员数据。
11 C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解 问题方法上进行的最大改进是(b)
A)面向过程 B)面向对象 C)安全性 D)复用性
12 C++语言的跳转语句中,对于break和continue说法正确的是(c)
A)break语句只应用与循环体中
B)continue语句只应用与循环体中
C)break是无条件跳转语句,continue不是
D)break和continue的跳转范围不够明确,容易产生问题
13 for(int x=0,y=o;!x& &y<=5;y++)语句执行循环的次数是(c)
A)0 B)5 C)6 D)无次数
14考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是(c)
A)test(5); B)test(5,8); C)test(6,"#") D)test(0,0."*");
15下面有关重载函数的说法中正确的是(c)
A)重载函数必须具有不同的返回值类型; B)重载函数形参个数必须不同;
C)重载函数必须有不同的形参列表 D)重载函数名可以不同;
16下列关于构造函数的描述中,错误的是(d)
A)构造函数可以设置默认参数; B)构造函数在定义类对象时自动执行
C)构造函数可以是内联函数; D)构造函数不可以重载
17下面描述中,表达错误的是(b)
A)公有继承时基类中的public成员在派生类中仍是public的
B)公有继承是基类中的private成员在派生类中仍是private的
C)公有继承时基类中的protected成员在派生类中仍是protected的
D)私有继承时基类中的public成员在派生类中是private的
18应在下列程序划线处填入的正确语句是(c)
#include
class Base
{ public:
void fun(){cout<<"Base::fun"<<ENDL;}
};
class Derived:public Base
{ void fun()
{_____________ //显示调用基类的函数fun()
cout<<"Derived::fun"<<ENDL;
}
};
A)fun(); B)Base.fun(); C)Base::fun(); D) Base->fun();
19 有如下程序: (A)
#include <stdio.h>
#include <iostream>
using namespace std;
class BASE{
char c;
public:
BASE(char n):c(n){}
virtual~BASE(){cout<<c;}
};
class DERIVED:public BASE{
char c;
public:
DERIVED(char n):BASE(n+1),c(n){}
~DERIVED(){cout<<c;}
};
int main()
{
DERIVED('x');
return 0;
}
执行上面的程序将输出()
A)XY B)YX C)X D)Y
20 C++ 类体系中,不能被派生类继承的有( b)。
A 、 转换函数
B 、 构造函数
C 、 虚函数
D 、 静态成员函数
指向类成员函数的指针21 、每个类( c )构造函数。
A 、只能有一个
B 、只可有公有的
C 、可以有多个
D 、只可有缺省的
22 、在一个类中可以对一个操作符进行( d )重载。
A 、 1 种
B 、 2 种以下
C 、 3 种以下
D 、多种
23 、重载赋值操作符时,应声明为( c )函数。
A 、 友元
B 、 虚
C 、 成员
D 、 多态
24 、在公有继承的情况下,基类成员在派生类中的访问权限( b )
A 、 受限制
B 、 保持不变
C 、 受保护
D 、 不受保护
25 、通过( a )调用虚函数时,采用动态绑定。
A 、 对象指针
B 、 对象名
C 、 成员名限定
D 、 派生类名
二、多选题
1、下列哪些写法是对的,而且是常量。 ( ABCEGH正确,D错误 )
A 125 B -.456 C 1.25e20 D 'AB'
E E6 F 0238 G 0xabcdef H "\n\\\'\123"
2. 下面哪些运算符不能被重载? (ABD )
A. 做用域运算符“::” B. 对象成员运算符“.”
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论