C++期末练习题~~~~~

(1)C++语言是从早期的C语言逐渐发展演变而来的。与C语言相比,它在求解问题方法上进行的最大改进是(B )
A)面向过程  B)面向对象  C)安全性  D)复用性

(2)下面有关重载函数的说法中正确的是(C )
A)重载函数必须具有不同的返回值类型;  
B)重载函数形参个数必须不同;  
C)重载函数必须有不同的形参列表  
D)重载函数名可以不同;

(3)下列关于构造函数的描述中,错误的是(D )
A)构造函数可以设置默认参数;   B)构造函数在定义类对象时自动执行  
C)构造函数可以是内联函数;  D)构造函数不可以重载

(4)下面关于C++中类的继承与派生的说法错误的是:(C )
A)基类的protected成员在公有派生类的成员函数中可以直接使用
B)基类的protected成员在私有派生类的成员函数中可以直接使用
C) 私有派生时,基类的所有成员访问权限在派生类中保持不变
D)继承可以分为单一继承与多重继承

(5)C++语言中提供内存申请运算符(),它能可靠地控制内存的分配。
A)delete B)new C)pos D)auto

(6)若执行完以下语句,i和j的值分别为( )。
int i;
int &j=i;
i=5;
j=i+1;
A) 5,5 B) 5,6 C)6,6 D) 6,5

(7)类MyClass的定义如下:
class MyClass
{
public:
MyClass(){value=0;}
SetValue(int i){value=i;}
private:
int value;
};
则对语句:MyClass*p,my;p=&my;正确的描述是( )。
A) 语句p=&my;是把对象my赋值给指针变量p;
B) 语句MyClass *p,my;会调用两次类MyClass的构造函数
C) 语句*p.SetValue(5)的调用是正确的
D) 语句p->SetValue(5)与my.SetValue(5)等价

(8)通常拷贝构造函数的参数是()。
A) 某个对象名
B) 某个对象的成员名
C) 某个对象的引用名
D) 某个对象的指针名

(9)有以下类的定义,其中出错的位置是( )。
class Csample
{ Csample(); // A
public:
inta=10; // B
Csample(int a0); // C
~Csample(); // D
};

(10)以下叙述中不正确的是( )。
A)在类定义中,通常是用成员变量描述对象的属性; 用成员函数描述对象的行为
B)类的一个成员只能具有一种访问控制属性
C)构造函数和析构函数是特殊的成员函数,因此不允许重载
D)通过对象只能访问类的公有成员

第1个回答  2013-12-19
第 9 ,10 题 其他题答案统一,且有正确的解释
9 B 类成员默认访问属性为 private,构造函数的可以为private成员,类定义中 成员变量是不可以被初始化的
10 c 构造函数是可以被重载的
第2个回答  2013-12-18
5.B delete是释放堆里的内存,对应于new
6.C int &j = i;语句申明了j是i的引用,所以j就是i,i就是j.他们的地址相同,所以他们的值同时变化
7.D p=&my;语句将p指向了对象my的地址,所以用*p和my是等价的
8.C 这题简单,不解释
9.B 成员变量不能在定义时初始化
10.D 在友元函数中,可以访问私有成员
第3个回答  2013-12-18

5.B 

6.C

第4个回答  2013-12-18
5、B
6、C
7、D
8、C
9、A
10、C
第5个回答  2013-12-18
5、B
6、C
7、D
8、C
9、A
10、C