全国计算机等级考试 二级C++ 笔试模拟试题五.docx

上传人:b****9 文档编号:25062517 上传时间:2023-06-04 格式:DOCX 页数:21 大小:23.98KB
下载 相关 举报
全国计算机等级考试 二级C++ 笔试模拟试题五.docx_第1页
第1页 / 共21页
全国计算机等级考试 二级C++ 笔试模拟试题五.docx_第2页
第2页 / 共21页
全国计算机等级考试 二级C++ 笔试模拟试题五.docx_第3页
第3页 / 共21页
全国计算机等级考试 二级C++ 笔试模拟试题五.docx_第4页
第4页 / 共21页
全国计算机等级考试 二级C++ 笔试模拟试题五.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试 二级C++ 笔试模拟试题五.docx

《全国计算机等级考试 二级C++ 笔试模拟试题五.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试 二级C++ 笔试模拟试题五.docx(21页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试 二级C++ 笔试模拟试题五.docx

全国计算机等级考试二级C++笔试模拟试题五

全国计算机等级考试二级C++笔试模拟试题(五)

一、选择题

在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

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

A)算法程序的长度

B)算法程序中的指令条数

C)算法程序所占的存储空间

D)执行过程中所需要的存储空间

(2)用链表表示线性表的优点是

A)便于随机存取

B)花费的存储空间较顺序存储少

C)便于插入和删除操作

D)数据元素的物理顺序与逻辑顺序相同

(3)数据结构中,与所使用的计算机无关的是数据的

A)存储结构

B)物理结构

C)逻辑结构

D)物理和存储结构

(4)结构化程序设计主要强调的是

A)程序的规模

B)程序的效率

C)程序设计语言的先进性

D)程序易读性

(5)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指

A)模块间的关系

B)系统结构部件转换成软件的过程描述

C)软件层次结构

D)软件开发过程

(6)检查软件产品是否符合需求定义的过程称为

A)确认测试

B)集成测试

C)验证测试

D)验收测试

(7)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。

下列图符名标识的图符不属于数据流图合法图符的是

A)控制流

B)加工

C)数据存储

D)源和潭

(8)应用数据库的主要目的是

A)解决数据保密问题

B)解决数据完整性问题

C)解决数据共享问题

D)解决数据量大的问题

(9)在数据库设计中,将E-R图转换成关系数据模型的过程属于

A)需求分析阶段

B)逻辑设计阶段

C)概念设计阶段

D)物理设计阶段

(10)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。

其中数据独立性最高的阶段是

A)数据库系统

B)文件系统

C)人工管理

D)数据项管理

(11)下面关于C++语言的描述错误的是

A)C++语言支持数据封装

B)C++语言中引入友元没有破坏封装性

C)C++语言允许函数名和运算符重载

D)C++语言支持动态联编

(12)设有定义inta=1;floatf=12;charc=′a′;,则下列表示错误的是

A)++a;

B)f--;

C)c++;

D)8++;

(13)下列程序的运行结果为

#include

voidmain()

{

inta=2;

intb=a+1;

cout<

}

A)0.66667

B)0

C)0.7

D)0.66666666

(14)设inta=1,b=2;,则(a++)+b和a+++b这两个表达式的值分别为

A)3,3

B)3,4

C)4,3

D)4,4

(15)下面程序的运行结果为

#include

voidmain()

{

chara=′3′;

switch(a)

{

case′3′:

cout<<"3";

case′2′:

cout<<"2";break;

default:

cout<<"1";

}

}

A)3

B)321

C)31

D)32

(16)有如下数组声明:

intnum[10];,下标值引用错误的是

A)num[10]

B)num[5]

C)num[3]

D)num[0]

(17)存在定义inta[10],x,*pa;,若pa=&a[0],下列的哪个选项和其他3个选项不是等价的?

A)x=*pa;

B)x=*(a+1);

C)x=*(pa+1);

D)x=a[1];

(18)下面程序的运行结果为

#include

voidswap(int&a,intb)

{

inttemp;

temp=a++;

a=b;

b=temp;

}

voidmain()

{

inta=2,b=3;

swap(a,b);

cout<

}

A)2,3

B)3,2

C)2,2

D)3,3

(19)一个函数功能不太复杂但要求被频繁调用,应选用

A)内联函数

B)重载函数

C)递归函数

D)嵌套函数

(20)下面关于C++语言变量的叙述错误的是

A)C++语言中变量分为auto,static,extern和register四种存储类型

B)自动变量和外部变量的作用域为整个程序

C)内部静态变量的作用域是定义它的函数

D)外部静态变量的作用域是定义它的文件

(21)为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为

A)public

B)protected

C)private

D)static

(22)在C++语言程序中,对象之间的相互通信通过

A)继承实现

B)调用成员函数实现

C)封装实现

D)函数重载实现

(23)类的析构函数是在什么时候调用的?

A)类创建时

B)创建对象时

C)删除对象时

D)不自动调用

(24)通常拷贝构造函数的参数是

A)某个对象名

B)某个对象的成员名

C)某个对象的引用名

D)某个对象的指针名

(25)下面程序的运行结果为

#include

classA

{

staticintn;

public:

A(){n=1;}

A(intnum){n=num;}

voidprint(){cout<

};

intA:

:

n=2;

voidmain()

{

Aa,b(3);

a.print();

b.print();

cout<

}

A)11

B)13

C)23

D)33

(26)下列不是描述类的成员函数的是

A)构造函数

B)析构函数

C)友元函数

D)拷贝构造函数

(27)继承机制的作用是

A)信息隐藏

B)数据封装

C)定义新类

D)数据抽象

(28)C++语言类体系中,不能被派生类继承的有

A)转换函数

B)构造函数

C)虚函数

D)静态成员函数

(29)下面程序的运行结果是

#include

classbase{

protected:

inta;

public:

base(){cout<<"0";}

};

classbase1:

virtualbase{

public:

base1(){cout<<"1";}

};

classbase2:

virtualbase{

public:

base2(){cout<<"2";}

};

classderived:

publicbase1,publicbase2{

public:

derived(){cout<<"3";}

};

voidmain()

{

derivedobj;

cout<

}

A)0123

B)3120

C)0312

D)3012

(30)对于类定义

classA{

public:

virtualvoidfunc1(){}

voidfunc2(){}

};

classB:

publicA{

public:

voidfunc1(){cout<<″classBfunc1″<

virtualvoidfunc2(){cout<<″classBfunc2″<

};

下面正确的叙述是

A)A:

:

func2()和B:

:

func1()都是虚函数

B)A:

:

func2()和B:

:

func1()都不是虚函数

C)B:

:

func1()是虚函数,而A:

:

func2()不是虚函数

D)B:

:

func1()不是虚函数,而A:

:

func2()是虚函数

(31)下面关于运算符重载的描述错误的是

A)运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构

B)不是所有的运算符都可以进行重载

C)运算符函数的调用必须使用关键字operator

D)在C++语言中不可通过运算符重载创造出新的运算符

(32)与语句cout<

A)cout<<′\n′;

B)cout<<′\12′;

C)cout<<′\xA′;

D)cout<<′\0′;

(33)下面程序的运行结果是

#include

intfun(inta[],intn)

{

intresult=1;

for(inti=1;i

result=result*a[i];

returnresult;

}

voidmain()

{

inta[3]={3,4,5};

cout<

}

A)12

B)15

C)20

D)60

(34)下面程序的运行结果是

#include

voidmain()

{

inti=1;

while(i<=8)

if(++i%3!

=2)continue;

elsecout<

}

A)25

B)36

C)258

D)369

(35)下列程序的运行结果为

#include

template

classFF

{TTa1,a2,a3;

public:

FF(TTb1,TTb2,TTb3){a1=b1;a2=b2;a3=b3;}

TTSum(){returna1+a2+a3;}};

voidmain()

{FFx(int(1.1),2,3),y(int(4.2),5,6);

cout<

A)6.115.2

B)615

C)615.2

D)6.115

二、填空题

请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。

(1)数据的逻辑结构有线性结构和1两大类。

(2)顺序存储方法是把逻辑上相邻的结点存储在物理位置2的存储单元中。

 

(3)一个类可以从直接或间接的祖先中继承所有属性和方法。

采用这个方法提高了软件的3。

(4)软件工程研究的内容主要包括:

4技术和软件工程管理。

(5)关系操作的特点是5操作。

(6)C++中封装性、继承性和6是面向对象思想的主要特征。

(7)下面程序的结果为7。

#include

voidmain()

{

inta=1,b=2;

boolc=1;

if((a>b)||c)cout<<"true"<

else

cout<<"false"<

}

(8)下列for语句的循环次数为8。

for(inta=0,b=1;b&&a<5;a++);

(9)下面程序的输出结果是9。

#include

voidmain()

{

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

for(inti=0;i<5;i++)

cout<

cout<

}

(10)C++程序是从10函数开始执行的。

(11)假定A为一个类,则语句A(A&a);为该类11函数的原型说明。

(12)派生类构造函数的执行顺序是先执行12的构造函数,然后执行成员对象的构造函数,最后执行13的构造函数。

(13)类模板不同于函数模板,类模板只可用14型参数。

(14)下列程序的执行结果为15。

#include

voidmain()

{

cout.fill(′*′);

cout.width(10);

cout<<"hello"<

}

 

参考答案及分析

一、选择题

(1)D

解析:

算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。

所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。

(2)C

解析:

链式存储结构克服了顺序存储结构的缺点:

它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。

故链式存储结构下的线性表便于插入和删除操作。

(3)C

解析:

数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。

数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。

(4)D

解析:

结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用goto语句,总的来说可使程序结构良好、易读、易理解、易维护。

(5)B

解析:

软件设计包括软件结构设计、数据设计、接口设计和过程设计。

其中结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。

(6)A

解析:

确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明中确定的各种需求;集成测试的主要目的是发现与接口有关的错误。

(7)A

解析:

数据流图包括4个方面,即加工(转换)(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体)。

不包括选项中的控制流。

(8)C

解析:

数据库中的数据具有"集成"与"共享"的特点,亦即是数据库集中了各种应用的数据,进行统一构造与存储,而使它们可以被不同应用程序所使用,故选项C)正确。

(9)B

解析:

E-R模型即实体-联系模型,是将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们之间的两种联接关系。

数据库逻辑设计阶段包括以下几个过程:

从E-R图向关系模式转换,逻辑模式规范化及调整、实现规范化和RDBMS,以及关系视图设计。

(10)A

解析:

人工管理阶段是在20世纪50年代中期以前出现的,数据不独立,完全依赖于程序;文件系统是数据库系统发展的初级阶段,数据独立性差;数据库系统具有高度的物理独立性和一定的逻辑独立性。

(11)B

解析:

数据封装就是数据抽象;友元可以访问类中的所有成员,是面向对象的一个重要特征,但是破坏了封装性;重载和动态联编都是面向对象的另一个特点--多态性。

(12)D

解析:

++,--运算符不能用于常量表达式。

(13)B

解析:

表达式值的类型是由操作数的类型决定的,因为本题的两个数都是int型的,所以得出的结果也为int型,即去掉小数点后的部分,只取商的整数部分。

(14)A

解析:

单目的++运算优先级高于双目的+运算,不过++的结合性是自右向左的,而+是自左至右的,所以上面的两个表达式都是先计算a+b的值之后,a再自加1。

(15)D

解析:

本题主要考察的是switch语句的使用,在第一个case处,因为满足条件所以输出字符3,但这个分支没有break语句终止,所以会继续执行下面的分支语句,即输出字符2,这时出现break语句,结束整个语句,即输出32。

(16)A

解析:

数组定义中的数字指的是数组的大小,而下标是从0开始的,所以题中数组的最后一个元素是num[9]。

(17)A

解析:

本题考察的是数组和指向数组的指针之间的关系,选项A)中x是被数组a的第一个元素赋值,其余的都是被数组a的第二个元素赋值。

(18)D

解析:

本题考察的是引用调用,因为函数swap引用调用参数a,所以在swap函数中a的变化会改变主函数中a的值,即a自加1,但b的值并未改变。

(19)A

解析:

本题考察的是内联函数的使用,它的引入是为了解决程序中函数调用的效率问题,在编译时,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体来替换。

(20)B

解析:

自动变量是函数体或分程序内定义的变量,它的作用域在所定义的函数体内或分程序体内。

(21)A

解析:

本题考察点为类成员的访问权限,public关键字修饰的类成员可以被类的对象通过成员操作符"."直接访问,protected和private则不能,而static不能单独修饰类的成员。

(22)B

解析:

对象属于某个已知的类,是类的实例,对象之间通信实际上就是通过函数传递信息,封装是把数据和操作结合在一起,继承是对于类的方法的改变和补充,重载是多态性之一。

(23)C

解析:

析构函数可以被函数调用,也可以系统调用:

函数体内的对象在函数结束时调用析构函数和使用delete释放对象所占有用的资源。

(24)C

解析:

拷贝初始化构造函数的作用是用一个已知的对象来初始化一个被创建的同类的对象,该函数只有一个参数,并且是对同类的某个对象的引用。

(25)D

解析:

本题考察的是静态数据成员的使用,n为类A的静态成员,即为类A的所有对象共有的成员,所以,当对象b把n初始化为3时,对象a的成员n的值也为3(这两个n实际上是同一个)。

(26)C

解析:

友元函数是独立于当前类的外部函数,但它可以访问该类的所有对象的成员;拷贝构造函数是使用已存在的对象初始化正在生成的对象时调用的成员函数。

(27)C

解析:

数据封装就是数据抽象,即信息隐藏;而继承是实现程序复用的基础。

(28)B

解析:

派生类对象的数据结构是由基类中说明的数据成员和派生类中说明的数据成员共同构成,所以不能继承基类的构造函数,必须重新定义。

(29)A

解析:

本题考察的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。

(30)C

解析:

基类中说明的虚函数,在派生类中自然就是虚函数,所以类B中func1()是虚函数;而类A中的func2没有被关键字virtual修饰,所以不是虚函数。

(31)C

解析:

例如":

:

"运算符就不能被重载;通过重载可以创造新的运算方式,但是不能臆造新的运算符;定义的时候必须使用关键字operator,而调用时可直接使用运算符。

(32)D

解析:

题干表示的是回车换行,选项A),B)和C)都表示回车换行。

而D)是字符串的结尾标志。

(33)C

解析:

for循环执行2次,所以第一次for循环为result=1*a[1]=4,第二次for循环为result=4*a[2]=20。

(34)C

解析:

应该先做++运算,然后进行%运算,最后比较不等式,实际上最后输出的结果就是被3除,余数为2的不大于8的数。

(35)B

解析:

本题考察模板函数的应用,表达式int(1.1)和int(4.2)是将1.1和4.2强制转换为整型。

二、填空题

(1)非线性结构

解析:

数据的逻辑结构有线性结构和非线性结构两大类。

(2)相邻

解析:

常用的存储表示方法有4种,顺序存储、链式存储、索引存储、散列存储。

其中,顺序存储方法是把逻辑上相邻的结点存储在物理位置也相邻的存储单元中。

(3)可重用性

解析:

本题考查了继承的优点:

相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。

(4)软件开发

解析:

基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:

软件开发技术和软件工程管理。

软件开发技术包括:

软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。

软件工程管理包括:

软件管理学、软件工程经济学,以及软件心理学等内容。

(5)集合

解析:

在关系操作中,所有操作对象与操作结果都是关系。

而关系定义为元数相同的元组的集合。

因此,关系操作的特点是集合操作。

(6)多态性

解析:

面向对象系统包含了三个特征--封装性、继承性和多态性,这三个特征可以很好的实现数据抽象,进行行为共享,完成进化求解和描述一个系统的确定行为。

(7)true

解析:

本题考察的是对于逻辑运算符号的理解,"||"运算符的任何一边取值为真,则整个运算结果为真。

(8)5

解析:

因为b的值为1,所以b&&a<5相当于a<5,当a=5时退出循环,一共进行5次循环。

(9)12345

解析:

本题考察的是考生使用简单循环输出数组元素的能力,因为结束条件是i<5,而i初始值为0,所以只会输出前5个元素。

(10)main

解析:

所有的C++语言程序都是从main函数开始执行,而普通函数的存在是为了简化main函数的复杂程度。

(11)拷贝构造

解析:

本题考察的是拷贝构造函数的定义,它是一种特殊的成员函数,作用是使用一个已知的对象来初始化一个被创建的同类的对象,定义格式是类名:

:

拷贝构造函数名(类名&引用名)。

(12)基类~派生类

解析:

本题主要考察的是派生类构造函数的执行顺序,在C++语言中构造函数的执行顺序是先基类后派生类,而析构函数的执行顺序正好相反,是先调用派生类后调用基类。

(13)类

解析:

本题考察的是类模板的定义,C++语言中模板分为两种:

类模板和函数模板,类模板只能用于类型参数,函数模板可以重载。

(14)*****hello

解析:

本题考察的是C++语言的流输出操作,cout中包括的函数fill()和width()分别实现填充和设定显示长度的功能。

该资料来自互联网请勿用作商业用途

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

当前位置:首页 > 求职职场 > 职业规划

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

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