计算机二级考试C++真题.pdf
QQ374289236QQ374289236全国计算机等级考试二级 C+语言程序设计 2007 年 4 月笔试试卷(考试时间 90 分钟,满分 100 分)一、选择题(每小题 2 分,共 70 分)(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)DYBEAFCZX B)YDEBFZXCA C)ABDYECFXZ D)ABCDEFXYZ QQ374289236QQ374289236(7)某二叉树中有 n 个度为 2 的结点,则该二叉树中的叶子结点数为 A)n+l B)n-1 C)2n D)可 2(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是()A)并 B)交 C)投影 D)笛卡儿乘积(9)在 E-R 图中,用来表示实体之间联系的图形是()A)矩形 B)椭圆形 C)菱形 D)平行四边形(10)下列叙述中错误的是()A)在数据库系统中,数据的物理结构必须与逻辑结构一致 B)数据库技术的根本目标是要解决数据的共享问题 C)数据库设计是指在已有数据库管理系统的基础上建立数据库 D)数据库系统需要操作系统的支持(11)为了取代 C 中带参数的宏,在 C+中使用QQ374289236QQ374289236A)重载函数 B)内联函数 C)递归函数 D)友元函数(12)下列关于类定义的说法中,正确的是 A)类定义中包括数据成员和函数成员的声明 B)类成员的缺省访问权限是保护的 C)数据成员必须被声明为私有的 D)成员函数只能在类体外进行定义(13)下列关于派生类构造函数和析构函数的说法中,错误的是 A)派生类的构造函数会隐含调用基类的构造函数 B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数 C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数 D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数(14)通过运算符重载,可以改变运算符原有的 A)操作数类型C)优先级(15)有如下函数模板:template T square(T x)return x*x;其中 T 是 A)函数形参C)模板形参(16)使用输入输出操作符 setw,可以控制 A)输出精度C)对齐方式(17)下列字符串中,不可以用作 C 一标识符的是 A)y_2006C)Return(18)字面常量 42、4.2、42L 的数据类型分别是 A)long,double,int C)int,double,long(19)执行下列语句段后,输出字符“*”的个数是 for(int i=50;i 1:-i)cout*;A)48C)50(20)有如下程序段:int i=0,j=1;int&ri;/r=j;/int*p&i;/QQ374289236QQ374289236*p=&r;/其中会产生编译错误的语句是 A)C)(21)有如下函数定义:void func(int a,int&b)a+;b+;若执行代码段:int x=0,y=1;func(x,y);则变量 x 和 y 的值分别是 A)0 和 1 C)0 和 2(22)有如下程序:#include using namespace std;class A public:static int a;void init()a=1;A(int a=2)int();a+;int A:a=0;A obj;int main()coutobj.a;return 0;B)操作数个数 D)结合性 B)函数实参 D)模板实参 QQ374289236QQ374289236B)输出宽度 D)填充字符 B)_TEST_H D)switch B)long,float,int D)int,float,long B)49 D)51 B)D)B)1 和 1 D)1 和 2 QQ374289236QQ374289236j 运行时输出的结果是 A)0 B)1 C)2 D)3(23)下列有关继承和派生的叙述中,正确的是 A)派生类不能访问基类的保护成员 B)作为虚基类的类不能被实例化 C)派生类应当向基类的构造函数传递参数 D)虚函数必须在派生类中重新实现(24)下列运算符中,不能被重载的是 A)&B)!=C).D)+(25)下列函数模版中的定义中,合法的是 A)template T abs(T x)return x 0?x:x;B)template class T abs(T x)return x 0?x:x;C)template T abs(T x)return x 0?x:x;D)tempIate T abs(T x)return xdata;中,cin 是 A)C+的关键字 B)类名 C)对象名 D)函数名(27)有如下程序:#include using namespace std;class test private:int a;public:test0cout+constructor+endl;test(int a)cout+a+endl;test(const test&test)a=test.a;cout+,copy constructor+endl;QQ374289236QQ374289236 test()Cout+destructor+endl;int main()test A(3);return 0;运行时输出的结果是 A)3 B)constructor destructor C)copy constructor destructor D)3 destructor(28)若有如下类声明 class MyClass public:MyClass()cout1;执行下列语句 MyClass a,b2,*p2:以后,程序的输出结果是 A)11 B)111 C)1111 D)11111(29)有如下程序:#include using namespace std;QQ374289236QQ374289236QQ374289236QQ374289236class Point public:static int number;public:Pointonumber+;Point()number-;int Point:number-0;void mainO Point*ptr;Point A,B;Point*ptr_point=new Point3;ptx=ptr_point;Point C;Gout+Point:number+endl;delete ptr;运行时输出的结果是 A)3 B)4 C)6 D)7(30)如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制。#include using namespace std;class Base int a,b;public:Base(int x,int y)a=x;b=y;QQ374289236QQ374289236void show()couta,bendl;class Derived:public Base int c,d;public:Derived(int x,int y,int z,int m):Base(x,y)c=z;d=m;void show()coutc,dendl;int main()Base B1(50,50),*pb;Derived D1(10,20,30,40);pb=&D1;return 0;return();运行时输出的结果是 A)10,20C)20,30(31)有如下程序:#include using namespace std;class A public:A(int i)x=i;void dispa()coutx,;private:int x;class B:public A QQ374289236QQ374289236public:B(int i):A(i+10)x=i;void dispb()dispa();coutx endl;B)30,40 D)50,50 QQ374289236QQ374289236private int x;int main()B b(2);b.dispb();return 0;运行时输出的结果是 A)10,2 B)12,10 C)12,2 D)2,2(32)虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非虚函数不支持多态调用。有如下程序:#include using namespace std;class Base public:virtual void f()cout”f0+”;void g()cout”g0+”;class Derived:public Base public:void f()cout”f+”;void go coutf();P-g();return 0;QQ374289236QQ374289236 运行时输出的结果是 A)f+g+C)f+g0+(33)下面程序中对一维坐标点类 Point 进行运算符重载#include using namespace std;class Point public:Point(int val)x=val;Point&operator+()x+;return*this;B)f0+g+D)f0+g0+Point operator+(int)Point old=*this;+(*this);return old;Int GetX()const return x;private:int x;int main()Point a(10);cout(+a).GetX();couta+.GetX();return 0;编译和运行情况是 A)运行时输出 1011 B)运行时输出 1111 C)运行时输出 1112 D)编译有错(34)有如下程序:#include using namespace std;QQ374289236QQ374289236QQ374289236QQ374289236int main()char str100,*p;coutPlease input a string:”;cin;str;p=str;for(int i=0;*p!=0;p+,i+);cout“I”endl;return 0;运行这个程序时,若输入字符串为 abcdefg abcd 则输出结果是 A)7 B)12 C)13 D)100(35)有如下程序:#include using namespace std;class Sample friend long fun(Sample s);public:Sample(long a)x=a;private:long x;long fun(Sample s)if(s.x2)return 1:return s.x*fun(Sample(s.x-1):int main()int sum=0;for(int i=0;i6;i+)sum+=fun(Sample(i);coutsum;return 0;运行时输出的结果是 A)120 B)16 C)154 D)34 二、填空题(每空 2 分,共 30 分)QQ374289236QQ374289236(1)在深度为 7 的满二叉树中,度为 2 的结点个数为_。(2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于_测试。(3)在数据库系统中,实现各种数据管理功能的核心软件称为_。(4)软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于_阶段。(5)在结构化分析使用的数据流图(DFD)中,利用_对其中的图形元素进行确切解释。(6)C+中只有两个逻辑常量:true 和_。(7)若要访问指针变量 p 所指向的数据,应使用表达式_。(8)已知一个函数的原型是:int fn(double a);若要以 5.27 为实参调用该函数,应使用表达式_。(9)有如下定义:class MA int value;public:MA(int n=0):value(n);MA*ta,tb;其中 MA 类的对象名标识符是_。QQ374289236QQ374289236(10)如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函明完整。class myClass private:int data;public:myClass(int value);/构造函数 myClass(const_anotherObject);/拷贝构造函数 (11)用来派生新类的类称为_,而派生出的新类称为它的子类或派生类。(12)有如下程序:#include using namespace std;class CA public:CA()cout+A;class CB:private CA public:CB()coutB;int main()CA a;CB b;return 0;这个程序的输出结果是_。(13)若将一个二元运算符重载为类的成员函数,其形参个数应该是_个。(14)有如下程序:QQ374289236QQ374289236#include using namespace std;class DA int k;public:DA(int x=1):k(x)DA()coutk;int main()DA d=DA(3),DA(3),DA(3);DA*p=new DA2;delete p;return();这个程序的输出结果是_。(15)C+语言中的多态性分为编译时的多态性和 _时的多态性。QQ374289236QQ374289236QQ374289236QQ374289236如果你还不知道读什么书,或者想寻找下载阅读更多书籍,就请您打开微信扫一扫,扫描下方二维码,关注微信公众号:大学生学术墙。微信直接搜索关注公众号:大学生学术墙这里是每一位上进的人的家园【大学生学术墙】资料库里有数百万本书籍,此外,关注微信公众号:大学生学术墙,并在后台回复:1.回复:资料,即可免费领取100000G的书籍库、大学必备笔记期末试卷、考证资料、四六级考试、计算机二级考试等资料!2.回复:电影,即可免费在线观看最新上线的热门大片!3.回复:小说,即可免费领取数百万本著名小说!4.回复:证券、期货,即可免费在行业龙头企业用超低手续费开户,开启你的投资生涯!你需要的书籍、课件、视频、PPT、简历模板等等一切资源和资料,都可以在微信公众号:大学生学术墙,回复关键词免费领取!微信小程序:鼠友。国内首个大学生在线交流社区,既可以看外校新鲜事,又可以和本校同学沟通交流,实时发布信息,这是鼠于大学生们的友谊树洞如果您对金融领域一知半解,想学习金融领域相关知识,提高自身综合投资水平,获取相关金融服务,请关注微信公众号:财醒来微信直接搜索关注微信公众号:财醒来,您可以获得以下服务:1.私人财富管理咨询服务,您通过公众号添加号主个人微信后,可结合自身情况咨询财富管理服务等。2.公众号会分享原创的宏观、股票、期货等二级市场复盘和投资参考,助力您发现投资机会。3.公众号不定期会分享号主自己的投资心得,投资策略等,带给您不一样的金融评论和金融思维。4.公众号后台回复:证券、期货,即可免费在行业龙头企业用超低手续费开户,开启你的投资生涯!重磅福利:头部券商,万 1.1 开户无论是买股票、基金还是期货,交易成本都是我们不可忽视的重要元素。如果你自己去应用市场下载 XX 证券、XX 期货或者在同花顺开户,交易佣金一般默认为较高的万 2.5 或万 3 且没有客服服务。现在,如果你从我们这边的专属渠道二维码开股票账户,可以享受到万 1.1 的开户优惠,并且有专属客服服务!对于大部分人来说,每年至少可以省出一部苹果最新款手机的钱了,下面简单介绍一下该券商:【AA 类券商,全国前五大券商,安全可靠】【步骤简单,无需排队,全国都能开户,没有时间和地域的限制】【营业部遍布全国,业务可以异地办理】如何开户并享受最低佣金优惠?搜索微信 ID:daxueshengqiang 或扫描下方二维码,添加客服微信并备注:开户,客服会辅助你开户!记 住 了,只 有 从 上 面 二 维 码 首 次 开 户 注 册 的,才 可以 享 受 最 低 佣 金 优 惠!开 户 后 客 服 会 主 动 联 系 您 进 行 佣金 调 整。如 果 你 自 个 儿 去 应 用 市 场 下 载 注 册,就 无 法 享 受 到这 边 的 专 属 渠 道 福 利 了。同 时,我 强 烈 推 荐 你 开 一 个 期 货 账 户!期 货 账 户 最大 的 好 处 是,既 可 以 做 空 又 可 以 做 多!与 股 票 账 户 相 同,如果你从我们这边的专属渠道二维码开期货账户,也可以享受到超低手续费的开户优惠,并且有专属客服服务!下面简单介绍一下:【AA 类期货公司,全国前五大期货公司,安全可靠】【步骤简单,手机快速开户,足不出户即可开通】【营业部遍布全国,业务可以异地办理】【超低手续费的开户优惠】【一对一专属客服服务】如何开户并享受最低佣金优惠?搜索微信 ID:daxueshengqiang 或扫描下方二维码,添加客服微信并备注:开户,客服会辅助你开户!