浙大《面向对象程序设计》在线作业
浙大《面向对象程序设计》在线作业一、单选题:
1. cerr与clog是( )类的对象。 (满分:2)
A. fstream
B. ostream
C. istream
D. ios
2. 面向对象程序设计着重于( )的设计。 (满分:2)
A. 对象
B. 类
C. 算法
D. 数据
3. 在声明类时 ,下面说法正确的是()。 (满分:2)
A. 可以在类的声明中给数据成员赋初值
B. 数据成员的数据类型可以是register
C. private,public,proected 可以按任意的顺序出现
D. 没有用private,public,proected定义的数据成员是共有成员
4. 关于输出运算符<<的重载,下列说法不正确的是( )。 (满分:2)
A. 运算符函数的返回值类型是ostream&。
B. 重载的运算符必须定义为类的成员函数。
C. 运算符函数的第一个参数的类型是ostream&。
D. 运算符函数有两个参数。
5. 一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明( )。 (满分:2)
A. 需要加上类域的限定
B. 不需加上类域的限定
C. 类域的限定可加可不加
D. 不需要任何限定
6. 对重载的函数来说,下面叙述不正确的是( ) (满分:2)
A. 参数的类型不同
B. 参数的顺序不同
C. 参数的个数不同
D. 参数的个数、类型、顺序都相同,但返回值类型不同
7. 下面关于析构函数特征的描述正确的是( )。 (满分:2)
A. 一个类中可以定义多个析构函数
B. 析构函数名与类名相同
C. 析构函数不能指定返回类型
D. 析构函数可以有一个或多个参数
8. 关于new运算符的描述中错误的是( )。 (满分:2)
A. 用它创建对象和堆对象数组
B. 用它创建对象和堆对象数组时要调用相应的构造函数
C. 用它创建对象和堆对象数组时可用运算符delete释放
D. 用它创建堆对象数组时可指定初始值
9. 有关运算符重载正确的描述是( )。 (满分:2)
A. C++语言允许重载运算符时改变运算符的操作个数
B. C++语言允许重载运算符时改变运算符的优先级
C. C++语言允许重载运算符时改变运算符的结合性
D. C++语言允许重载运算符时改变运算符原来的功能
10. 使用如setfill()的操作符对数据进行格式输出时,应包含( )头文件。 (满分:2)
A. iostream
B. fstream
C. iomanip
D. stdlib
11. C++语言建立类族是通过( )。 (满分:2)
A. 类的嵌套
B. 类的继承
C. 虚函数
D. 抽象类
12. 下列不合法的变量名为( ) (满分:2)
A. int
B. int1
C. name1
D. name0
13. 下面关于构造函数的描述正确的是( )。 (满分:2)
A. 构造函数可以带有返回值
B. 构造函数的名字与类名完全相同
C. 构造函数必须带有参数
D. 构造函数必须定义,不能默认
14. 下列关于静态成员的描述中,错误的是( )。 (满分:2)
A. 静态成员分为静态数据成员和静态成员函数两种
B. 静态数据成员初始化不用构造函数
C. 静态成员函数中一般不能直接引用非静态成员
D. 静态数据成员初始化必须在类体中
15. 类的析构函数的作用是( ) (满分:2)
A. 一般成员函数
B. 类的初始化
C. 对象初始化
D. 删除对象
16. 假定AB为一个类,则执行“AB*p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。 (满分:2)
A. 0
B. 1
C. 2
D. 3
17. 用关键字( )标记的函数被称为虚函数。 (满分:2)
A. virtual
B. private
C. public
D. protected
18. 面向对象的程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做( )。 (满分:2)
A. 抽象
B. 继承
C. 封装
D. 多态
19. 对于语句cin>>x;中各个组成部分,下列叙述中错误的是( )。 (满分:2)
A. ";"的作用是语句的结束
B. "cin"是一个输出流对象
C. ">>"称作提取运算符
D. "x"是一个变量
20. 关于关键字class和typename,下列表述正确的是( )。 (满分:2)
A. 程序中所有typename都可以替换成class
B. 程序中所有class都可以替换成typename
C. A与B都正确
D. A与B都不正确
二、多选题:
1. 下面说法正确的是( ) (满分:2)
A. 将数据结构和算法置于同一个函数内,即为数据封装
B. 一个类通过集成可以获得另一个类的特征
C. 面向对象要求程序员集中于事物的本质特征,用抽象的观点看待程序
D. 同一消息为不同的对象接受时,产生的行为是一样的,这称为一致性
2. 继承是( )的方法。 (满分:2)
A. 将特殊的类变成通用的类
B. 把通用的参数传送给特殊的类的对象
C. 将通用的类变成特殊的类
D. 将已有的类添加新的特性,但不重写它们
3. 下面关于析构函数描述正确的是( ) (满分:2)
A. 系统可以提供默认的析构函数
B. 析构函数必须由用户定义
C. 析构函数没有参数
D. 析构函数可以设置默认参数
4. 下面说法正确的是( ) (满分:2)
A. 所有的函数都可以说明为内置函数
B. 具有循环语句、switch语句的函数不能说明为内置函数
C. 使用内置函数,可以加快程序执行的速度,但会增加程序代码的大小
D. 使用内置函数,可以减小程序代码大小,但使程序执行的速度减慢
5. 下列函数中,可以作为虚函数的是( )。 (满分:2)
A. 普通函数
B. 非静态成员函数
C. 构造函数
D. 析构函数
三、判断题:
1. 以app方式打开文件时,当前指针定位于文件尾。( ) (满分:2)
A. 错误
B. 正确
2. 在C++语言中,类是支持数据封装的工具。( ) (满分:2)
A. 错误
B. 正确
3. 一个类可以作为另一个类的友元类。( ) (满分:2)
A. 错误
B. 正确
4. 作为模板类型参数的关键字class,特别含义是“任何用户定义类的类型”。() (满分:2)
A. 错误
B. 正确
5. 派生类不能作为基类派生出新类。( ) (满分:2)
A. 错误
B. 正确
6. 纯虚函数是一种不给出具体实现的虚函数。( ) (满分:2)
A. 错误
B. 正确
7. 在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才能具有多态的特征。( ) (满分:2)
A. 错误
B. 正确
8. 类的友元函数可以直接访问该类的所有成员。( ) (满分:2)
A. 错误
B. 正确
9. 一般对象和指向对象指针的成员函数表示分别是运算符.和-> 。( ) (满分:2)
A. 错误
B. 正确
10. 对于从基类继承的虚函数,派生类也可以不进行重定义。( ) (满分:2)
A. 错误
B. 正确
11. 常量不能作为左值使用。( ) (满分:2)
A. 错误
B. 正确
12. 静态数据成员函数是属于某个对象的。( ) (满分:2)
A. 错误
B. 正确
13. 派生类的成员函数可以直接访问基类的所有成员。( ) (满分:2)
A. 错误
B. 正确
14. 构造函数的定义必须在类体内 。( ) (满分:2)
A. 错误
B. 正确
15. 静态数据成员的值是不能改变的 。( ) (满分:2)
A. 错误
B. 正确
16. 变量必须先定义后赋值。( ) (满分:2)
A. 错误
B. 正确
17. 友元函数说明在类体内它是一种成员函数 。( ) (满分:2)
A. 错误
B. 正确
18. 在类体内允许对数据成员进行初始化 。( ) (满分:2)
A. 错误
B. 正确
19. 在类的定义中,引入友元的原因是提高效率。( ) (满分:2)
A. 错误
B. 正确
20. 使用const说明常量时,可以不必指出类型.( ) (满分:2)
A. 错误
B. 正确
21. 友元类中所有成员函数都是友元函数 。( ) (满分:2)
A. 错误
B. 正确
22. 成员函数中调用的虚函数可能实现动态联编。( ) (满分:2)
A. 错误
B. 正确
23. 在私有继承方式下,派生类的对象可访问基类中的公有成员。( ) (满分:2)
A. 错误
B. 正确
24. 用new动态申请的内存是在堆中分配的,而不是在栈中分配的。( ) (满分:2)
A. 错误
B. 正确
25. 在派生过程中,派生类吸收包括构造函数和析构函数在内的所有基类成员。( ) (满分:2)
A. 错误
B. 正确
页:
[1]