计算机二级C++笔试266.docx

上传人:b****9 文档编号:26327327 上传时间:2023-06-17 格式:DOCX 页数:30 大小:24.23KB
下载 相关 举报
计算机二级C++笔试266.docx_第1页
第1页 / 共30页
计算机二级C++笔试266.docx_第2页
第2页 / 共30页
计算机二级C++笔试266.docx_第3页
第3页 / 共30页
计算机二级C++笔试266.docx_第4页
第4页 / 共30页
计算机二级C++笔试266.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

计算机二级C++笔试266.docx

《计算机二级C++笔试266.docx》由会员分享,可在线阅读,更多相关《计算机二级C++笔试266.docx(30页珍藏版)》请在冰豆网上搜索。

计算机二级C++笔试266.docx

计算机二级C++笔试266

[模拟]计算机二级(C++)笔试266

一、选择题

第1题:

下列数据结构中,属于非线性结构的是()。

A.循环队列

B.带链队列

C.二叉树

D.带链栈

参考答案:

C

队列是一种允许在一端进行插入,而在另一端进行删除的线性表。

栈也是一种特殊的线性表,其插入与删除只能在线性表的一端进行。

第2题:

下列数据结构中,能够按照“先进后出”原则存取数据的是()。

A.循环队列

B.栈

C.队列

D.二叉树

参考答案:

B

在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。

栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。

即栈是按照“先进后出”或“后进先出”的原则组织数据的。

第3题:

对于循环队列,下列叙述中正确的是()。

A.队头指针是固定不变的

B.队头指针一定大于队尾指针

C.队头指针一定小于队尾指针

D.队头指针可以大于队尾指针,也可以小于队尾指针

参考答案:

D

所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。

在循环队列结构中,当存储空间的最后一个位置已被使用而再要进行入队运算时,只要存储空间的第一个位置空闲,可将元素加入到第一个位置,即将存储空闲的第一个位置作为队尾。

第4题:

算法的空间复杂度是指()。

A.算法在执行过程中所需要的计算机存储空间

B.算法所处理的数据量

C.算法程序中的语句或指令条数

D.算法在执行过程中所需要的临时工作单元数

参考答案:

A

一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。

第5题:

软件设计中划分模块的一个准则是()。

A.低内聚低耦合

B.高内聚低耦合

C.低内聚高耦合

D.高内聚高耦合

参考答案:

B

耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。

在程序结构中,各个模块的内聚性越强,则耦合性越弱。

一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

第6题:

下列选项中不属于结构化程序设计原则的是()。

A.可封装

B.自顶向下

C.模块化

D.逐步求精

参考答案:

A

结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化、限制使用goto语句等。

第7题:

软件详细设计产生的如右图所示。

该图是()。

A.N-S图

B.PAD图

C.程序流程图

D.E-R图

参考答案:

C

N-S图是由若干基本框图构成的流程图,其特点是没有流程线;PAD图即问题分析图(ProblemAnalysisDiagram),它是一种由左往右展开的二维树型结构;程序流程图用于描述问题解决的过程和步骤,其中方框表示处理步骤、菱形框表示逻辑判断、箭头表示控制流向;E-R图即实体一联系图(EntityRelationshipDiagram),用来描述现实世界的概念模型,构成元素有实体、属性和联系,分别用矩形、椭圆形和菱形表示。

本题答案为C。

第8题:

数据库管理系统是()。

A.操作系统的一部分

B.在操作系统支持下的系统软件

C.一种编译系统

D.一种操作系统

参考答案:

B

数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。

第9题:

在E-R图中,用来表示实体联系的图形是()。

A.椭圆图

B.矩形

C.菱形

D.三角形

参考答案:

C

E-R图中用矩形表示实体(等同于表),用椭圆形表示实体的属性(等同于表中字段),用菱形表示实体关系(等同于外键)。

第10题:

有3个关系R,S和T如下表所示:

其中关系T由关系R和S通过某种操作得到,该操作为()。

A.选择

B.投影

C.交

D.并

参考答案:

D

两个相同结构关系的并是由属于这两个关系的元组组成的集合。

第11题:

已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则()。

A.FA必须定义在FB之前

B.FB必须定义在FA之前

C.若FA定义在FB之后,则FA的原型必须出现在FB的定义之前

D.若FB定义在FA之后,则FB的原型必须出现在FA的定义之前

参考答案:

D

主要考查函数调用时,是否设置函数原型。

在C++中若被调用的函数放在主调函数之后,需将被调用函数原型放在主调函数之前,否则不需要。

第12题:

有如下两个类定义:

classAA{};

classBB{

AAv1,*v2;

BBv3;

int*v4;

};

其中有一个成员变量的定义是错误的,这个变量是()。

A.v1

B.v2

C.v3

D.v4

参考答案:

C

本题主要考查类对象的定义,类的对象一般放在类结构体外或在主函数中定义,而不能放在类定义的结构体中,但自身类的指针可以,本题BBv3不能被定义于类体内。

第13题:

有如下类定义:

classXX{

intxdata;

public:

XX(intn=0):

xdata(n){}

};

classYY:

publicXX{

intydata;

public:

YY(intm=0,intn=0):

XX(m),ydata(n){}

};

YY类的对象包含的数据成员的个数是()。

A.1

B.2

C.3

D.4

参考答案:

B

本题主要考查派生类的继承方式。

该题为公有继承,它包含基类中全部数据成员和除了构造、析构函数之外的全部成员函数,而本题数据成员的个数即为2。

第14题:

下列关于运算符函数的描述中,错误的是()。

A.运算符函数的名称总是以operator为前缀

B.运算符函数的参数可以是对象

C.运算符函数只能定义为类的成员函数

D.在表达式中使用重载的运算符相当于调用运算符重载函数

参考答案:

C

该题主要考查运算符函数的定义及运算符重载时应注意事项,运算符重载是函数重载的一种特殊情况。

第15题:

下列关于模板形参的描述中,错误的是()。

A.模板形参表必须在关键字template之后

B.模板形参表必须用括弧()括起来

C.可以用class修饰模板形参

D.可以用typename修饰模板形参

参考答案:

B

主要考查函数模板的定义。

声明一个函数模板的格式为“template<模板形参表声明><函数声明>”,其中<模板形参>具有typename<参数名>、class<参数名>、<类型修饰><参数名>三种形式,形参用“<>”括起来。

第16题:

在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是()。

A.ios_base:

cur

B.ios_base:

beg

C.ios_base:

out

D.ios_base:

end

参考答案:

A

主要考查文件流的定位问题。

其中ios_base:

beg表示相对于文件首、ios_base:

cur表示相对于当前位置(负数表示当前位置之前)、ios_base:

end相对于文件尾、而ios_base:

out,表示在文件流的建立中为文件的输出而打开。

第17题:

下列字符串中可以用作C++标识符的是()。

A.2009var

B.goto

C.test-2009

D._123

参考答案:

D

标识符主要由数字、字母、下画线组成,且首位必为字母或下画线,同时标识符不能是关键字。

第18题:

下列枚举类型的定义中,包含枚举值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};

参考答案:

A

本题主要考查枚举类型的定义,其中几个枚举值全部未赋常量值时,它们自左至右分别与整数0,1,…,n-1对应。

由此可判断本题答案。

第19题:

有如下程序段:

inti=1;

while

(1){

i++;

if(i==10)break;

if(i%2==0)cout<<´*´;

}

执行这个程序段输出字符*的个数是()。

A.10

B.3

C.4

D.5

参考答案:

C

本题主要考查while的作用。

只有i为偶数时才输出“*”,而本题只有2,4,6,8时才满足条件,而当i为10时程序结束,即只有4个“*”被输出。

第20题:

已知数组arr的定义如下:

intarr[5]={1,2,3,4,5};

下列语句中输出结果不是2的是()。

A.cout<<*arr+1<<end1;

B.cout<<*(art+1)<<end1;

C.cout<<arr[1]<<end1;

D.cout<<*arr<<end1;

参考答案:

D

本题主要考查指针的特殊含义。

例*px+1指取px所指对象内容加1,*(px+1)指px指针加1,并取结果指针内容而*px则指px的首元素。

第21题:

计算斐波那契数列第n项的函数定义如下:

intfib(intn){

if(n==0)return1;

elseif(n==1)return2;

elsereturnfib(n=1)+fib(n=2);

}

若执行函数调用表达式fib

(2),函数fib被调用的次数是()。

A.1

B.2

C.3

D.4

参考答案:

C

针对递归调用的含义。

当n为2时有fib(0),fib

(1),fib

(2)被调用,且fib(0),fib

(1)时调用结束,即共3次。

第22题:

Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是()。

Samplea[2],*p=newSample;

A.0

B.1

C.2

D.3

参考答案:

D

构造函数在对象被创建时由系统自动调用,本题共创建3个对象。

第23题:

下列关于虚基类的描述中,错误的是()。

A.使用虚基类可以消除由多继承产生的二义性

B.构造派生类对象时,虚基类的构造函数只被调用一次

C.声明“classB:

virtualpublicA”说明类B为虚基类

D.建立派生类对象时,首先调用虚基类的构造函数

参考答案:

C

本题针对虚基类的定义及特点考查。

虚基类的声明为“class<类名>:

virtual<继承方式><基类名>”,即本题的A为虚基类。

第24题:

将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是()。

A.不合法的运算符

B.一元运算符

C.无操作数的运算符

D.二元运算符

参考答案:

B

一元或二元运算符函数作为成员函数时,第一操作数就是对象本身,并不出现在参数表中,即第一操作数仅以this指针的形式隐含于参数表中,因此对于一元运算符参数表是空的;而对于二元运算符参数表中只有一个参数,它代表第二操作数。

第25题:

有如下模板声明:

template<typenameT1,typenameT2>classA;

下列声明中,与上述声明不等价的是()。

A.template<classT1,classT2>classA;

B.template<classT1,typenameT2>classA;

C.template<typenameT1,classT2>classA;

D.template<typenameT1,T2>classA;

参考答案:

D

模板形参有typename<参数名>、class<参数名>、<类型修饰><参数名>3种形式,即typename与class通用。

第26题:

下列关于C++流的描述中,错误的是()。

A.cout>>´A´表达式中输出字符A

B.eof函数可以检测是否到达文件尾

C.对磁盘文件进行流操作时,必须包含头文件fstream

D.以ios_base:

out模式打开的文件不存在时,将自动建立一个新文件

参考答案:

A

在C++中输入用“cin>>”,输出用“<<cout”。

第27题:

有如下程序:

#include<iostream>

usingnamespaeestd;

classToy{

public:

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<<t1.getCount()<<end1;

return0;

}

运行时的输出结果是()。

A.1

B.2

C.3

D.运行时出错

参考答案:

C

析构函数主要用于最后函数的释放空间。

本题在已输出t1.getCount()后才调用即不影响所输结果。

第28题:

有如下程序:

#include<iostream>

usingnamespacestd;

classA{

public:

A(inti):

rl(i){}

voidprint(){cout<<´E´<<r1<<´-";}

voidprint()const{cout<<´C´<<r1*r1<<´-´;}

private:

intr1;

};

intmain(){

Aa1

(2);constAa2(4);

a1.print();a2.print();

return0;

}

运行时的输出结果是()。

A.运行时出错

B.E2-C16-

C.C4-C16-

D.E2-E4-

参考答案:

B

const关键字可以用于参与对重载函数的区分。

重载的原则是常对象调用常成员函数,一般对象调用一般成员函数。

第29题:

有如下程序:

#include<iostream>

usingnamespacestd;

className{

charname[20];

public:

Name(){

strcpy(name,"");cout<<´?

´;

}

Name(char*fname){

strcpy(name,fname);cout<<´?

´;

}

};

intmain(){

Namenames[3]={Name("张三"),Name("李四")};

return0;

}

运行此程序输出符号?

的个数是()。

A.0

B.1

C.2

D.3

参考答案:

D

对有参与无参构造函数的调用。

当names[2]为空时调无参构造函数,而names[0],names[1]调用有参构造函数,即输出3个“?

”。

第30题:

有如下程序:

#include<iostream>

usingnamespacestd;

classAA{

public;

AA(){cout<<´1´;}

};

classBB:

publicAA{

intk;

public:

BB():

k(0){cout<<´12´;}

BB(intn):

k(n){cout<<´3´;}

};

intmain(){

BBb(4),c;

return0;

}

运行时的输出结果是()。

A.1312

B.132

C.32

D.1412

参考答案:

A

当基类的构造函数默认或无参时,派生类可省略对基类构造函数的显示调用,但系统会自动调用该类的缺省构造函数,且先调用基类的构造函数后调用派生类的构造函数。

第31题:

有如下程序:

#include<iostream>

usingnamespacestd;

classC1{

public:

~C1(){cout<<1;}

};

classC2:

publicC1{

public:

~C2(){cout<<2;}

};

intmain(){

C2cb2;

C1*cb1;

return0;

}

运行时的输出结果是()。

A.121

B.21

C.211

D.12

参考答案:

B

在基类与派生类中,析构函数在派生类先调用,而本题有两个不同类对象,对于cb2需先调c2的析构函数,再调c1析构函数。

而对于*cb1由于没有指针性析构函数,它将不参加传递数据。

第32题:

有如下程序:

#include<iostream>

usingnamespacestd;

classPublication{//出版物类

charname[30];

public:

Publication(char*name="未知名称"){

~strcpy(this—>name,name);

}

constchar*getName()const{returnname;}

virtualconstchar*getType()const{return"未知类型";}

};

classBook:

publicPublication{//书类

public:

Book(char*name):

Publication(name){}

virtualconstchar*getType()const{return"书";}

};

voidshowPublication(Publication&p){

cout<<p.getType()<<":

"<<p.getName()<<end1;

}

intmain(){

Bookbook("精彩人生");

showPublication(book);

return0;

}

运行时的输出结果是()。

A.未知类型:

未知名称

B.未知类型:

精彩人生

C.书:

未知名称

D.书:

精彩人生

参考答案:

D

因为getType是虚函数,所以p.getType()执行继承类的getType函数,输出“书”;p.getName()执行基类的getName函数,输出“精彩人生”。

总共输出“书:

精彩人生”,故选D。

第33题:

、下列关于运算符重载的描述中,错误的是()。

A.:

运算符不能重载

B.类型转换运算符只能作为成员函数重载

C.将运算符作为非成员函数重载时必须定义为友元

D.重载[]运算符应完成“下标访问”操作

参考答案:

C

除了?

、*、→*、:

、?

这五个运算符外,其他运算符都可以重载。

=、[]、()、→以及所有的类型转换运算符只能作为成员函数重载。

[]作为成员函数重载时,应完成“下标访问”操作,使得向指定下标处的元素赋值或取值成为可能。

第34题:

有如下程序:

#include<iostream>

#include<iomanip>

usingnamespacestd;

intmain(){

ints[]={123,234};

cout<<setfill(´*´)<<setw(6);

for(inti=0;i<2;i++){cout<<s[i]<<end1;}

return0;

}

运行时的输出结果是()。

A.123234

B.***123234

C.***123***234

D.***123234***

参考答案:

B

setw()为填充字符控制,仅对紧接着它的字符起作用,当输出的字符宽度小于setw()预留的字符数时,需用setw()设置的字符给予填充。

第35题:

有如下类定义:

classA{

char*a;

public:

A():

a(0){}

A(char*aa){//把a3所指字符串拷贝到a所指向的存储空间

a=______;

strcpy(a,aa);

}

~A(){delete[]a;}

};

横线处应填写的表达式是()。

A.Dewchar[strlen(aa)+1]

B.char[strlen(aa)+1]

C.char[strlen(aa)]

D.Dewchar[sizeof(aa)-1]

参考答案:

A

对动态分配存储空间的考查,在C++中,回车键需计一字符,即总的长度为strlen(aa)+1。

二、填空题

第36题:

某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有______个结点。

 

参考答案:

14

详细解答:

在二叉树中,度为0的结点数是度为2的结点数加1,故二叉树中结点数的总和为度为。

的结点数、度为1的结点数及度为2的结点数三者相加,得出结果为14个结点。

第37题:

程序流程图中的菱形框表示的是______。

 

参考答案:

逻辑判断

详细解答:

绘制流程图时事实描述用椭圆形表示、行动方案用矩形表示、问题用菱形表示、箭头代表流动方向。

第38题:

软件开发过程主要分为需求分析、设计、编码与测试4个阶段,其中______阶段产生“软件需求规格说明书”。

 

参考答案:

需求分析

详细解答:

需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审等4方面,产生的主要文档为软件需求规格说明书,它可以为用户、分析人员和设计人员之间的交流提供方便,直接支持目标软件系统的确认,也可以作为控制软件开发进程的依据。

第39题:

在数据库技术中,实体集之间的联系可以是一对一或一对多的,那么“学生”和“可选课程”的联系为______。

 

参考答案:

多对多

详细解答:

一名学生可以选择多门课程,一门课程也可以由多名学生选择,因此是多对多的联系。

第40题:

人员基本信息一般包括身份证号、姓名、性别、年龄等。

其中可以做主关键字的是______。

 

参考答案:

身份证号

详细解答:

主关键字是表中区别不同的记录的标识,在该表中只有身份证号能具有这个作用,所以用其作为主关键字。

第41题:

若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为______。

 

参考答案:

double

详细解答:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1