一、单选题
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小时内删除。