全国计算机二级C++语言程序设计考试选择题及答案文档格式.docx
- 文档编号:17729987
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:16
- 大小:22.10KB
全国计算机二级C++语言程序设计考试选择题及答案文档格式.docx
《全国计算机二级C++语言程序设计考试选择题及答案文档格式.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C++语言程序设计考试选择题及答案文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
C.菱形
D.三角形
10.有3个关系R、S和T如下表所示:
其中关系T由关系R和s通过某种操作得到,该操作为( )。
A.选择
B.投影
C.交
D.并
11.4种根本构造中,能简化大量程序代码行的是( )。
A.顺序构造
B.分支构造
C.选择构造
D.重复构造
12.以下关于栈的描述正确的选项是( )。
A.在栈中只能插入元素而不能删除元素
B.在栈中只能删除元素而不能插入元素
C.栈是特殊的线性表,只能在一端插入或删除元素
D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
13.以下有关数据库的表达,正确的选项是( )。
A.数据处理是将信息转化为数据的过程
B.数据的物理独立性是指当数据的逻辑构造改变时,数据的存储构造不变
C.关系中的每一列称为元组,一个元组就是一个字段
D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,那么称其为本关系的外关键字
14.概要设计中要完成的事情是( )。
A.系统构造和数据构造的设计
B.系统构造和过程的设计
C.过程和接口的设计
D.数据构造和过程的设计
15.下面排序算法中,平均排序速度最快的是( )。
A.冒泡排序法
B.选择排序法
C.交换排序法
D.堆排序法
16.函数FA调用函数FB,假设要把这两个函数定义在同一个文件中,那么( )。
A.FA必须定义在FB之前
B.FB必须定义在FA之前
C.假设FA定义在FB之后,那么FA的原型必须出现在FB的定义之前
D.假设FB定义在FA之后,那么FB的原型必须出现在FA的定义之前
17.有如下两个类定义:
ClaSSAA{};
classBB{
AAv1,*v2;
BBv3;
int*v4;
};
其中有一个成员变量的定义是错误的,这个变量是( )。
A.v1
B.v2
C.v3
D.v4
18.有如下类定义:
classXX{
intxdata;
public:
XX(intn=0):
xdata(n){}
classYY:
publicXX{
intydata;
YY(intm=0,intn=O):
XX(m),ydata(n){}
YY类的对象包含的数据成员的个数是( )。
A.1
B.2
C.3
D.4
19.以下关于运算符函数的描述中,错误的选项是( )。
A.运算符函数的名称总是以0perator为前缀
B.运算符函数的参数可以是对象
C.运算符函数只能定义为类的成员函数
D.在表达式中使用重载的运算符相当于调用运算符重载函数
20.以下关于模板形参的描述中,错误的选项是( )。
A.模板形参表必须在关键字template之后
B.模板形参表必须用括弧( )括起来
C.可以用class修饰模板形参
D.可以用typename修饰模板形参
21.在以下枚举符号中,用来表示“相对于当前位置”文件定位方式的是( )。
A.iosbase:
:
cur
B.iosbase:
beg
C.iosbase:
0ut
D.iosbase:
end
22.以下字符串中可以用作C++标识符的是( )。
A.xxvar
B.goto
C.test-xx
D.123
23.以下枚举类型的定义中,包含枚举值3的是( )。
A.enumtest{RED,YELLOW,BLUE,BLACK};
B.enumtest{RED,YELLOW=4,BLUE,BLACK);
C.enumtest{RED=-1,YELLOW,BLUE,BLACK};
D.enumtest{RED,YELLOW=6,BLUE,BLACK);
24.有如下程序段:
inti=1:
while
(1){
i++:
if(i==10)break:
if(i%2==0)cout<
<
’*’:
}
执行这个程序段输出字符*的个数是( )。
A.10
B.3
C.4
D.5
25.数组arr的定义如下:
intarr[5]={1,2,3,4,5};
以下语句中输出结果不是2的是( )。
A.cout<
*arr+1
intfib(intn){
if(n==0)returnl;
elseif(n==l)return2:
elsereturnfib(n-1)+fib(n-2);
假设执行函数调用表达式fib
(2),函数fib被调用的次数是( )。
27.Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是( )。
Samplea[2],*p=newSample;
A.0
B.1
C.2
D.3
28.以下关于虚基类的描述中,错误的选项是( )。
A.使用虚基类可以消除由多继承产生的二义性
B.构造派生类对象时。
虚基类的构造函数只被调用一次
C.声明“classB:
virtualpublicA”说明类B为虚基类
D.建立派生类对象时,首先调用虚基类的构造函数
29.将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是( )。
A.不合法的运算符
B.一元运算符
C.无操作数的运算符
D.二元运算符
30.有如下模板声明:
templateclassA;
以下声明中,与上述声明不等价的是( )。
A.templateclassA;
B.templateclassA;
C.templateclassA;
D.templateclassA;
31.以下关于C++流的描述中,错误的选项是( )。
A.cout>
>
’A’表达式中输出字符A
B.eof函数可以检测是否到达文件尾
C.对磁盘文件进展流操作时,必须包含头文件fstream
D.以iosbase:
Out模式翻开的文件不存在时,将自动建立一个新文件
32.有如下程序:
#include
usingnamespacestd;
classToy{
Toy(char*n){strcpy(name,n);
count++;
)
~Toy( ){count一一;
char*GetName( ){returnname;
}
staticintgetCount( ){returncount;
private:
charname[10];
staticintcount;
intToy:
count=0;
intmain( ){
Toyt1("
snoopy"
),t2("
Mickey"
),t3("
Barbie"
);
tout
)
运行时的输出结果是( )。
D.运行时出错
33.有如下程序:
classA{
A(inti):
rl(i){)
voidprint( ){cout<
’E’
intr1:
Aal
(2);
constAa2(4);
,
al.print( );
a2.print( );
return0;
A.运行时出错
B.E2一C16一
C.C4一Cl6一
D.E2一E4—
34.有如下程序:
className{
charname[20];
Name( ){
strcpy(name,"
"
cout<
’?
’;
Name(char*fname){
strcpy(name,fname);
Namenames[3]={Name(”张三”),Name(”李四”));
运行此程序输出符号?
的个数是( )。
A.O
35.有如下程序:
classAA{
public;
AA( ){cOUt<
’1’;
classBB:
publicAA{
intk;
BB( ):
k(0){tout<
’12’;
BB(intn):
k(n)(cout<
’3’;
BBb(4),c;
运行时的输出结果是( ).
A.1312
B.132
C.32
D.1412
36.有如下程序:
classC1{
~C1( ){cout<
1;
classC2:
publicC1{
~C2( ){cout<
2;
C2cb2;
C1*cb1:
A.121
B.21
C.211
D.12
37.有如下程序:
classPublication{//出版物类
charname[30];
Publication(char*name=”名称”){
~strcpy(this一>
name,name);
constchar*getName( )const{returnname;
virtualconstchar*getType( )const{return”类型”;
classBook:
publicPublication{//书类
Book(char*name):
Publication(name){}
virtualconstchar*getType( )const{return"
书"
;
voidshowPublication(Publication&
p){
cout
Bookbook(”精彩人生”);
showPublication(book);
A.类型:
名称
B.类型:
精彩人生
C.书:
D.书:
38.以下关于运算符重载的描述中,错误的选项是( )。
A.:
运算符不能重载
B.类型转换运算符只能作为成员函数重载
C.将运算符作为非成员函数重载时必须定义为友元
D.重载口运算符应完成“下标访问”操作
39.有如下程序:
#includediomanip>
ints[]={123,234);
A.123
B.***123
234234
C.***123
D.***123
***234234***
40.有如下类定义:
char*a;
A( ):
a(O){}
A(char*aa){//把aa所指字符串拷贝到a所指向的存储空间
a=;
strcpy(a,aa);
~A( ){[]a;
横线处应填写的表达式是( )。
A.Dewchar[strlen(aa)+1]
B.char[strlen(aa)+1]
C.char[strlen(aa)]
D.newchar[sizeof(aa)-1]
1.C。
【解析】队列是一种允许在一端进展插入,而在另一端进展删除的线性表。
栈也是一种特殊的线性表,其插入与删除只能在线性表的一端进展。
2.B。
【解析】在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。
栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;
栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
即栈是按照“先进后出”或“后进先出”的原那么组织数据的。
3.D。
【解析】所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。
在循环队列构造中,当存储空间的最后一个位置已被使用而再要进展入队运算时,只要存储空间的第一个位置空闲,可将元素参加到第一个位置,即将存储空闲的第一个位置作为队尾。
4.A。
【解析】一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
5.B。
【解析】耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。
在程序构造中,各个模块的内聚性越强,那么耦合性越弱。
一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
6.A。
【解析】构造化程序设计方法的主要原那么可以概括为自顶向下、逐步求精、模块化、限制使用goto语句等。
7.C。
【解析】N—S图是由假设干根本框图构成的流程图,其特点是没有流程线;
PAD图即问题分析图(ProblemAnalysisDiagram),它是一种由左往右展开的二维树型构造;
程序流程图用于描述问题解决的过程和步骤,其中方框表示处理步骤、菱形框表示逻辑判断、箭头表示控制流向;
E—R图即实体一联系图(EntityRelationshipDiagram),用来描述现实世界的概念模型,构成元素有实体、属性和联系,分别用矩形、椭圆形和菱形表示。
此题答案为C。
8.B。
【解析】数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据效劳等。
9.C。
【解析】E—R图中用矩形表示实体(等同于表),用椭圆形表示实体的属性(等同于表中字段),用菱形表示实体关系(等同于外键)。
10.D。
【解析】两个相同构造关系的并是由属于这两个关系的元组组成的集合。
11.D。
【解析】重复构造又称为循环构造,它根据给定的条件,判断是否需要重复执行某一相同或类似的程序段,利用重复构造可以简化大量的程序行。
12.C。
【解析】根据数据构造对栈的定义及其特点可知:
栈是限定只在表尾进展插入或删除操作的线性表,因此栈是先进后出的线性表,对栈的插入与删除操作,不需要改变栈底元素。
13.D。
【解析】数据处理是指将数据转换成信息的过程,应选项A表达错误;
数据的物理独立性是指数据的物理构造的改变不会影响数据库的逻辑构造,应选项B表达错误;
关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,应选项c表达错误。
14.A。
【解析】软件概要设计的根本任务是:
设计软件系统构造、数据构造及数据库设计、编写概要设计文档、概要设计文档评审。
15.D。
【解析】在各种排序方法中,快速排序法和堆排序法的平均速度是最快的,因为它们的时间复杂度都是O(nlog2n),其他的排序算法的时间复杂度大都是O(n2)。
16.D。
【解析】主要考查函数调用时,是否设置函数原型。
在C++中假设被调用的函数放在主调函数之后,需将被调用函数原型放在主调函数之前,否那么不需要。
17.C。
【解析】此题主要考查类对象的定义,类的对象一般放在类构造体外或在主函数中定义,而不能放在类定义的构造体中,但自身类的指针可以,此题BBv3不能被定义于类体内。
18.B。
【解析】此题主要考查派生类的继承方式。
该题为公有继承,它包含基类中全部数据成员和除了构造、析构函数之外的全部成员函数,此题数据成员的个数即为2。
19.C。
【解析】该题主要考查运算符函数的定义及运算符重载时应考前须知,运算符重载是函数重载的一种特殊情况。
20.B。
【解析】主要考查函数模板的定义。
声明一个函数模板的格式为“template<
模板形参表声明>
函数声明>
”,其中<
模板形参>
具有typename<
参数名>
、class<
、<
类型修饰>
三种形式,形参用“<
”括起来。
21.A。
【解析】主要考查文件流的定位问题。
冀中iosbase:
beg表示相对于文件首,iosbase:
cur表示相对于当前位置(负数表示当前位置之前),iosbase:
end表示相对于文件尾,iosbase:
out表示在文件流的建立中为文件的输出而翻开。
22.D。
【解析】标识符主要由数字、字母、下画线组成,且首位必为字母或下画线,同时标识符不能是关键字。
23.A。
【解析】此题主要考查枚举类型的定义,其中几个枚举值全部未赋常量值时,它们自左至右分别与整数0,1,…,n-1对应。
由此可判断此题答案。
24.C。
【解析】此题主要考查while的作用。
只有i为偶数时才输出“*”,而此题只有2,4,6,8时才满足条件,而当i为10时程序完毕,即只有4个“*”被输出。
25.D。
【解析】此题主要考查指针的特殊含义。
例*px+1指取px所指对象内容加1,*(px+1)指px指针加1,并取结果指针内容而*px那么指px的首元素。
26.C。
【解析】针对递归调用的含义。
当n为2时有fib(o),fib
(1),fib
(2)被调用,且fib(O),fib
(1)时调用完毕,即共3次。
27,D。
【解析】构造函数在对象被创立时由系统自动调用,此题共创立了3个对象。
28.C。
【解析】此题针对虚基类的定义及特点考查。
虚基类的声明为“class<
类名>
virtual<
继承方式>
基类名>
”,即此题的A为虚基类。
29.B。
【解析】一元或二元运算符函数作为成员函数时,第一操作数就是对象本身,并不出现在参数表中,即第一操作数仅以this指针的形式隐会于参数表中,因此对于一元运算符参数表是空的;
而对于二元运算符参数表中只有一个参数,它代表第二操作数。
30.D。
【解析】模板形参有typename<
3种形式,即typename与class通用。
31.A。
【解析】在C++中输入用“cin>
”,输出用“<
32.C。
【解析】析构函数主要用于最后函数的释放空间。
此题在已输出t1.getCount()后才调用即不影响所输结果。
33.B。
【解析】const关键字可以用于参与对重载函数的区分。
重载的原那么是常对象调用常成员函数,一般对象调用一般成员函数。
34.D。
【解析】对有参与无参构造函数的调用。
当names[2]为空时调无参构造函数,而names[0],names[1]调用有参构造函数,即输出3个“?
”。
35.A。
【解析】当基类的构造函数默认或无参时,派生类可省略对基类构造函数的显示调用,但系统会自动调用该类的缺省构造函数,且先调用基类的构造函数后调用派生类的构造函数。
36.B。
【解析】在基类与派生类中,析构函数在派生类先调用,而此题有两个不同类对象,对于cb2需先调c2的析构函数,再调c1的析构函数。
而对于*cb1由于没有指针性析构函数,它将不参加传递数据。
37.D。
【解析】因为getType是虚函数,所以P.getType()执
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 C+ 语言程序设计 考试 选择题 答案