
一、单选题
1.以下叙述正确的是( C )
A.在C++程序中,main函数必须位于程序的最前面
B.C++程序的每行中只能写一条语句
C.C++语言本身没有输入输出语句
D.在对一个C++程序进行编译的过程中,可发现注释中的拼写错误
2.有关函数重载的正确说法是( B )
A.函数名不同,但参数的个数和类型相同
B.函数名相同,但参数的个数不同或参数的类型不同
C.函数名相同,参数的个数和类型相同
D.函数名相同,函数的返回值不同,而与函数的参数和类型无关
3.已知int a[3][2]={3,2,1}; 则表达式“a[0][0]/a[0][1]/a[0][2]”的值是( B )
A.0.166667
B.1
C.0
D.错误的表达式。
4.若用数组名作为函数调用时的实参,则实际上传递给形参的是( A )
A.数组首地址
B.数组的第一个元素值
C.数组中全部元素的值
D.数组元素的个数
5.下面函数的功能是( B )
void fun(char *s1, char *s2) { while(*s2++ = *s1++); }
A.字符串比较
B.字符串复制
C.字符串连接
D.字符串反向
6.下面关于虚函数和函数重载的叙述中,不正确的是( A )
A.虚函数不是类的成员函数
B.虚函数实现了C++的多态性
C.函数重载允许非成员函数,而虚函数则不行
D.函数重载的调用根据参数的个数、序列来确定,而虚函数依据对象确定
7.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( D )
A.const char *p="ABCD";
B.char const *p="ABCD";
C.char *const p="ABCD";
D.const char * const p="ABCD";
8.以下不合法的用户标识符是( C )
A.f2_G3
B.IF
C.4d
D._8
9.C语言中,double型数据所占字节数是( D )
A.2
B.4
C.6
D.8
10.关于类和对象不正确的说法是( C )
A.类是一种类型,它封装了数据和操作
B.对象是类的实例
C.一个类的对象只有一个
D.一个对象必属于某个类
11.在类定义的外部,可以被访问的成员有( C )
A.所有类成员
B.private或protected的类成员
C.public的类成员
D.public或private的类成员
12.关于this指针的说法错误的是( A )
A.this指针必须显示说明
B.当创建一个对象后,this指针就指向该对象
C.成员函数拥有this指针
D.静态成员函数不拥有this指针
13.对静态成员的不正确描述是( C )
A.静态成员不属于对象,是类的共享成员
B.静态数据成员要在类外定义和初始化
C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针
D.非静态成员函数也可以操作静态数据成员
14.在创建派生类对象时,构造函数的执行顺序是( D )
A.对象成员构造函数、基类构造函数、派生类本身的构造函数
B.派生类本身的构造函数、基类构造函数、对象成员构造函数
C.基类构造函数、派生类本身的构造函数、对象成员构造函数
D.基类构造函数、对象成员构造函数、派生类本身的构造函数
15.字符串:”\\\\0211\\”xab” 的长度为( B )
A.1
B.9
C.0
D. 11
16.以下叙述中错误的是( C )
A.局部变量的定义可以在函数体内部
B.全局变量的定义可以在函数以外的任何位置
C.同一程序中,全局变量和局部变量不能同名
D.函数的形参属于局部变量
17.下面对构造函数的不正确描述是( B )
A.系统可以提供默认的构造函数
B.构造函数可以有参数,所以可以有返回值
C.构造函数可以重载
D.构造函数可以设置默认参数
18.下面对析构函数的正确描述是( C )
A.系统不能提供默认的析构函数
B.析构函数必须由用户定义
C.析构函数没有参数
D.析构函数可以设置默认参数
19.对静态成员的不正确描述是( C )
A.静态成员不属于对象,是类的共享成员
B.静态数据成员要在类外定义和初始化
C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针
D.非静态成员函数也可以操作静态数据成员
20.下面对友元的错误描述是( D )
A.关键字friend用于声明友元
B.一个类的成员函数可以是另一个类的友元
C.友元函数访问对象的成员不受访问特性影响
D.友元函数通过this指针访问对象成员
21.下列关于类的继承描述中,错误的是( A )
A.派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
B.派生类也是基类,但基类不一定具有派生类的全部属性和方法
C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D.一个基类可以有多个派生类,一个派生类可以有多个基类
22.当一个派生类私有继承一个基类时,基类中的所有仅有成员和保护成员成为派生类的( B )
A.public成员
B.private成员
C.protected成员
D.友元
23.不论派生类以何种方法继承基类,都不能使用基类的( B )
A.public成员
B.private成员
C.protected成员
D.public成员和protected成员
24.在C++中,要实现动态联编,必须使用( D )调用虚函数
A.类名
B.派生类指针
C.对象名
D.基类指针
25.下列运算符中( A )运算符在C++中不能重载。
A.? :
B.[ ]
C.new
D.&&
26.在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值( B )
A.不同
B.相同
C.相容
D.部分相同
27.下面函数原型声明中,( B )声明了fun为纯虚函数
A.void fun()=0;
B.virtual void fun()=0;
C.virtual void fun();
D.virtual void fun(){};
28.在排序方法中,关键码比较次数与记录地初始排列无关的是( D )
A.Shell排序
B.归并排序
C.直接插入排序
D.选择排序
29.代码如下中,变量val的内存地址位于( B )
void func() {
static int val;
…
}
A.已初始化数据段
B.未初始化数据段
C.堆
D.栈
30.同一进程下的线程可以共享以下( B )
A.stack
B.data section
C.register set
D.thread ID
31.short a[100],sizeof(a)返回值是( D )
A.2
B.4
C.100
D.200
E.400
32.一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是( C )
A.EDCBA;
B.DECBA;
C.DCEAB;
D.ABCDE
33.友元运算符obj>obj2被C++编译器解释为( A )。
A. operator>(obj1,obj2)
B. >(obj1,obj2)
C. obj2.operator>(obj1)
D. obj1.oprator>(obj2)
34.在一个类中可以对一个操作符进行( D )重载。
A.1种
B.2种以下
C.3种以下
D.多种
35.下列关于C++运算符函数的返回类型的描述中,错误的是( C )。
A.可以是类类型
B.可以是int类型
C.可以是void类型
D.可以是float类型
二、多选题
36.下面描述中,错误的是( BC )
A.在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问
B.在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问
C.在基类定义的public和protected成员在保护继承的派生类中不可见
D.在派生类中不可见的成员要变成可访问的,需要进行访问声明
37.在C++中,不能被派生类继承的函数是( BC )
A.成员函数
B.构造函数
C.析构函数
D.静态成员函数
38.当不同的类具有相同的间接基类时,有特点( AD )
A.各派生类对象将按继承路线产生自己的基类版本
B.派生类对象无法产生自己的基类版本
C.为了建立惟一的间接基类版本,在基类定义前加virtual即可
D.为了建立惟一的间接基类版本,应该声明虚继承
39.下列函数中,可以作为虚函数的是( CD )
A.普通函数
B.构造函数
C.成员函数
D.析构函数
40.下面描述中,正确的是( BD )
A.虚函数是没有实现的函数
B.纯虚函数的实现在派生类中
C.抽象类是没有纯虚函数的类
D.抽象类指针可以指向不同的派生类
41.下列的模板说明中,正确提( AD )
A.template  B.template  C.template  D.template  42.假设有函数模板定义如下: Template  Max(T a, T b, T &c) {  c=a+b;  } 下列选项正确的是(  AD  ) A.float x,y; float z;  Max(x,y,z); B.int x,y,z; Max(x,y,z); C.int x,y; float z; Max(x,y,z); D.float x; int y, z; Max(x,y,z); 43.以下多线程对int型变量x的操作,哪几个需要进行同步( ABC ) A.x=y;          B.x++;         C.++x;             D.x=1; 44.TCP和IP分别对应了 OSI中的哪几层 ( EG ) A.Application layer  B.Data link layer  C.Presentation layer  D.Physical layer  E.Transport layer  F.Session layer  G.Network layer 
