国家二级(C++)笔试模拟试卷5(共439题)_第1页
国家二级(C++)笔试模拟试卷5(共439题)_第2页
国家二级(C++)笔试模拟试卷5(共439题)_第3页
国家二级(C++)笔试模拟试卷5(共439题)_第4页
国家二级(C++)笔试模拟试卷5(共439题)_第5页
已阅读5页,还剩95页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家二级(C++)笔试模拟试卷5(共9

套)

(共439题)

国家二级(C++)笔试模拟试卷第1套

一、公共基础选择题(本题共10题,每题7.0分,共

10分。)

1、下列数据结构中,按先进后出原则组织数据的是

A、线性链表

B、栈

C、循环链表

D、顺序表

标准答案:B

知识点解析:暂无解析

2、具有3个节点的二叉树有

A、2种形态

B、4种形态

C、7种形态

D、5种形态

标准答案:D

知识点解析:暂无解析

JS

向0亩

3、设有下列二叉树:而®对此二叉树前序遍历的结果为

A、ZBTYCPXA

B、ATBZXCYP

C、ZBTACYXP

D、ATBZXCPY

标准答案:B

知识点解析:暂无解析

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

A、程序的规模

B、程序的效率

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

D、程序易读性

标准答案:D

知识点解析:暂无解析

5、程序的3种基本控制结构是

A、过程、子过程和分程序

B、顺序、选择和重复

C、递归、堆栈和队列

D、调用、返回和转移

标准答案:B

知识点解析:暂无解析

6、下列叙述中,不属于测试的特征的是

A、测试的挑剔性

B、完全测试的不可能性

C、测试的可靠性

D、测试的经济性

标准答案:C

知识点解析•:暂无解析

7、需求分析中开发人员要从用户那里了解

A、软件做什么

B、用户使用界面

C、输入的信息

D、软件的规模

标准答案:A

知识点解析:暂无解析

8、下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性

个数的是

A、选择

B、连接

C、投影

D、并

标准答案:B

知识点解析:暂无解析

9、下列叙述中,正确的是

A、用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系

B、用E-R图只能表示实体集之间一对一的联系

C、用E-R图只能表示实体集之间一对多的联系

D、用E-R图表示的概念数据模型只能转换为关系数据模型

标准答案:A

知识点解析:暂无解析

10、”年龄在18〜25之间”这种约束是属于数据库当中的

A、原子性措施

B、一致性措施

C、完整性措施

D、安全性措施

标准答案:C

知识点解析:暂无解析

二、选择题(本题共23题,每题1.0分,共23分。)

11、以下哪个特征不是面向对象思想中的主要特征?

A、多态

B、继承

C、封装

D、垃圾回收

标准答案:D

知识点解析:暂无解析

12、以下哪个不是C++涪言中的有效标识符?

A^34a

B、_AB

C、A_B

D、A25

标准答案:A

知识点解析:暂无解析

13、C++中运算符优先级由高到低排列正确的是

A、::+++||

B、<*||,

C、sizeof%+::

D、,&&newsizeof

标准答案:A

知识点解析:暂无解析

14、下面程序的运行结果是#include"iostream.h"#definesum(a,b)a*bvoidmain。

{intx;X=sum(l+2,3);cout<<x;}

A、0

B、9

C、7

D、5

标准答案:C

知识点解析:暂无解析

15、以下for语句中不是死循环的是

A、for(inti=0;i<l;++i);

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

C、for(inti=l;i>0;++i);

D、for(;;);

标准答案:A

知识点解析:暂无解析

16、关于continue语句叙述不正确的是

A、continue语句用于循环体中,结束循环

B、continue语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进

行下一循环判断

C、continue可以用于if语句中

D、continue语句不能代替break语句

标准答案:A

知识点解析:暂无解析

17、以卜定义数组中错误的是

A、inta[10];

B、inta[2]|120];

C、inta[20][];D)inta[];

D、C

标准答案:

知识点解析:暂无解析

18、下面程序的执行结果是#include"iostream.h"voidmain(){int*p,r;p=newint;

*p—20;r—sizeof(*p);cout<<r<<endl;deletep;}

A、程序错误

B、内存为20地址的大小

C、20

D、4

标准答案:D

知识点解析:暂无解析

19>下面程序错误的语句是#include"iostream.h”①voidmain。②{(3)intA=0;

④int&B;⑤B=A;⑥cout<<B;⑦cout<<A;⑧}

A、②

B、③

C、©

D、⑥

标准答案:C

知识点解析:暂无解析

20、函数inttest(inta,intb=l,intc=0),下列调用不合法的个数是test(O);

test(O,O);test();test(O,O,O);

A、0

B、1

C、2

D、3

标准答案:C

知识点解析:暂无解析

21、C++语言中类定义中默认的访问权限是

A、public

protected

C、private

D、default

标准答案:C

知识点解析:暂无解析

22、C++语言中关于构造函数的说法正确的是

A、构造函数的函数名不必和类名相同

B、构造函数只能有一个

C、每个类必定有构造函数

D、构造函数必有返回值

标准答案:C

知识点解析:暂无解析

23、关于构造函数A()的拷贝构造函数正确的是

A、A(A*B);

B、A(AB);

C、A(A&B);

D、A(A);

标准答案:C

知识点解析:暂无解析

24>下面程序的执行结果为#includ"iostream,'usingnamespacestd;classA{inta;

public:voidSeta(intx){a=x;}voidDisplay_a(){cout<<a<<endl;}};classB

{intb;public:voidSetb(intx){b=x;}void

A、输出为223

B、有错误在第5行

C、输出为123

D、有错误在第7行

标准答案:D

知识点解析:暂无解析

25、虚函数必须是类的

A、成员函数

B、友元函数

C、构造函数

D、析构函数

标准答案:A

知识点解析:暂无解析

26、多态性指的是

A、以任何方式调用一个虚函数

B、以任何方式调用一个纯虚函数

C、借助于指向对象的基类指针或引用调用一个虚函数

D、借助于指向对象的基类指针或引用调用一个纯虚函数

标准答案:C

知识点解析:暂无解析

27、不能重载的运算符是

A、new

B、sizeof

C、.*

D、++

标准答案:C

知识点解析:暂无解析

28、只能作为成员函数至教的是

A、=

B、++

C、*

D、new

标准答案:A

知识点解析:暂无解析

29、关于模板,下列说法不正确的是

A、用类模板定义一个对象时,不能省略实参

B、类模板只能有虚拟类型参数

C、类模板本身在编译中不会生成任何代码

D、类模板的成员函数都是模板函数

标准答案:B

知识点解析:暂无解析

30、语句coulVVsetprecision⑵<<1024.4567;的输出结果为

A、1024.4567

B、1024

C、1024.45

D、le+003

标准答案:D

知识点解析:暂无解析

31、下面程序的结果为#inckide"iostream.h"voidchange(inta,intB){inttemp;temp

=a;a=b;b=temp;}voidmain(){intm,n;m=8;n=9;changc(m,n);cout<<m<

<"H<<n<<endl;}

A、89

B、98

C、程序有错误

D、99

标准答案:A

知识点解析:暂无解析

32、下面程序的结果是#include"iostream.h"voidmain。{char*str;Str="test!1';cout

<<str[5];}

A、程序错误

B、!

C、’\0'

D、为空字符

标准答案:D

知识点解析:暂无解析

33、下面程序输出的结果为#include”iostream.h"classA(public:A(){cout<<

"CLASSA"<<endl;}〜A(){}};classB:publicA{public:B(){cout<<

"CLASSBn<<endl;}〜B(){}};voidmain(){A*p;p=newB;

A、CLASSACLASSBCLASSBCLASSB

B、CLASSACLASSBCLASSACLASSB

C、CLASSACLASSBCLASSB

D、CLASSACLASSB

标准答案:C

知识点解析:暂无解析

34、C++语言函数中不能由系统自动生成的是

A、析构函数

B、构造函数

C、内联函数

D、复制构造函数

标准答案:C

知识点解析:暂无解析

三、公共基础填空题(本题共5题,每题7.0分,共5

分。)

35、在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且

每一个实际上对应一个处理模块。

标准答案:加工

知识点解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出

的移动变换过程,其中的每一个加工对应一个处理模块。

36、结构化程序设计的3种基本结构分别是顺序、选择和o

标准答案:重复(或循环)

知识点解析:结构化程序设计包括3种基本的结构:顺序结构、选择结构和重复

结构(循环结构)。利用这3种结构就足以表达出各种其他结构形式的程序设计方

法,其中利用循环结构,可以简化大量的程序执行。

37、二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是

标准答案:顺序存储(顺序方式存储)

知识点解析:二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有

序,第二要求是按顺序方式存储。

38、一个模块直接调用的其他模块的个数称为o

标准答案:扇出

知识点解析•:在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直

接调用的其他模块个数欣为扇出。

39、数据库系统中实现各种数据管理功能的核心软件是

标准答案:数据库管理系统

知识点解析:数据库管理系统是数据库的管理机构,它是一种系统软件,负责数

据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。

四、填空题(本题共70题,每题1.0分,共10分。)

40、在多继承的基类和派生类中同时出现存在二义性。

标准答案:同名函数

知识点解析,如果一个派生类有多个直接基类,而这些直接基类乂有一个共同的

基类,这样存在的同名函数法判断调用的确定性。即存在二义性。

41、有下列程序:#include<iostream>usingnamespacestd;classTestClassl

{public:TestClass1(){cout<<"A";}};classTestClass2<public:TestCIass2(){cout<

);classTestClass3:publicTestClassl{TestClass2b;

标准答案:ABC

知识点解析:主函数中定义TestClass3对象。obj,其中TestClass3继承于

TestClassl,先初始化基类构造函数,所以输出A。然后在TcstClass3中定义

TestClass2对象b,输出B,最后派生类的构造函数输出C。所答案为ABC。

42、编译时的多态性可以通过使用获得。

标准答案:虚函数和对象

知识点解析:多态性是指一个接口,多种方法。而虚函数的作用是允许在派生类

中重新定义与基类同名的函数,并且通过基类指针或引用来访问基类和派生类中的

同名函数。通过对象名调用的虚函数,可以在运行阶段把虚函数和类对象“绑定”在

一起。

43、如果使用数组名称为函数参数,形实结合时,传递的是______o

标准答案;地址

知识点解析:此题考查的是函数参数的传递方式。函数参数的传递方式分为传值

和传地址两种。使用数组名作为函数参数,因为数组名代表的是数组的首地址,所

以传递的是地址。

44、在类的对象被创建时,______函数会被自动调用。

标准答案:构造

知识点解析:此题考查的是构造函数的应用。构造函数的作用是在对象被创建时

利用特定的值构造对象,构造函数在对象被创建时由系统自动调用。

45、下列程序的执行结果是______o#include<ioStream.h>#include<iomanip.h>

usingnamespacestd;voidmain(){cout<<setfill(,x,l<<setw(10);cout<<"Hello"

<<endl;)

标准答案:xxxxxHello

知识点解析:此题考查的是I/O的格式化输出。SetfillCx,)表示填充字符为X,并

且一直有效;setw(10)表示将输入输出的宽度设置为10,宽度设置的效果只对以此

次输入或输出有效,在完成一个数据的输入或输出后,宽度自动恢复为0;题目中

字符串“Hello”的宽度不够10,所以其前面将有5个填充符于。

46、请将下列类定义补充完整。classBase{public:voidfun(){cout<<"Base::funH<

<endl;}J;classDehVcd:publicBase(public:voidfun(){II显式调用基类的

fun函数cout<<"Derived::fun"<<endl;)};

标准答案:Base::fun();

知识点解析:此题考查的是虚基类的使用。使用符号,、::”可以用来限定要访问的成

员所在的类的名称。在派生类中对基类成员的访问应该是唯一的,但是,多继承情

况下就需要通过使用对象作用域分辨来解决这种对基类成员访问的二义性问题。

47N有下列程序:#include<iostream>usingnamespacestd;classONE{public:

virtualvoidf(){COUt<<ur,;}};classTWO:publicONE{public:TWO(){cout<<

"2M;)};classTHREE:publicTWO{pub

标准答案:2213

知识点解析:此题考查的是派生类的构造和析构函数。建立TWO的对象bb时,

调用TWO的构造函数,输出“2":THREE类又派生于TWO类,所以建立THREE

类的对象cc时又会输出“2”;ONE类的对象指针p指向了THREE类的ONE类的

虚函数f(),输出“1”;最后调用THREE类的f(),输出“3”。故最终的输出结果是

2213o

48、在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承

privateo已知书.如卜类定义:classBase{protected:voidfun(){});class

Derived:Base{);则Base类中的成员函数fun(),在Derived类中的访问权限是

(注意:要求填写private>protected或public中的一项)。

标准答案:private

知识点解析:因为Derived类私有继承Base类,所以Base类中的公有和保护成员

成为Derived类的私有成员,Base类的保护成员在Derived类中不可访问。因此,

Base类中的保护成员函数fun()在Derived类中的问权限是private。

49、已知下列程序的输出结果是42,请将横线处缺失的部分补充完整。#include<

iostrcam>usingnamespacestd;classFoo{intvalue;public:Foo():value(0){)void

setValue(intvalue){=value;||给Foo的数据成员value赋值}

标准答案:this->value或Foo::value

知识点解析:由于Foo类的数据成员和函数的形参名称都是value,如果在函数中

直接使用value引用的是形参变量而不是Foo类的数据成员,解决办法有两种:

是通过this指针,在类的成员函数中this代表数所属对象的指针,即可填this-〉

value;二是通过作用域运算符“明确指出访问的是Foo类的成员,所以还可入

Foo-value®

瓯家二级(C++)笔试模拟试卷第2套

一、公共基础选择题(本题共70题,每题7.0分,共

70分。)

1、下述关于数据库系统的叙述中正确的是

A、数据库系统减少了数据冗余

B、数据库系统避免了一切冗余

C、数据库系统中数据的一致性是指数据类型一致

D、数据库系统比文件系统能管理更多的数据

标准答案:A

知识点解析:数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共

享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服

务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗

余。所以选项A正确,选项B错误。在数据库管理阶段中,数据是结构化的,面

向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时

间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存

取方式,选项C错误。数据库系统比文件系统能管理更多的数据,并非是数据库

系统的特点,选项D错误。本题正确答案是A。

2、在下列关系运算中,可能改变关系中属性个数的是

A、并

B、差

C、投影

D、交

标准答案:C

知识点解析:投影运算是在给定关系的某些域上进行的运算。通过投影运算可以从

一个关系中选择出所需要的属性成分,并且按要求排列成一个新的关系,而新关系

的各个属性值来自原关系中相应的属性值。因此,经过投影运算后,会取消某些

列,即投影运算可能改变关系中属性的个数。

下面关于虚函数的描述中正确的是().

A)虚函数是一个静态成员函数

B)虚函数是一个非成员而数

C)虚函数既可以在函数说明时定义,也可以在函数实现时定义

3、D>派生类的虚函数与基类中对应的虚函数具有相同的个数和类型

A、

B、

C、

D、

标准答案:D

知识点解析:暂无解析

以卜数据结构中,不属F线性数据结构的是().

A)队列B)畿性表

4、C)二叉树D)栈

A、

B、

C、

D、

标准答案.C

知识点露析:暂无解析

5、在数据库设计中,将E-R图转换为关系模式的过程属于()。

A、需求分析阶段

B、逻辑设计阶段

C、概念设计阶段

D、物理设计阶段

标准答案:B

知识点解析:暂无解析

6、下列语句中,错误的是

A、constintbuffer=256;

B、constinttemp;

C、constdouble*point;

D、constdouble*rt=newdouble(5.5);

标准答案:B

知识点解析:用const修饰常量就变为常变量,常变量一旦被建立,就不能被更

改。在被定义时就应该给常变量赋初始值,而常指针则不同,被定义后,它指向的

地址不能发生改变,但是指向的地址中的数据可以改变。

7、若磁盘上已存在某个文本文件,其全路径文件名为d:\ncre\test.txt,下列语句

中不能打开该文件的是

A、ifstreamfile("d:\ncre\test.txt");

B、ifstreamfile("d:WncreWtest.txt");

C^ifstreamfile;file.open("d:WncreWtest.txt"):

D、ifstream*pFile=newifstream("d:WncreWtest.txt");

标准答案:A

知识点解析♦:文件流的打开路径用“\\”隔开,而不是但可以用“尸隔开。

卜面不属于需求分析阶段任务的是

A)确定软件系统的功能需求B)确定软件系统的性能需求

8、C)需求规格说明书评审D)制定软件集成测试计划

A、

B、

C、

D、

标准答案:D

知识点解析:在软件开发的过程中,应该尽早的制定测试计划,其中在需求分析阶

段制定系统测试计划,在概要设计阶段制定集成测试计划,在详细设计阶段制定单

元测试计划。

9、关系模型允许定义3类数据约束,下列不属于数据约束的是

A、实体完整性约束

B、参照完整性约束

C、域完整性约束

D、用户自定义的完整性约束

标准答案:4

知识点解析:关系模型允许定义3类数据约束,它们是实体完整性约束、参照完整

性约束及用户自定义的完整性约束。其中前两种完整性约束由关系数据库系统支

持,对于用户自定义的完整性约束,则由关系数据库系统提供完整性约束语言,用

户利用该语言给出约束条件,运行时由系统自动检查。

10、软件工程的理论和技术性研究的内容主要包括软件开发技术和

A、消除软件危机

B、软件工程管理

C、程序设计自动化

D、实现软件可重用

标准答案:2

知识点露析:软件工程的目标是,在给定的成本、进度的前提下,开发出具有有效

性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和

可互操作性且满足用户需求的产品。基于这一目标,软件工程的理论和技术性研究

的内容主要包括:软件开发技术和软件工程管理。

二、选择题(本题共25题,每题1.0分,共25分。)

11、有以下程序:^include<iostream>usingnamespacesid;intmain(){intx=15;

while(x>10&&x<50){x++;if(x/3){x++;break;})cout<<x<<endl;return0;}

执行后的输出结果是

A、15

B、16

C、17

D、18

标准答案:C

知识点解析:本题考核选择语句与循环语句的嵌套。由程序可知,当x=16时,满

足if条件表达式,进入if分支,执行“x+十;break;",所以最后程序输出x的值为

17<,

12、下列数组的定义中,会产生错误的是

A、inta[]={'0',T,2,'3','4','5','6');

B、int曰U,1,2,3,4,S,6};

C、chara[5]="hellon;

D、chara[5]={,h\,e,,,r,;r,,o,};

标准答案:C

知识点解析:本题考核数组的定义和初始化。下面逐项进行分析:A选项中,数组

a的定义和初始化符号数组的定义和初始化语法,故正确;B选项中,数组a初始

化的值虽然没有10个,但对于少的部分,系统会自动补0,所以B选项中数组的

定义也是正确;C选项中,数组a的长度为5,但字符串"hello”的长度为5+1=6,

字符串结束符'\0'无法存储在数组中,所以是错误的:D选项中,数组a的定义是

正确的。

13、下列说法正确的是()。

A、内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方

B、内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方

C、类的内联函数必须在类体内定义

D、类的内联函数必须在类体外通过加关键字inline定义

标准答案:B

知识点解析:本题考查的是内联函数的定义,引入内联函数是为了解决程序中函

数调用的效率问题.是以目标代码的增加为代价换取时间的节省:一般函数在运行

时被调用,而调用的内联函数在编译时就被替代了,如果不加inline关键字,则编

译器会将在类说明部分定义的任何函数都被认定为内联函数。

14、下列程序的输出结果为()。#include<iostream.h)classTestClass{public:

TestClass(){val++;(static,intval;};intTestClass::val=0;voidmain()

{TestClasscs1;cout<<csl.val<<uu;TestClasscs2;TestClasscs3,cs4;co

A、03

B、13

C、14

D、24

标准答案:C

知识点解析:由主函数main入手,定义TestClass类的对象csl,执行esl.val,其

中val为静态变量,根据“mtTestClass::val=0:”初始化,TestClass中的

TeslClass(){val++;}构造函数执行后,val值为1。主函数中接着定义对象cs2,

cs3,cs4o执行“coutVVcs2.valVVendl”中的val值为4,所以输出为14。

15、()既可重载为一元运算符,又可重载为二元运算符。

A、

B、

C、“=”和“*»

D、和“*++”

标准答案:A

知识点解析:此题考查的是运算符的有关概念。是二元运算符,既可以用于间

接访问也可用于两数乘;而和“++”都是一元运算符。

16、软件开发离不开系统环境资源的支持,其中必要的测试数据属于

A、硬件资源

B、通信资源

C、支持软件

D、辅助资源

标准答案:D

知识点解析:软件测试过程中,辅助资源包括测试用例(测试数据)、测试计划,出

错统计和最终分析报告等。

17、以下程序的输出结果是()。#include<iostream.h>voidmain(){inta=O,i;

for(i=l;iV5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+

=5;})cout<<a<<endl;return;}

A、31

B、13

C、10

D、20

标准答案:1

知识点解析:暂无解析

18、关于语句#吊&11(1©<沁51位201>11$m8namespacestd;voidmain(){cout<<

100.8989663<<'';com<<fixed<<100.8989663<V'';cout<<scientific<<

100.8989663VV”;}的输出结果为()

A、100.899100.8989661.008990e+002

B、100.8989663100.8989661.008990e+002

C、100.899100.8989661.008989e+002

D、100.899100.89896631.008989e+002

标准答案:1

知识点解析:暂无解析

19、下述静态数据成员的特性中,()是错误的。

A、说明静态数据成员时前边要加修饰符static

B、静态数据成员要在类体外进行初始化

C、引用静态数据成员时,要在静态数据成员名前加V类名〉和作用域运算符

D、静态数据成员不是所有对象所共用的

标准答案:2

知识点解析:暂无解析

20、下列程序用来判断数组中特定元素的位置所在,则输出结果为()。#include<

conio.h>#include<iostream.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<

t;i++)if(sL*kJ<sliJ)*k=i;returnsl*kj;}voidniain(){int

a[101=(876,675,896,101,301,401,980,431,45l,777);intk;fun(a,l0,&k);cout<<k<

<\5<<a[k];}

A、7,431

B、6

C、980

D、6,980

标准答案:8

知识点解析:暂无解析

21、在下面关于函数的描述中错误的是。

A、在一个源文件中,如果函数定义在先,调用在后,则不必声明该函数

B、如果一个函数在一个源文件里定义,而调用在另一个源文件中,则必须在调用

之前声明该函数

C、函数的声明应使用函数原型

D、在一个源文件中,如果自定义函数调用在先,定义在后,则不必声明该函数

标准答案:8

知识点解析:暂无解析

22、以下不正确的是。

A^语句for(i=0:;i++)表示无限循环

B、for(;;)表示无限循环

C、for()也表示无限循环

D^whilc(l)表示无限循环

标准答案:4

知识点解析:暂无解析

23、在数据流图(DFD)中,带有名字的箭头表示o

A、控制程序的执行顺序

B、模块之间的调用关系

C、数据的流向

D、程序的组成成分

标准答案:4

知识点解析:在数据流图(DFD)中,带有名字的箭头表示数据的流向。

24、在下面的函数声明中,存在语法错误的是______o

A、voidBC(inta,int)

B、voidBD(int,int)

C、voidBE(int,int=5)

D、voidBF(intx;inty)

标准答案:8

知识点解析:D选项用七”(分号)分隔参数,所以存在语法错误。

25、已知下列语句中的x和y都是int型变量,其中错误的语句是______.

A、x=y++;

B、x=++y;

C、(x+y)++;

D、++x=y;

标准答案:4

知识点解析:(x+y)++操作应该是,(x+y尸x+y,然后(x+y)++,这是不正确的操

作,所以此题应该选择C。

26、下面不是派生类对基类的继承方式的是()。

A^private

B、public

C、static

D、protected

标准答案:4

知识点解析:暂无解析

27、下面关于C++语言变量的叙述错误的是

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

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

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

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

标准答案:2

知识点解析:自动变量是函数体或分程序内定义的变量,它的作用域在所定义的函

数体内或分程序体内。

28、可以用p.a的形式访问派生类对象p的基类成员a,其中a是

A、私有继承的公有成员

B、公有继承的私有成员

C、公有继承的保护成员

D、公有继承的公有成员

标准答案:8

知识点解析:只有公有继承的公有成员才能被派生类的对象直接访问,其他的情况

都会因为访问权限问题产生错误。

29、重载输入流运算符〈V必须使用的原型为

A、ostream&operator>>(oslream&,<类名〉);

B、istream&operator>>(istream&,<类名>&):

C、ostreamoperator>>(ostream,V类名>&);

D、<类名>operator>>(islream&,(类名>&);

标准答案:1

知识点解析:本题考核运算符的重载。C++中重载输入流运算符>>和输出流运算

符〈V只能作为非类成员函数重载,且必须使用如下原形:islream&operalor>>

(islream&,〈类名>&);ostream&opera〔or<V(ostream&,<类名〉);

30、下列关于类概念的描述中,错误的是()。

A、类是抽象数据类型的实现

B、类是具有共同行为的若干对象的统一描述体

C、类是创建对象的模板

D、类就是C语言中的结构类型

标准答案:8

知识点解析:类是创建对象的模板,它包含着所创建对象的状态描述和方法的定

义。类的完整描述包含了外部接口和内部算法以及数据结构的形式。

31、下面程序的输出结果为()。#include<iostream.h>classCStatic{public:

CStatic(){val++;)staticintval;};intCStatic::val=0;voidmain(){CSatic

csl;cout<<csl.val<<"";CStaticcs2;CStaticcs3,cs4;cout<<cs2.v

A、14

B、24

C、34

D、54

标准答案:1

知识点解析:暂无解析

32、下面程序的结果为#includeViostream.h>intc;classA{private:inta:

staticintb;public:A()(a=0;c=0;}voidscta()|a++;}voidsetb()(b++;}

A>I21

B、122

C、112

D、222

标准答案:2

知识点解析:C++语言中全局变量是任何函数都可以改变的量,静态变量的有效范

围在定义它的类中,而普通的变量的有效性只在使用它的函数中,在本题中c为全

局变量,b为静态变量,a为普通变量,b和c在类A的对象al和a2中都自加I。

所以b,c为2,a为lo

33、执行下列语句段后,输出字符的个数是for(inti=50;i>l;-i)cout<

V,*,;

A、48

B、49

C、50

D、51

标准答案:B

知识点解析:本题考查的知识点是:for循环语句。for语句的执行过程是:(I)计

算第1个表达式(在本题中是“inti=50")的值:(2)计算第2个表达式(在本题中是“i

>「')的值,如果此值不等于0(结果为真),则转向步骤(3);否则转向步骤(5);(3)

执行一遍循环体(在本题中是“couW;");(4)计算第3个表达式(在本题中是

-i")的值,然后转向步骤(2);(5)结束for循环。由此可见,本题循环中i从5。开

始逐次递减,直到i=l时退出,而此时没有机会执行到循环体,因此执行了49遍

循环体。而循环体中的语句是输出1个字符所以最终输出了49个字符“叱,

故本题应该选择B。

34、如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只

能访问从基类继承的成员。有如下程序,没有使用多态机制。#include<iostream>

usingnamespacestd;classBase{inta,b;public:Base(int

x,inty)(a=x;b=y;}voidshow(){cout<<a<<','VVbVV

endl;)};classDerived:publicBase)intc,d;public:

Derived(intx,inty,intz,intm):Base(x,y){c=z:d=w:)void

show(){coutVVcVV','VVdVVendl;}};intmain()(Base

Bl(50,50),*pb;DerivedDI(10,20,30,40);pb二&D1;

pb->show():return0:1运行时输出的结果是

A、10,20

B、30,40

C、20,30

D、50,50

标准答案:A

知识点解析:本题考查的知识点是:多态性。在C++中,一个基类指针(或引用)可

以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时.,被调用

的是该指针(或引用)实际所指向的对象类的那个重定义版本。基类中的实函数也可

以在派生类中重定义,但重定义的函数仍然是实函数。在实函数的情况下,通过基

类指针(或引用)所调用的只能是基类的那个函数版本,无法调用到派生类中的重

定义函数。本题中的show函数就是被重定义的实函数,所以通过基类指针pb所

调用的是基类的版本,即输出a和b的值10,20。故应该选择A。

35、下列关于C++流的描述中,错误的是

A、cout»,A,表达式可输出字符A

B、eof()函数可以检测是否到达文件尾

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

D、以los_base::oul模式打开的文件不存在时,将自动建立一个新文件

标准答案:A

知识点解析:cout>'A,语句错误。输出字符A的语句应为:cout«,A\

三、公共基础填空题(本题共5题,每题7.0分,共5

分。)

36、软件工程三要素包括方法、工具和过程,其中,支持软件开发的各个环

节的控制和管理。

标准答案:过程

知识点解析:暂无解析

37、在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为

[1O

标准答案:log2n

知识点解析:暂无解析

38、执行“cout.VVchar(F,・2)VVendl;”语句后得到的输出结果为[】。

标准答案:D

知识点解析:根据ASCII码的形式下12得到的值便是Do

39、设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。

标准答案:350

知识点解析:在任意一喋二叉树中,度为0的结点[即叶子结点)总是比度为2的结

点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的

结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有

n/2个叶子结点以及n/2.l个度为2的结点,还有1个是度为1的结点;若n为奇

数,则在该二叉树中有[n/2]+l个叶子结点以及[n⑵个度为2的结点,没有度为1

的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中

有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。本题的正

确答案为350o

40、在面向对象方法学中,直接反映了用户对目标系统的要求的模型是【】。

标准答案:功能模型

知识点解析:本题属于汜忆题,考生应掌握。

四、填空题(本题共10题,每题1.0分,共10分。)

41、在C++流类库中,根基类为o

标准答案:ios

知识点解析:ios是所有输入输出类的根基类。同时要知道,C++内置了四个输入

输出流对象,可以不用实例化就可以直接使用,如Icin,coin,cerr,clog等。

42、将以下程序写成三目运算表达式是[】。if(a>b)max=a;elsemax=b;

标准答案:max=(a>b)?a:b

知识点解析:暂无解析

43、C++中封装性、继承性和【】是面向对象思想的主要特征。

标准答案:多态性

知识点解析:面向对象系统包含了三个特征-封装性、继承性和多态性,这三个特

征可以很好的实现数据油象,进行行为共享,完成进化求解和描述一个系统的确定

行为。

44、[1允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数

的返回位能取任意类型。

标准答案:类模板

知识点解析:本题考核类模板的基本概念。类模板就是一系列相关类的模型或样

板,这些类的成员组成相同,成员函数的源代码形式相同,所不同的只是所针对的

类型(成员的类型以及成员函数的参数和返回值的类型)。对于类模板,数据类型本

身成/它的参数,因而是一种参数化类型的类,是类的生成器。类模板中声明的类

称为模板类。

45>表达式c3=cl.operator+(c2)或c3=operator+(cl,c2)还可以表示为[]。

标准答案:c3=cl+c2

知识点解析:本题考核运算符的重载。这是运算符重载应用的两种形式。

46、[】使个函数可以定义成对许多不同数据类型完成同个任务。

标准答案:函数模板

知识点解析:本题考核函数模板与重载函数的区别。重载函数通常是基于不同的数

据类型完成类似的操作;而函数模板则是对不同的数据类型完成相同的操作,它比

重载函数的要求更严格。

47>下列程序中的this指针的作用是[]o#inckide<iostream.h>classSample

{intn;staticintst;public,Sample(){)Sample(intm){n=m;st=m+10;)voidChange(int

k){st=st+k;lvoidAddValue(intm){Samples,s.n=n+m;*this=s;}voiddisp(){cout

<<"n="<<n<<";st="<<st<<end1;});intSample::st=Ovoidmain(){Sample

sl(10),s2(!0)s1.disp()s1.AddValue(5),s2.Change(100);sl.dispO;s2.disp()}

标准答案:修改本对象的值

知识点解析:本题巧妙的使用this指针来完成类的不同实例进行的修改自身数据成

员的操作。

48、对虚函数的调用有两种方式:【】和【】。

标准答案:非多态调用,多态调用

知识点解析:非多态调用和多态调用是C++中调用虚函数的两种方式。

49、C++中的数据类型大体上可以分成三类:它们是、和o

标准答案:基本类型导出类型用户定义类型

知识点解析:暂无解析

50、若有定义语句:ini*a,b;,则变量b的数据类型是【】。

标准答案;int或整型

知识点解析:本题考查的是指针的声明语句。在一个声明语句中,如果变量名称前

面有*号,则就会使该变量成为一个指针变量。而题目中的变量b之前没有*号,所

以变量b就是一般的int型变量,而不是指针变量。故应该填int或整型。

国家二级(C++)笔试模拟试卷第3套

一、公共基础选择题(本题共70题,每题1.0分,共

10分。)

1、下面关于对象概念的描述中,()是错误的。

A、对象就是C语言中的结构体变量

B、对象代表着正在创建的系统中的一个实体

C、对象是一个状态和操作(或方法)的封装体

D、对象之间的信息传递是通过消息进行的

标准答案:1

知识点解析:暂无解析

2、结构化程序设计所规定的三种基本控制结构是()。

A、顺序结构、选择结构、循环结构

B、输入、输出、处理

C、for、while、switch

D、主程序、子程序、函数

标准答案:1

知识点解析:暂无解析

3、下列程序的运行结果是()。#include<iostream.h>classA{inta;public:

A(){a=0;)A(intaa){a=aa;cout<<a++;));voidmain(){Ax,y(2),z(3):

cout<<endl;}

A、0

B、23

C、34

D、25

标准答案:2

知识点解析:暂无解析

4、已知fl(int)是类A的公有成员函数,p是指向成员函数fl()的指针,采用赋值,

()是正确的。

A、p=fl

13、F=A::fl

C、P=A::fl()

D、P=fl()

标准答案:2

知识点解析:暂无解析

5、C++语言中的基本数据类型是()。

A、整型、浮点型、逻辑型、无值型和类类型

B、整型、字符型、浮点型、无值型和逻辑型

C、整型、浮点型、字符型、逻辑型和枚举型

D、整型、浮点型、逻辑型、无值型和指针型

标准答案:2

知识点解析:暂无解析

6、下列叙述中错误的是()。

A、一个函数中可以有多条return语句

B、调用函数必须在一条独立的语句中完成

C、函数中通过return语句传递函数值

D、主函数名main也可以带有形参

标准答案:8

知识点解析:暂无解析

7、结构化程序设计主要强调的是()。

A、程序的规模

B、程序的效率

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

D、程序易读性

标准答案:8

知识点解析:暂无解析

8、下面关于友元的描述中,错误的是()。

A、友元函数可以访问该类的私有数据成员

B、一个类的友元类中的成员函数都是这个类的友元函数

C、友元可以提高程序的运行效率

D、类与类之间的友元关系可以继承

标准答案:8

知识点解析:暂无解析

9、C++语言中while循环和do...while循环的主要区别是()。

A、do...while的循环体至少无条件执行一次

B、while的循环控制条件比do...while的循环控制条件严格

C、do...while允许从外部转到循环体内

D、do...while的循环体不能是复核语句

标准答案:I

知识点解析:暂无解析

10、对类的构造函数和析构函数描述正确的是()。

A、构造函数可以重载,析构函数不能重载

B、构造函数不能重载,析构函数可以重载

C、构造函数可以重载,析构函数也可以重载

D、构造函数不能重载,析构函数也不能重载

标准答案:1

知识点解析:暂无解析

二、选择题(本题共25题,每题1.0分,共25分。)

11、下列关于C++关键字的说法中正确的是

A、关键字是用户为程序中各种需要命名的“元素”所起的名字

B、关键字是对程序中的数据进行操作的一类单词

C、关键字是在程序中起分割内容和界定范围作用的一类单词

D、关键字是C++中预先定义并实现一定功能的一类单词

标准答案:8

知识点解析:关键字是C++语言中预先定义并实现一定功能的一类单词,它不是

由用户定义的,它是一种功能性单词。注意:注意关键字不能用做用户标识符,

12、下列关于C++函数的描述中正确的是

A、主函数是程序的入口,它由用户定义的函数调用

B、函数在调用之前必须先被声明

C、每个用户定义的函数只能被其他函数调用一次

D、函数是C++中面向对象程序设计框架的基本组成单元

标准答案:2

知识点解析:C++语言中函数在被调用以前必须先被声明,主函数是程序的入口函

数,用户定义的函数是可以被重复调用的,C++语言中面向对象程序设计的基本组

成单元是类。注意:主函数可以放在程序小的任何位置。

13、C++语言中运算对象必须是整型的运算符是

A、%=

B、/

C、=

D、<=

标准答案:1

知识点解析:C++语言规定:取余运算符的运算对象必须是整型,复合运算符

,,%=,,中包含%运算,它的运算对象也必须是整型。

14、在C++语言中,退格符是

A、\n

B、\t

C、\f

D、\b

标准答案:8

知识点解析:在C++语言中退格符表示为\b退格。注意:其他转义字符的意义:\n

表示回车换行,\t表示横向跳到下一制表位置,W表示竖向跳格,\r表示回车,\f

表示走纸换页,\\表示反斜线符,\a表示鸣铃,\dddl〜3位表示八进制数所代表的

字符,\xhhl〜2位表示十六进制数所代表的字符。

15、有如下程序段序ncludevoidmain(){inta=14,b=15»x;charc=,A*;

x=(a&&b)&&(cV'B');cout<<x;)执行该程序段后,x的值为

A、ture

B、FALSE

C、0

D、1

标准答案:8

知识点解析:在C++语言中,逻辑运算符有4个,它们分别是!(逻辑非)、11(逻辑

或)、&&(逻辑与)、人(异或)。在位运算里面还有&(位与)、|(位或)的运算。本题考查

逻辑与运算符的用法,垄语句x=(a&&b)&&(cV,B)中,先判断a&&b条件,逻

辑与条件的两边都要保证为1,即a和b都成立,当然cV,B,是成立的,显然,该

表达式的值为1。

16、#include<iostream.h>voidmain(){intn=9;while(n>6){n-

cout<<n;))该程序的输出结果是

A、987

B、876

C、8765

D、9876

标准答案:2

知识点解析:该题目应该根据循环体第一次和最后一次执行时的输出结果来决定哪

一项是正确的。第一次进入循环时,n的值是9,循环体内,先经过n--运算,n的

值变为8,所以第一次的输出值是8,由此可以排除选项A)和选项D)。由循环条

件n>6可以知道,最后一次循环开始时,n的值应该为7,所以最后一次执行循环

体时输出为6由此可以排除选项C)©注意:while与do-while的区另以

17、如下程序的执行结果是#include<iostream.h>voidmain()

{staticinta[]={1,7,3,9,5,11);int*p=a;*(p+3)+=4;

cout<<*p<<n,"<<*(p+3);)

A、1,13

B、1,16

C、3,13

D、1,14

标准答案:1

知识点解析:指针数组的定义、赋初值、数组元素的引用与赋值等操作和一般数组

的处理方法基本相同。需要注意指针数组是指针类型的,对其元素所赋的值必须是

地址值。其格式是“存储类型数据类型*指针数组名1[长度1]={初值1),功能是定

义指向“数据类型”变量或数组的指针型数组,同时给指针数组元素赋初值。这些指

针变量具有指定的“存储类型”。本题中指针*p指向数组a,表达式*(p+3)+=4的

含义是*(P+3)=*(p+3)+4,而*(p+3)在数组中指向的值为9,最后输出的结果为

9+4=13,注意:一个语句的结束要有分号。

18、下面说明不正确的是

A^chara[l0]="chinaM:

B、chara[10],*p=a;p=nchina";

C、char*a;a="china”;

,,,

D、chara[10],*P:P=a='china;

标准答案:8

知识点解析:C++语言中操作一个字符串常量的方法有:①把字符串常量存放在一

个字符数组之中:②用字符指针指向字符串,然后通过字符指针来访问字符串存

贮区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,它被转换成

字符指针。本题选项D)中错误的关键是对数组初始化时,可以在变量定义时整体

赋初值,但不能在赋值语句中整体赋值。

19、下列程序的输出结果是#include<iostream.h>voidmain()

{doubled=3.2;intx,y;x=l.2;y=(x+3.8)/5.0;

cout<<y*d<<endl;)

A、3

B、3,2

C、0

D、3.07

标准答案:4

知识点解析:本题中,先将x转换为浮点型再与3.8相加,得到结果与5.。相

除。最后将得到的结果去掉小数位化成整型数据赋给y。另外,值得注意的是,整

型、实型、字符型数据间可以混合运算。在进行运算时,不同类型的数据先转换成

同一类型,然后再进行运算。注意:如果认为执行y=(x+3.8)/5.0后y的值为1

是错误的,此时y的值为0。注意:x为int型,将1.2赋值给x时,x的值为1。

20>有以卜程序#include<iostream.h>intf(ihtn)(if(n==l)return

1;elsereturnf(n-l)+l;}voidmain(){ihti,j=0;for(i=l;i

<3;i++)j+=f(i);cout<<j;}程序运行后的输出结果是

A、4

B、3

C、2

D、1

标准答案:2

知识点解析:在main函数中,对f(l)和f(2)的值进行了累加。过程如下:f

(1)=1f(2)=f(I)+1=2最后,j的值为1+2=3。注意:函数的递归调用需要

有一个结束的条件。

21、C++语言中类的定义的结束声明的符号是

A、)

B、,

C、;

D、{

标准答案:4

知识点解析:C++语言中类定义的结束符号是分号。注意:函数的定义不需要分

号。

22>关于类定义中的语句错误的是classA[ihti;Aa;A*

b;char*ch;};

A、inti;

Aa;

C、A*b;

D、char*ch:

标准答案:2

知识点解析:C++语言中类定义中若想用该类来定义数据只能定义为指针类型的,

而不能定义为普通类型的。注意:C++语言类的定义的方法

23、下列描述中错误的是

A、析构函数可以被继承

B、虚函数不能被继承

C、派生类可以有多个基类

D、纯虚基类的子类可以是虚基类

标准答案:2

知识点解析:C++语言中基类的虚函数是可以被派生类继承的。注意:虚函数和纯

虚函数的区别。

24、下列描述中哪个是正确的?

A、派生类构造函数中没有调用父类构造函数则没有对父类初始化

B、子类构造函数不能是内联函数

C、派生类构造函数中可以对父类数据成员赋值

D、构造函数的返回值为void类型

标准答案:4

知识点解析:C++语言中基类的构造函数是可以被派生类继承并赋值的。注意:构

造函数和析构函数均无返回值。

25、下面关于成员函数重载运算符和友元函数重载运算符相同的是

A、成员函数和友元函数可重载的运算符是不相同的

B、成员函数和友元函数重载运算符时都需要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论