一、 单项选择题(2×10):
1. 假定一个类的构造函数为a ( int aa, int bb) { a = aa; b = bb; },则执行a x(4,5);语法后,x.a和x.b的值分别为( )
a.4和5 b.5和4 c.4和20 d.20和5
2. 假定ab为一个类,则执行ab x;语句时将自动调用该类的( )
a.有参构造函数 b.无参构造函数 c.拷贝构造函数 d.赋值重载函数
3. c++语言建立类族是通过( )
a.类的嵌套 b.类的继承 c.虚函数 d.抽象类
4. 执行语句序列
ofstream outf("salary.dat");if (…) cout<<"成功!"; else cout<<"失败!";
后,如果文件打开成功,显示"成功!",否则显示"失败!"。由此可知,上面if语句的……处的表达式是( )
a.!outf或者outf.fail() b.!outf或者outf.good() c.outf或者outf.good() d.outf或者ouf.fail()
5. 静态成员函数不能说明为( )
a.整型函数 b.浮点函数 c.虚函数 d.字符型函数
6. 在c++中,数据封装要解决的问题是( )
a.数据规范化排列 b.数据高速转换 c.避免数据丢失 d.切断了不同模块之间的数据的非法使用
7. 在c++中有下列4条语句:
int hot = 100;
int &rsd = hot;
hot = hot + 100;
cout<执行这4条语句后输出为( )
a.0 b.100 c.200 d.300
8. 如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为( )
a.public b.protected c.private d.static
9. 设置虚基类的目的是( )
a.消除两义性 b.简化程序 c.提高运行效率 d.减少目标代码
10. 实现运行时的多态性用( )
a.重载函数 b.构造函数 c.析构函数 d.虚函数
二、 填空题(2×10):
11、面向对象程序设计的____________机制提供了重复利用程序资源的一种途径。
12、对虚函数使用基类类型的指针或引用调用,系统使用____________联编;而使用对象调用时,系统使用____________联编。
13、允许访问一个类的所有对象的私有成员、公有成员和保护成员的函数是该类的____________和____________。
14、执行完c++程序中的三天语句:
int a,b,*c=&a;
int * &p = c;
p = &b;
后c指向____________。
15、class x {
public:
int a;
enum bool { false, true };
};
void fun(x& x)
{
__________ = ______________________;// 将x的a赋值为所定义的布尔值false
}
16、在类定义中,类说明以关键字class开始,其后跟____________,它必须是一个有效的c++标识符。类说明的内容用花括号括起来,称为____________。
17、实现类对象初始化任务的是该类的____________。
18、初始化类模板时,相对于它的每个参数要提供____________。
19、重载的运算符仍然保持其原来的优先级、结合性和____________。
20、从一个抽象类派生的类必须提供纯虚函数的实现代码,或者在该派生类中将它说明为____________。
三、 改错题(2×5):
21、指出下面程序中的错误,在错误处说明出错原因
#include
const float pi = 3.1416;
const float r = 3.2;
void main() {
float s1,s2,c1,c2,r1;
c1 = pi*r*r;
s1 = 2*pi*r;
r = 2.8;
c2 = pi*r*r;
s2 = 2*pi*r;
cout<22、指出下面程序中的错误,在错误处说明出错原因
class a {
public:
a( ) { func(); }
virtual void func() = 0;