2012年3月计算机二级C++模拟试题及答案(3)

1.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为()

A.GEDHFBCAB.DGEBHFCA

C.ABCDEFGHD.ACBFEDHG

【参考答案】B

2.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意顺序

3.程序设计语言的基本成分是数据成分、运算成分、控制成分和()

A.对象成分B.变量成分C.语句成分D.传输成分

【参考答案】D

4.下列不属于软件工程的3个要素的是()

A.工具B.过程C.方法D.环境

5.将E-R图转换到关系模式时,实体与联系都可以表示成()

A.属性B.关系C.键D.域

6.在深度为5的满二叉树中,叶子结点的个数为()

A.32B.31C.16D.15

7.一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用()

A.栈B.堆C.数组D.链表

【参考答案】A

8.开发软件时对提高开发人员工作效率至关重要的是()

A.操作系统的资源管理功能B.先进的软件开发工具和环境

C.程序人员的数量D.计算机的并行处理能力

9.数据处理的最小单位是()

A.数据B.数据元素C.数据项D.数据结构

【参考答案】C

10.下述关于数据库系统的叙述中正确的是()

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

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

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

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

11.以下各选项组中,均是C++语言关键字的组是()

A.publicoperatorthis

B.shodstringstatic

C.itwhile>=

D.privatecoutprintf

12.下列描述正确的是()

A.表示m>n为true或mn&&m

B.switch语句结构中必须有default语句

C.if语句结构中必须有else语句

D.如果至少有一个操作数为true,则包含“||”运算符的表达式为true

13.下面关于break语句的描述中,不正确的是()

A.break可以用于循环体内

B.break语句可以在for循环语句中出现多次

C.break语句可以在switch语句中出现多次

D.break语句可用于if条件判断语句内

14.下面程序错误的是()

①#include②voidmain()

③{

④int*p=newint[1];

⑤p=9;

⑥cout<<*p<

⑦delete[]p;

⑧}

A.④B.⑤C.⑥D.⑦

15.不能作为重载函数的调用的依据是()

A.参数个数B.参数类型C.函数类型D.函数名称

16.在C++语言中,数据封装要解决的问题是()

A.数据的规范化B.便于数据转换

C.避免数据丢失D.防止不同模块之间数据的非法访问

17.类的构造函数和析构函数描述正确的是()

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

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

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

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

18.对静态数据成员的描述中,正确的是()

A.静态数据成员是类的所有对象共享的数据

B.类的每个对象都有自己的静态数据成员

C.类的不同对象有不同的静态数据成员值

D.静态数据成员不能通过类的对象调用

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

A.私有继承的公有成员B.公有继承的私有成员

C.公有继承的保护成员D.公有继承的公有成员

20.下面关于虚函数的描述,错误的是()

B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数

C.虚函数可以是另一个类的友元函数,但不能是静态成员函数

D.基类中说明的纯虚函数在其任何派生类中都必须实现

21.语句ofstreamf(″SALARY.DAT″,

ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,且()

A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件

B.若文件存在,将其置为空文件;若文件不存在,找开失败

C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件

D.若文件存在,找开失败;若文件不存在,建立一个新文件

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

#includevoidfun(int*a,int*b)

{intx=*a;

*a=*b;*b=x;

cout<<*a<<*b<<″″;}

voidmain()

{intx=1,y=2;

fun(&x,&y);

cout<

A.1212B.1221C.2112D.2121

23.以下哪个特征不是面向对象思想中的主要特征()

A.多态B.继承C.封装D.垃圾回收

24.C++中运算符优先级由高到低排列正确的是()

A.::+++||B.<*||,

C.sizeof%+::D.,&&newsizeof

25.以下for语句中不是死循环的是()

A.for(inti=0;i<1;++i);B.for(inti=0;;++i);C.for(inti=1;i>0;++i);D.for(;;);

26.以下定义数组中错误的是()

A.inta[10];B.inta[2][20];C.inta[20][];D.inta[];

27.下面程序错误的语句是()

#include″iostrteam.h″

①voidmain()

②{

③intA=0;

④int&B;

⑤B=A;

⑥cout<

⑦cout<

A.②B.③C.④D.⑥

28.函数inttest(inta,intb=1,intc=0),下列调用不合法的个数是()

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

A.0B.1C.2D.3

29.C++语言中关于构造函数的说法正确的是()

A.构造函数的函数名不必和类名相同B.构造函数只能每一个

C.每个类必定有构造函数D.构造函数必有返回值

30.下面程序的执行结果为()

#include″iostream″

usingnamespacestd;

classA

{

inta;

public:

voidSeta(intx){a=x;}

voidDisplay_a(){cout<

};

classB

intb;

voidSetb(intx){b=x;}

voidDispaly_b(){cout<

classC:publicA,privateB

{private:

intc;

voidSetc(intx,inty,intz)

{c=z;Seta(x);Setb(y);}

voidDisplay_c(){cout<

③Ccc;

④cc.Seta(1);

⑤cc.Display_a();

⑥cc.Setc(2,2,3);

⑦cc.Dispaly_b();

⑧cc.Display_c();

}

A.输出为223B.有错误在第5行C.输出为123D.有错误在第7行

31.多态性指的是()

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

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

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

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

32.只能作为成员函数重载的是()

A.=B.++C.*D.new

33.语句cout<

A.1024.4567B.1024C.1024.45D.1e+003

34.下列程序的结果是()

#include″iostream.h″

char*str;

str=″test!″;

A.程序错误B.!C.′\0′D.为空字符

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

A.析构函数B.构造函数C.内联函数D.拷贝构造函数

二、填空题

1.数据结构分为逻辑结构与存储结构,线性链表属于【1】。

【参考答案】

【1】存储结构

2.耦合和内聚是评价模块独立性的两个主要标准,其中【2】反映了模块内各成分之间的联系。

【2】内聚

3.数据库设计分为以下6个设计阶段:需求分析阶段、【3】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

【3】数据库概念设计阶段

4.面向对象的模型中,最基本的概念是对象和【4】。

【4】类

5.数据模型按不同应用层次分成3种类型,它们是概念数据模型、【5】和物理数据模型。

【5】逻辑数据模型

6.开发一个C++语言程序的步骤通常包括编辑、【6】、链接、运行和调试。

【6】编译

7.下面程序的输出结果为【7】。

#includevoidmain()

intnum=0,i=8;

do{

i--;

num++;

}while(--i);

cout<

【7】-4

8.下面程序的运行结果为【8】。

#includevoidfun(intx=0,inty=0)

{cout<

{fun(5);}

【8】50

9.C++语言支持的两种多态性分别是编译时的多态性和【9】的多态性。

【9】运行时

10.cout.put(′A′);,还可以表示为【10】。

【10】cout<<′A′;

11.将以下程序写成三目运算表达式是【11】。

if(a>b)max=a;

elsemax=b;

【11】max=(a>b)a:b;

12.下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。

#include#includevoidmain()

{chara[]=″clanguage″,t;

inti,j,k;

k=strlen(a);

for(i=0;i<=k-2;i+=2)

for(j=i+2;j<=k;【12】)

if(【13】)

{t=a[i];a[i]=a[j];a[j]=t;}

【12】j+=2【13】a[i]>=a[j]或a[i]>a[j]

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

【14】virtualintA()=0;

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

【15】fin

上机部分

一、改错题

使用VC6打开考生文件夹下的工程kt5_1,此工程包含一个源程序文件kt5_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:

(1,2)

5,6

(6,9)

源程序文件kt5_1.cpp清单如下:

#includeclassA{

A(inti,intj){a=i;b=j;}

/****************found*******************/

voidMove(intx,inty){a+=x;b+=y}

voidShow(){cout<<"("<

private:

inta,b;

classB:privateA

B(inti,intj,intk,intl):(i,j){x=k;y=l;}

voidShow(){cout<

voidfun(){Move(3,5);}

voidf1(){Show();}

intx,y;

Ae(1,2);

e.Show();

Bd(3,4,5,6);

d.fun();

d.Show();

d.f1();

(1)将voidMove(intx,inty){a+=x;b+=y}

改为:voidMove(intx,inty){a+=x;b+=y;}

(2)将B(inti,intj,intk,intl):(i,j){x=k;y=l;}

改为:B(inti,intj,intk,intl):A(i,j){x=k;y=l;}

(3)将voidf1(){Show();}

改为:voidf1(){A::Show();}

【试题解析】

(1)主要考查对表达式定义规则的掌握,此处缺少一个“;”,任何一个表达式都应该以分号作为结束标志;

(2)主要考查对派生类构造函数定义的掌握,参数列表中基类的成员应使用基类构造函数初始化,因此必须向基类传递参数,传递时直接使用基类名;

(3)主要考查对基类函数调用方法的掌握,为了调用基类的函数应该使用作用域符“::”以限定访问的位置。

二、简单应用题

请编写一个函数intpattern_index(charsubstr[],charstr[]),该函数执行含通配符""的字符串的查找时,该通配符可以与任一个字符匹配成功。当子串substr在str中匹配查找成功时,返回子串substr在str中的位置,否则返回值为0。要求使用for循环实现。输出结果如下:

子串起始位置:5

注意:部分源程序已存在文件kt5_2.cpp中。

请勿修改主函数main和其他函数中的任何内容,仅在函数pattern_index的花括号中填写若干语句。

文件kt5_2.cpp的内容如下:

#includeintpattern_index(charsubstr[],charstr[])

char*substring,*string;

intsame;

substring="gram";

string="thisprogramreturnindexofsubstring";

same=pattern_index(substring,string);

if(same)

cout<<"子串起始位置:"<

else

cout<<"匹配不成功"<

intpattern_index(charsubstr[],charstr[])

{inti,j,k;

for(i=0;str[i];i++)

for(j=i,k=0;(str[j]==substr[k])||(substr[k]=='');j++,k++)

if(!substr[k+1])

return(i);

return(0);}

本题主要考查使用for循环和一维数组的能力。对于复杂查找,往往使用for的多重循环。

三、综合应用题

使用VC6打开考生文件夹下的工程kt5_3,此工程包含一个源程序文件kt5_3.cpp,其中定义了用于表示复数的类comp,但类comp的定义并不完整。请按要求完成下列操作,将类comp的定义补充完整。

(1)定义comp的构造函数,函数含参数x和y,它们都是int型的数据,默认值都为0,请使用参数列表的形式分别将类数据成员a和b初始化x和y的值。请在注释“//**1**”之后添加适当的语句。

(2)完成类comp的成员函数input(intx,inty)的定义,将int型的参数x和y分别赋值给数据成员a和b,请在注释“//**2**”之后添加适当的语句;

(3)完成类comp的友元函数friendcompplus(comp&x,comp&y)的定义,该函数首先要定义一个comp类的对象c,然后将参数x和y的数据成员a与b分别相加并分别赋值给c的成员a和b,最后返回c的值,请在注释“//**3**”之后添加适当的语句。输出结果如下:

10+20i

2+3i

result:12+23i

注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

THE END
1.解题神器一扫就出答案软件排行榜前十名本大全榜单是偏玩手游盒子为您提供的手机解题神器一扫就出答案软件排行榜本年度榜单、及免费下载,囊括了解题神器一扫就出答案软件排行榜前十名产品的热度数据、图片、用户评价、最新版本下载等信息,解题神器一扫就出答案软件有哪些、解题神器一扫就出答案软件哪个好用,尽在这里!https://m.pianwan.com/s/zj-2566214
2.自动识别题目答案的软件哪个好APP推荐豌豆荚自动识别题目答案的软件哪个好榜单为您提供最新自动识别题目答案的软件哪个好大全,这里不仅有自动识别题目答案的软件哪个好安卓版本APP、历史版本应用下载资源,还有类似自动识别题目答案的软件哪个好的应用推荐,欢迎大家前来豌豆荚下载。https://www.wandoujia.com/bangdan/404389/
3.查答案软件排行榜最好用的十大查答案软件推荐在这里为用户们准备了最好用的查答案软件,里面包含了大量的问题以及答案解析,让我们随时在线查找自己所需的答案,还支持不同的搜题模式,可以拍照、文字输入以及语音输入等方式查找,而且答案解析非常的详细。那么最好用的查答案软件都有哪些呢?十大查答案软件都是什么呢https://www.cioinsight.com.cn/top/471/
4.自动识别题目答案的哪个好软件大全PP助手为您提供自动识别题目答案的软件哪个好大全推荐,在这里我们为您提供自动识别题目答案的软件哪个好软件下载资源,自动识别题目答案的软件哪个好安卓版本、官方版本&老版本下载地址合集,还可查阅相关自动识别题目答案的软件哪个好攻略大全,欢迎到PP助手下载。https://wap.pp.cn/topic/494909/
5.拍照答题神器app有哪些?拍照答题软件下载相信大家在做题时都有遇见过不会做的题目,今天小编给大家推荐几款好用的拍照答题APP,碰到难题,直接拿出手机点开软件,扫一扫就能立刻给出答案,并且附有详细的解析过程,和重难点的罗列,让大家一眼就能看懂,即使没有老师家长的辅导,也能轻松应对各种难题,绝对是大家做题必备神器,需要的朋友们快来下载吧! http://www.downcc.com/k/pzdt/
6.答题神器一扫就出答案解题神器一扫就出答案APP大全小猿搜题是针对中小学生的一款搜题答疑工具,软件使用方法与作业帮类似,只需要使用手机相机将题目拍摄下来,就可以快速搜索到该题目的答案。小猿搜题不仅能够显示题目的答案,还可以显示详细的解题思路,让学生 拍照搜题秒出答案 v6.2.0免费版 2022-11-20/8.4M下载 http://www.kkx.net/zt/54528.html
7.作业答案软件大全什么软件可以查答案作业答案软件是一种可以帮助用户进行搜题的软件合集,这里面有超多的搜题工具可以使用,通过拍照就可以直接对题目进行答案的搜索,用户可以直接把手机本地的照片进行上传,就可以直接在软件中进行答案的搜索,这里面还有超多的课程可以加入,用户可以自由的在软件中进行学习。https://app.ali213.net/heji/zydarjdq.html
8.柠檬云财务软件的账簿报表是系统自动生成的()A.正确B.错误此题为判断题(对,错)。请帮忙给出正确答案和分析,谢谢!https://www.shangxueba.com/ask/26886109.html
9.整数运算题目自动生成系统的教程完美锦囊技巧教程资讯整数运算题目自动生成系统可自动随机生成1-4位整数加减法或乘除题目,可根据需要确定生成题目数量和位数,生成后可在计算机上直接答题,也可打印后答题,是给孩子出题的好帮手https://tech.wmzhe.com/article/76337.html
10.PPT一键生成软件哪个好?这里有你想知道的答案这里有你想知道的答案 在这个快节奏的时代,无论是企业高管、市场营销人员还是创意设计师,ppt已经成为了日常工作中不可或缺的一部分。 一个精心设计的ppt不仅能够吸引观众的注意力,还能确保关键信息的高效传达。随着技术的进步,ppt一键生成软件的出现,为追求效率的专业人士提供了便利。https://www.360doc.cn/article/26045753_1137309978.html
11.求最新免费自动生成,ai视频生成文字转视频,配音等视频软件大家好,在此收集最新免费自动生成,ai视频生成、文字转视频,配音等视频软件,PC和移动都可以。最好有https://www.52pojie.cn/thread-1927300-1-1.html
12.计算机题库及答案6篇(全文)3.2 试卷生成模块实现 试卷生成模块负责为用户提供试题浏览的界面, 并将用户最终选择的所有试题组成试卷, 以标准形式输出到Word文档中。主要有两种方式:自动生成试卷和手动生成试卷。 手动生成试卷模块提供手工方式选择试题存储到试题库中, 并将用户最终选择的所有试题组成试卷, 以标准形式输出到Word文档中。 手动生成试卷https://www.99xueshu.com/w/filepxpej0c2.html
13.当PKPM软件安装完成后,桌面上会自动生成查看完整题目与答案 当乡镇OLT机房至农村就近基站之间剩余纤芯资源不足时,且乡镇OLT机房距离农村距离不满足PON系统光功率预算时,宜将( )至就近基站,由基站建设配线光缆至农村。 查看完整题目与答案 已建高层住宅,原则上采用二级分光方式,应综合考虑一级光分路器和二级光分路器的分光比,总的分光比应不https://www.shuashuati.com/ti/17742126ea154c3fb3367a96494f006f.html?fm=bd4b5e2736e514efd85e16b96410b83559
14.软件测试面试05:接口自动化面试提问答案原来我们也做了很多接口自动化,接口自动化这块,其实原来我们也是用 jmeter请求去做的,这个时候,我们也用到一些工具,http代理,主要方便编写接口请求,通过录制就行了,我觉得接口自动化只是在接囗测试中多加了一些参数化、关联、断言参数,主要是函数参数化,自定义变量参数化,文件参数化,主要文件类型csv跟txt,不过原来csvhttps://blog.csdn.net/blogcdnnet/article/details/129199888
15.第四章项目基本设置·REDCap最终用户指南(中文版)·看云现在您将看到这个逻辑生成器: 然后单击拖放逻辑构建选项并滚动字段选择列表,直到找到触发此问题(后续问题)的选项。在本例中,您将选择“icecream=Other(4)”。然后单击该选项并将字段拖到右侧的框中。完成后单击“保存”。 字段现在指示分支逻辑存在。 这意味着,只有在输入数据的人选择了前一个问题的“其他”答案时https://www.kancloud.cn/xjtu_sph/redcap_user_guide/1345446
16.大模型晚报字节跳动推出AI对话产品豆包,现已开启测试值得一提的是,理想汽车此前曾在宜宾成立能源服务公司,经营范围内同样包含AI软件开发业务。 Meta或将推出自动代码生成软件,可供用户开源使用 据The Informaiton报道,Meta 正计划推出一款帮助开发人员自动生成编码的软件。 Meta 的这款代码生成软件名为Code Llama,最早或在下周推出。这将是一款开源软件,Code Llama 将会建https://www.pingwest.com/w/287098
17.自动生成进度计划的软件自动生成进度计划的软件project"自动生成进度计划的软件",哪些软件是我们想要的呢,下面多特小编就跟您推荐几款比较合适的软件或者app给您参考。 1.斑马进度计划软件软件类型:安卓APP 软件页面:https://duote.com/android/956072.html点击下载 软件介绍: 斑马进展是一款十分适用的高效率办公服务项目手机软件,软件功能性十分强劲,客户可以应用手机软件https://www.duote.com/tech/rjxz/401110.html