计算机等级考试二级c+题库共套Word格式.docx
- 文档编号:7813535
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:28
- 大小:29.60KB
计算机等级考试二级c+题库共套Word格式.docx
《计算机等级考试二级c+题库共套Word格式.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级c+题库共套Word格式.docx(28页珍藏版)》请在冰点文库上搜索。
数据库中的数据不只是面向某一项特定的应用,而是面向多种应用,可以被多个用户、多个应用程序共享,不具有独立的系统。
设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型。
数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:
提高数据的共享性,使多个用户能够同时访问数据库中的数据;
减小数据的冗余,以提高数据的一致性和完整性;
提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。
本题答案为C。
6、下面描述中,符合结构化程序设计风格的是______。
A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口,可以有多个出口
C、注重提高程序的执行效率
D、不使用goto语句
基于对结构化程序设计原则、方法以及结构化程序基本构成结构的掌握和了解,在结构化程序设计的具体实施中,要注意把握如下要素:
1、使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑;
2、选用的控制结构只准许有一个入口和一个出口;
3、程序语句组成容易识别的块,每块只有一个入口和一个出口;
4、复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现;
5、语言中所没有的控制结构,应该采用前后一致的方法来模拟;
6、严格控制GOTO语句的使用。
其意思是指:
(1)用一个非结构化的程序设计语言去实现一个结构化的构造;
(2)若不使用GOTO语句会使功能模糊;
(3)在某种可以改善而不是损害程序可读性的情况下。
本题答案为A。
7、下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。
A、内模式
B、外模式
C、概念模式
D、逻辑模式
数据库管理系统的三级模式结构由外模式、模式和内模式组成。
外模式,或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。
模式,或逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。
外模式是模式的一部分。
内模式,或存储模式,或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方式的描述。
8、下面概念中,不属于面向对象方法的是______。
A、对象
B、继承
C、类
D、过程调用
面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。
面向对象方法从对象出发,发展出对象,类,消息,继承等概念。
9、在一棵二叉树上第5层的结点数最多是______。
A、8
B、16
C、32
D、15
根据二叉树的性质:
二叉树第i(i≥1)层上至多有2i-1个结点。
得到第5层的结点数最多是16。
10、以下数据结构中不属于线性数据结构的是______。
A、队列
B、线性表
C、二叉树
D、栈
线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。
栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。
一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。
所以栈又称后进先出表(LastInFirstOut);
队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。
在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素。
因此队列又称先进先出表(FirstInFirstOut)。
11、下列程序的输出结果是______。
#include<
iostream>
usingnamespacestd;
intmain()
{
chara[]="
Hello,World"
;
char*ptr=a;
while(*ptr)
if(*ptr>
='
a'
&
*ptr<
z'
)
cout<
<
char(*ptr+'
A'
-'
);
elsecout<
*ptr;
ptr++;
}
return0;
A、HELLO,WORLD
B、Hello,World
C、hELLO,wORLD
D、hello,world
此程序段的功能是将字符串中的小写字母转换为大写字母并将其输出。
12、关于动态存储分配,下列说法正确的是______。
A、new和delete是C++语言中专门用于动态内存分配和释放的函数
B、动态分配的内存空间也可以被初始化
C、当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间
D、当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new
new和deleted在C++中用来申请与释放内存的运算,不是函数,故选项A错。
动态内存分配时是可以对其进行初始化的,如对类的初始化。
在C++中,没有垃圾回收装置,系统本身不会自动回收内存,选项C也错。
由于采用了new操作分配内存,在内存分配失败时,产生一个NULL指针,不会导致系统的崩溃,因此建议使用new操作,故选项D错。
13、执行语句序列
intn;
cin>
>
n;
switch(n)
{case1:
case2:
cout<
'
1'
case3:
case4:
2'
break;
default:
3'
时,若键盘输入1,则屏幕显示______。
A、1
B、2
C、3
D、12
switch语句又称为开关语句,它也是一种选择语句。
switch语句的功能是根据给定表达式的不同取值来决定从多个语句序列中的哪一个开始执行。
break语句又称为跳出语句。
break语句只能用在switch语句和循环语句中。
在switch语句中,break用来使执行流程跳出switch语句,而继续执行switch后面的语句。
在循环语句中,break用来使执行流程无条件地跳出本层循环。
14、有以下类定义
classPoint{
public:
Point(intx=0,inty=0){_x=x;
_y=y;
voidMove(intxOff,intyOff)
{_x+=xOff;
_y+=yOff;
voidPrint()const
{cout<
('
_x<
'
_y<
)'
endl;
private:
int_x,_y;
};
下列语句中会发生编译错误的是______。
A、Pointpt;
pt.Print();
B、constPointpt;
pt.Print()
C、Pointpt;
pt.Move(1,2);
D、constPointpt;
本题主要考查了const关键字的使用。
可以在类型或类名前加上const来声明一个在运行时不可改变的对象或变量。
如果声明了一个常量对象,则其内部成员均不可改变,在编译时会检查其对应类的成员变量是否为左值,如果是,则会出现错误。
对于B而言,由于在对象pt中的print方法中没有发现存在左值成员变量,故在编译时不会出错。
15、有以下类定义
classMyClass
private:
intid;
chargender;
char*phone;
MyClass():
id(0),gender('
#'
),phone(NULL){}
MyClass(intno,charge='
char*ph=NULL)
{id=no;
gender=ge;
phone=ph;
下列类对象定义语句中错误的是______。
A、MyClassmyObj;
B、
C、MyClassmyObj(12,'
m'
D、MyClassmyObj(12);
对于A,由于在创建MyClass的实例myObj时,没有参数,所以其调用了第一个构造函数。
对于B,由于有两个参数,故其调用了第二个构造函数,第二个构造函数有两个缺省参数,在调用时,实参会按从左到右的顺序依次传给形参,所以第二个参数”会传递给形参ge,而在原型中ge为字符型,实参为指向字符的指针,故在编译时会出现错误。
C与D都能够正确的实现参数的传递。
16、下列函数原型声明中错误的是______。
A、voidFun(intx=0,inty=0);
B、voidFun(intx,inty);
C、voidFun(intx,inty=0);
D、voidFun(intx=0,inty);
在C++中,可以为参数指定默认值,在函数调用时没有指定与形参相对应的实参时就自动使用默认值。
默认参数可以简化复杂函数的调用。
默认参数通常在函数名第一次出现在程序中的时候,如在函数原型中,指定默认参数值。
指定默认参数的方式从语法上看与变量初始化相似。
例如:
voidmyfunc(intx=0,inty=1);
如果一个函数中有多个参数,则默认参数应从右至左逐个定义。
17、关于面向对象的程序设计方法,下列说法正确的是______。
A、"
封装性"
指的是将不同类型的相关数据组合在一起,作为一个整体进行处理
B、"
多态性"
指的是对象的状态会根据运行时要求自动变化
C、基类的私有成员在派生类的对象中不可访问,也不占内存空间
D、在面向对象的程序设计中,结构化程序设计方法仍有着重要作用
封装性是指将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在其内部;
多态性是指当多种事物继承自一种事物时,同一种操作在它们之间表现出不同的行为;
基类的私有成员对派生类来说是不可访问的,因此在派生类中直接引用基类的私有变量成员是不允许的,可以通过基类的公用成员函数来引用基类的私有变量成员;
C++是一种优秀的高级程序设计语言,它是以C语言为基础而逐渐发展起来的。
C++语言既保留了传统的结构化程序设计方法,又对流行的面向对象程序设计方法提供了完整的支持。
18、下列是模板声明的开始部分,其中正确的是______。
A、template<
T>
B、template<
classT1,T2>
C、template<
classT1,classT2>
D、template<
classT1;
classT2>
本题主要考查了模板的定义,在C++中可以在定义类时不指定具体的数据类型,而在编译时进行前期绑定,对于多参数的模板,在参数间用“,”隔开,如果模板参数为一个类,在模板参数前面必须加上class关键字。
19、有以下程序
inti=0;
voidfun()
{{
staticinti=1;
std:
:
i++<
std:
i<
fun();
程序执行后的输出结果是______。
A、1,2,1,2,
B、1,2,2,3,
C、2,0,3,0,
D、1,0,2,0,
本题主要考查了static型的变量,在C++中可以为函数或类指定static型的变量,如果将一个变量指定为static型,则该变量在内存中仅有一个副本,同时在函数或类执行完成后空间不会被释放,以前的值将会被保留。
同时还考查了C++中变量作用域的问题,在C++中如果要将一个变量限定在指定的范围内,可以将该作用域用{}包含起来,同时可在函数的外部指定全局变量,该变量的作用范围是从当前位置开始到程序结束。
对于"
staticinti=1;
"
中的i,初始值为1,在调用std:
后,将输出"
1,"
,然后自加1,对于第二句std:
,该i所代表的应该是全局变量"
i"
,故输出"
0,"
。
在第二次执行fun()时,由于第一i为static型变量,其值是保留的,故输出"
2,"
,对于第二个i则输出"
20、有以下程序
MyClass(intn){number=n;
//拷贝构造函数
MyClass(MyClass&
other){number=other.number;
~MyClass(){}
intnumber;
MyClassfun(MyClassp)
MyClasstemp(p);
returntemp;
MyClassobj1(10),obj2(0);
MyClassobj3(obj1);
obj2=fun(obj3);
return0;
程序执行时,MyClass类的拷贝构造函数被调用的次数是______。
A、5
B、4
D、2
obj1(10)将执行一次构造函数,obj2(0)也将执行一次构造函数;
obj3(obj1)将以obj1作为参数执行一次构造函数;
fun(obj3)中的temp(p)也将执行一次构造函数,而fun本身是按值传递参数的,形参在fun函数内也要分配独立的空间,故也要执行一次构造函数,对于其返回结果也是MyClass类型的,同样需要执行一次构造函数,故一共要执行4次。
21、已知:
intm=10;
在下列定义引用的语句中,正确的是______。
A、int&
x=m;
B、inty=&
m;
C、int&
z;
D、int&
t=&
本题主要考查了对引用及地址(&
)的理解,引用实际上就是别名,它与被引用变量拥有同一个地址空间,对于选项A而言,其操作实际上就是为m赋于一个别名x,因此选项A是对的。
对于选项B,&
m表示m的地址,而y是一个整型变量,在C++中不能从地址值隐式转换为整型值,故选项B是错的。
对于选项C,引用必须要用被引用的对象,即引用必须要初始化;
选项D中t是一个整型引用,而其被引用的对象却是m的地址,存在着与选项B类似的错误,因此选项D也是错的。
22、在下面的运算符重载函数的原型中,错误的是______。
A、Volumeoperator-(double,double);
B、doubleVolume:
operator-(double);
C、VolumeVolume:
operator-(Volume);
D、Volumeoperator-(Volume,Volume);
本题主要考查了运算符的重载。
对于运算符的重载,通常有两种形式。
1、操作结果operator运算符(操作数1,[操作数2])
2、操作结果类:
operator运算符(操作数)
对于上述选项中,B、C为第二种类型,A、D为第一种类型,在第一种类型中,两个操作数必须至少有一个自定义类,对选项A而言,其两个操作数均为double型数据,因此选项A是错误的运算符重载。
23、执行语句序列
ofstreamoutfile("
DATA.DAT"
if(…)cout<
OK"
elsecout<
FAIL"
后,如果文件打开成功显示"
,否则就显示"
由此可知,上面if语句的…处的表达式应是______。
A、outfile.fail()或outfile
B、outfile.good()或!
outfile
C、outfile.good()或outfile
D、outfile.fail()或!
在采用ofstream类打开文件时,在创建其实例时,可在构造函数中输入要打开的文件名,如果打开成功,则返回一个ofstream类的实例,否则创建实例失败,返回0,同时可通过good()或fail()方法来判断文件是否已打开,如果正常打开则fail()方法返回0,good()方法返回非零,否则fail()返回非零,good()返回0。
24、在一个类体的下列声明中,正确的纯虚函数声明是______。
A、virtualvoidvf()=0;
B、voidvf(int)=0;
C、virtualintvf(int);
D、virtualvoidvf(int){}
本题考查了纯虚函数的定义,在C++中要定义一个函数为虚函数,可在函数定义前加上virtual关键字,如果要定义一个函数为纯虚函数,只要在函数原型后加上“=0”就可以了。
对于纯虚函数,必须要在其派生类中实现,因此对于一个拥有纯虚函数的类,实质上就是一个抽象类。
对于这种类,不能为其创建实例。
25、有以下类定义
MyClass(){cout<
1;
则执行语句MyClassa,b[2],*p[2];
后,程序的输出结果是______。
A、11
B、111
C、1111
D、11111
classMyClass定义了一个类,其中MyClass(){cout<
}为其的构造函数,当程序创建类MyClass的实例时,该函数将会被调用,在执行“MyClassa,b[2],*p[2];
”时,一共创建了3个这样的实例,故一共执行构造函数3次,对于变量p,则是声明了一个指针数组,该数组中的元素是指向类MyClass实例的指针,本身并没有创建类的实例。
26、有以下程序
classComplex
Complex(doubler=0,doublei=0):
re(r),im(i){}
doublereal()const{returnre;
}
doubleimag()const{returnim;
Complexoperator+(Complexc)const
{returnComplex(re+c.re,im+c.im);
doublere,im;
Complexa=Complex(1,1)+Complex(5);
a.real()<
+'
a.imag()<
i'
A、6+6i
B、6+1i
C、1+6i
D、1+1i
本题定义了一个复数类,并在该类上重载了+运算符。
在main函数中,定义了一个复数类a,其值为两个复数1+i与5的和。
在复数类中,定义了real与imag方法,分别用来取出复数的实部与虚部。
27、已知程序中已经定义了函数test,其原型是inttest(int,int,int);
,则下列重载形式中正确的是______。
A、chartest(int,int,int);
B、doubletest(int,int,double);
C、inttest(int,int,int=0);
D、floattest(int,int,float=3.5F);
在对函数进行重载时,不允许为其指定缺省参数,故C、D是错的,同时,对于重载的函数原型间不允许有类型完全相同的参数列表,故A是错的,对于返回类型,在重载时没有特别的要求。
28、C++流中重载的运算符>
是一个______。
A、用于输出操作的非成员函数
B、用于输入操作的非成员函数
C、用于输出操作的成员函数
D、用于输入操作的成员函数
C++流的输入运算符>
和输出运算符<
只能作为非类成员函数重载。
在一个类中,如有必要,可将>
或<
声明为友元函数。
29、已知函数f的原型是:
voidf(int*a,long&
b);
,变量v1、v2的定义是:
intv1;
longv2;
,正确的调用语句是______。
A、f(v1,&
v2);
B、f(v1,v2);
C、f(&
v1,v2);
D、f(&
v1,&
对于函数f而言,其第一个参数为整型指针,第二个参数为一引用(实际上就是按地址传递参数),该引用是一长整型的引用。
对于选项A、B,实参变量v1为整型,而所要传递的对应的形参变量a是指针型,它接受的是地址,若将实参变量v1改为&
v1,那么这一传递就是正确的;
对于选项A、D,&
v2为一地址,传递给整型引用,也将导致出错。
30、在公有派生的情况下,派生类中定义的成员函数只能访问原基类的______。
A、公有成员和私有成员
B、私有成员和保护成员
C、公有成员和保护成员
D、私有成员、保护成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机等级考试 二级 题库