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

下载本文档

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

文档简介

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

套)

(共441题)

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

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

10分。)

1、某算法的空间花费<n)=l00nlog2n+05ogn+1000n+2000.其空间复杂度为

A、0(1)

B、0(n)

C、0(nL5)

D、0(nlog2n)

标准答案:8

知识点解析:暂无解析

2、栈和队列.

A、共同之处在于二者都是先进先出的特殊的线性表

B、共同之处在于二者都是先进后出的特殊的线性表

C、共同之处在于二者都只允许在顶端执行删除操作

D、没有共同之处

标准答案:4

知识点解析:暂无解析

3、若深度为5的完全二叉树的第5层有3个叶结点,则该二叉树一共有个

结点

A、15

B、16

C、17

D、18

标准答案:8

知识点解析:暂无解析

4、结构程序设计的3种结构是.

A、顺序结构、选择结构,转移结构

B、分支结构,等价结构、循环结构

C、多分支结构、赋值结构、等价结构

D、顺序结构.选择结构、循环结构

标准答案:8

知识点解析:暂无解析

5、下面机制允许对一个函数名给出多个函数定义

A、封装性

B、继承性

C、函数重载

D、多态性

标准答案:8

知识点解析:暂无解析

6、“软件危机”产生的主要原因是_____.

A、软件日益庞大

B、开发方法不当

C、开发人员编写程序能力差

D、没有维护好软件

标准答案:1

知识点解析:暂无解析

7、分层DFD图是一种比较严格乂易于理解的描绘方式,它的顶层图的作用在于

A、描绘了系统的实现细节

B、表明了被开发系统的范围以及它和周围环境的数据交换关系

C、描绘了系统的抽象

D、描绘了软件实现的作者和绘制的时间

标准答案:2

知识点解析:暂无解析

8、数据库逻辑设计阶段分为。

A、收集和分析、建立E—R模型、数据库模式设评

B、模型设计和应用程序设计

C、概念设计、逻辑设计、物理设计

D、设计、建立E—R模型和模式设计

标准答案:2

知识点解析:暂无解析

9、当将E-R模型转换为关系模型时,对于两实体间m:n联系,必须对“联系”单独

建立,用来联系双方实体。

A、一个实体

B、一个属性

C、一个指针

D、一个关系

标准答案:8

知识点解析:暂无解析

10、用二维表来表示实体及实体之间联系的数据模型称为。

A、实体一联系模型

B、层次模型

C、网状模型

D、关系模型

标准答案:8

知识点解析:暂无解析

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

11、下列变量名中,是合法的。

A、CHINA

B、byte-size

C、double

D、A+a

标准答案:1

知识点解析:B中不该有"小字符,C为保留字,D中"+”,字符不合法。

12、下列各种函数中,不是类的成员函数。

A、构造函数

B、析构函数

C、友元函数

D、拷贝构造函数

标准答案:4

知识点解析:构造函数、析构函数和拷贝构造函数都是类的成员函数。

13、下列是正确的语句。

A、;

B、a=17

C>x+y

D、coutVV"\n”

标准答案:1

知识点解析:如果调用合法,则只有B满足两个参数为指针和引用的条件。

19、以下结构类型可用来构造链表的是______o

A、streetaa{inta;int*b;};

B、structbb{inta;bb*b;};

C、structcc{int*a;ccb;);

D、structdd{int*a;aab;};

标准答案:2

知识点3析:如果要构造链表,则必须有指向下一个结点的指针。

20、使用操作符setw对数据进行格式输出时,需要包含头文件。

A、iostream.h

fstream.h

C^iomanip.h

D、stdlib.h

标准答案:4

知识点解析:使用操作符sctw对数据进行格式输出时,必须包含iomanip.h头文

件。

21、在每个C++程序中必须包含这样一个函数,该函数的函数名为o

A、main

B、MAIN

C^name

D、function

标准答案:1

知识点解析:每个C++程序必须包含一个主函数main。

22>设x和y均为bool量,则x&&y为真的条件是。

A、其中一个为假

B、其中一个为真

C、二者均为假

D、二者均为真

标准答案:2

知识点解析:x&&y为真的条件是其中一个为真。

23、假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据

的地址大。

A、1

B、2

C、4

D、8

标准答案:8

知识点解析:一个float型数据占的字节为4位。

24、设x和y均为bool量,则xIIY为假的条件是。

A、二者均为真

B、二者均为假

C、其中一个为真

D、其中一个为假

标准答案:2

知识点解析:xIIy为假的条件是二者均为假。

25、下列不属于算法的基本特征的是。

A、可行性

B、确定性

C、有穷性

D、无限性

标准答案:8

知识点解析:可行性、确定性和有穷性是算法的基本特征。

26、关于链式存储结构和顺序存储结构的说法正确的是______。

A、链式存储结构比顺序存储结构更优越

B、顺序存储结构比链式存储结构更优越

C、顺序存储结构所占空间可以不连续

D、链式存储结构比顺序存储结构更易删除其中的元素。

标准答案:8

知识点解析:链式存储结构比顺序存储结构更易删除其中的元素。

27、按照“后进后出”原则组织数据的数据结构是______。

A、队列

B、栈

C、双向链表

D、二叉树

标准答案:1

知识点解析:队列是按照“后进后出”原则组织数据的数据结构。

28、不属于结构化程序设计方法的四条原则是。

A、自顶向下

B、对象化

C、模块化

D、逐步求精

标准答案:2

知识点解析:对象化属于面向对象设计的方法。

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

A、程序的规模

B、程序的易读性

C、程序的执行效率

D、程序的可移植性

标准答案:2

知识点解析:程序的易读性是结构化程序设计强调的主要特征。

30、在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送

A、调用语句

B、命令

C、口令

D、消息

标准答案:8

知识点解析:一个对象请求另一对象为其服务的方式是发送消息调用。

31、长度为n的简单插入排序法,最坏情况需要次比较。

A、n

B、n(n-l)

C、n(n-l)/2

D、n-1

标准答案:4

知识点解析:简单插入排序法,最坏情况需要n(n-l)/2次比较。

32、计算机软件是______o

A序

B据

c档

D序

、、数据及相关文档的完整集合

标准答案:8

知识点解析:计算机软件是包括程序、数据及相关文档的完整集合。

33、软件测试过程一般定4个步骤进行:单元测试、集成测试、验收测试(确认测

试)和系统测试。在程序编码阶段进行的测试通常是0

A、单元测试

B、集成测试

C、验收测试(确认测试)

D、系统测试

标准答案:1

知识点解析:单元测试(模块测试),针对每个模块进行的测试,可从程序的内部结

构出发设计测试用例,多个模块可以平行地对立地测试,通常在编码阶段进行。

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

A、控制程序的执行顺序

B、模块之间的调用关系

C、数据的流向

D、程序的组成成分

标准答案:4

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

35、用户的数据视图,也就是用户所见到的数据模式,是______。

A、概念模式

B、外模式

C、内模式

D、物理模式

标准答案:2

知识点露析:概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共

数据视图;外模式,也称子模式与用户模式,是用户的数据视图,也就是用户所见

到的数据模式:内模式,又称物理模式,它给出了数据库物理存储结构与物理存取

方法。

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

分。)

36、某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。

标准答案:19

知识点解析:叶子结点是最末端的结点。

37、在面向对象方法中,类的实例称为【】。

标准答案:对象

知识点解析:面向对象的相关概念。

38、诊断和改正程序中错误的工作通常称为【】。

标准答案:调试或者程序调试或者软件调试或者Debug或者调试程序或者调试软

知识点解析:调试的相关内容。

39、在关系数据库中,型数据表示成二维表,每一个二维表称为【】。

标准答案:关系或者关系表

知识点解析:关系数据库的相关概念。

40、问题处理方案的正确而完整的描述称为【】。

标准答案:算法或者程序或者流程图

知识点解析:算法,程序的相关内容。

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

41、具有相同函数名不同参数表的函数称为【】。

标准答案:重载函数

知识点解析:重载函数的定义。

42、在类中定义和实现的函数称为【】。

标准答案:内联函数

知识点解析:在类中定义和实现的函数称为内联函数。

43、若把类B定义为类A的友元类,则应在类A中加入定义语句【】。

标准答案:friendclassB;

知识点解析:若把类B定义为类A的友元类,则应在类A中加入的定义语句为

friendclassB;。

44、重载的流运算符函数经常定义为类的【】函数。

标准答案:友元

知识点解析:参见友元函数的定义。

45、在C++中,包含了处理用户控制的文件操作所需的信息是指头文件中的

[]0

标准答案:fstream.h

知识点解析:在C++中,头文件fstream.h中包含了处理用户控制的文件操作所需

的信息。

46、下面的类中定义了一个枚举类型,请完成下面的程序。classBase{public:

enumWeek{Sum,Mon,Tue,Wed.Thu,Fri,Sat);Weeka;)voidfun(Base&B){[]

=[1;〃将对象的a赋值为所定义的枚举类型值为的枚举量}

标准答案:b.a,Tue

知识点解析:b.a取对象的成员变量Tue在枚举中变量为2的是Tue

47、以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大

值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。#defineN3

#defineM3intselect(inta[N][M],int&n)(inti,j,row=1,colum=1;for(i=0;i<N;i++)

for(j=O;j<M;j++)if(a[i][j]>a[row][colum]){row=i;colum=j;}n=[];return[];}

main(){inta[N][M]={9,11,23,6,1J5,9,17,20),max,n;max=select(a,[]);

printf("max=%d,line=%d\n'\max,n);}

标准答案:row,a[row][colum],n

知识点解析:row记录行下标a|row][colum]返回最大值。n引用调用时传变量名

五、填空题(含2小题)(本题共7题,每题1.0分,

共1分。)

48、下列函数的功能是判断字符串str是否对称,对称则返回true,否则返回

falseo请在横线处填上适当内容,实现该函数。boolfun(char*str){inti=0,j=0;

while(str[j])[];for(j-;i<j&&st[i]==str[j];i++,j-);returni[]j;)

标准答案:i++:i>=i

知识点解析:首先计算字符串的长度,然后开始判断i是否大于等于j,如果是则

说明是可以逆转的。

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

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

10分。)

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

A、线性链表

B、栈

C、循环链表

D、顺序表

标准答案:2

知识点露析:栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除

的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插

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

也是最后才能被删除的元素,即栈是按照“先进后出”或“后进先出”的原则组织数据

的。注意:队列组织数据的原则是“先进先出”或“后进后出工注意:数据结构中,

栈和队列组织数据的原则。

2、具有3个结点的二义树有

A、2种形态

B、4种形态

C、7种形态

D,5种形态

标准答案:8

知识点解析:具有3个结点的二叉树具有以下的几种形态:

/</\>\

、a0注意:二叉梃的

结构及画法。

SI

血©向

3、设有下列二叉树:对此二叉

树前序遍历的结果为

A、ZBTYCPXA

B、ATBZXCYP

C、ZBTACYXP

D、ATBZXCPY

标准答案:2

知识点露斤:所谓二叉树的前序遍历(DLR)是指在访问根结点、遍历左子树与遍历

右子树这3者中,首先访问根结点,然后遍历左子树,最后遍历右子树,并且,在

遍历左右子树时,上述规则同样适用,即“根-左-右”。故该二叉树的前序遍历结果

为“ATBZXCYP”。注意:对于本题,若使用后序遍历和中序遍历的结果分别为

“ZBTYCPXA”和“TZBACYXP”。

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

A、程序的规模

B、程序的效率

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

D、程序易读性

标准答案:8

知识点解析:注意:结阂化的程序设计的目的。

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

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

B、顺序、选择和重复

C、递归、堆栈和队列

D、调用、返回和转移

标准答案:2

知识点解析:采用结构叱程序设计方法编写程序,可使程序结构良好、易读、易理

解、易维护,它包括3种基本控制结构,分别是顺序结构、选择结构和重复结构

(又称循环结构)。注意:控制程序结构的方法和作用。

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

A、测试的挑剔性

B、完全测试的不可能性

C、测试的可靠性

D、测试的经济性

标准答案:4

知识点解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错

误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测

试的不可能性及测试的经济性。其中没有测试的可靠性这一说法。注意:软件测试

与软件调试的概念,以及相应的方法。

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

A、软件做什么

B、用户使用界面

C、输入的信息

D、软件的规模

标准答案:1

知识点解析:需求分析是软件定义时期的最后一个阶段,它的基本任务就是准确回

答“系统必须做引么''这个问题即软件系统功能,需求分析的任务还不是确定系统怎

样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完

整、准确、清晰、具体的要求。

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

个数的是

A、选择

B、连接

C、投影

D、并

标准答案:2

知识点解析:关系代数中包括传统的集合运算和专门的关系运算。经过选择或投影

运算得到的新关系的属性个数最多不会超过原关系中的属性个数。经过连接运算得

到的新关系最多不少于原关系中属性的个数。

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

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

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

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

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

标准答案:4

知识点解析:两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可

以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;蹴念

模型便于向各种模型转爽。由于概念模型不依赖于具体的数据库管理系统,因此,

容易向关系模型、网状模型和层次模型等各种模型转换。

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

A、原子性措施

B、一致性措施

C、完整性措施

D、安全性措施

标准答案:4

知识点解析:数据库的完整性是指数据的正确性和相容性(如学生的学号必须推

一,性别只能是女或男等),数据库是否具备完整性关系到数据库系统能否真实反

映现实世界,因此维护数据库的完整性是非常重要的。注意:数据库的各种特性及

表达形式。

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

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

A、多态

B、继承

C、封装

D、垃圾回收

标准答案:8

知识点解析:面向对象语言的基本特性是封装,继承和多态。注意:垃圾回收是

Java的主要特点。注意:要掌握面向对象的优点。

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

A、34a

B、_AB

C、A_B

D、A25

标准答案:1

知识点解析:在C++语言中,标识符只能由数字,字母,下划线组成,并且第一

个字符不能是数字。注意:选项A)是以数字开始的。注意:关键字不能用作标识

符。

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

A、::+++||

B、<*||,

C>sizeof%+::

D、,&&newsizeof

标准答案:1

知识点解析:运算符的优先级是::最高,其次是【】,(),等,然后是++,一

再低还有->*,*,+,<<,>>,=O注意:逗号的优先级最低。

14>下面程序的运行结果是#include"iostream,h"#define

sum(a,b)a*bvoidmain(){intx;x=sam(l+2,3);

cout<<x;}

A、0

B、9

C、7

D、5

标准答案:4

知识点解析:理解宏定义,sum(a,b)o*b中a为1+2,b为3,故sum(l+2,3):

1+2*3,即宏定义的替换过程是原样替换。注意:选项B)的计算方法足(1+2)*

3=9是错误的,注意,不要随意的加括号。注意:宏定义与函数的区别。

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

A、for(inti=0;i<1;++i;

B、for(inti=0;;++i;

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

D、for(;;);

标准答案:1

知识点解析:f。「循环的一般格式为for(初始化部分;终止条件判断部分:迭代部

分){循环体;}说明如下:for循环开始时.,首先执行初始化操作,然后判断终止

条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次

循环后,重新判断终止条件。注意:在for语句中,如果省略了终止条件判断部

分,并且在语句中没有break,或者是终止条件判断部分始终没有终止,都将出现

死循环。注意:for循环语句可由while循环语句来代替。

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

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

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

行下一循环判断

C、continue可以用于if语句中

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

标准答案:1

知识点解析:continue是跳出了本次循环中尚未执行的语句,重新执行循环,但没

有终止循环。注意:注意break,continue和goto语句的用法和区别。

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

A、inta|10|;

B、inta[2][20];

C>inta[20][];

D、inta|];

标准答案:

知识之解析4:二维数面的二维不能省略。注意:数组的下标是从零开始的。

18、下面程序的执行结果是#include"iostream,h"voidmain()

{int*p,r;p=newin;*p=20;r=sizeof(*p);

cout<<r<<endl;deletep;}

A、程序错误

B、内存为20地址的大小.

C、20

D、4

标准答案:8

知识点解析:理解sizeof的用法,它可以运算出各种数据类型所占内存空间的多

少。注意:选项。中是指针p所指向的内存地址中内容是20。注意:在用完申请

后的内存应立刻释放。

19、下面程序错误的语句是#includeniostrcam.h"①voidmain()

②{③intA=0;④int&B;⑤B=A;⑥coutV<

B;(7)cout<<A;©)

A②

B③

c④

D⑥

标准答案:4

知识点解析:引用必须在第一时间进行赋值,int&B没有在第一时间赋值故错

误。注意:引用的方式,引用和指针应用的比较。

20、下列程序的输出结果是#include"iostream"usingnamespacestd;

intMax(inta,intb)if(a>b)else

returna;elsereturnb;)void

main(){intm,n;m=10,n=5;

intmax=Max(m,n);cout<<max<<end

A、10

B、程序有误

C、1

D、0

标准答案:1

知识点解析:本题函数Max的功能是求出两个整数中的较大者,并且通return语

句返回。注意:return语句的用法,注意return的条件。

21、函数inttest(inla,inlb=l,inlc:0),下列调用不合法的个数是

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

A、0

B、1

C、2

D、3

标准答案:4

知识点解析:如果一个函数中有多个参数,则默认参数应从右到左逐个定义。注

意:选项。没有给a传递任何的参数,所以是错误的。注意:函数含有默认参数

时的调用方式。

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

A、public

protected

C、pfivatc

D、default

标准答案:4

知识点解析:1C++语言中类定义中默认的类的访问权限是private。注意:C++语言

中没有defaull权限。注意:结构体默认的访问权限是public,注意它们之间的区

别。

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

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

B、构造函数只能每一个

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

D、构造函数必有返回值

标准答案:4

知识点解析:构造函数的函数名必须和类名相同;构造函数可以有一个,也可以有

多个;构造函数没有返回值。注意:构造函数可以被重载。

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

A、A(A*B);

B、A(AB);

C、A(A&B)

D、A(A);

标准答案:4

知识点解析:固定的一种拷贝方式就是〈类名〉:〈类名>const〈类名>&<引用对象

名〉注意:如果一个类中没有声明,拷贝构造函数,编译器会自动生成一个如上述

形成的仅有的拷贝构造函数。

25、下面程序的执行结果为#include"iostream'1usingnamespacestd:

classA{inta;public:voidSeta(intx){a=x;}

voidDisplay_a(){cout<<a<<endl;}};classB

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

voidD

A、输出为223

B、有错误在第5行

C、输出为123

D、有错误在第7行

标准答案:8

知识点解析:pnvale继承不能调用Display上函数,public继承可以调用基类中非

pfivate成员。注意:类的继承方式public,protected和private的区别。

26、虚函数必须是类的

A、成员函数

B、友元函数

C、构造函数

D、析构函数

标准答案:1

知识点解析:虚函数只能是类的成员函数,不能是构造函数或析构函数。注意:虚

函数可以是另一个类的友元函数。

27、多态性指的是

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

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

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

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

标准答案:4

知识点解析:多态性主要是指借助于指向对象的基类指针或引用调用一个虚函数。

注意:注意多态和重载的关系和应用。

28、不能重载的运算符是

A、new

B、sizeof

C、.*

D、++

标准答案:4

知识点解析:C++语言规定.*运算符是不能被重载的。注意:还有.,一>

*,::,?:这几个运算符不能重载。

29、只能作为成员函数重载的是

A、=

B、++

C、*

D、new

标准答案:1

知识点解析:C++语言规定"=”运算符只能作为成员函数重载。

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

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

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

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

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

标准答案:2

知识点解析:类模板可以有虚拟类型参数。注意:模板及其周边概念和模板的实

现。

31、语句cout<<setprecision(2)<<1024.4567:的输出结果为

A、1024.4567

B、1024

C、1024.45

D、lc+003

标准答案:8

知识点解析:setprecision()函数为设置小数位数0注意:C++中I/o流各种函数的

使用例如:setw(),settiil()«

32^下面程序的结果为#includeMiostream,h"voidchange(inta,intb)

{inttemp:temp=a;a=b:

b=temp;|voidmain(){intm,n;

m=8;n=9;change(m,n);tout<<m

<<1H<<n<<endl;}

A、89

B、98

C、程序有错误

D、99

标准答案:1

知识点解析:两数只在函数change内被使用,函数调用完后该内存被释放,因此

没有交换两数。注意:交换两个数的方法简单说有两种一是使用指针,二是用引

用。

33、下面程序的结果是#include"iostream,h"voidmain()

{char*str;Str="test!n;cout<<str[5J;}

A、程序错误

B、!

C、’\0'

D、为空字符

标准答案:8

知识点解析:'\0'输出为不显示,只代表一个字符串的结束。注意:C++语言中各

种字符转义序列的意义和应用。

34、下面程序输出的结果为#include"iostream.h"classA

{public:A(){cout<<"CLASSA"<<

endl;)A(){));classB:publicApublic:

B()(cout<<"CLASSB"<<end1;)〜B(){}voidmain()

{A*p;p=newB;B*q;

A、CLASSACLASSB

13、CLASSACLASSBCLASSB

C、CLASSACLASSBCLASSACLASSB

D、CLASSACLASSBCLASSBCLASSB

标准答案:4

知识点解析:每实例化一个类就要调用其构造函数,结束运行该实例后调用析构函

数。注意:类的实例化和构造函数、析构函数的调用方式和何时调用。

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

A、析构函数

B、构造函数

C、内联函数

D、拷贝构造函数

标准答案:4

知识点解析:一个类中由系统自动生成的函数有构造函数,析构函数,拷贝构造函

数。注意:内联函数只能由用户自己定义。注意:类能自动生成的函数,尤其注意

构造函数和析构函数,还有拷贝构造函数。

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

分。)

36、常用的黑箱测试有等价分类法、【】、因果图法和错误推测法4种。

标准答案:边值分析法

知识点解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程

序功能导出测试用例。常用的黑箱测试有等价分类法、边值分析法、因果图法和错

误推测法4种。

37、测试的目的是暴露错误,评价程序的可靠性;而【】的目的是发现错误的位

置并改正错误。

标准答案:调试

知识点解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错

误,给出程序可靠性的鉴定:调试也称排错,它是一个与测试有联系又有区别的概

念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现

错误的位置,并改正错误。

38、软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性

维护。

标准答案:完善性

知识点解析:软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护

和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改

正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;

适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了

满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功

能、增强软件性能、改进加工效率、提高软件的可维护性;预防性维护是为了提高

软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。

39、在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为

[1o

标准答案:消息

知识点解析:在面向对象技术中,主要用到对象(objeci)、类(class)、方法

(method),消息(message)、继承(inheritance)、封装(encapsulation)等基本概念”其

中消息是用来请求对象执行某一处理或回答某些信息的要求。

40、关键字ASC和DESC分别表示【】的含义。

标准答案:升序排列和降序排列

知识点解析:ASC表示升序排列,DESC表示降序排列,多用在索引定义和

SELECT语句中的ORDER子句中。

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

41、C++语言中关键字运算符有new,delete和1】。

标准答案:sizeof

知识点解析:C++语言中关键字运算符有3个分别new,deletesizeofonew是

申请内存,deleie是释放内存,sizeof是求字节数。

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

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

知识点解析:条件运算符要求有三个操作对象,称三目(元)运算符,它是C++语言

中惟一的一个三目运算符。条件表达式的一般形式为:表达式1?表达式2:表达式

3o所以我们可以写成(a>B?a:b,它是一个“条件表达式执行顺序是如果(a>B

条件为真,则条件表达式取值a作为整个表达式的值,否则取值b作为整个表达式

的值。

43、以F程序的输出结果是[1°#include<ioslream.h>classobject{private:

intval;public:object();object(inti);〜object。:};object::object(){val=0;

c

标准答案:Constructorforobject6Constructorforobiect5Constructorforcontainer

DestructorforcontainerDestructorforobjcct5Destructorforobicct6

知识点解析:C++语言中的构造函数和析构函数分别是在声明对象时和对象调用完

毕后调用,本题中的调用就是这样成对出现的。

44、请定义一个函数名为A,返回值为int,没有参数的纯虚函数的定义是【】。

标准答案:virtualintA()=0;

知识点解析:C++语言中的纯虚函数是一种特殊的函数,它没有自己的定义,只有

声明,纯虚函数与虚函数声明的不同就在于在函数后面加上了“=0”。

45、表达式x.operator+(y.operator++(0))还可以写成【】。

标准答案:x+y++或x+(y++)

知识点解析:因为y.operator++(0)是对成员y重载运算符,所以是成员重载,在参

数表中又有一个参数,是重载后缀++,即是x+(y++)。

46、假设fin是一个文件流对象,则关闭文件的语句是【】。

标准答案:fin

知识点解析:如果程序没有用close。主动关闭文件,则在文件流对象退出作用域

时,被调用的析构函数会关闭对象所联系的文件。但应及时关闭,以便尽早释放占

用的系统资源并将文件置于更安全的状态。

47、下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其他元

素不变,请填空。#include<iostream.h>#include<string.h>voidmain(){char

a|]=nclanguage",t;imi,j,k;k=strlen(a);for(i=0;i<=k-2;i+=2)

for(j=i+2;j<=k;[]=if([]){t=a[i];

a[i]=a[j];a[j]=l;}uoul<<a;uoul<<endl;-

标准答案:j+=2=a[j]或

知识点解析:strlen函数是测试字符串长度的函数,函数的值为字符串中的实际长

度,不包括'\0'在内。

48、静态成员函数可以直接访问类的【】成员,不能直接访问类的【】成员。

标准答案:静态非静态

知识点解析:静态成员函数可以直接访问该类中的静态数据成员,而不能访问该类

中的非静态数据成员。

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

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

10分。)

1、下列选项中,不属于模块间耦合的是

A、数据耦合

B、同构耦合

C、异构耦合

D、公用耦合

标准答案:C

知识点解析:暂无解析

2、有如下程序:#include<iostream>usingnamespacestd;classPoint{public:

staticintnumber;Point(){number++;)^Point(){number—;}};int

Point::number=0;voidmain(){Point*ptr;PointA,B;Point*ptr_point=new

Point[3];ptr=ptr_point;PointC;cout<<Point::number<<endl;delete[|ptr;}

程序的输出结果是A)3B)4C)6D)7

A、

B、

C、

D、

标准答案:C

知识点解析:只有在创建对象时才会调用类的构造函数,在定义指针时不会调用构

造函数,只有给指针new一个地址时会调用构造函数,所以本程序中一共生成了6

个Point对象(A,B,C,newPoint[3])onumber作为静态数据成员,被同一类的不

同对象所共享,故结果为6。

3、下列叙述正确的是

A、算法的执行效率与数据的存储结构无关

B、算法的空间复杂度是指算法程序中指令(或语句)的条数

C、算法的有穷性是指算法必须能在执行有限个步骤之后终止

D、以上3种描述都不对

标准答案:C

知识点解析:算法的执行效率与数据的存储结构密切相关。算法的空间复杂度是

指算法执行过程中所需的存储空间。

4、有如下程序:#include<iostream>usingnamespaeestd;classPair{intm;int

n:public:Pair(inti,intj):m(i),n(j){)bootoperator>(pairP)const;〃需在类体

外给出定义};intmain(){Pairpl(3,4),p2(4,3).p3(4,5);cout<<(pl>p2)<

<(p2>pl)<<(p2>p3)<<(p3>p2);return0:}运算符函数operator〉的功能是

比羲两个Pair对象的大小,当左边对象大时,返回true,否则返回false。比较规

则是首先比较两对象的m成员,m大者为大;当m相等时比较n,n大者为大。程

序输出0101,下列对运算符重载函数的正确定义是

A^boolPair::operator>(PairP)eonst

B>boolPair::operator>(PairP){if(m!=P.m)retumm>p.In;returnn>p.n;)

{if(m!=P.m)returnm>p.m;returnn>p.n;)

C、boolPair::opcrator>(PairP)const

D、boolPair::operator>(PairP){if(m>p.m)returntrue;returnn>p.n;}{if(Ul>

p.m)returntrue;returnn>p.n;}

标准答案:C

知识点解析:暂无解析

5、有如下程序:#include<iostream>usingnamespacestd;classBase{protected:

Base(){cout<<,Base,;}Base(charc){cout<<c;});classDerivcd:public

Base{public:Derived(charc){cout<<c;}};intmain(){Derivedd(,Derived,);return

0;}执行这个程序屏幕上将显示输出()。

A、Derived

B、DerivedBase

C、BaseDerived

D、DeriveciDerived

标准答案:C

知识点解析♦:派生类Derived由基类Base公有派生,在派生类构造函数声明时系

统会自动调用基类的缺省构造函数。调用DeriveddCDcrivcd)后,执行类

Derived构造函数的Derived(charc),系统自动调用基类的缺省构造函数Base。,输

出字母Base;再执行派生类的构造函数Derived(charc),输出字母Derived。

6、有3个结点的二叉枕有()。

A、2种形态

B、4种形态

C、7种形态

D、5种形态

标准答案:D

知识点解析:暂无解析

7、语句ofstreamf("SALARY.DAT”,ios_base::app)的功能是建立流对象f,并试

图打开文件SALARY.DAT与f关联,而立

A、若文件存在,则将其置为空文件;若文件不存在,则打开失败

B、若文件存在,则将文件指针定位于文件尾;若文件不存在,则建立一个新文件

C、若文件存在,则将文件指针定位于文件首;若文件不存在,则打开失败

D、若文件存在,则打开失败;若文件不存在,则建立一个新文件

标准答案:B

知识点解析:ios_base::app所表示的文件打开方式为:如果文件存在则将文件指针

指向文件尾,否则就建立一个新文件。

8、当一个函数无返回值时,函数的类型应为()。

A^任意

B、void

C、int

D^char

标准答案:2

知识点解析:暂无解析

9、下列叙述中正确的是

A、线性表是线性结构

B、栈与队列是非线性结构

C、线性链表是非线性结构

D、二叉树是线性结构

标准答案:1

知识点解析•:线性表是一种线性结构,数据元素在线性表中的位置只取决于它们自

己的序号,即数据元素之间的相对位置是线性的;栈、队列、线性链表实际上也是

线性表,故也是线性结陶;树是一种简单的非线性结构。

10,不定长文件是指(人

A、文件的长度不固定

B、记录的长度不固定

C、字段的长度不固定

D、关键字项的长度不固定

标准答案:B

知识点解析:不定长文件是指记录的长度不固定。

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

11、for(intx=0,y=0;!x&&y<=5;y++)语句执行循环的次数是

A、0

B、5

C、6

D、无数次

标准答案:C

知识点露析:本题考核for循环语句。题中x=0,则!x永远为真,对于条件表达式

“以&&丫〈=5”只考虑"丫<=5”,由于每次循环y都增加1,而且y从。开始到5,所

以可知总共循环了6次。

12、设有以下语句,对a数组元素的引用中(其中0V=iV10)不正确的是int

a[10|={0,I,2,3,4,5,6,7,8,9),*p=a;

A、a[p-a]

B、*(&a|i|)

C、p[i]

D、*(*(a+i))

标准答案:D

知识点解析:本题考核数组与指针。A选项中,p为指针,数组名a代表数组的首

地址,所以p-a就是指针到数组首地址的偏移量。B选项中,&a[i]是取数组a中第

i个元素的地址,而对于由指针运算符*的运算规则可知,语句*(&a【i])

就是返回地址&a5空间中存放的值,也即a[i]。C)选项,由于指针p已指向数组

a,所以p[i]就等于a[i]小这是常用的一种数组元素引用方式。D)选项是以指针方

式对数组元素进行引用,由于a只是代表数组的首地址,并不是指针,所以表达式

*(*(a+i))是错误的,正确的引用应该为:*(*(p+i))o

13、关于虚函数的描述中正确的是

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

B、虚函数是一个非成员函数

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

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

标准答案:D

知识点解析:虚函数不能定义为静态函数;虚函数的作用在于继承,表现出动态

性。所以,在派生类中定义的虚函数必须和基类中对应的虚函数具有相同的参数个

数和类型。

14、若执行下面的程序时,从键盘上输入5和2,则输出结果是()。

include(iostream.h)voidmain(){inta,b,k;cin>>a>>b;k=a;if(aVB)k=

a%b;elsek=b%a;cout<<k<<endl;}

A、5

B、3

「、2

D、0

标准答案:C

知识点解析:本题考查简单的if…else语句。先执行条件if(aVb),显然不成立,

则执行else语句。

15、下列程序执行后的输出结果是voidfuncl(inti);voidfunc2(inti);char

st[]="hello,friend!";voidfund(inti){cout<<st[i];if(i<3){i+=2;func2(i);))void

func2(inti){cout<<st[i];if(i<3){i+=2;funcl(i);}}main(){inti=0;fund(i);cout<<

endl;)

A、hello

B、hel

C、hlo

D、him

标准答案:C

知识点解析:本题考察递归调用。分析funcl可知,当i=0时,首先输出h,然后i

变为2,调用func(2),则输出str[2],应为1。分析到此就可以排除选项A和B。

然后调用runcl(4),此时输出str[4],为。,故正确答案为C。

16、下列程序执行结果是#include<iostream.h>classA{public:inta;

A():a(10){tout<<a<<endl;}};voidmain(){Aobj1;Aobj2(objl);cout<<""<<

obj2.a<<endl;)

A、1010

B、编译错误缺少拷贝构造函数

C、1。随机数

D、随机数随机数

标准答案:A

知识点解析:本题考察拷贝构造函数的知识。如果类中没有实现拷贝构造函数,则

编译器会为其自动生成一个。对于本题这种简单对象,默认生成的拷贝构造函数可

以完成数据成员的自动赋值,对于复杂对象,则可能需要显式定义拷贝构造函数。

17、有以下程序:#include<iostrcam>usingnamespacestd;classMyClass

{public:MyClass(intn){number=n;}〃拷贝构造函数MyC1ass(MyClass&other)

{number=other.number;)^MyClass(){)private:intnumber;}:MyClass

fun(MyClassp)

A、5

B、4

C、3

D、2

标准答案:B

知识点解析:调用拷贝构造函数的情况为:一个新对象被另一个已存在的同类型

对象初始化,当一个对象作为实参传遵给函数时为初始化形参,要调用拷贝构造函

数。在函数值返回时形参的生命期结束时它的析构函数被调用,在函数返回一个对

象时调用拷贝构造函数。符合以上条件的有:用对象objl来初始化。bj3;obj3作为

实参被传入,函数fun返回一个对象时,系统用返回值初始化一个匿名对象时调用

了拷贝构造函数。总共调用4次。

18、若有如下程序段:#includeusingnamespacestd;intmain()

{char*p=ltabcdefgh^,*r;r=p;cout«*r<

A、a

B、b

C、c

D、d

标准答案:A

知识点解析:字符指针p指向“abcdefgh”字符串,语句“r=p;”是「指向p指向的字

符串,而灯则是指向字符串中的第一个字符。即3

19、下面程序的运行结果是()。#include<iostream.h>intx=5;intfun(inta){int

c;C=X*a;returnc;)voidmain(){intx=3,a=4;x=x+fun(a);cout<<nxM,,<<

X<<endh|

A、x=15

B、x=17

C、x=23

D、x=25

标准答案:4

知识点解析:暂无解析

20、已知小写字母七,的ASCII码为97,以下程序的结果是ochara=32,

b=68:cout<<(a|b);

A、b

B、98

C、d

D、100

标准答案:4

知识点解析:暂无解析

21、在一个类体的下列声明中,正确的纯虚函数声明是o

A、virtualvoidvF()=0;

B、voidvf(int)=O:

C>virtualintvf(int);

D、virtualvoidvf(int)”

标准答案:1

知识点解析:虚函数声明,语法定义;virtual返回类型函数名(参数表)=0

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

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

B、for(inti=0::++);

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

D^for(;:);

标准答案:1

知识点解析:for循环的一般格式为for(初始化部分;终止条件判断部分;迭代部

分){循环体;}说明如下:for循环开始时,首先执行初始化操作,然后判断终止条

件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循

环后,重新判断终止条件。注意:在for语句中,如果省略了终止条件判断部分,

开且在语句中没有break,或者是终止条件判断部分始终没有终止,都将出现死循

环。注意:for循环语句可由while循环语句来代替。

23、下列定义中p指向的地址可更改,但*p不能够更改的是

A、constint*p;

B>int*constp;

C^constint*constp;

D、int*p;

标准答案:1

知识点解析:constint*p;是只能改变指针地址,int*constp;是只能改变*p的内

容,constint*constP;是指针的地址和*p的内容都不能改变,int*p:是两者都能

改变。

24、有以下程序#inckide〈iostream.h>floatfun(intx,inty){return(x+y);)void

main(){inta=2,b=5»c=8;cout<<fun((int)tun(a4-c»b),a-c);}程序运行后的输

出结果是()。

A、编译出错

B、9

C、21

D、9

标准答案:2

知识点解析:暂无解析

25、C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是

A、增加了一些新的运算符

B、允许函数重载,并允许设置缺省参数

C、规定函数说明符必须用原型

D、引进了类和对象的概念

标准答案:8

知识点解析:C++语言最重要的特点是其为一种面向对象的程序设计语言,但是

C++语言也包含了全部的C语言的特征。

26、关于类模板,下列表述不正确的是

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

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

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

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

标准答案:2

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

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

(成员的类型以及成员函数的参数和返回值的类型)。C柑中可以为类模板的参数设

置默认值,所以B)选项是不正确的,其他选项的表述都是正确的。

27、下列对变量的引用中,错误的是

A、inta;int&p=a;

B、chara;char&p=a;

C^ihta;int&p;p=a;

D、floata;float&p=a;

标准答案:

知识之解析4:本题考核引用的定义和初始化。引用具有如下特点:引用能够使用任

何合法变量名:引用不是变量,所以必须在定义时初始化,而且一旦初始化之后,

就不能再成为其他变量的引用;引用不是值,不占存储空间,说明引用时,目标

的存储状态不会改变。所以,引用只有说明,没有定义;引用仅在说明时带有

以后就像普通变量一样使用,不能再带在C选项中,由于在定义引用

p后没有进行初始化,所以此语句错误。

28、假定MyClass为一个类,那么下列的函数说明中,()为该类的析构函数。

A、void~MyC1ass();

~MyClass(intn);

C^MyClass();

D、〜MyClass。;

标准答案:8

知识点解析:本题考核类的析构函数。在C++中,析构函数名为符号“〜”加类名,

析构函数没有参数和返回值。根据以上知识可知,MyClass类的正确析构函数的说

明为〜MyClass。。

29、在C++语言中函数返回值的类型是由()决定的。

A、调用该函数时系统临时

B、return语句中的表达式类型

C、定义该函数时所指定的函数类型

D、调用该函数时的主调函数类型

标准答案:4

知识点解析:本题考查对函数定义的掌握程度。函数类型决定了函数返回值的类

型°函数值返回类型可以由编译器自动完成类型转换。在函数有返回值的调用中,

编译器将return后面的表达式的类型强制转换为该函数定义时指定的返I可值类型.

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

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

B、成员函数和友元函数重载运算符时都需要用到Ihis指针

C、成员函数

温馨提示

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

评论

0/150

提交评论