最新全国计算机等级考试二级c++题库5(共17套)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五套第五套
1、有三个关系R 、S 和T 如下:
由关系由关系R R 和S 通过运算得到关系通过运算得到关系T T ,则所使用的运算为,则所使用的运算为__________________。

A 、笛卡尔积、笛卡尔积
B 、交、交
C 、并、并
D 、自然连接
笛卡尔积:笛卡尔积:设关系设关系R R 和S 的元数分别是的元数分别是r r 和s ,定义定义R R 和S 的笛卡尔积是一个的笛卡尔积是一个(r+s)(r+s)(r+s)元元组的集合,元元组的集合,元元组的集合,每一个元组的每一个元组的前r 个分量来自个分量来自R R 的一个元组,后的一个元组,后s s 个分量来自个分量来自S S 的一个元组。

若的一个元组。

若R R 有k1k1个元组,个元组,个元组,s s 有k2k2个元组,则关系个元组,则关系个元组,则关系R R 和关系和关系S S 的广义笛卡尔积有广义笛卡尔积有k1k1k1××k2k2个元组。

个元组。

个元组。

交:设关系交:设关系交:设关系R R 和关系和关系S S 具有相同的目具有相同的目n n ,且相应的属性取自同一个域,则关系R 与关系与关系S S 的交由属于的交由属于R R 又属于又属于S S 的所有元组组成。

的所有元组组成。

并:设关系并:设关系并:设关系R R 和关系和关系S S 具有相同的目具有相同的目n n (即两个关系都有(即两个关系都有n n 个属性),且相应的属性取自同一个域,则关系R 与关系与关系S S 的并由属于的并由属于R R 或属于或属于S S 的元组组成。

的元组组成。

自然连接:是一种特殊的等值连接,它要求两个关系中进行比较的分量必须有相同的属性组,并且要在结自然连接:是一种特殊的等值连接,它要求两个关系中进行比较的分量必须有相同的属性组,并且要在结果中把重复的属性去掉。

果中把重复的属性去掉。

故本题答案为D 。

2、在长度为n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是____________。

A 、O(n)
B 、
C 、
D 、
二分法检索要求线性表结点按关键值排序且以顺序方式存储。

在查找时,首先与表的中间位置上结点的关二分法检索要求线性表结点按关键值排序且以顺序方式存储。

在查找时,首先与表的中间位置上结点的关键值比较,若相等则检索成功;否则根据比较结果确定下一步在表的前半部分或后半部分继续进行。

二分法检索的效率比较高,索的效率比较高,设线性表有设线性表有设线性表有n n 个元素,则最多的检索次数为大于则最多的检索次数为大于log2n(2log2n(2log2n(2为底数为底数为底数))的最小整数,的最小整数,最少的检索次数最少的检索次数为1。

故本题答案为C 。

3、在面向对象方法中,不属于"对象"基本特点的是______。

A 、一致性
B 、分类性、分类性
C 、多态性、多态性
D 、标识惟一性、标识惟一性
面向对象方法中最基本的概念是对象,它的基本特点有:标识惟一性、分类性、多态性、封装性和模块独面向对象方法中最基本的概念是对象,它的基本特点有:标识惟一性、分类性、多态性、封装性和模块独立性好。

立性好。

故本题答案为A 。

4、在软件开发中,需求分析阶段可以使用的工具是____________。

A 、N-S N-S图图
B 、DFD 图
C 、PA
D PAD图图
D 、程序流程图、程序流程图
软件开发阶段包括需求分析、软件开发阶段包括需求分析、软件开发阶段包括需求分析、总体设计、总体设计、总体设计、详细设计、编码和测试详细设计、编码和测试5个阶段。

个阶段。

其中需求分析阶段常用的工具是其中需求分析阶段常用的工具是数据流图(简称数据流图(简称DFD DFD DFD)和数据字典(简称)和数据字典(简称DD DD)。

常见的详细设计的图形描述工具主要有程序流程图、)。

常见的详细设计的图形描述工具主要有程序流程图、N-S N-S结构图、结构图、问题分析图(简称问题分析图(简称PAD PAD PAD图)。

图)。

图)。

故本题答案为B 。

5、一个栈的初始状态为空。

现将元素1、2、3、4、5、A 、B 、C 、D 、E 依次入栈,然后再依次出栈,则元素出栈的顺序是栈的顺序是__________________。

A 、12345ABCDE
B 、EDCBA54321
C 、ABCDE12345
D 、54321EDCBA
栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。

一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。

这表明栈的运算规则是"先进后出先进后出""(或称(或称""后进先出后进先出"")。

在栈顶进行插入运算,称为进栈(或入栈),在栈顶进行删除运算,称为退栈(或出栈)。

本题中,依次进栈,即依次插入元素1、2、3、4、5、A 、B 、C 、D 、E ,依次出栈,即依次删除元素,根据栈"先进后出先进后出""的规则,应该以倒序出栈。

即元素出栈顺序为EDCBA54321EDCBA54321。

故本题答案为B 。

6、数据流图中带有箭头的线段表示的是____________。

A 、控制流、控制流
B 、事件驱动、事件驱动
C 、模块调用、模块调用
D 、数据流
数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。

数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。

数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。

数据流图中的主要的图形元素与说明如下:素与说明如下:
加工(转换):输入数据经加工变换产生输出。

数据流:沿箭头方向传送数据的通道,一般在旁边标注数据流名。

存储文件(数据源):表示处理过程中存放各种数据的文件。

源,潭:表示系统和环境的接口,属系统之外的实体。

故本题答案为D 。

7、一间宿舍可住多个学生,则实体宿舍和学生之间的联系是____________。

A 、一对一、一对一
B 、一对多
C 、多对一、多对一
D 、多对多、多对多
两个实体间的联系可以归纳为两个实体间的联系可以归纳为3种类型:种类型:
一对一联系:一对一的联系表现为主表中的每一条记录只与相关表中的一条记录相关联。

一对一联系:一对一的联系表现为主表中的每一条记录只与相关表中的一条记录相关联。

一对多联系或多对一:一对多的联系表现为主表中的每一条记录与相关表中的多条记录相关联。

一对多联系或多对一:一对多的联系表现为主表中的每一条记录与相关表中的多条记录相关联。

多对多联系:多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录与其匹配。

多对多联系:多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录与其匹配。

一间宿舍可以住多个学生,一间宿舍可以住多个学生,但每个学生只能住一个宿舍,但每个学生只能住一个宿舍,所以实体宿舍和学生之间的联系为一对多的联系。

所以实体宿舍和学生之间的联系为一对多的联系。

故本题答案为B 。

8、下列叙述中正确的是、下列叙述中正确的是__________________。

A 、循环队列中有队头和队尾两个指针,因此,循环队列是非线性结构
B 、在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C 、在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D 、循环队列中元素的个数是由队头指针和队尾指针共同决定
所谓循环队列,所谓循环队列,所谓循环队列,就是将队列存储空间的最后一个位置绕到第就是将队列存储空间的最后一个位置绕到第1个位置,形成逻辑上的环状空间,形成逻辑上的环状空间,供队列循环供队列循环使用。

所以循环队列还是属于线性结构,所以选项A 是错误的。

循环队列的头指针front front指向队列的第一个元素指向队列的第一个元素的前一位置,队尾指针队尾指针rear rear rear指向队列的最后一个元素,指向队列的最后一个元素,循环队列的动态变化需要头尾指针共同反映,所以选项所以选项B B 、C 是错误的。

循环队列的长度是:循环队列的长度是:(sq.rear-sq.front+maxsize)%maxsize (sq.rear-sq.front+maxsize)%maxsize ,所以循环队列的长度是由队头和队尾指针共同决定的,所以选项D 正确。

正确。

故本题答案为故本题答案为故本题答案为D D 。

9、下列叙述中正确的是下列叙述中正确的是__________________。

A 、顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B 、顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C 、顺序存储结构能存储有序表,链式存储结构不能存储有序表
D 、链式存储结构比顺序存储结构节省存储空间
顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素,链式存储结构中各数据结顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素,链式存储结构中各数据结点的存储序号是不连续的,点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,并且各结点在存储空间中的位置关系与逻辑关系也不一致,并且各结点在存储空间中的位置关系与逻辑关系也不一致,所以选项所以选项所以选项A A 是正确的。

两者都可以存储线性的、有序的逻辑结构,所以选项,所以选项B B 、C 不正确。

顺序结构使用的是连续物理空间,链式结构可以使用零散的物理空间存储,链式结构更灵活,不存在谁节约空间的说法,所以选项,所以选项D D 不正确。

不正确。

故本题答案为故本题答案为A A 。

1010、在数据管理技术发展的三个阶段中,数据共享最好的是、在数据管理技术发展的三个阶段中,数据共享最好的是____________。

A 、人工管理阶段、人工管理阶段
B 、文件系统阶段、文件系统阶段
C 、数据库系统阶段
D 、三个阶段相同、三个阶段相同
数据库管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。

数据库管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。

人工管理阶段的特点:数据不保存、数据不独立、数据不能共享、数据无结构,没有专门的数据管理软件。

人工管理阶段的特点:数据不保存、数据不独立、数据不能共享、数据无结构,没有专门的数据管理软件。

人工管理阶段的特点:数据不保存、数据不独立、数据不能共享、数据无结构,没有专门的数据管理软件。

文件系统阶段的特点:数据可以长期保存,有专门的数据管理软件文件系统阶段的特点:数据可以长期保存,有专门的数据管理软件----文件系统。

但是数据独立性低,共享文件系统。

但是数据独立性低,共享性差、冗余度大,数据记录内有结构,整体无结构。

数据库系统阶段的特点:数据结构化,数据独立性高,数据共享性高,冗余度小,易于扩充,数据库管理数据库系统阶段的特点:数据结构化,数据独立性高,数据共享性高,冗余度小,易于扩充,数据库管理系统提供统一的数控制功能,包括数据安全性、完整性、并发控制和数据恢复功能。

故本题答案为故本题答案为C C 。

11、下列选项中,与实现运行时多态性无关的是______。

A 、重载函数
B 、虚函数、虚函数
C 、指针、指针
D 、引用、引用
本题主要考查了多态性。

本题主要考查了多态性。

本题主要考查了多态性。

在在C++C++语言中,语言中,多态性可分为两类:多态性可分为两类:编译时的多态性和运行时的多态性。

编译时的多态性和运行时的多态性。

编译时的多态性和运行时的多态性。

编译时的多态性是通过函数重载和编译时的多态性是通过函数重载和模板体现的;运行过程中的多态性需要满足三个条件,首先类之间满足类型兼容规则,第二要声明虚函数,第三是要由成员函数调用或者是通过指针、引用来访问虚函数。

因此重载函数与实现运行时多态性无关。

故本题答案为故本题答案为故本题答案为A A 。

12、下列模板声明中,有语法错误的是______。

A 、template<typename T> T fun(T x){return x;}
B 、template<typename T> T fun(T x,int n){return x*n;}
C 、template<class T>T fun(T *p){return *p;}
D 、template<class T>T class A{T n;};
本题主要考查了模板的定义。

本题主要考查了模板的定义。

函数模板的定义形式为:函数模板的定义形式为:函数模板的定义形式为:
template <class T>或template<typename T>
类型名类型名类型名 函数名函数名((参数表参数表){){){函数体的定义函数体的定义函数体的定义} }
因此选项因此选项因此选项A A 、B 和C 是正确的。

是正确的。

类模板声明的语法形式为:类模板声明的语法形式为:类模板声明的语法形式为:
template< template<模板参数表模板参数表模板参数表> class > class > class 类名类名类名{{类成员声明类成员声明}; };
在选项在选项在选项D D 中,中,模板参数表和模板参数表和class 关键字之间有模板参数T 不符合模板声明的语法,因此本题答案为,因此本题答案为D D 。

1313、、对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是限是__________________。

A 、公有或私有、公有或私有
B 、私有、私有
C 、保护或私有、保护或私有
D 、公有或保护
本题主要考查了派生类对基类成员的访问。

本题主要考查了派生类对基类成员的访问。

基类的成员有公有(基类的成员有公有(基类的成员有公有(public public public)、保护()、保护()、保护(protected protected protected)和私有()和私有()和私有(private private private)三种访问权限,类的继承方式也有)三种访问权限,类的继承方式也有公有继承(公有继承(public public public)、保护继承()、保护继承()、保护继承(protected protected protected)和私有继承()和私有继承()和私有继承(private private private)三种。

无论哪种继承方式,派生类中的)三种。

无论哪种继承方式,派生类中的成员都不能访问基类中的私有成员,因此选项A 、B 和C 不正确,但可以访问基类中的公有成员和保护成员。

故本题答案为故本题答案为D D 。

1414、有如下程序:、有如下程序:、有如下程序:
#include <iostream>
using namespace std;
int main(){
int sum;
for(int i=0;i<6;i+=3){
sum=i;
for(int j=i;j<6;j++) sum+=j;
}
cout<<sum<<endl;
return 0;
}
运行时的输出结果是运行时的输出结果是__________________。

A 、3
B 、10
C 、12
D 、15
本题主要考查了本题主要考查了本题主要考查了for for for循环的嵌套。

循环的嵌套。

循环的嵌套。

从本题代码可以看出程序运行结束时变量从本题代码可以看出程序运行结束时变量sum sum的值即是程序的运行结果,而外层的值即是程序的运行结果,而外层for for语句循环体的第一个语语句循环体的第一个语句是把变量句是把变量i i 的值赋给变量的值赋给变量sum sum sum,并且循环体里没有改变变量,并且循环体里没有改变变量i 值的语句,因此只要考虑最后一次for for循环。

外层循环。

外层for for语句共循环语句共循环语句共循环22次,最后一次循环时,次,最后一次循环时,i i 的值为的值为33,执行语句,执行语句sum=i;sum=i;sum=i;后变量后变量后变量sum sum sum的值为的值为的值为33,内层,内层for for for语句共循环了语句共循环了语句共循环了33次:变量次:变量j j 的值分别为的值分别为33、4、5,每次循环,变量,每次循环,变量sum sum sum的值为的值为的值为sum+j sum+j sum+j,故,故,故sum sum sum的值为的值为的值为3+3+4+5=153+3+4+5=153+3+4+5=15。

故本题答案为D 。

1515、下列字符串中不能作为、下列字符串中不能作为C++C++标识符使用的是标识符使用的是标识符使用的是__________________。

A 、WHILE
B 、user
C 、_1var
D 、9stars
本题主要考查了本题主要考查了本题主要考查了C++C++C++语言中的标识符的定义。

语言中的标识符的定义。

语言中的标识符的定义。

标识符的组成要符合一定的规则:标识符的组成要符合一定的规则:
((1)标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串;
((2)标识符不能与任意一个关键字同名;
((3)标识符中的字母区分大小写;
((4)标识符不宜过长。

)标识符不宜过长。

在选项在选项在选项D D 中,中,9stars 9stars 9stars的第一个字符是数字,因此不是合法的标识符,不能作为的第一个字符是数字,因此不是合法的标识符,不能作为C++C++标识符使用。

标识符使用。

标识符使用。

故本题答案为D 。

1616、下列语句中,正确的是、下列语句中,正确的是、下列语句中,正确的是__________________。

A 、char *myString="Hello-World!";
B 、char myString="Hello-World!";
C 、char myString[11]="Hello-World!";
D 、char myString[12]="Hello-World!";
本题主要考查了字符串和字符数组、字符型指针的关系。

本题主要考查了字符串和字符数组、字符型指针的关系。

由双引号括起来的字符串常量可以被看成一个无名字符数组,由双引号括起来的字符串常量可以被看成一个无名字符数组,C++C++编译程序会自动为它分配一个空间来存放编译程序会自动为它分配一个空间来存放这个常量,字符串常量的值本身就是指向这个无名字符数组的第一个字符的指针,其类型是字符指针,因此可以用字符串常量初始化字符指针,故选项A 正确;正确;
用字符串对数组初始化时,用字符串对数组初始化时,用字符串对数组初始化时,编译程序以编译程序以'\0'作为结束这个数组的标志。

因此,数组长度至少要比字符串长度(字符个数)多度(字符个数)多11。

字符串。

字符串"Hello-World!""Hello-World!""Hello-World!"的长度为的长度为的长度为121212,故数组长度至少为,故数组长度至少为,故数组长度至少为131313,因此选项,因此选项,因此选项C C 和选项和选项D D 不正确;不正确; 在选项在选项在选项B B 中,编译程序不能把赋值号右边的字符数组转换成左边的字符型,故选项B 不正确。

不正确。

故本题答案为故本题答案为故本题答案为A A 。

1717、、有如下程序:有如下程序:
#include <iostream>
using namespace std;
class Sample{
public:
Sample(){}
~Sample(){cout<<'*';}
};
int main(){
Sample temp[2],*pTemp[2];
return 0;
}
执行这个程序输出星号(执行这个程序输出星号(**)的个数为)的个数为__________________。

A 、1
B 、2
C 、3
D 、4
本题主要考查了构造函数、析构函数和指针。

本题主要考查了构造函数、析构函数和指针。

构造函数在对象被创建的时候由系统自动调用,析构函数用来完成对象被删除前的一些清理工作,在对象构造函数在对象被创建的时候由系统自动调用,析构函数用来完成对象被删除前的一些清理工作,在对象的生存期即将结束的时刻被系统自动调用。

的生存期即将结束的时刻被系统自动调用。

本题的本题的本题的main()main()main()函数中,函数中,第一条语句定义了一个含有第一条语句定义了一个含有22个元素的对象数组temp temp和一个含有和一个含有和一个含有22个元素的指针数组个元素的指针数组pTemp pTemp pTemp,,声明指针,只是得到了用于存储地址的指针变量,不会创建对象,故此时只创建了两个对象。

当main()main()函数结束时,函数结束时,函数结束时,temp temp temp数组中的元素对象被删除时,系统自动调用析构函数数组中的元素对象被删除时,系统自动调用析构函数2次输出两个次输出两个'*''*''*'。

故本题答案为故本题答案为故本题答案为B B 。

18、要利用C++流进行文件操作,必须在程序中包含的头文件是______。

A 、iostream
B 、fstream
C 、strstream
D 、iomanip
本题主要考查了本题主要考查了本题主要考查了C++C++C++流。

流。

流。

要利用要利用要利用C++C++C++流,流,流,必须在程序中包含有关的头文件,必须在程序中包含有关的头文件,必须在程序中包含有关的头文件,以便获得相关流类的声明。

以便获得相关流类的声明。

以便获得相关流类的声明。

为了使用新标准的流,相关头为了使用新标准的流,相关头文件的文件名中不得有扩展名。

与C++C++流有关的头文件有:流有关的头文件有:流有关的头文件有:
iostream iostream:要使用:要使用:要使用cin cin cin、、cout cout的预定义流对象进行针对标准设备的的预定义流对象进行针对标准设备的I/O I/O操作,须包含此文件。

操作,须包含此文件。

操作,须包含此文件。

fstream fstream:要使用文件流对象进行针对磁盘文件的:要使用文件流对象进行针对磁盘文件的I/O I/O操作,须包含此文件。

操作,须包含此文件。

操作,须包含此文件。

strstream strstream:要使用字符串流对象进行针对内存字符串空间的:要使用字符串流对象进行针对内存字符串空间的I/O I/O操作,须包含此文件。

操作,须包含此文件。

操作,须包含此文件。

iomanip iomanip:要使用:要使用:要使用setw setw setw、、fixed fixed等大多数操作符,须包含此文件。

等大多数操作符,须包含此文件。

故本题答案为B 。

19、如果表达式a>=b 中的">="是作为非成员函数重载的运算符,则可以等效地表示为______。

A 、a.operator>=(b)
B 、b.operator>=(a)
C 、operator>=(a,b)
D 、operator>=(b,a)
本题主要考查了运算符重载。

本题主要考查了运算符重载。

C++ C++把重载的运算符视为特殊的函数,把重载的运算符视为特殊的函数,把重载的运算符视为特殊的函数,称为运算符函数,称为运算符函数,称为运算符函数,函数名就是在运算符前加上保留字函数名就是在运算符前加上保留字operator operator。

一般而言,如果在类而言,如果在类X X 中重载双目运算符中重载双目运算符@@,a 和b 是类是类X X 的两个对象,则下列两种函数调用方法是等价的: 第一种是通过运算符构成表达式的形式进行调用,即第一种是通过运算符构成表达式的形式进行调用,即a@b a@b;;
第二种是像一般函数那样用函数名进行调用:当把第二种是像一般函数那样用函数名进行调用:当把@作为成员函数重载时,调用形式为a.operator @(b)a.operator @(b);;当把当把@@作为非成员函数重载时,调用形式为operator @(a,b)operator @(a,b)。

本题是把运算符。

本题是把运算符。

本题是把运算符>=>=>=重载为非成员函数,因此与表重载为非成员函数,因此与表达式达式a>=b a>=b a>=b等效的表示为等效的表示为等效的表示为operator>=(a,b)operator>=(a,b)operator>=(a,b)。

故本题答案为C 。

2020、定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为、定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为____________。

A 、私有继承
B 、非私有继承、非私有继承
C 、保护继承、保护继承
D 、公有继承、公有继承
本题主要考查了派生类的定义。

本题主要考查了派生类的定义。

定义派生类的一般格式如下:定义派生类的一般格式如下:
class < class <派生类名派生类名派生类名>:<>:<>:<继承方式继承方式继承方式1> <1> <1> <基类名基类名基类名1>,1>,1>,……,<,<继承方式继承方式继承方式n> <n> <n> <基类名基类名基类名n>{<n>{<n>{<派生类新定义成员派生类新定义成员派生类新定义成员>}; >}; 其中,其中,其中,<<继承方式继承方式>>即派生类的访问控制方式,用于控制基类中声明的成员在多大的范围内能被派生类的用户访问。

每一个继承方式,只对紧随其后的基类进行限定。

继承方式包括3种:公有继承(种:公有继承(public public public)、私有继承)、私有继承(private private)和保护继承()和保护继承()和保护继承(protected protected protected)。

如果不显式地给出继承方式,缺省的类继承方式是私有继承)。

如果不显式地给出继承方式,缺省的类继承方式是私有继承private private。

故本题答案为A 。

2121、在语句、在语句、在语句"cout<<'A';""cout<<'A';""cout<<'A';"中,中,中,cout cout 是____________。

A 、类名、类名
B 、对象名
C 、函数名、函数名
D 、C++C++的关键字的关键字的关键字
本题主要考查了预定义流对象。

本题主要考查了预定义流对象。

C++ C++流有流有流有44个预定义的流对象,它们的名称及与之联系的I/O I/O设备如下:设备如下:设备如下:
cin cin 标准输入标准输入标准输入
cout cout 标准输出标准输出标准输出
cerr cerr 标准出错信息输出标准出错信息输出标准出错信息输出
clog clog 带缓冲的标准出错信息输出带缓冲的标准出错信息输出带缓冲的标准出错信息输出
故本题答案是B 。

2222、在、在C++C++中,编译系统自动为一个类生成缺省构造函数的条件是中,编译系统自动为一个类生成缺省构造函数的条件是____________。

A 、该类没有定义任何有参构造函数、该类没有定义任何有参构造函数
B 、该类没有定义任何无参构造函数、该类没有定义任何无参构造函数
C 、该类没有定义任何构造函数
D 、该类没有定义任何成员函数、该类没有定义任何成员函数
本题主要考查了构造函数。

本题主要考查了构造函数。

本题主要考查了构造函数。

如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的公有缺省构造函数。

但只要定义了构如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的公有缺省构造函数。

但只要定义了构造函数,无论定义的构造函数是否带参数,都不会再生成缺省构造函数,因此选项C 是正确的。

是正确的。

故本题答案为故本题答案为故本题答案为C C 。

23、下列语句中错误的是______。

A 、const int a;
B 、const int a=10;
C 、const int *point=0;
D 、const int *point=new int(10);
本题主要考查了符号常量的声明。

本题主要考查了符号常量的声明。

符号常量声明的语法格式为:符号常量声明的语法格式为:
const < const <类型名类型名类型名> <> <> <符号常量名符号常量名符号常量名>=<>=<>=<初值表达式初值表达式初值表达式>,>,>,………………; ;
符号常量必须在声明的同时为其赋初值,因此选项因此选项A A 是错误的。

是错误的。

故本题答案为A 。

2424、建立一个有成员对象的派生类对象时,各构造函数体的执行次序为、建立一个有成员对象的派生类对象时,各构造函数体的执行次序为____________。

A 、派生类、成员对象类、基类、派生类、成员对象类、基类
B 、成员对象类、基类、派生类、成员对象类、基类、派生类
C 、基类、成员对象类、派生类
D 、基类、派生类、成员对象类、基类、派生类、成员对象类
本题主要考查了构造函数的调用。

本题主要考查了构造函数的调用。

当派生类中有多个成员对象时,各个成员对象构造函数的调用顺序也取决于在派生类中定义的顺序(自上当派生类中有多个成员对象时,各个成员对象构造函数的调用顺序也取决于在派生类中定义的顺序(自上而下),而与在派生类构造函数的成员初始化列表中给出的顺序无关。

建立派生类对象时,构造函数的执行顺序如下:(序如下:(11)执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);(2)执行成员对象的构造函数,员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序调用顺序按照各个成员对象在类中声明的顺序调用顺序按照各个成员对象在类中声明的顺序(自上而下)(自上而下)(自上而下);;
(3)执行派生类的构造函数。

故本题答案为C 。

2525、若已经声明了函数原型、若已经声明了函数原型、若已经声明了函数原型"void fun(int a,double b=0.0);""void fun(int a,double b=0.0);",则下列重载函数声明中正确的是____________。

A 、void fun(int a=90,double b=0.0);
B 、int fun(int a,double B);
C 、void fun(double a,int B);
D 、bool fun(int a,double b=0.0);。

相关文档
最新文档