没有合适的资源?快使用搜索试试~ 我知道了~
C++期末复习(选择、判断与填空).pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 147 浏览量
2023-02-27
20:10:05
上传
评论 1
收藏 753KB PDF 举报
温馨提示
试读
16页
。
资源推荐
资源详情
资源评论
C++期末复习(选择、判断与填空)
一、单项选择
1、在 C++ 中,函数原型不能标识 ( D )
A、 函数的返回类型 B、 函数参数的个数
C、 函数参数类型 D、 函数的功能
2、在 C++ 程序中,对象之间的相互通信通过 ( B )
A、 继承实现 B、 调用成员函数实现
C、 封装实现 D、 函数重载实现
3、对于任意一个类,析构函数的个数最多为 ( B )
A、0 B、1 C、2 D、3
4、下面函数模板定义中不正确的是( A )
A、template<class Q> B、template<class Q>
Q F(Q x){ Q F(Q x){
return Q+x; return x+x;
} }
C、template<class T> D、template<class T>
T F(T x){ T F(T x){
return x*x; return x>1;
} }
5、友元关系不能 ( A )
A、 继承 B、 是类与类的关系
C、 是一个类的成员函数与另一个类的关系 D、 提高程序的运行效率
6、下面说法正确的是 ( B )
A、 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B、 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C、 类的内联函数必须在类体内定义
D、 类的内联函数必须在类体外通过加关键字 inline 定义
7、可以用 p.a 的形式访问派生类对象 p 的基类成员 a ,其中 a 是 ( D )
A、 私有继承的公有成员 B、 公有继承的私有成员
C、 公有继承的保护成员 D、 公有继承的公有成员
8、在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是 ( C )
A、 派生类的对象可以赋给基类的对象
B、 派生类的对象可以初始化基类的引用
C、 派生类的对象可以直接访问基类中的成员
D、 派生类的对象的地址可以赋给指向基类的指针
9、对于类定义
class A{
public:
virtual void func1( ){ }
void func2( ){ }
};
class B:public A{
public:
void func1( ){cout<< ″ class B func 1 ″ <<end1;}
virtual void func2( ){cout<< ″ class B func 2 ″ <<end1;}
};
下面正确的叙述是 ( C )
A、 A::func2( ) 和 B::func1( ) 都是虚函数
B、 A::func2( ) 和 B::func1( ) 都不是虚函数
C、 B::func1( ) 是虚函数,而 A::func2( ) 不是虚函数
D、 B::func1( ) 不是虚函数,而 A::func2( ) 是虚函数
10、继承的情况下,基类成员在派生类中的访问权限( A )
A、受限制 B、保持不变 C、受保护 D、不受保护
11、通过( A )调用虚函数时,采用动态束定。
A、对象指针 B、对象名 C、成员名限定 D、派生类名
12、.在 int a=3,*p=&a;中,*p 的值是( D )
A、变量 a 的地址值 B、无意义 C、变量 p 的地址值 D、 3
13、C++类体系中,不能被派生类继承的有( B )
A、转换函数 B、构造函数 C、虚函数 D、静态成员函数
14、假定一个类的构造函数为 A(int aa,int bb){a=aa--;b=a*bb--;},则执行 A x(4,5);语句后,
x.a 和 x.b 的值分别为( C )
A、 4 和 5 B、 5 和 4 C、 4 和 20 D、 20 和 5
15、C++对 C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是( D )
A、增加了一些新的运算符 B、允许函数重载,并允许设臵缺省参数
C、规定函数说明符必须用原型 D、引进了类和对象的概念
16、下列符号不能组成标识符的是( A )
A、连接符 B、下划线 C、大小写字母 D、数字字符
17、复制构造函数的形参是( C )。
A、某个对象名 B、某个对象的成员名
C、某个对象的引用名 D、某个对象的指针名
18、一个函数功能不太复杂,但要求被频繁调用,选用( A )
A、内联函数 B、重载函数 C、递归函数 D、嵌套函数
19、下列不是描述类的成员函数的是( C )
A、构造函数 B、析构函数 C、友元函数 D、拷贝构造函数
20、C++语言中所有在函数中定义的变量,连同形式参数,都属于( B )
A、全局变量 B、局部变量 C、静态变量 D、函数
21、定义新类是通过( C )实现的。
A、信息隐藏 B、数据封装 C、继承机制 D、数据抽象
22、下面有关类说法不正确的是( C )
A、一个类可以有多个构造函数 B、一个类只有一个析构函数
C、析构函数需要指定参数 D、在一个类中可以说明具有类类型的数据成员
23、派生类的对象只能对它的( A )是可访问的。
A、公有继承的公有成员 B、公有继承的私有成员
C、公有继承的保护成员 D、私有继承的保护成员
24、下列不能作为类的成员的是( B )
A、自身类对象的指针 B、自身类对象
C、自身类对象的引用 D、另一个类的对象
25、如果一个类至少有一个纯虚函数,那么就称该类为( A )
A 抽象类 B 虚基类 C 派生类 D 以上都不对
26、在派生类中重新定义虚函数时必须在( A )方面与基类保持一致。
A、参数类型 B、参数名字 C、操作内容 D、赋值
27、
下列静态数据成员的特性中,( C )是错误的。
A、说明静态数据成员时前边要加修饰符 static;
B、静态数据成员要在类体外进行初始化;
C、静态数据成员不是所有对象所共用的;
D、引用静态数据成员时,要在其名称前加<类名>和作用域运算符;
28、关于 new 运算符的下列描述中,( D )是错误的。
A、它可以用来动态创建对象和对象数组;
B、使用它创建的对象或对象数组可以使用运算符 delete 删除;
C、使用它创建对象时要调用构造函数;
D、使用它创建对象数组时必须指定初始值;
29、
( D )是析构函数的特征。
A、析构函数可以有一个或多个参数; B、析构函数名与类名不同;
C、析构函数的定义只能在类体内; D、一个类中只能定义一个析构函数;
30、 假定 AB 为一个类,则执行 AB x;语句时将自动调用该类的( B )
A、有参构造函数 B、无参构造函数 C、拷贝构造函数 D、赋值重载函数
31、 C++语言建立类族是通过( B )
A、类的嵌套 B、类的继承 C、虚函数 D、抽象类
32、静态成员函数不能说明为( C )
A、整型函数 B、浮点函数 C、虚函数 D、字符型函数
33、在 C++中,数据封装要解决的问题是( D )
A、数据规范化排列 B、数据高速转换 C、避免数据丢失
D、切断了不同模块之间的数据的非法使用
34、在 C++中有下列 4 条语句:
int hot = 100;
int &rsd = hot;
hot = hot + 100;
cout<<rsd<<endl;
执行这 4 条语句后输出为( C )
A、0 B、100 C、200 D、300
35、如果 class 类中的所有成员在定义时都没有使用关键字 public、private 或 protected,则
所有成员缺省定义为( C )
A、public B、protected C、private D、static
36、设臵虚基类的目的是( A )
A、消除两义性 B、简化程序 C、提高运行效率 D、减少目标代码
37、实现运行时的多态性用( D )
A、重载函数 B、构造函数 C、析构函数 D、虚函数
38、下列特性中, C 与 C++ 共有的是 ( D )
A、 继承 B、 封装 C、 多态性 D、 函数定义不能嵌套
39、通常情况下,函数模板中的类型参数个数 不能是 ( A )
A、0 B、2 C、4 D、3
40、在下列成对的表达式中,运算符“ + ”的意义不相同的一对是 ( C )
A、5.0+2.0 和 5.0+2 B、5.0+2.0 和 5+2.0
C、5.0+2.0 和 5+2 D、5+2.0 和 5.0+2
41、类的指针成员的初始化是通过函数完成的,这个函数通常是 ( B )
A、 析构函数 B、 构造函数 C、 其它成员函数 D、 友元函数
42、要禁止修改指针 p 本身,又要禁止修改 p 所指向的数据,这样的指针应定义为 ( D )
A、const char *p= “ ABCD ”; B、char const *p= “ ABCD ”;
C、char *const p= “ ABCD ”; D、const char * const p= “ ABCD ”;
43、静态成员函数没有 ( B )
A、 返回值 B、this 指针 C、 指针参数 D、 返回类型
44、当一个类的某个函数被说明为 virtual 时,该函数在该类的所有派生类中 ( A )
A、 都是虚函数 B、只有被重新说明为 virtual 时才是虚函数
C、都不是虚函数 D、只有被重新说明时才是虚函数
45、下面叙述不正确的是 ( D )
A、 派生类一般都用公有派生 B、 对基类成员的访问必须是无二义性的
C、 赋值兼容规则也适用于多重继承的组合 D、 基类的公有成员在派生类中仍然是公有的
46、在 C++ 中实现封装是借助于 ( B )
A、 枚举 B、 类 C、 数组 D、 函数
47、
局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用(
A
)
提供对全局变量的访问。
A 域运算符 B 类运算符 C 重载 D 引用
48、( C )是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都
必须定义自己的版本。
A、 虚析构函数 B、虚构造函数 C、纯虚函数 D、静态成员函数
49、对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行( B ),再执
行( A ),后执行( C )。
A 成员对象的构造函数 B 基类的构造函数 C 派生类本身的构造函数
50、静态成员函数仅能访问( D )。
A、静态的数据成员 B、非静态的成员函数 C、非静态的数据成员 D、以上都不对
51、
102、类模板的使用实际上是将类模板实例化成一个具体的( A )
A、类 B、对象 C、函数 D、模板类
52、下列关于指针的操作中,错误的是 ( D )
A、 两个同类型的指针可以进行比较运算 B、 可以用一个空指针赋给某个指针
C、 一个指针可以加上两个整数之差 D、 两个同类型的指针可以相加
53、关于虚函数的描述中,( C )是正确的。
A、虚函数是一个 static 类型的成员函数
B、虚函数是一个非成员函数
剩余15页未读,继续阅读
资源评论
G11176593
- 粉丝: 6677
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功