二级C++分类模拟313Word文档格式.docx
《二级C++分类模拟313Word文档格式.docx》由会员分享,可在线阅读,更多相关《二级C++分类模拟313Word文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
![二级C++分类模拟313Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/99ce1493-ed15-4fbb-af15-b198a00e7f76/99ce1493-ed15-4fbb-af15-b198a00e7f761.gif)
C.15
D.16
10、下列有关数据库的描述,正确的是______。
A.数据库设计是指设计数据库管理系统
B.数据库技术的根本目标是要解决数据共享的问题
C.数据库是一个独立的系统,不需要操作系统的支持
D.数据库系统中,数据的物理结构必须与逻辑结构一致
11、在下列横线处应添加的语句是______,
classBase{public:
void
fun(){cout<<"
Base:
:
fun"
<<endl;
}};
classDerived:
publicBase
{
public:
void
fun()
______//显示调用基类的fun函数
cout<<"
Derived:
fun"
}
};
A.Derived:
fun
B.Base:
fun();
C.Pubic:
D.fun();
12、______提供了类对外部的接口,私有成员是类的内部实现,而保护成员不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。
A.公有成员
B.私有成员
C.私有成员函数
D.保护成员
13、若类A和类B的定义如下:
#include<malloc.h>
classA
inti,j;
intgeti()
{returni;
classB:
publicA
intk;
voidmake()
{k=i*j;
则上述定义中非法的表达式是______。
A.k=i*j;
B.intk;
C.returni;
D.voidmake();
14、在下面的类定义中,错误的语句是______。
classSample
Sample(intval);
//①
~Sample();
//②
private:
inta=2.5;
//③
Sample();
//④
A.①②③④
B.②
C.③
D.①②③
15、假定MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为______。
A.MyClass&
(MyClassx);
B.MyClass(MyClassx)
C.MyClass(MyClass&
x);
D.MyClass(MyClass*x)
16、下面对静态数据成员的描述中,正确的是______。
A.静态数据成员是类的所有对象共享的数据
B.类的每个对象都有自己的静态数据成员
C.类的不同对象有不同的静态数据成员值
D.静态数据成员不能通过类的对象调用
17、关于运算符重载,下列表述中正确的是______。
A.C++已有的任何运算符都可以重载
B.运算符函数的返回类型不能声明为基本数据类型
C.在类型转换符函数的定义中不需要声明返回类型
D.可以通过运算符重载来创建C++中原来没有的运算符
18、不能作为函数重载的判断依据的是______。
A.const
B.返回类型
C.参数个数
D.参数类型
19、有如下类的定义。
横线处的语句是______。
classMyClass
Myelass(inta=0,intb=0)
{X=a;
Y=b;
voidChange()const
{X-=10;
Y+=10;
intX,Y;
A.static
B.const
C.mutable
D.不需要填入内容
20、有如下函数模板定义:
template<typenameT1,inta2,inta3>
T1sum(T1a1)
{return(a1+a2+a3);
则以下调用中正确的是______。
A.sum<int,4,3>(5);
B.sum<4,3>(5);
C.sum<int,int,int>(5);
D.sum(5);
21、关于new运算符的下列描述中,错误的是
A.它可以用来动态创建对象和对象数组
B.使用它创建的对象或对象数组可以通过运算符delete删除
C.使用它创建对象时要调用构造函数
D.使用它创建对象数组时必须指定初始值
22、派生类的构造函数的成员初始化列中,不能包含______。
A.基类的构造函数
B.派生类中子对象的初始化
C.基类的子对象初始化
D.派生类中一般数据成员的初始化
23、派生类的对象对它的基类成员中______是可以访问的。
A.公有继承的公有成员
B.公有继承的私有成员
C.公有继承的保护成员
D.私有继承的公有成员
24、C++类体系中,不能被派生类继承的有______。
A.构造函数
B.虚函数
C.静态成员函数
D.赋值操作函数
25、下列程序的输出结果是______。
#include<iostream.h>
voidff(intx),if(doublex);
voidmain()
{floata(88.18);
ff(a);
charb('
a'
);
ff(b);
voidff(intx)
{cout<<"
ff(int):
"
<<x<<endl;
}
voidff(doublex)
ff(double):
"
A.ff(double):
88.18
97
B.ff(double)97
C.ff(int):
8.18
D.ff(int):
26、下列关于this指针的叙述中,正确的是______。
A.任何与类相关的函数都有this指针
B.类的成员函数都有this指针
C.类的友元函数都有this指针
D.类的非静态成员函数才有this指针
27、以下程序输出结果是______:
#include<iostream>
usingnamespacestd;
voidadd(intx,inty,int*z)
{*z=y+x;
intmain()
{inta,b,c;
add(8,4,&
a);
add(6,a,&
b);
add(a,b,&
c);
cout<<a<<"
"
<<b<<"
<<c<<endl;
return0;
A.12,10,14
B.12,18,30
C.12,6,18
D.12,14,30
28、有如下程序:
classTestClass
TestClass(){cout<<"
defaultconstructor\n"
;
TestClass(constTestClass&
x){cont<<"
copyconstructor\n"
TestClassuserCode(TestClassb){TestClassc(b);
returnc;
{TestClassa,d;
callinguserCode()\n"
d=userCode(a);
执行上面程序的过程中,构造函数TestClass()和TestClass(constTestClass&
x)被调用的次数分别是______。
A.2次
3次
B.3次
2次
C.都是2次
D.都是3次
29、有以下程序:
TestClass(intr1,intr2)
R1=r1;
R2=r2;
voidprint();
voidprint()const;
intR1,R2;
voidTestClass:
print()
{cout<<R1<<"
<<R2<<endl;
print()const
{TestClassa(5,4);
constTestClassb(20,52);
b.print();
执行后的输出结果是______。
A.5,4
B.20,52
C.0,0
D.4,5
30、静态数据成员是为______的数据。
A.私有
B.保护
C.所有对象共享
D.类成员
31、下列说法中错误的是______。
A.公有继承时基类中的public成员在派生类中仍是public的
B.公有继承时基类中的private成员在派生类中是public的
C.私有继承时基类中的public成员在派生类中是private的
D.保护继承时基类中的public成员在派生类中是protected的
32、有如下程序:
BB"
voidfun(){cout<<"
Bf"
classTestClass1:
publicTestClass
TestClass1(){cout<<"
DD"
Df"
{TestClass1d;
执行上面的程序将输出______。
A.BBBfDD
B.BBDfDDDf
C.DD
D.DDBBBf
33、下列程序中横线处正确的语句是______。
voidfun(){(out<<"
TestClass:
voidfun()
______//显示调用基类的函数fun()
TestClass1:
A.fun();
B.TestClass.fun();
C.TestClass:
D.TestClass->fun();
34、下面关于虚函数的描述中正确的是______。
A.虚函数是一个静态成员函数
B.虚函数是一个非成员函数
C.虚函数既可以在函数说明时定义,也可以在函数实现时定义
D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型
35、有如下程序:
classTestClass1
virtualvoidfun(){cout<<"
1"
classTestClass2:
publicTestClass1
TestClass2(){cout<<"
2"
classTestClass3:
publicTestClass2
virtualvoid
fun(){TestClass2:
3"
{TestClass1aa,*p;
TestClass2bb;
TestClass3cc;
p=&
cc;
p->fun();
A.1122
B.2112
C.2213
D.2223
36、有如下程序:
longfun(intn)
{if(n>2)
return(fun(n-1)+fun(n-2));
else
return2;
{cout<<fun(3)<<endl;
则该程序的输出结果应该是______。
A.2
B.3
C.4
D.5
37、下列程序的输出结果是______。
template<typenameT>
Tfun(Ta,Tb){return(a>=b)?
a:
b;
cout<<fun(3,6)<<'
'
<<fun(3.14F,6.28F.<<endl;
A.6,3.14
B.3,6.28
C.3,3.14
D.6,6.28
38、针对数组定义intdata[10];
,下列表述中错误的是______。
A.用*data可访问到数组的首元素
B.用data[9]可访问到数组的末元素
C.用data[10]访问数组元素会超出数组边界
D.data共有10个元素,其首元素是data[1]
39、有如下类声明:
classFoo{intbar;
则Foo类的成员bar是______。
A.公有数据成员
B.公有成员函数
C.私有数据成员
D.私有成员函数
40、为了取代C中带参数的宏,在C++中使用______。
A.重载函数
B.内联函数
C.递归函数
D.友元函数
答案:
1、D
[解析]栈实际也是线性表,只不过是一种特殊的线性表。
栈是只能在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。
队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。
2、C
[解析]由于后序遍历的最后一个元素为E,所以E为根结点,所以它的前序遍历的首个元素为E,故排除A和D选项。
由于中序遍历中,元素B在元素根结点E的后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个元素,所以前序遍历的最后一个元素应为B,故选项C为正确选项,即该二叉树的前序遍历序列是EACDB。
3、B
[解析]数据流图中带箭头的线段表示数据流,沿箭头方向传递数据的通道,一般在旁边标注数据流名。
4、B
[解析]程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;
可以提高编程工作的效率,降低软件的开发成本。
5、C
[解析]软件调试主要采用以下三种方法:
强行排错法:
作为传统的调试方法,其过程可概括为设置断点、程序暂停、观察程序状态、继续运行程序。
回溯法:
该方法适合于小规模程序的排错、即一旦发现了错误,先分析错误征兆,确定最先发现“症状”的位置。
原因排除法:
原因排除法是通过演绎和归纳,以及二分法来实现。
6、B
[解析]耦合可以分为下列几种,它们之间的耦合度由高到低排列:
内容耦合——若一个模块直接访问另一模块的内容,则这两个模块称为内容耦合。
公共耦合——若一组模块都访问同一全局数据结构,则称为公共耦合。
外部耦合——若一组模块都访问同一全局数据项,则称为外部耦合。
控制耦合——若一模块明显地把开关量、名字等信息送入另一模块,控制另一模块的功能,则称为控制耦合。
标记耦合——若两个以上的模块都需要其余某一数据结构的子结构时,不使用其余全局变量的方式而全使用记录传递的方式,这样的耦合称为标记耦合。
数据耦合——若一个模块访问另一个模块,被访问模块的输入和输出都是数据项参数,则这两个模块为数据耦合。
非直接耦合——若两个模块没有直接关系,它们之间的联系完全是通过程序的控制和调用来实现的,则称这两个模块为非直接耦合,这样的耦合独立性最强。
7、D
[解析]面向对象设计方法与面向过程设计方法有本质的不同,其基本原理是:
使用现实世界的概念抽象地思考问题从而自然地解决问题。
其特点包括:
标识惟一性、多态性、封装性、模块独立性、继承和多态性好。
8、C
[解析]逻辑结构设计的任务:
概念结构是各种数据模型的共同基础,为了能够用某一DBMS实现用户需求,还必须将概念结构进一步转化为相应的数据模型,这正是数据库逻辑结构设计所要完成的任务。
它包括从E-R图向关系模式转换和逻辑模式规范化及调整、实现。
9、D
[解析]根据二叉树的性质:
二叉树第i(i≥1)层上至多有2i-1个结点。
得到第5层的结点数最多是16个。
10、B
[解析]数据库设计的目的实质上是设计出满足实际应用需求的实际关系模型。
数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:
提高数据的共享性,使多个用户能够同时访问数据库中的数据;
减小数据的冗余,以提高数据的一致性和完整性;
提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。
11、B
[解析]此题考查的是成员函数的调用。
因为横线处的作用是调用基类的fun函数,又因为派生类中也有fun()函数,所以必须对fun()函数加以限定,即Base:
。
12、A
[解析]此题考查的是公有成员的特点。
公有成员允许可使用者访问,提供了类对外部的接口。
13、A
[解析]因为派生类不能访问基类的私有成员i和j(默认情况下,成员的属性为私有),所以表达式k=i*j是非法的。
其余的访问权限都是许可的。
14、C
[解析]③是错误的,因为在类体内,不允许对所定义的数据成员进行初始化;
其他语句构造和析构函数的定义都是正确的。
15、C
[解析]拷贝构造函数是一个特殊的构造函数,它用一个已知的对象初始化一个正在创建的同类对象,它的一般格式是:
类名:
类名(const类名&
引用对象名)。
16、A
[解析]静态成员表示整个类范围共享的信息;
必须对静态数据成员进行初始化;
静态数据成员是属于类的,不能通过类的对象调用。
17、C
[解析]此题考查的是运算符的有关概念。
运算符重载是针对C++原有运算符进行的,不能通过重载创造新的运算符;
除了.、.*、->*、:
、?
这五个运算符之外,其他运算符都可以重载;
在类型转换符函数的定义中不需要声明返回类型;
运算符函数的返回值类型可以声明为基本数据类