没有合适的资源?快使用搜索试试~ 我知道了~
面向对象程序设计C++复习题.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 173 浏览量
2022-11-20
17:11:27
上传
评论
收藏 154KB DOCX 举报
温馨提示
试读
41页
。。。
资源推荐
资源详情
资源评论
面向对象程序设计 C++ 复习题
一
、选择题
1.不是面向对象程序设计的基本特征是( D )。
A、抽象; B、封装; C、继承;
D、类;
2. 如下对类 CPoint 的说明,其中错误的是( B )。
A class CPoint{
B
int a=100;
public:
C
CPoint(int val);
~ CPoint( );
D
};
A、A;
B、B;
C、C;
D、D;
3.使用 new 运算符为 char 数组动态分配 10 个存储空间,正确的是(
B )。
A、char*pre=new char (10);
B、char*pre=new char [10];
D、char *pre=new char;
C、char*pre=new char [10](10);
4.以下有关类与对象的描述中错误的是( C
)。
B、对象是类的实例;
D、一个对象必属于某个类;
5.下列函数声明中,默认参数设置正确的是(A )。
A、类是一种类型,它封装了数据和操作;
C、一个类的对象只有一个;
A、int max(int x,int y=1,int z=2); B、int max(int x=1,int y,int z=3);
C、int max(int x,int y=2,int z); D、int max(int x=1,int z=3,int y);
6.假设有定义 const char *n=“this is a book”; 错误的是( A )。
A、n[3]=‘a’;
B、n=“lin”; C、n=new char[10];
D、n=new char(‘a’);
7.以下有关运算符重载的描述中,正确的是( D )。
A、C++语言允许在重载运算符时改变运算符的操作数个数;
B、C++语言允许在重载运算符时改变运算符的优先级;
C、C++语言允许在重载运算符时改变运算符的结合性;
D、C++语言允许在重载运算符时改变运算符原来的功能;
8.在类外部可被访问的成员有( B
A、类所有的成员; B、类公有的成员; C、类私有的成员; D、类保护的成员;
9.以下有关构造函数的描述中,正确的是( B )。
)。
A、构造函数可以带有返回值;
C、构造函数必须带有参数;
B、构造函数的名字与类名完全相同;
D、构造函数必须定义,不能默认;
10.以下关于析构函数的描述中,正确的是( C )。
A、析构函数可以重载;
B、析构函数名与类名完全相同;
C、析构函数不能指定返回类型;
11.重载函数满足的条件的是( D
A、必须有不同的参数个数;
C、A 和 B 必须同时满足;
D、析构函数可以带参数;
)。
B、对应的参数类型必须不相同;
D、A 和 B 只要满足一个即可;
C )。
12.类声明时,以下描述的正确是(
A、可以在类的声明中给数据成员赋初值; B、构造函数的名称可以与类名不同;
C、private、public、protected 可以按任意顺序出现;
D、没有用 private、public、protected 定义的数据成员是公有成员;
13.友元函数的作用之一是( D
A、实现数据的共享;
)。
B、加强类的封装;
C、实现数据的隐藏性;
D、提高程序的运行效率;
14.构造函数是在( C )时被执行。
A、程序编译; B、创建类; C、创建对象;
D、程序装入内存;
15.下面关于友元函数的描述中,错误的是( D )。
A、关键字 friend 用于声明友元;
B、一个类中的成员函数可以是另一类的友元;
C、友元函数访问对象的成员不受访问属性的影响;
D、友元函数通过 this 指针访问对象成员;
16.当一个派生类保护继承一个基类时,基类中所有的公有成员和保护成员成为派生类
的( C )。
A、public 成员; B、private 成员;
C、protected 成员;
D、友元;
17.在创建派生类的对象时,构造函数的执行顺序是( D
)。
A、对象成员构造函数、基类构造函数、派生类本身的构造函数;
B、派生类本身的构造函数、基类构造函数、对象成员构造函数;
C、基类构造函数、派生类本身的构造函数、对象成员构造函数;
D、基类构造函数、对象成员构造函数、派生类本身的构造函数;
18.关于纯虚函数与抽象类的描述中,错误的是( C
A、纯虚函数是一种特殊的函数,它允许没有具体的实现;
B、抽象类是指具有纯虚函数的类;
)。
C、一个基类的声明中有纯虚函数,该基类的派生类一定不再是抽象类;
D、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出;
19.若类 A 和类 B 的定义如下:
class A
{ int x,y;
public:
void get(); };
class B:public A
{
protected:
int z;
public:
void make(); };
void B::make()
{ z=x*y; }
则其中( D )是非法的表达式。
A、void get();
20.下列关于继承与派送的描述中,错误的是( D )。
A、析构函数不能被继承; B、派生类是基类的组合;
B、int z;
C、void make();
D、k=x*y;
C、派生类的成员除了它自己的成员外,还包含了它的基类的成员;
D、派生类中继承的基类成员的访问权限到派生类保持不变;
21.有关派生类中虚函数原型的描述中,正确的是( D
)。
A、函数类型可以与基类中虚函数的类型不同; B、参数个数可以与基类中虚函数的原型
不同;
C、参数类型可以与基类中虚函数的原型不同;
D、以上说明都不对;
22.在保护继承的情况下,下面描述正确的是( A )。
A、基类中私有成员在派生类中不可直接访问;
B、基类中公有成员和保护成员在派生类中访问属性保持不变;
C、通过派生类对象可以访问基类中公有的成员;
D、在派生类中能够直接访问基类中私有成员;
23.在下面有关静态成员的描述中,正确的是( B
)。
A、在静态成员函数中可以使用 this 指针; B、在建立对象前,就可以为静态数据成员
赋值;
C、静态成员函数在类外定义时,要用 static 前缀; D、静态数据成员只能在类外定义;
24.关于 this 指针的描述正确的是( B )。
A、this 指针必须显示声明;
C、成员函数拥有 this 指针;
B、创建一个对象后,this 指针就指向该对象;
D、静态成员函数拥有 this 指针;
25.使用派生类的主要原因是( A )。
A、提高代码的可重用性;
C、加强类的封装性;
B、提高程序的运行效率;
D、实现数据的隐藏;
26.已知类 A 中的一个成员函数的说明为:void Set(A &a);则该函数的参数“A &a”的含
义是( C )。
A、指向 A 的指针为 a;
B、将变量 a 的地址赋给类 A;
C、类 A 对象引用 a 用作函数的形参; D、变量 A 与 a 按位与后作函数参数;
27. C++是对 C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是
( D )。
A、增加了一些新的运算符; B、允许函数重载,并允许设置缺省参数;
C、规定函数说明符必须用原型; D、引进了对与对象的概念;
28. 下列程序的输出结果是( B )。
#include<iostream>
using namespace std;
int main()
{
int n[][3]={1,2,3,4,5,6};
int (*p)[3];
p=n;
cout<<p[0][0]<<","<<*(p[0]+1)<<","<<(*p)[2]<<endl;
剩余40页未读,继续阅读
资源评论
春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功